Stealth-сканирование портов

Pavel Martinov aka kurt

Xakep, номер #060, стр. 060-078-1


(xkurt@inbox.ru)

Как хакер остается незамеченным

Как правильно пользоваться сканерами? Нет, конечно, понятно – сливаешь любой сканер и начинаешь тут же производишь аудит безопасности удаленного сервера :). Но представь себе ситуацию, когда админ хоста не полное дерево, а нормальный рабочий. Тогда он наверняка просечет эти действия через какой-нибудь firewall или IDS. Чтобы избежать подобных ситуаций, были придуманы хитрые способы скана.

Ликбез

А для чего вообще нужно сканировать порты? Хакеры, например, проводят сканы для получения списка запущенных на хосте демонов (сервисов). По ним они находят дырявые версии установленного софта, даунлодят соответствующие эксплоиты и в итоге получают некие права в системе. При необходимости они поднимают их до рутовых уже при помощи локальных сплоитов. После получения рута машина полностью принадлежит хакеру, и он волен делать с ней все что захочет, начиная от банального дефейса и заканчивая установкой руткитов, сниферов и прочего софта. Администратору же сканеры необходимы для проверки безопасности системы. Он проделывает все те же самые действия, что и хакер, но вместо взлома патчит систему от найденных ошибок.

Как работает простейший порт сканер? Он просто пытается приконнектиться на необходимые порты. Если коннект удался - порт открыт, если нет – закрыт. Все очень просто. Но это хорошо, когда кто-то сканит какой-нибудь yahoo.com, ведь его все равно сканят по сотни раз в день. А что делать, если надо изучить сервак на работе или в домашней локалке? Причем сделать это надо быстро. В такой ситуации есть два выхода:

1. Сканить через шелл.

2. Стелс-сканирование.

Первый способ возможен далеко не всегда. Например, если нет выхода из локалки в инет, то выйдет облом. Остается только второй вариант – провести stealth scan. Львиную долю таких сканов делает известная всем софтина nmap (Network Mapper). Поэтому в своих примерах я буду опираться именно на нее.

Далее мы рассмотрим, как же работают эти самые сканеры. Сразу оговорюсь: стелс-скан не дает 100% гарантии в том, что админ не заметит тебя, т.к. уже давно существуют специальные детекторы и фаерволы. Так вот, для проведения stealth-скана необходимо иметь права рута - для создания неполного коннекта приходится "шаманить" с заголовком пакета. Если у тебя есть root акцес на тачке, то попробуй для начала посканить самого себя (nmap 127.0.0.1). В итоге должно получиться что-то вроде этого:

Скан nmap’ом

[kurt@localhost kurt]$ nmap 127.0.0.1

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )

Interesting ports on localhost.localdomain (127.0.0.1):

(The 1598 ports scanned but not shown below are in state: closed)

Port State Service

25/tcp open smtp

111/tcp open sunrpc

6000/tcp open X11

Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

Флаги

Чтобы ты лучше понял, о чем идет речь, тебе необходимо знать краткое назначение флагов TCP-протокола. TCP-заголовок содержит 6 полей для флагов.

[URG] urgent:

Этот флаг говорит TCP-модулю о том, что поле Urgent Pointer указывает на срочные данные. TCP-модуль должен обрабатывать такие данные вне очереди.

Содержание  Вперед на стр. 060-078-2