Важная новость в мире информационной безопасности появилась на прошлой неделе от компании Microsoft о том, что китайская группировка HAFNIUM атакует американские компании и организации с использованием 0-day уязвимости в Microsoft Exchange Server. Новость стала настолько резонансной, что ее транслировали даже федеральные каналы, а ведущие ИБ-компании незамедлительно публиковали подробности атак, которые они наблюдали (Volexity, Fireeye, Cisco Talos Intelligence Group).

Вопрос, который всю предыдущую неделю задавал себе, наверное, каждый специалист по ИБ в России: а как же мы? Нас тоже атаковали с использованием 0-day уязвимости? Спойлер – да. Технические подробности под катом.

В целом сценарий работы группировки HAFNIUM при атаках на российские компании схож с тем, что наблюдалось при атаках на американские организации. При этом мы немного дополним свои наблюдения интересными техническими деталями.

На момент получения образов жестких дисков часть логов и журналов безопасности, к сожалению, ротировалась, а восстановить их нам не удалось. Поэтому, например, следов эксплуатации CVE-2021-26857 в журнале безопасности Application, мы не обнаружили. Зато
CVE-2021-27065 и CVE-2021-26855 видно достаточно ярко.



Cледы CVE-2021-27065 в C:\Program Files\Microsoft\Exchange Server\V15\Logging\ECP\Server



Cледы CVE-2021-26855 в C:\Program Files\Microsoft\Exchange Server\V15\Logging\HttpProxy

В результате эксплуатации злоумышленники загружали на сервер два Web Shell-а: один для загрузки на сервер произвольных файлов, второй для запуска команд через cmd.exe /c:



Web Shell для загрузки произвольных файлов



Web Shell для запуска команд через cmd.exe /c

Имена Web Shell-ов были различные, но расположение и User-agent во всех случаях были схожими:

Web Shells

owa\auth\current\themes\resources\Expiredtoken.aspx 
owa\auth\current\themes\resources\owafont_ki.aspx
owa\auth\current\themes\resources\owafont.aspx  
owa\auth\expire.aspx                                                                      
owa\auth\owafont_ki.aspx 
owa\auth\Expiredtoken.aspx 
owa\auth\one.aspx
owa\auth\RedirSuites.aspx

User-Agents

python-requests/2.25.1
Mozilla/5.0+(Windows+NT+6.1;+Win64;+x64;+rv:86.0)+Gecko/20100101+Firefox/86.0

Работу злоумышленника через Web Shell всегда хорошо видно в логах IIS, кроме того,
в данном случае там еще и частично видна активность по эксплуатации уязвимостей:



Следы обращений в логах IIS

После загрузки на сервер Web Shell-ов, злоумышленники собирали различную информацию о хосте, учетных записях, выгружали архивы электронной почты, интересовавших их людей (именно так, точечно) и забирали всю эту информацию, предварительно архивируя. Cтоит отметить, что с точки зрения стандартного хостового мониторинга сделано это было достаточно шумно, хотя после этого злоумышленники удаляли за собой эксфильтруемые файлы и дополнительные инструменты:

cmd.exe /c wmic process list full|findstr /i commandline

c:\windows\system32\cmd.exe /c schtasks /create  /tn ddd /tr "cmd /c reg save HKLM\SAM 

c:\windows\cluster\samBkup.hiv && reg save HKLM\SYSTEM c:\windows\cluster\systemBkup.hiv" /sc onstart /ru system /F

c:\windows\system32\cmd.exe" /c c:\programdata\as.log a -pqweasd123#@!MB

c:\programdata\hiv.png c:\windows\cluster\*.hiv

cmd.exe /c reg query
HKEY_LOCAL_MACHINE\system\currentcontrolset\control\securityproviders\wdigest && hostname

cmd.exe /c reg add 
HKEY_LOCAL_MACHINE\system\currentcontrolset\control\securityproviders\wdigest /v uselogoncredential /t reg_dword /d 1 /f

rundll32.exe  C:\Windows\System32\comsvcs.dll, MiniDump 848 c:\programdata\dm.bin full

	cmd.exe /c powershell -execu bypass -f c:\programdata\n.ps1

              cmd.exe /c powershell -exec bypass -w 1 -file c:\programdata\exinfo.ps1

Скрипт n.ps1 был использован для выгрузки электронной почты и сбора статистики через скрипт excshell.psc1 (стандартный механизм).



Скрипт n.ps1

Результат работы данного скрипта хорошо виден при настроенном аудите логов Exchange



Логи Exchange после выгрузки электронной почты скриптом n.ps1

Скрипт exinfo.ps1 необходим для сбора достаточно большой информации о хосте (часть кода заимствована из проекта Nishang) и запуска кастомной сборки Mimikatz



Основная функция exeinfo.ps1

Перечислять каждую функцию по сбору информации нет смысла, поэтому мы покажем только первую и вторую, а дальше остановимся на своеобразной сборке Mimikatz, используемой злоумышленниками при данных атаках.



Функции t1 и t2 (сбор информации) из exeinfo.ps1

Mimikatz запускается через запуск исполняемого файла, содержащего в себе две динамические библиотеки, и загрузку одной из них в память процесса lsass.exe через вызов функции NdrClientCall3



Функция t6 (запуск mimikatz) из exeinfo.ps1

C:\windows\Cluster\ accace.exe (SHA256: 0D648339C975CF04F6C8DC99CD09EA508F16C553A47847B522341CE5857424A2).

Данный файл содержит в себе две библиотеки:

  • twindump.dll (находится в ресурсах accace.exe в открытом виде)
  • lsadll.dll (закодирована в base64 и зашифрована с помощью AES CBC)

Запускается следующим образом: cmd.exe" /c r <ключ> <вектор инициализации> .

Ключ и вектор инициализации необходимы, чтобы расшифровать lsadll.dll. Если ввести их неправильно, файл не отработает. Параметр path задает путь, по которому создается библиотека twindump.dll. По умолчанию – C:\ProgramData\twindump.dll.



accace.exe.exe использует библиотеку CryptoPP

lsadll.dll (SHA256: EE91A2ADF1581CEEAEB690125A60A3CCD94B98ECE545679D1E95E609AB9666F9)

Библиотека имеет одну экспортную функцию «DO», задача которой, используя API AddSecurityPackage (через RPC), заставить процесс lsass.exe загрузить библиотеку twindump.dll.

При этом данную технику можно детектировать путем отслеживания загрузки неподписанных библиотек в процесс lsass.exe.



Вызов AddSecurityPackage

twindump.dll (SHA256: 94512C434290405BEFD159FC3C4ED01F18722F966D53DAC45760DD36C4D9B918)

Содержит в себе зашифрованную библиотеку mimikatz.dll.



DllEntryPoint twindump.dll



Экспортируемая функция «Do» библиотеки mimikatz.dll

Вместо заключения


Как мы показали, китайская группировка HAFNIUM действовала схожим образом при атаках как на американские, так и на российские организации, и, если честно, это немного удивляет. Ведь обычно APT-группировки, имея в запасе эксплойт для 0-day уязвимости, стараются его использовать редко, в исключительных случаях. Но, как мы видим, в этих историях кратковременный результат оказался важнее.

Хочется напомнить, что, сетевые индикаторы в данном случае малоэффективны, ведь это даже не CnC, которые живут некоторые время, а обычные хостинги, VPS-серверы и proxy-цепочки, цель которых единожды запустить код на вашем непропатченном Exchange-сервере. А если вы хотите провести ретроспективную проверку, то куда более эффективно будет проверить ваши Exchange-логи на наличие определённых признаков (все это описано в статье Microsoft).

Напоследок мы в очередной раз призываем всех обновляться. И если вдруг по каким-то причинам вы не можете это сделать, то скорее настраивайте аудит и организуйте мониторинг событий информационной безопасности – ведь даже несмотря на то, что это были 0-day уязвимости, активность злоумышленника возможно было своевременно обнаружить с помощью описанных ниже правил детекта.

image