Вообщем идея висела в воздухе давно, наконец то решил реализовать. Смысл такой: Ты не единственный хеккер на планете и другие хеккеры порой пользуються пабликовым софтом (в нашем случаем http шеллами). Как и любой линк, URL шелла залитого другим хеккером МОЖЕТ оказаться в базе гугля. ВОт примерный запрос для r57shell к Google: "intitle:r57shell filetypehp". В ответ - куча результатов, парсить каждый из них руками фпадлу (один раз я так сделал ), поэтому пишем скрипт который автоматически производит поиск и выдирает живые линки. Критерия только два - запрос к гуглю и сигнатура шелла (например строка "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 + 40, strpos($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: Злобный админ прикрыл мой шелл, поэтому чтобы протестить тебе придеться куданить его залить самому =\.