Talisman
12.11.2006, 22:53
Вчера в аську постучался чел, с которым я вел довольно длительную переписку-консультацию по имению виндового сервака. Очередная его просьба заключалась в том, что RemView палится NOD`om, стоящим на виндовом сервачке - он просил дать аналогичную софтинку, только не палащуюся.
Первым делом пришла идея просто зашифровать base64_decode (http://ru2.php.net/manual/ru/function.base64-decode.php), и я быстренько накодил следующий код:
eval(base64_decode(code));и быстренько накодил скрипт:
<?php
$file_array = file( "RemView.php" ); // следует помнить, что в файле в кодируемом файле должны быть удалены начальные и конечные "примочки" php-кода (<? и ?>)
while ( list( $line ) = each($file_array) ):
$c.=$file_array[$line];
$c.=chr(10);
endwhile;
echo "eval(base64_decode('" . base64_encode($c) . '\'));';
?>А как зашифровать сложнее, и сжать код - читаем дальше:
Функции СИММЕТРИЧНОГО ШИФРОВАНИЯ, которые могут нам помочь:
Функция mcrypt_ecb(Алгоритм,ключ,данные, режим);
Алгоритмы шифрования, которые есть в либе libmcrypt:
MCRYPT_DES - алгоритм DES
MCRYPT_3DES - алгоритм 3DES
MCRYPT_BLOWFISH - алгоритм BLOWFISH
MCRYPT_CAST128 - алгоритм cast256
MCRYPT_CAST256 - алгоритм cast256Режим: либо MCRYPT_ENCRYPT (зашифровать) либо MCRYPT_DECRYPT (расшифровать)
Более подробно о функции можно глянуть тут: http://ru2.php.net/manual/ru/function.mcrypt-ecb.php
Функции АССИМЕТРИЧНОГО шифрования, которые могут нам помочь:
Например SSL, но мы рассматривать ее не будем ))) нах оно нам? Хотя если остальные будут палиться... то )
Очень жаль, но необратимое шифрование нам помочь никак не может :( например функция md5(); :D
Функции изменения основания системы данных шифрования, которые могут нам помочь:
О, как выразился) к функциям относятся и примененные тимой RST в конструкторе своего шелла (линк на конструктор (http://www.rst.void.ru/r57shell_create.php)):
gzdeflate (http://ru2.php.net/manual/ru/function.gzdeflate.php) & base64_encode (http://ru2.php.net/manual/ru/function.base64-encode.php)
gzdeflate & bin2hex (http://ru2.php.net/manual/ru/function.bin2hex.php)
gzdeflate & urlencode (http://ru2.php.net/manual/ru/function.urlencode.php)
gzcompress (http://ru2.php.net/manual/ru/function.gzcompress.php) & base64_encode
gzcompress & bin2hex
gzcompress & urlencode
bzcompress (http://ru2.php.net/manual/ru/function.bzcompress.php) & base64_encode (PHP >= 4.3.3)
bzcompress & bin2hex (PHP >= 4.3.3)
bzcompress & urlencode (PHP >= 4.3.3)(они тут еще и ужимали полученный код дефлейтом и компрессором)
Кроме заюзанных функций: bindec() (http://ru2.php.net/manual/ru/function.bindec.php), decoct() (http://ru2.php.net/manual/ru/function.decoct.php), dechex() (http://ru2.php.net/manual/ru/function.dechex.php) Стоит и упоминуть еще: base_convert() (http://ru2.php.net/manual/ru/function.base-convert.php) - очень удобная фича, можно добавить еще и комбинации используя операции работы со строками и очень понтовую фичу - strrev() (http://ru2.php.net/manual/ru/function.strrev.php) - она просто переворачивает строчку задом наперед ) (помню, писал проги для поиска фраз - полиндромов - прогоните строчки: "Улыбок тебе дед макар" и "Лазер вове хер отрезал" :D )
Шифруем имена самих функций
Ладно, код мы упаковали, но как быть насчет поиска антивирем наших "странных" конструкций? Нужно шифроваться ) юзаем strrev() (http://ru2.php.net/manual/ru/function.strrev.php) или другие подобные функции, которые затруднят поиск потенциально опасных конструкций в исследуемом коде.
Например, очнь прикольный ход:
$_D=strrev('edoced_46esab');
eval($_D('....')); // данный закодированный base64_encode
(финт применен в криптовании бекдора в нуленом даталайфе 4.5)
простым поиском по файлу мы не найдем base64_decode (http://ru2.php.net/manual/ru/function.base64-decode.php), которую очень часто юзают в злонамеренных целях. Впрочем и eval() (http://ru2.php.net/manual/ru/function.eval.php) тоже можно было зашифровать.
Надеюсь, теперь тебе не составит никакого труда кодировать свои шеллы ;)
Первым делом пришла идея просто зашифровать base64_decode (http://ru2.php.net/manual/ru/function.base64-decode.php), и я быстренько накодил следующий код:
eval(base64_decode(code));и быстренько накодил скрипт:
<?php
$file_array = file( "RemView.php" ); // следует помнить, что в файле в кодируемом файле должны быть удалены начальные и конечные "примочки" php-кода (<? и ?>)
while ( list( $line ) = each($file_array) ):
$c.=$file_array[$line];
$c.=chr(10);
endwhile;
echo "eval(base64_decode('" . base64_encode($c) . '\'));';
?>А как зашифровать сложнее, и сжать код - читаем дальше:
Функции СИММЕТРИЧНОГО ШИФРОВАНИЯ, которые могут нам помочь:
Функция mcrypt_ecb(Алгоритм,ключ,данные, режим);
Алгоритмы шифрования, которые есть в либе libmcrypt:
MCRYPT_DES - алгоритм DES
MCRYPT_3DES - алгоритм 3DES
MCRYPT_BLOWFISH - алгоритм BLOWFISH
MCRYPT_CAST128 - алгоритм cast256
MCRYPT_CAST256 - алгоритм cast256Режим: либо MCRYPT_ENCRYPT (зашифровать) либо MCRYPT_DECRYPT (расшифровать)
Более подробно о функции можно глянуть тут: http://ru2.php.net/manual/ru/function.mcrypt-ecb.php
Функции АССИМЕТРИЧНОГО шифрования, которые могут нам помочь:
Например SSL, но мы рассматривать ее не будем ))) нах оно нам? Хотя если остальные будут палиться... то )
Очень жаль, но необратимое шифрование нам помочь никак не может :( например функция md5(); :D
Функции изменения основания системы данных шифрования, которые могут нам помочь:
О, как выразился) к функциям относятся и примененные тимой RST в конструкторе своего шелла (линк на конструктор (http://www.rst.void.ru/r57shell_create.php)):
gzdeflate (http://ru2.php.net/manual/ru/function.gzdeflate.php) & base64_encode (http://ru2.php.net/manual/ru/function.base64-encode.php)
gzdeflate & bin2hex (http://ru2.php.net/manual/ru/function.bin2hex.php)
gzdeflate & urlencode (http://ru2.php.net/manual/ru/function.urlencode.php)
gzcompress (http://ru2.php.net/manual/ru/function.gzcompress.php) & base64_encode
gzcompress & bin2hex
gzcompress & urlencode
bzcompress (http://ru2.php.net/manual/ru/function.bzcompress.php) & base64_encode (PHP >= 4.3.3)
bzcompress & bin2hex (PHP >= 4.3.3)
bzcompress & urlencode (PHP >= 4.3.3)(они тут еще и ужимали полученный код дефлейтом и компрессором)
Кроме заюзанных функций: bindec() (http://ru2.php.net/manual/ru/function.bindec.php), decoct() (http://ru2.php.net/manual/ru/function.decoct.php), dechex() (http://ru2.php.net/manual/ru/function.dechex.php) Стоит и упоминуть еще: base_convert() (http://ru2.php.net/manual/ru/function.base-convert.php) - очень удобная фича, можно добавить еще и комбинации используя операции работы со строками и очень понтовую фичу - strrev() (http://ru2.php.net/manual/ru/function.strrev.php) - она просто переворачивает строчку задом наперед ) (помню, писал проги для поиска фраз - полиндромов - прогоните строчки: "Улыбок тебе дед макар" и "Лазер вове хер отрезал" :D )
Шифруем имена самих функций
Ладно, код мы упаковали, но как быть насчет поиска антивирем наших "странных" конструкций? Нужно шифроваться ) юзаем strrev() (http://ru2.php.net/manual/ru/function.strrev.php) или другие подобные функции, которые затруднят поиск потенциально опасных конструкций в исследуемом коде.
Например, очнь прикольный ход:
$_D=strrev('edoced_46esab');
eval($_D('....')); // данный закодированный base64_encode
(финт применен в криптовании бекдора в нуленом даталайфе 4.5)
простым поиском по файлу мы не найдем base64_decode (http://ru2.php.net/manual/ru/function.base64-decode.php), которую очень часто юзают в злонамеренных целях. Впрочем и eval() (http://ru2.php.net/manual/ru/function.eval.php) тоже можно было зашифровать.
Надеюсь, теперь тебе не составит никакого труда кодировать свои шеллы ;)