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