Взломанный, что делает этот кусок кода? - PullRequest
22 голосов
/ 14 сентября 2010

ВНИМАНИЕ: Это возможный эксплойт. Не запускайте прямо на своем сервере, если вы не уверены, что с этим делать.

http://pastehtml.com/view/1b1m2r6.txt

Я полагаю, это было загружено через небезопасный скрипт загрузки. Как мне декодировать и распаковать этот код? Запуск его в браузере может выполнить его как скрипт оболочки, открыть порт или что-то в этом роде.

Я могу выполнить декодирование base64 онлайн, но я не смог распаковать его.

Ответы [ 5 ]

32 голосов
/ 14 сентября 2010

Итак, есть строка.Он заархивирован и закодирован в base64, а код декодирует base64, а затем распаковывает его.

Когда это будет сделано, я получаю следующее:

<? eval(base64_decode('...')); ?>

Другой слой base64, длиной 720440 байт.

Теперь, расшифровывая base64, у нас есть 506961 байт кода эксплойта.

Я все еще проверяю код и обновлю этот ответ, когда яиметь больше понимания.Код огромен.

Все еще читаете код, и (очень хорошо сделанный) эксплойт позволяет хакеру разоблачить эти инструменты:

  • Настройка бэкдора TCP
  • несанкционированный доступ к оболочке
  • чтение всех файлов htpasswd, htaccess, password и конфигурации
  • очистка журнала
  • доступ к MySQL (чтение, запись)
  • добавить код ко всем файлам, соответствующим шаблону имени (массовый эксплойт)
  • RFI / LFI сканер
  • UDP-флудинг
  • информация о ядре

ThisВероятно, это профессиональный PHP-инструментарий, основанный на использовании сервера, и, учитывая, что у него хороший HTML-интерфейс и в целом, он может быть легко использован профессиональным хакером или даже сценаристом.

ЭтоЭксплойт называется c99shell (спасибо И Цзяну) и оказывается довольно популярным, о нем говорят и работают уже несколько лет.В Google есть много результатов для этого эксплойта.

16 голосов
/ 14 сентября 2010

Глядя на декодированный источник Делана, он выглядит как полноценный бэкдор, предоставляющий веб-интерфейс, который можно использовать для управления сервером различными способами.Рассказывать фрагменты из источника:

echo '<center>Are you sure you want to install an IP:Port proxy on this
website/server?<br />

или

<b>Mass Code Injection:</b><br><br>
Use this to add PHP to the end of every .php page in the directory specified.

или

echo "<br><b>UDP Flood</b><br>Completed with $pakits (" . 
     round(($pakits*65)/1024, 2) . " MB) packets averaging ". 
     round($pakits/$exec_time, 2) . " packets per second \n";

или

if (!$fp) {echo "Can't get /etc/passwd for password-list.";}

Я бы посоветовалочистить этот сервер и переустановить все с нуля.

7 голосов
/ 14 сентября 2010

Я знаю, что Делан Азабани сделал это, но вы точно знаете, как он получил данные:

На случай, если вам интересно, как это распаковать, используйте base64 -d filename > output для разбора строк base64.и gunzip file.name.gz для анализа сжатых данных.

Хитрость в том, чтобы распознать, что у вас есть base64 или gunzip, и распаковать нужные биты.

Таким образом, он абсолютно не похож на парсер JS или PHP.

3 голосов
/ 14 сентября 2010

Сначала замените eval на echo, чтобы увидеть, какой код он будет выполнять, если вы позволите.Отправьте вывод этого скрипта в другой файл, скажем, test2.php.В этом файле сделайте тот же трюк снова.Запустите его, и он выдаст полную вредоносную программу (это чудовище), ~ 4 тыс. Строк восторга хакера.

2 голосов
/ 14 сентября 2010

Это код для PHP-оболочки.
расшифровать это

заменить заменить eval ("?>". На печать ( запустить это

php5 file.php > file2.php

затем замените eval на print и запустите в браузере. http://loclhost/file2.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...