Наши партнеры

UnixForum





Библиотека сайта 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
  • Понятно, что на узле с IP-адресом 192.168.1.4 доступен протокол SSHv1.
  • В следующих исследованиях было установлено, что узел работает под управлением устаревшей версии Red Hat Linux.
  • Рекомендация: обновить сервер SSHv1 до более современной версии.

Идентификация сниффера

Таблица 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_")
  • Исследование показывает, что узел работает под управлением Windows с установленным сниффером libpcap. Далее сказано, что сниффер, возможно, не работает в данный момент.
  • После обсуждения с руководством, стало ясно, что сниффер pcap был установлен для тестирования системы.

Сценарий 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-исследования и.т.д) одновременно.

Завершающая статья серии здесь!