Приветствую Вас. Меня зовут Brother Hack и я бы хотел рассказать очередную
историю из жизни хакеров. Немного цинично, но так. Для внимательных читателей:
это история будет посвящена взлому американского ISP, который, ко всему, был
еще и billing-сервером из кластера системы CyberCash (www.cybercash.com).
IRC это рулеззь :-) Порой, можно и не такие вещи услышать. Но так как не все
могли это слышать, я решил это немного озвучить в этом журнале. Если Вы не
против, я буду вести повествование от первого лица - мне так удобней. По мере
возможности я буду комментировать повествование техническими деталями.
1. The List
Теперь - что мы получили (а точнее - то куда мы смогли попасть) [1]:
SunOS 2.5
polus.hacked.net
china.hacked.net
3Com Corporation HiPer Access Router Card
acp0.hacked.net
USR Total Control (tm) NETServer Card
acp1.hacked.net
acp2.hacked.net
Livingston PortMaster
p3-0.hacked.net
p3-1.hacked.net
p30-0.hacked.net
p30-1.hacked.net
p30-2.hacked.net
p30-3.hacked.net
ISP-Accelerator(TM) Remote Access Server
vn0.hacked.net
vn1.hacked.net
vn2.hacked.net
vn3.hacked.net
Чуть позже, я подробно опишу способ проникновения в каждый из них
(будь-то сервер, dial-up access point, просто switch или роутер).
2. Preface
Хм. По всему, следует сначала рассказать, как я оказался внутри. К
сожалению, ничего "супер-хакерского" тут не понадобилось. Я нашел
log от MySQL, который "предусмотрительно" лежал на public-ftp. Кгм, подумал
я, увидев: UPDATE user SET Password=PASSWORD('Gfh.Jkm') WHERE user='root'
Сразу пошел смотреть, - а что там у нас? Конечно, соединиться с mysql
сервером у меня не получилось. Меня честно и откровенно послали :-)
Ладно, думаю я и пытаюсь вломиться telnet'ом. Got it! Come here! После ввода
логина root и пароля меня просто отбрасывает. Кгм, подумал я опять, и сделал:
rlogin -l root polus.hacked.net, на что получил в ответ: Not on system console.
Странно, подумал я и сделал rsh -l root polus.hacked.net /bin/sh -i. Сервер
честно сказал:
stty: : Invalid argument
\h:\w#
Вот, собственно и вся проблема :-) Предусмотрительно кто-то, кто попал
сюда _до меня_ (я знаю кто это - але, "клиент Relcom" - отзовись!) сделал
маааленькую дырочку в стиле echo + + /root/.rhosts. Помогло. Так я попал на
polus.hacked.net. Ничего сверхъествественного.
Let me in.
3. Inside
Вот я и внутри. Что теперь?
cat /etc/shadow > /tmp/abq; chmod ugo+rwx /tmp/abq; man ftp 8-)
Ну это не в счет.
Внимательно изучив /root/.rhosts, я попробовал все хосты, которые root
(тамошний) оставил для себя. Из всех - сервером оказался только
china.hacked.net. Удивительно, но мой "неизвестный" помощник из Relcom'а
сюда не добрался, а если и добрался то не оставил подобной дырки. Ну что же
все надо делать самому :-) Один взмах руки - у меня 10 паролей пользователей
c shell. Второй взмах - стоит sniffer и пишет логи на public-ftp. Гениально?
Вовсе нет. Но я отвлекся. После таких победных вращений руками я получил
все что хотел, не считая трех дополнительных account'ов с shell'ами и пяти
/bin/sh и /bin/bash с suid bit (chmod u+s fake-sh; chown root fake-sh)
спрятанных на протяжении всего /home :-)
Так-с, о чем это я? Надо закончить с этим сервером. Что у нас есть? (ps -ef)
Come get some! Radius! Как я мог забыть?!! Это же ISP! Значит должна быть
какая-то авторизационная система.
Иди ко мне, babe :-)
4. Radius
cd /usr/local/etc/raddb
Теперь у нас есть список access серверов (приведенных выше) и паролей к
ним (!!!) Lammaz must die в диких муках, я так всегда говорил. Склеротики!
Держать пароли в plain text!! MUST DIE!! Аншлаг.
Дело техники.
В файле access-серверов у меня есть acp0.hacked.net, acp1.hacked.net,
p3-0.hacked.net. Методом получения DNS и "тыка" я получаю вход на остальные
access-сервера (пароли одинаковые). Но... У меня всегда была любовь к
неизвестным маршрутизаторам.
Ну почему vn0.hacked.net выглядел так заманчиво?
Ни один пароль не подошел. Хм, время перебора. It's show time! Совершенно на
автомате набираю:
Please Enter User Name:admin
Please Enter Password:admin
ISP-Accelerator(TM) Remote Access Server
Copyright 1996 - 1998, All Rights Reserved
** WARNING: Session will be disconnected if inactive for 10 minutes!
>>
Так и хочется сказать: "Твою мать! А ведь работает!" :-)
"Кошку" взломать не смог. А жаль. Очень хотелось [2].
5. SQL [3]
Тормоз!! Как я нашел сервер? По логу MySQL! Зачем нужен MySQL база серверу
Internet Service Provider? Billing! Хотя сразу воткну disclamer (отмазку) -
лог был датирован 1997 годом, кто мог подумать... (а ведь надо было!)
/usr/local/mysql/bin/mysql --user=root -p hacked-database
select * from users;
select * from billing;
Отлично. Две базы. Одна - это plain-text пароли и логины всех пользователей
(ну не сказка ли? :-). Вторая - база для billing'а. _Полнейшая_ информация о
пользователях (есть даже accounting bank) и об их credit cards (в общей
сложности больше 7000 записей).
Я крут. Я гений. Аплодисменты.
Спать иногда тоже надо.
Утром не могу войти. Получаю /bin/true вместо lovely /bin/bash. Меня нашли.
Я тоже ступил - не забил логи моего присутсвия. Идиот. Coming up. Я благодарю
себя за своевременный download dump'а MySQL базы. Захожу обычным пользователем
и пытаюсь сделать su - root:
Password:
su: Sorry
А как там дела с моим сниффером? Мертвенькое :-( Логов нет. Чем нам может
помочь find? Тем, что он нашел логи сниффера в /root/sam/ [4] Идиот :-)
Что же в логах... Ага, вот root сделал finger, кгм, увидел sam, сделал
finger sam, а после last sam. Удивлен. Весьма. В связи с чем делает
cat /var/adm/messages | more. Удивлен еще больше. passwd root. Гениально.
Вот у меня есть и новый пароль :-)
Быстренько наводим порядок. Больше нет ни меня, ни никого другого. И не было.
Представляю как удивится root. Запускаю sniffer уже как identd-процесс.
Ага, вот еще... Ночью, рассматриваю домена из DNS зоны этого ISP нашел некий
billing.hacked.net, который WinNT-based. Тут же достаю nat10 и начинаю
атаковать. Так как база большая ухожу заниматься другими делами.
Come on.
6. Big Boy's Revenge
Да, root мне отомстил. Все что _может быть_ заблокировано - заблокировано.
Насколько я понял, root недостаточно квалифицирован, чтобы определить способ
взлома, поэтому он закрыл все, даже ftp-сервер, хотя polus есть основной
anonymous-ftp сервер этого ISP. Да... Идиот. Нет слов.
Переждем.
7. Chineese
Пока у меня нет входа на основной сервер пытаюсь влезть china.hacked.net
использую пароли пользователей из полученного dump'а MySQL. I'm in с первым
же паролем. Пароль у root'а такой же.
Поразительно.
Ничего интересного не нашел. Однако нет... подожди. ps -ef указывает на
некоторые процессы (программы) с название credit_bill. Yum-yum :-) Тут-то
я и нашел базу системы CreditCash. Вернее не базу, а только логи. Но мне
этого хватило (больше 200 записей).
Скажи "bye-bye" папочке :-)
8. Talk
Я никогда не говорил, что я надоедливый? :-)
Я возвращаюсь на polus, и пытаюсь поговорить с root'ом. Все что мне было
интересно я уже видел, теперь я хотел мира.
Черт! Твою мать! Стой!
В связи с моим побуждением я потерял 5 account'ов в его системе - он их
заблокировал, пока я пытался сделать ему talk. Не говоря уже о том, что он
написал complain тому американскому ISP, через сервера которого я "лазил"
к нему. Я потерял одну из лучших своих промежуточных "точек" для атак. Он
даже умудрился просканировать порты моего work-station когда я пытался к
нему, в отчаянии, лезть напрямую. Как хорошо, что практически все что можно
было закрыто. Корпоративная сеть.
Я такого не прощаю.
9. Punishment
Больше root меня никогда не видел. Я себя обезопасил на всю жизнь. Столько
дырок сколько есть в его система нет нигде, даже в _полностью_ открытой
системе. Я ведь хотел мира, не так ли?
Кстати, до сих пор по finger root Вы можете прочитать немало "лестных"
отзывов о нем :-)
10. Bye-Bye?
В связи с определенными обстоятельствами убиваю всю базу паролей, кредиток
и остального staff этого ISP везде. Припадок честности, скажите Вы? Совесть
заиграла? Вовсе нет. Не хотел марать руки "убитой" системой. Хотел убедить себя
что я туда больше не вернусь. А это можно сделать только тогда, когда ты
_не можешь_ сделать обратное.
Странно как-то.
11. When The Movie Stops
I'm back. Не утерпел.
Сервер встретил меня permission denied. Залатал таки одну из дырок. Что же,
пойдем посмотрим-ка на логи sniffer'а. Кстати, они до сих пор лежали на
public-ftp :-) Используя один из паролей пользователей я попадаю внутрь, опять
получаю root'а. Царит полная разруха. Root приложил немало усилий, чтобы
понять как же его взломали. Он все понял просмотрев .bash_profile и им же
сохраненного каталога /home/sam/, итого r* сервисы закрыты. Ну это не проблема
для меня. Все вернулось на круги своя и я покидаю пепелище - тихо и мирно.
Между прочим, он даже MySQL завалил специально от меня. Я запустил его,
взял обоновление базы, и опять положил.
Пусть будет.
----
[1] Естественно, все адреса изменены.
[2] Этот ISP имел на Cisco два E1-bandwidthed канала.
[3] Тут к работе присоединился мой друг, неплохой программист, который и
разобрался с этой базой.
[4] Логин, с правами root'а, который я сделал для себя, был sam.
HackZone