Этюд в цифровых тонах

X-KoDeX

Xakep, номер #049, стр. 050-053

xkodex@hack4joy.com

Как ломалась одна контора в сети

Жила-была на просторах сети одна контора. Жила, никого не трогала... до поры, до времени. Но в один прекрасный день опрокинула через бедро эта организация одного человека на крупную сумму денег. Этот человек попробовал вернуть свои денежки, но все безрезультатно. Крепко стояла на ногах фирмочка, да и грины были не совсем чистые. Но это же Россия! Здесь может быть все плюс еще немножко. Человек тот начал наводить справки о возможном, так сказать, мщении. Вследствие аксиом "Земля круглая" и "мир тесен", вышел он на одного продажного хакера. Объяснил все, дал неплохой аванс и пожелал удачи =). Итого: из исходных данных - название конторы. Но и этого вполне достаточно для нахождения адреса в циферках.

Let the party begin!

Зашел сей хакер на http://google.com.ru, ввел название конторы, и третьим линком был "он самый" - домен второго уровня в зоне .ru. Пролукапил домен, узнал IP. Этот IP запастил в SmartWhois и немного призадумался. Диапазон адресов, который выдал хуиз, принадлежал провайдеру, а не конторе. Здесь может быть 2 варианта: либо контора хостится у провайдера (что не есть гуд, но разрешимо), либо проведена выделенка, и сайт (а значит и сервер) стоит непосредственно в самой конторе. Предпочтительней, конечно, второй вариант, но при любом раскладе рутить web-сервант ему придется по любому. Первым делом надо узнать, что это такое. Хакер полез в консоль:

[root@server1 bin]# nmap -sS -O -P0 -o $HOME/xex.nmap -p 1-65535 -v 123.123.123.123
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on www.target.ru (123.123.123.123):
(The 65526 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
81/tcp open hosts2-ns
109/tcp open pop-2
110/tcp open pop-3
143/tcp open imap2
3306/tcp open mysql
Remote operating system guess: Linux 2.0.34-38
Nmap run completed -- 1 IP address (1 host up) scanned in 657 seconds
[root@server1 bin]#

Совсем неплохо =). Это называется "Welcome aboard".

Go, Niger, go!

По порядку:

>ftp 123.123.123.123
Связь с 123.123.123.123.
220 mail FTP server (Version wu-2.5.0(1) Tue Oct 5 00:37:46 PDT 1999) ready.
Пользователь (123.123.123.123:(none)): ftp
331 Guest login ok, send your complete e-mail address as password.
Пароль:
530 Can't set guest privileges.
Сбой входа.
ftp> quit
221 Goodbye.
Wu-2.5.0(1) - это, конечно, круто, но где анонимный вход, блин? Ладно, пошли дальше:
>telnet 123.123.123.123 22
SSH-2.0-2.2.0 SSH Secure Shell (non-commercial)

Это хакер отложил на потом... А со второй версией SSH'а можно долго промучиться.

>telnet 123.123.123. 25
220 mail.target.ru ESMTP Sendmail 8.8.8/8.8.8; Wed, 16 Oct 2006 25:07:02 +0300..

Где-то был сплоит под эту версию сендмыла. Хакеру в лом искать, посему пошел он смотреть остальные демоны.

>telnet 123.123.123.123 80
HTTP/1.1 200 OK..Date: Wed, 16 Oct 2006 25:13:05 GMT..Server: Apache/1.3.12 (Unix) PHP/4.0.2

Приехали =). Линух, апач 1.3.12 + PHP 4.0.2. В одном из недавних номеров "Х" была статья "TOP10 exploits". Вот на третьем месте как раз находится 7350fun, который и дает шелл на сервере с правами апача (обычно nobody), но и это уже немало. Сразу запускать сплоит хакер не стал. Почему? А он не знает. Захотелось ему исследовать сначала веб-контент, а также его интересовал 81-ый порт. По урлу http://123.123.123.123:81 открылось окошко для ввода пароля:

О! Кобальт. Знакомая ему штучка. Он нажимает "Отмену" и видит знакомую надпись:

Authorization Required

This server could not verify that you are authorized to access the document you requested. Either you supplied the wrong credentials (e.g. bad password), or your browser doesn't understand how to supply the credentials required.

... и Кобальт предлагает перейти в "Home Directory" по линку http://123.123.123.123:81/.user/cobalt/, а в браузере появляется урл http://123.123.123.123:81/.cobalt/sysManage/. Ну зачем ему sysManage, тем более что там .htaccess на директорию? Хакер переходит просто по http://123.123.123.123:81/.cobalt/ и видит красивый контент:

Кликая крысой на "userList", он получает список всех юзверей (числом около полусотни), прописанных в системе в html-формате. Хакер берет первый попавшийся короткий логин, коннект фтп-клиентом на фтп, вводит пароль, такой же, как и логин, и он проходит. В принципе, этого и следовало ожидать. В больших конторах, в которых на серверах много юзверей, так до сих пор и делается. Точнее юзвери обычно сами себе пароли такие ставят. Результат: никаких суперфишек использовано не было, всего лишь банальные ошибки в администрировании и отсутствие проверки сервисов, установленных по дефолту. А это всего лишь начало.

Lamers inside

Так как админ заботливо предоставил ftp- и ssh-доступы, то машина, считай, ему уже не принадлежала. Первым делом внутри набирается команда "who". На тот момент хакер оказался один в системе. Ну и здорово. Конторы обычно работают днем, а время уже было больше четырех утра. В данном Кобальте пароли криптовались еще по DES'у и валялись в легендарном /etc/passwd с правами 644 =). То есть забрал хакер файл с паролями без всяких local exploits и прочего. Теперь надо было узнать инфу о сетевых интерфейсах:

[vasya@mail /sbin]$ ./ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:243598 errors:0 dropped:0 overruns:0
TX packets:243598 errors:0 dropped:0 overruns:0
eth0 Link encap:Etheet HWaddr 00:10:E0:00:09:1B
inet addr:123.123.123.123 Bcast:123.123.123.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:506941 errors:0 dropped:0 overruns:0
TX packets:511249 errors:0 dropped:0 overruns:0
Interrupt:13
[vasya@mail /sbin]$

Всего одна сетевая карточка, то есть это не шлюз, а web/mail-сервер. Вот тут-то он и задумался о том, где стоит этот сервер - у провайдера или в самой конторе? Других адресов конторы у него нет, а значит, ниточка обрывается. Путь один - расшифровать passwd, зайти под рутом и очень внимательно изучить мыльную систему. То есть посмотреть, с каких адресов забирается почта. Под обычным юзверем /var/spool/mail и прочие мыльные директории хакер просмотреть не мог, permission denied. Поставил он Джоника (John the Ripper) на расшифровку на самом сервере (да, здесь хакер проявил верх наглости, ну а что делать?) и лег спать.

День второй (точнее ночь)

Пока хакер спал, расшифровалось 39 паролей из 51, среди которых был и рутовский. Нормально. Полез он опять в консоль. Набрал su, пароль рута и получил #. Потом cd /var/spool/mail, заархивировал все файлы, скопировал в /home/httpd/, скачал, вытер. В этих письмах было много информации непосредственно по деятельности конторы, что и пошло первым отчетом заказчику. Но цель была – найти, откуда забирают почту. В /etc/hosts.allow и /etc/hosts.deny было все по дефолту. А вот "cat /etc/mail/ip_allow" выдал все адреса, с которых разрешено было сливать мыло. Это были 6 адресов подряд из той же подсети. Хакер опять запустил nmap. Из 6-ти IP активными были только 4. Одна машина оказалась циской, 2 фрибзди и одна win2000. На циске открыты только 23 и 80 порты, дефолтные пароли не прошли, сплоит на телнет не сработал. Крокодил не ловится, не растет кокос =). Ну, да пинг с ней. На выни2к открыты 135, 139, 445 и 515 порты. Вот это уже лучше. Когда же админы начнут закрывать на инет нетбиос? Наверное, никогда. Это неизлечимо. Запустил хакер nbtdump.exe (ftp://ip.portal.ru/pub/security/nbtdump.exe) и он выдал следующее:

NetBIOS
Share Information
Share Name :IPC$
Share Type :Default Pipe Share
Comment :
WAING - Null session can be established to \123.123.123.124IPC$
Share Name :D$
Share Type :Default Disk Share
Comment :
Share Name :print$
Share Type :Disk
Comment :
Share Name :A$
Share Type :Default Disk Share
Comment :
Share Name :ADMIN$
Share Type :Default Disk Share
Comment :
Share Name :C$
Share Type :Default Disk Share
Comment :
Account Information
Account Name :The 445 days ago. This account has been used 2 times to logon.
This account is the renamed original default Administrator account.
Comment
User Comment:
Full name :
Account Name:The 0 days ago. This account has been used 0 times to logon.
Comment
User Comment:
Full name :

То есть на машине прописаны 2 аккаунта, один из них переименованный Administrator. И, судя по дампу, логины написаны не латинскими буквами. Вообще сдурели, хотя... Это может быть всего лишь русская версия Windows 2000! Запускает хакер Essential NetTools (http://www.tamos.ru/ent3.zip), там выбирает NetBIOS Auditing Tools, вводит логин на перебор "Администратор" и простейший файл паролей. Не успел он сделать пары шагов от компа, как ENT запищал. Оказалось, что пароль был... "12345"! Админский пароль сервера с выходом в Internet и доступом к локалке!

Облом шоколадного...

Далее все по определенному стандарту. Запустил он Remote Task Manager (http://www.protect-me.com/rtm.zip), об этом писал ReBeL в ][ 08.2001, ввел IP сервера. Rtm услужливо предложил инсталлировать себя на взламываемой машине, только попросил логин/пароль. Далее по нетбиосу залил в C:WinNTrepairesysweb (чтобы "случайно" админ не нашел) Cool Remote Control (http://www.yaosoft.com/products/remote.zip).

Хакер мог бы воспользоваться и услугами Radmin'a (http://www.radmin.com), но радмин прописан в анитивирусниках, да и иконка в трее будет немного мешать =). А у CRC те же функции, только он удобней. Хотя у него есть еще вариант - просто запустить Службу терминалов Windows и получить кучу неудобств. Итого: full remote control, причем визуальный. Этот Win-сервант оказался файл-сервером с сетевым принтером. А вот нужной информации на нем не было. Также оказалось, что за этой машиной почти 24 часа в сутки сидит админ, судя по постоянно открывающимся експлоперам с порнухой и багтраками (на фига он их открывает, если не вчитывается? :/)

Путем суточного визуального наблюдения за этим сервантом хакер выяснил, что нужная ему информация находится в базе данных в одном из внутренних серверов. Вход в базу через телнет. Логин и пароль от базы хакер перехватил обычным клавиатурным шпионом. Так как визуально не светило работать с того сервера, пришлось из него делать трубу в локалку на телнет.

Он залил на сервер CmdSrv (http://void.cyberpunk.ru/remote_adm/cmdsrv.exe), через RTM прописал его Сервисом и запустил. Вот теперь у него точно все в шоколаде. Телнет на 123.123.123.124:2323, оттуда telnet 10.5.13.75, логин/пароль и - вуаля! Фишка той базы была в том, что можно было отсылать целые таблицы прямо на почту, минуя всякий контроль, что и было незамедлительно сделано.

Итого: опять банальные ошибки в администрировании, как вин-, так и лин-систем. Лечится исправлением ДНК-прокладки между монитором и стулом.

P.P.S. Не надо закидывать мой мыльник просьбами что-нибудь сломать. Я не хакер. А это все пересказ одного человека, занимающегося сетевой безопасностью. Я же могу отвечать только на письма, ответ на которые может уместиться в паре строчек.

Содержание
ttfb: 9.7579956054688 ms