Библиотека сайта rus-linux.net
Nmap: исследование по сценарию
Оригинал: Advanced Nmap: NMap Script ScanningАвтор: Rajesh Deodhar
Дата публикации: 1 Апреля 2011
Перевод: А.Панин
Дата перевода: 2 октября 2012 г.
В предыдущих статьях (см. 1, 2, 3, 4, 5, 6) было дано подробное описание программы Nmap, включая аудит безопасности систем, защищенных межсетевым экраном и проверку выполнения рекомендаций по повышению их безопасности. Сейчас самое время обсудить исследование по сценарию при помощи Nmap.
Ресурс Nmap.org описывает систему поддержки сценариев (Nmap Scripting Engine (NSE)) как одну из самых мощных и гибких возможностей программы. Она позволяет разрабатывать и распространять простые сценарии на языке программирования Lua, предназначенные для автоматизации ряда задач, связанных с исследованием сети. Эти сценарии исполняются в параллельном режиме со скоростью, не отличающейся от скорости работы базовых функций Nmap. Пользователи могут использовать постоянно растущую номенклатуру сценариев из комплекта стандартной поставки Nmap, или разработать свои для специфических нужд.
Меня радует, что спектр возможностей программы Nmap растет день ото дня. В самом начале своего развития, программа была простым сканером портов, теперь же она может использоваться даже для простейшего поиска уязвимостей. Количество сценариев для поиска уязвимостей растет день ото дня, от версии к версии. Примерно 177 сценариев доступно с версией Nmap 5.50, являющейся стабильной.
Перед использованием сценариев, давайте попробуем разобраться в нескольких готовых сценариях для поиска уязвимостей сетей и устройств за короткий промежуток времени. Пожалуйста, помните, что как только вы обнаружили уязвимость, необходимо принять меры для ее устранения. Эти меры могут сводиться как к простой замене паролей, так и сложным и длительным действиям, таким как: установка обновлений безопасности и удаление найденных вредоносных программ.
Таблица 1: Некоторые полезные сценарии Nmap
Номер | Сценарий | Функции |
1 | dhcp-discover | Обнаруживает сервера DHCP в сети. Запрос отправляется с UDP-порта 67, ответ принимается на порт 68. |
2 | ftp-bounce | Проверяет сеть на наличие FTP-серверов, позволяющих провести FTP-bounce-атаку на другие узлы сети. (Обсуждалось в прошлых статьях.) |
3 | http-iis-webdav-vuln | Проверяет сеть на наличие узлов, подверженных уязвимости, описанной в Microsoft security bulletin MS09-020 (IIS 5.1/IIS 6.0). |
4 | ms-sql-info | Получает параметры Microsoft SQL Server. |
5 | mysql-info | Получает параметры MySQL Server. |
6 | p2p-conficker | Проверяет, не заражен ли узел червем conficker.c. |
7 | smb-enum-shares | Любопытный сценарий, идентифицирующий все SMB-ресурсы в диапазоне адресов. |
8 | smb-enum-users | Идентифицирует всех SMB-пользователей в диапазоне адресов. |
9 | sniffer-detect | Обнаруживает узлы с установленными библиотеками pcap. |
10 | sshv1 | Обнаруживает узлы, работающие с серверами SSH версии 1. Эта версия подвержена документированным уязвимостям. |
Параметры командной строки для исследования по сценарию:
- -sC - стандартное исследование по сценарию
- --script-updatedb - обновляет базу сценариев.
Некоторые сценарии могут потребовать установить параметр --script-args=unsafe в значение 1. Помните, что этот параметр включает деструктивное исследование; почти наверняка в ходе выполнения сценария работа системы будет нарушена путем эксплуатации уязвимости. Будьте осторожны и не используйте данный параметр на реальных работающих системах.
Реальные исследования
Для начала, создайте файл IPList.txt, содержащий список активных узлов в сети, чтобы указать цели для исследования Nmap. Теперь давайте попробуем разобраться в результатах нескольких исследований реальных работающих систем. В случае, если вы захотите повторить эти действия, не забудьте получить письменное разрешение у руководства.
Поиск серверов SSHv1 в сети
Таблица 2: Результат исследования на наличие серверов sshv1
Команда и результаты | Описание |
nmap-script sshv1 -iL IPList.txt -osshv1.txt | Команда для выплнения только одного сценария, sshv1. |
Masked output of sshv1.txt: | |
Nmap scan report for 192.168.1.4
Host is up (0.00011s latency). Not shown: 984 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh |_sshv1: Server supports SSHv1 80/tcp open http 111/tcp open rpcbind 113/tcp open auth |
|
Идентификация сниффера
Таблица 3: Результат исследования с целью идентификации сниффера
Команда и результаты | Описание |
nmap-script sniffer-detect -iL IPList.txt -osniffer-detect.txt | Запуск идентификации сниффера. |
Masked output of sniffer-detect.txt | |
Nmap scan report for 192.168.1.26
Host is up (0.00012s latency). Not shown: 992 closed ports PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 2967/tcp open symantec-av 5101/tcp open admdog 5225/tcp open unknown 5226/tcp open unknown 8008/tcp open http MAC Address: 00:XX:XX:XX:XX:2D (Intel Corporate) Host script results: |_sniffer-detect: Windows with libpcap installed; may or may not be sniffing (tests: "1_1___1_") |
|
Сценарий smb-enum-users
Этот сценарий очень интересен. Единовременно вы можете определить всех пользователей сети и состояние их учетных записей. Вам может понадобиться определить пользователей, покинувших организацию и отключить или удалить их учетные записи в зависимости от правил, принятых в организации.
Таблица 4: Результат исследования по сценарию smb-enum-users
Команда и результаты | Описание |
nmap-script smb-enum-users -iL IPList.txt -osmb-enum-users.txt | Запуск исследования адресов из файла IPList.txt в поисках пользователей SMB |
Masked output of smb-enum-usrs.txt
Nmap scan report for 192.168.1.109 Host is up (0.00015s latency). Not shown: 989 closed ports PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1000/tcp open cadlock 1145/tcp open unknown 1720/tcp open H.323/Q.931 2401/tcp open cvspserver 2967/tcp open symantec-av 5060/tcp open sip 5061/tcp open sip-tls 5101/tcp open admdog MAC Address: 00:XX:XX:XX:XX:04 (G-pro Computer) Host script results: | smb-enum-users: | TESTCOMPANY\A--------y (RID: 1228) | TESTCOMPANY\accounts_user (RID: 1125) | TESTCOMPANY\Administrator (RID: 500) | TESTCOMPANY\a---------r (RID: 1168) | TESTCOMPANY\a---------g (RID: 1224) | TESTCOMPANY\a---------r (RID: 1122) | TESTCOMPANY\A---------D$ (RID: 1249) | TESTCOMPANY\a---------e (RID: 1199) | TESTCOMPANY\A---------r (RID: 1231) | TESTCOMPANY\a---------e (RID: 1186) | TESTCOMPANY\A---------S$ (RID: 1218) | TESTCOMPANY\A---------S2$ (RID: 1227) | TESTCOMPANY\c---------r (RID: 1120) | TESTCOMPANY\c---------r (RID: 1120) | TESTCOMPANY\cvsserver$ (RID: 1176) | TESTCOMPANY\d---------e (RID: 1174) | TESTCOMPANY\d---------y (RID: 1212) |
|
Возможности исследования по сценарию не заканчиваются примерами, приведенными выше. Комбинируя различные параметры, вы можете запускать сценарии из различных категорий (SMB-исследования, HTTP-исследования и.т.д) одновременно.
Завершающая статья серии здесь!