Google Shell Searcher

Discussion in 'PHP' started by А®ТеS, 17 Nov 2007.

  1. А®ТеS

    А®ТеS Active Member

    Joined:
    25 Nov 2006
    Messages:
    198
    Likes Received:
    193
    Reputations:
    41
    Вообщем идея висела в воздухе давно, наконец то решил реализовать. Смысл такой:
    Ты не единственный хеккер на планете и другие хеккеры порой пользуються пабликовым софтом (в нашем случаем http шеллами). Как и любой линк, URL шелла залитого другим хеккером МОЖЕТ оказаться в базе гугля. ВОт примерный запрос для r57shell к Google: "intitle:r57shell filetype:php". В ответ - куча результатов, парсить каждый из них руками фпадлу (один раз я так сделал :)), поэтому пишем скрипт который автоматически производит поиск и выдирает живые линки. Критерия только два - запрос к гуглю и сигнатура шелла (например строка "r57shell" хотя к этому и нельзя привязываться). В моем скрипте есть несколько алиасов (уже готовых запросов и сигнутур) для поиска популярных веб-шеллов (c99 & r57). Вообщем вот код:
    PHP:
    <?php
    /*
    Shell searcher v. 0.02 - little script for search http shells (or other stuff, but general - http shells)
    (C)oded by Artes (king Artas). BIG thnx to Draco for idea and help in realisation.
    */
    //This setting special for expert users
    $r57shellsignature "tr {
    BORDER-RIGHT:  #aaaaaa 1px solid;
    BORDER-TOP:    #eeeeee 1px solid;
    BORDER-LEFT:   #eeeeee 1px solid;
    BORDER-BOTTOM: #aaaaaa 1px solid;
    color: #000000;
    }"
    ;
    $googlequestforr57shell "intitle:r57shell";
    $c99shellsignature '<p align="left"><b>Software:';
    $googlequestforc99shell "intitle:c99shell";
    //end settings
    error_reporting(0);
    ignore_user_abort(true);
    set_time_limit(0);
    $content "<form method=post><div align='center'><table><tr><td colspan=2 align=center><font color='bold'><b>Handmade forever!</b></font></td></tr><tr><td>Quest for Google:</td><td><input type='text' name='quest' size=40></td></tr><tr><td>Signature for search:</td><td><textarea NAME='signature' ROWS=10 COLS=30></textarea></td></tr><tr><td>Logged to:</td><td><input type='text' name='logto' size=40 value='log.txt'></td></tr><tr><td colspan=2 align=center><input type='submit' value='!   GO   !'></td></tr></table></div></form><form method=post><div align='center'><table><tr><td colspan=2 align=center><font color='bold'><b>Or use Aliase:</b></font></td></tr><tr><td>Please, select aliase: </td><td><select name='aliase'><option value='r57' selected>Find r57shell by great team RST :)</option><option value='c99'>Find c99shell</option></select></td></tr><tr><td>Logged to:</td><td><input type='text' name='logto' size=40 value='log.txt'></td></tr><tr><td colspan=2 align=center><input type=submit value='!   GO   !'></td></tr></table></div></form>";
      if (!isset(
    $_POST["quest"]) && !isset($_POST["signature"]) && !isset($_POST["aliase"]))
      {
        echo 
    $content;
        Exit(
    0);
      }
      if (isset(
    $_POST["aliase"]))
      {
        Switch (
    $_POST["aliase"])
        {
          Case 
    "r57":
          
    $_POST["quest"] = $googlequestforr57shell;
          
    $_POST["signature"] = $r57shellsignature;
          break;
          Case 
    "c99":
          
    $_POST["quest"] = $googlequestforc99shell;
          
    $_POST["signature"] = $c99shellsignature;      
          break;
          default:
        echo 
    "<div align=center><i><b><font size=+2>Bug aliase!!! Search stopped!!!</font></b></i><br></div>".$content;      
        }
      }
    $buff file_get_contents("http://google.com/search?q=".$_POST["quest"]."&num=1");
    $pos strpos($buff"Results <b>1</b> - <b>1</b> of about <b>");
      if (
    $pos == 0)
      {
        echo 
    "<div align=center><i><b><font size=+2>Google return NULL results!!! Must Die!!! Search stopped!!!</font></b></i><br></div>".$content;
        Exit(
    0);
      }
    $count str_replace(","""substr($buff$pos 40strpos($buff"</b> for <b>".$_POST["quest"]."</b>.") - $pos 40));
    $i = (int)($count 100);
      if (
    $count 100 != 0)
      {
        
    $i++;
      }
      
    $buff "";
      for (
    $j 0$j $i$j++)
      {
        
    $buff .= file_get_contents("http://google.com/search?q=".$_POST["quest"]."&num=100&start=".$j 100);
      }
    $pattern "/http:\/\/[a-zA-Z0-9\.\-_]+[a-zA-Z0-9\.\-_\/?&=]+/";
    $n preg_match_all($pattern$buff$res);
    for (
    $i 0$i $n$i++)
    {
      if (((
    strpos($res[0][$i], "/search?q=cache") != 0) && (preg_match("/http:\/\/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/"$res[0][$i]) == 1)) || (preg_match("/google\.(com|ru)/"$res[0][$i]) == 1))
      {
        unset(
    $res[0][$i]);
      }
    }
    $fp fopen($_POST["logto"], "w");
    foreach (
    $res[0] as $value)
    {
      
    $buff file_get_contents($value);
        if (
    strpos($buff$_POST["signature"]) != 0)
        {
          
    fwrite($fp$value."\r\n");
        }
    }
    ?>
    Несколько нюансов - Searcher работает крайне тормознуто из за тупого file_get_contents() (с сокетами работать банально ФПАДЛУ было) и поэтому должно пройти существенное время перед отправкой запроса и получением всех результатов.
    На директорию должны стоять права записи (чтобы логи можно было писать :)), т.е. проще всего отдать команду chmod 666 directory (для некоторых ситуаций можно и chmod 600 directory впринципе то...).


    На беслптаных хостингах работать естественно не будет. В качестве бонуса уже залил на подходяий - http://bioportal.cnb.csic.es/sbg/search.php . Пользуйтесь наздоровье :). Кому фпадлу ждать результатов - вот по этим ссылкам уже прогоны по алиасам (с99 и р57):
    http://bioportal.cnb.csic.es/sbg/log1.txt
    http://bioportal.cnb.csic.es/sbg/log2.txt
    http://bioportal.cnb.csic.es/sbg/log3.txt

    З.Ы. Если какаянить сволочь затрет самплы которые выложены для демонстрации новым запросом... короче говоря убить мала будет =).

    З.З.Ы. Сильно ногами не пинайте, писал в спешке для себя :).

    З.З.З.Ы. от 25.11.07: Злобный админ прикрыл мой шелл, поэтому чтобы протестить тебе придеться куданить его залить самому =\.
     
    #1 А®ТеS, 17 Nov 2007
    Last edited: 25 Nov 2007
    7 people like this.