ПРЕДУПРЕЖДЕНИЕ: Это возможный эксплойт. Не запускайте прямо на своем сервере, если вы не знаете, что с этим делать.
http://pastehtml.com/view/1b1m2r6.txt
Я считаю, что это было загружено через ненадежный сценарий загрузки. Как декодировать и распаковывать этот код? Запуск его в браузере может выполнить его как скрипт оболочки, открыть порт или что-то еще.
Я могу сделать base64-декодирование в Интернете, но я не смог его распаковать.
Итак, есть строка. Он кодируется gzipped и base64, и код декодирует base64, а затем распаковывает его.
Когда это будет сделано, я приведу следующее:
<? eval(base64_decode('...')); ?>
Другой слой base64, длина которого составляет 720440 байтов.
Теперь, base64 декодирует, что у нас есть 506961 байт кода эксплойта.
Я все еще изучаю код и обновляю этот ответ, когда у меня больше понимания. Код огромен.
Все еще просматривая код, и (очень хорошо сделанный) эксплойт позволяет этим инструментам быть подверженными хакеру:
Это, вероятно, профессиональный набор инструментов для работы с серверами на базе PHP, и, увидев, что он имеет хороший интерфейс HTML и всю его часть, он может быть легко использован про-хакером или даже скриптом kiddie.
Этот эксплоит называется c99shell
(спасибо Yi Jiang), и он, оказалось, был довольно популярен, о нем говорили и работали уже несколько лет. В Google для этого эксплойта есть много результатов.
Рассматривая декодированный источник Delan, он, как представляется, является полноценным бэкдором, предоставляющим веб-интерфейс, который может использоваться для управления сервером различными способами. Передача фрагментов из источника:
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.";}
Я бы посоветовал вам очистить этот сервер и переустановить все с нуля.
Я знаю, что Делан Азабани сделал это, но так, чтобы вы действительно знали, как он получил данные:
На всякий случай, когда вам интересно, как это сделать, используйте base64 -d filename > output
для синтаксического анализа строк base64 и gunzip file.name.gz
для разбора gzip-данных.
Трюк заключается в том, что вы узнаете, что у вас есть base64 или gunzip и распаковывание правильных бит.
Таким образом, это абсолютно не похоже на парсер JS или парсер PHP.
Во-первых, замените eval
echo
чтобы увидеть, какой код он выполнил бы, если бы вы его допустили. Отправьте вывод этого скрипта в другой файл, скажем, test2.php. В этом файле повторите попытку. Запустите его, и он выведет полную вредоносную программу (это довольно зверь), ~ 4k линий восторга хакера.
Это код для php shell.
декодировать это
замените замену eval («?>» на печать (запустите это
php5 file.php > file2.php
затем замените eval на печать и запустите в браузере. http://loclhost/file2.php