Взлом и защита сетей с помощью nmap

Первый этап любого взлома сети, либо комплекса мероприятий по сетевой безопасности – сканирование сети на предмет открытых портов. Сканеры сети позволяют также определять версию операционной системы и сетевого ПО, которое запущено на доступных в сети компьютерах, что существенно облегчает жизнь злоумышленнику (ну или же инженеру по сетевой безопасности).
Программы для сканирования могут “ощупывать” как сеть целиком, так и работать по некоторому диапазону IP-адресов, то же самое справедливо и для сетевых портов.
Спускаемся на уровень TCP-протокола
Чтобы понять, каким образом происходит сканирование, необходимо разобраться в том, по какому алгоритму осуществляется TCP-соединение между компьютерами. Чтобы установить TCP-соединение между клиентом и сервером, клиент посылает запрос (TCP-пакет) с установленным флагом SYN для инициализации соединения. В случае если сервер прослушивает этот порт, он посылает пакет клиенту с установленными флагами SYN и ACK, тем самым одновременно подтверждая запрос клиента и запрашивая его об установлении обратного соединения. Затем клиент посылает пакет с установленным флагом ACK, подтверждая запрос SYN-сервера. Далее происходит передача данных, для подтверждения получения которых каждый раз отправляется пакет с флагом ACK. Когда сервер или клиент полностью закончит передачу данных, он посылает пакет с установленным флагом FIN, тем самым сообщая другой стороне о необходимости завершить соединение. Другая сторона, получив пакет с флагом FIN, посылает обратный пакет с установленным флагом FIN, подтверждая окончание соединения. Для того чтобы прервать соединение, любая из сторон может послать пакет с флагом RST.
Большинство сканеров получают информацию о доступных открытых портах и присутствии компьютера в сети исходя именно из этой последовательности.
Пакет Nmap и что он умеет делать
Поскольку системы на базе ОС Linux и BSD приобретают в последнее время все большую популярность, в этой публикации мы рассмотрим наиболее продвинутый сетевой сканер для операционных систем Linux — Nmap. Эта программа является одной из наиболее распространенных в среде пользователей Linux и отличается мощным инструментарием и высокой скоростью работы.
Сетевой сканер Nmap появился в 1997 году для операционных систем на базе UNIX и продолжает совершенствоваться по сей день. От подобных программ для ОС на базе Windows он отличается мощным встроенным инструментарием, высокой скоростью работы, различными сопутствующими утилитами, разнообразными методами сканирования и популярность, поскольку практически любой дистрибутив Linux оснащен этим сканером сетевой безопасности. Однако, как и большинство узкоспециализированных программ для Linux, он не имеет доступной конечному пользователю оболочки и запускается из командной строки. Конечно, существуют дополнительные интерфейсы для управления этой утилитой, например такие, как Umit, Nmapfe, которые используют движок Nmap и выводят информацию в оконном режиме, а не в командной строке. Но все-таки эта утилита изначально разрабатывалась для работы в командной строке, а «навесные» утилиты увеличивают время работы и имеют массу недостатков по сравнению с оригиналом, в том числе и в стиле оформления. Кроме того, существует версия этой программы и для операционных систем на базе Windows. Так как методы работы и многие команды для обеих платформ идентичны, в данной статье будет рассмотрена версия Nmap 4.1 для Linux-систем. Поскольку Nmap входит практически в каждый дистрибутив Linux, для того чтобы просканировать сеть, не переставляя операционную систему, можно воспользоваться так называемыми LiveCD. Загрузочные диски такого типа не требуют установки и загружаются с CD/DVD-привода, при этом не нужно разбивать жесткий диск и создавать дополнительные разделы — жестким диском в этом случае служит часть оперативной памяти компьютера.
В настоящее время сетевые сканеры позволяют определять множество дополнительных параметров сканируемого компьютера. Nmap может определять большинство основных параметров сетевого адаптера: MAC-адрес, имя компьютера в домене, открытые порты, порты, закрытые брандмауэром, компанию — производителя чипсета сетевого адаптера исследуемого компьютера, версии ОС и служб. Отметим, что данные о MAC-адресах и о производителе чипсета можно получить только для компьютеров, которые находятся в той же подсети, что и сканирующий ПК. Чтобы оценить все достоинства этой программы, рассмотрим наиболее часто используемые при ее работе ключи.
Как уже говорилось, запуск Nmap производится из командной строки. При запуске программы без каких-либо ключей или с ключом Nmap -h (–help) либо без него на экран будет выведен список доступных ключей и задаваемых параметров.
Синтаксис запуска программы следующий: Nmap [Scan type(s)] [options] {target specification}, где вместо Scan type указывается тип сканирования (по умолчанию, если это место оставить пустым, Nmap будет открыто сканировать доступные порты). В качестве options вводятся всевозможные ключи и параметры сканирования, а вместо target specification — либо IP-адрес компьютера, либо диапазон IP-адресов (который определяется маской подсети), либо название хоста.
(продолжение следует)