День добрый. Сегодня мы поговорим о том, для чего нам могут быть полезны сканеры, и почему не всегда нужно сканировать одной и той же программой в той или иной ситуации.
В сущности, давай определимся - что такое сканер? Сканеры далеко не всегда имеют одно значение. С одной стороны - это мощная программа (сканер безопасности), которая предоставляет возможности изучения всех сервисов на подопытной тачке, как в мирных целях (этого и ожидают разработчики софтины, и по неизвестных причинам, даже предположить не могут другой способ использования =)), так и для выявления слабого звена машины, через которое можно получить рута, шелл, сделать
DDoS...
Но с другой стороны, сканеры бывают менее громоздкими и предназначены для
сугубо индивидуальных нужд, например граб версии sshd с 22 порта, либо факт открытого 110 порта в каком-либо сабнете - вариантов много.
Задумайся вопросом, зачем палиться и сканить nmap'ом, либо другим сканером какую-нибудь подсеть, если можно обойтись определенной тулзой, специально написанной для этого дела (на самом деле, лучшая тулза - /usr/bin/telnet =)). Подумай о том, что некоторые провайдеры, либо владельцы сабнетов, сразу пишут твоему провайдеру =) о попытке скана их серверов (зачем тебе лишний шум?). Поэтому, рассмотрим некоторые тулзы,
рассчитанные на различные индивидуальные операции. Рассмотрим некоторые из них.
1. Grabbb (by teso-team): http://teso-team.net
Данная софтина позволяет снимать баннеры с сервисов по конкретным портам. Написана на C известной командой TESO. Ip-адреса берутся через iplist, который можно создать специальными программами-генераторами (смотри ниже), либо адреса, указанные явным образом. Принцип работы - многопоточный коннект на указанные порты и взятия первых строк с них. Иногда бывает очень полезно (для выявления дырявого демона например). Сканер аккуратненько проходит по указанным портам и записывает результаты в logfile.
Юзать:
./grabbb -i iplist (для iplist).
./grabbb -a startIP -b endIP (для явного указания адресов).
2. Httpdtype http://www.packetstormsecurity.nl
Для некоторых сервисов, необходимо отправить что-либо в сокет, для того, чтобы сервер вернул баннер. Приведу пример хорошей софтины Httptype, которая определяет тип http-сервера на указанном host'e. На самом деле, определения версии сервера сводится к отправке на сервер request'a заголовка, то есть строки "HEAD / HTTP/1.0". На что сервер ответит важной информацией. Для автоматизации процесса можно юзать подобные софтины. Httptype не поддерживает диапазон адресов, а лишь определяет версию у единичного сервера.
Юзать:
./httptype -p 80 www.host.ru
3. Sun-scan http://www.packetstormsecurity.nl
Если цель еще специфичнее (например определения конкретной версии на конкретном порту) - нужно использовать другие софтины. Я приведу пример сканера, который ищет SunOS открытым telnetd (некоторые версии из них подвержены уязвимости). Этот сканер является многопоточным, который по iplist'у щупает 23 порт и ищет жертву. При совпадении баннера с образцом (смотри сорц) скрипт записывает данные в logfile (по дефолту master.log). Также есть возможность указывать максимальное количество потомков и... тебе ничего не мешает изменить образец баннера, сделав, таким образом, этот сканер универсальным.
Юзать:
./sun-scan iplist
4. Универсальный сканер на один порт scan.pl http://kamensk.net.ru/forb/scan
Пользуясь случаем, хочу зарелизить мою софтину - универсальный сканер на открытый порт. Сканер является
многопотоковым и написан на перле. Сканер сам генерирует ip-адреса по маске и щупает
указанный порт. Если порт открыт - сканер записывает результат в лог. Все просто и работоспособно. По умолчанию порт = 139.
Сканер работает на B, С и D подсетях.
Юзать:
perl scan -p23 -otelnet.log -n 195.1.*.*
5. Генератор ip-листов ipgenv2.pl http://www.packetstormsecurity.nl
Если ты внимательно прочитал обзор, ты наверное заметил, что я говорил об ip-листах, а чем они создаются не написал. Не вручную же ты будешь их генерировать. Как пример приведу хорошую софтину для этого дела - ipgenv2. Генератор написан на Perl и способен генерировать адреса даже A-класса по шаблону. Возможна генерация рандомных ip, а также
резолв адресов.
Юзать:
perl ipgenv2.pl -p 112.22.*.* -o ip-list.
Вот, что я хотел рассказать. Соль статьи была такой, что не нужно зацикливаться на общих сканерах, а искать необходимый софт для определенных нужд.