Инструментарий и ловушки
Использование Nmap: все дело в синтаксисе
Для того чтобы получить список всех опций, которые можно использовать при запуске утилиты nmap, следует в командной строке просто ввести nmap-h. Ниже приводится краткое описание синтаксиса утилиты:
• nmap – выполнимая программа;
• -sS TCP Syn – сканирование типа TCP Syn, или половинное сканирование. Этот режим работы предотвращает регистрацию сканирования на большинстве сайтов, потому что при его указании процесс процедуры установления связи до конца не завершается и таким образом нет действительных подключений к хосту;
• -v – многословный режим. При работе в этом режиме вдвое увеличивается объем выводимой на экран информации;
• -O – удаленное определение операционной системы хоста. При установке этого режима утилита nmap предпринимает попытку идентифицировать удаленную операционную систему;
• -P0 – опция указывает утилите Nmap на то, чтобы она не пыталась прозванивать хост перед его сканированием. Этот режим работы позволяет сканировать хост, который не отвечает на запросы утилиты ping по протоколу управляющих сообщений в сети Интернет ICMP;
• -oN results.out – опция указывает утилите nmap на необходимость регистрации результатов сканирования, записывая их в файл results.out. Конечно, вместо файла results.out можно указать любой другой необходимый файл, потому что в любом случае это будет читаемый пустой файл;
• 192.168.0.1–5 – введенная строка символов указывает диапазон IP-адресов, которые утилита nmap должна просканировать. Конечно, при необходимости можно просканировать один хост или всю сеть.
После того как утилита nmap просканирует все пять систем, она возвратит результаты сканирования, которые должны быть похожи на приведенные ниже:
Interesting ports on (192.168.0.1):
(The 1522 ports scanned but not shown below are in state:
filtered)
Port State Service
80/tcp open http
443/tcp open https
TCP Sequence Prediction: Class=trivial time dependency
Difficulty=2 (Trivial joke)
Sequence numbers: 34EF1C 34EF2E 34EF40 34EF53 34EF60 34EF6E
Remote operating system guess: NT Server 4.0 SP5 running
Checkpoint Firewall-1
OS Fingerprint:
TSeq(Class=TD%gcd=1%SI=2)
T1(Resp=Y%DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T4(Resp=N)
T5(Resp=N)
T6(Resp=N)
T7(Resp=N)
PU(Resp=N)Из результатов сканирования видно, что хост с IP-адресом 192.168.0.1 работает под управлением операционной системы NT Server 4.0 с установленным Web-сервером, который прослушивает порты 80 (http) и 443 (http). Вероятно, в данной ситуации было бы неплохо удостовериться в том, что работающий Web-сервер является информационным сервером Интернет, который использует Netcraft или Telnet. Удостовериться в этом можно подобно тому, как это объяснено в секции «Тестирование коммерческих инструментальных средств». Как только пользователь получит подтверждение, ему станут доступны различные варианты действий. Во-первых, он может подключиться и вручную проверить каждую известную уязвимость информационного сервера Интернет IIS, но для этого, конечно, потребуется много времени. Во-вторых, он может воспользоваться сканерами whisker или VLAD для быстрой проверки некоторых из наиболее общих уязвимостей информационного сервера Интернет IIS и уязвимости showcode.asp, о которой читатель узнал во время использования коммерческих инструментальных средств.
Очевидно, что рассказанный метод использования утилиты nmap является более точным, но и он допускает ошибки или пропускает уязвимости. Как правило, этот метод использовался бы после того, как «с дерева были бы сорваны низко висящие плоды», то есть выявлены общие уязвимости. Кроме того, вместо использования VLAD или whisker для тестирования Web-сервера можно было бы написать сценарий на языке Perl, что не очень сложно. Сценарий быстро отсканировал бы Web-сервер, ища наиболее общие уязвимости информационного сервера Интернет IIS типа двойного кодирования, кодирования unicode или образцы страниц программного кода использования уязвимости, как, например, showcode.asp.
Второй вариант тестирования рассматриваемых пяти хостов заключается в использовании одного из свободно распространяемых сканеров безопасности, как, например, SAINT, SARA или Nessus. По мнению автора, SAINT и SARA не обеспечивают достаточно подробного сканирования, чтобы считаться эффективными в этом случае. Поэтому при отсутствии каких-либо ограничений рекомендуется использовать Nessus, который среди доступных, вероятно, является лучшим свободно распространяемым сканером.
Способ работы сканера Nessus очень похож на работу коммерческих продуктов сканирования. После установки соединения с сервером Nessus пользователь может подключиться и выбрать нужные ему опции сканирования подобно тому, как это показано на рис. 17.6. Кроме того, можно устанавливать желаемый тип сканирования портов сканером Nessus так, как это показано на рис. 17.7. Как можно видеть из двух приведенных экранных форм, использование Nessus позволяет исключить необходимость запуска сначала утилиты nmap, а затем скрипта пользователя со всеми встроенными в него необходимыми опциями.
Рис. 17.6. Конфигурация NessusРис. 17.7. Опции сканирования портов сканером Nessus
Следует иметь в виду, что подобно коммерческим сканерам сканер Nessus может быть склонен к случайным ложным срабатываниям и неверной идентификации хоста. Точно так же, как и в случае коммерческих инструментальных средств, следует проявить мудрость, с умом проверяя отчеты и сличая информацию.