Внимание! На этой странице вы найдете материал урока из архивного курса по пентесту (Тестирование на проникновение во внутреннюю сеть под управлением Active Directory). Курс был написан в 2024 году и будет интересен системным администраторам, специалистам по защите данных и другим специалистам.
Полный список уроков доступен по тегу Архивный курс по пентесту Active Directory и на странице первого урока.
Автор статьи никого не призывает к правонарушениям и отказывается нести ответственность за ваши действия. Вся информация предоставлена исключительно в образовательных и ознакомительных целях. Все действия происходят на виртуальных машинах и внутри локальной сети автора. Спасибо!
- Статья представляет собой описание использования Nmap для сканирования сети.
- Nmap может использоваться для обнаружения уязвимостей и проверки доступности хостов.
- В статье приведены примеры сканирования и результаты сканирования для разных хостов.
- Флаг
-sCвключает наиболее распространенные NSE скрипты Nmap. - Можно добавить флаг
-sVдля определения версии службы.
В этом уроке продолжим сканирование и перейдем к портам и сетевым службам. Ранее мы нашли активные хосты при помощи Nmap и сохранили их в файле targets.txt. Его содержимое следующее:
192.168.56.10
192.168.56.11
192.168.56.12
192.168.56.22
192.168.56.23
На этом этапе нам необходимо выявить работающие службы на активных хостах (те, что в файле targets.txt), которые потенциально могут быть уязвимы или подсказать нам дальнейший вектор атаки.
Сейчас для нас важно собрать информацию, поэтому не будем отвлекаться на то, уязвима служба или нет.
Вернемся к mindmap, о которой было сказано в одном из первых уроков:

Что такое сетевые службы
Не будем давать умное определение сетевой службе, а определим это понятие как точка входа в систему или поверхность атаки. В контексте курса данная формулировка дает понимание, для чего мы эти службы выявляем. Сетевая служба - это программное обеспечение, прослушивающее запросы на сетевом порту.
Нам данном этапе нужно собрать как можно больше возможных "точек входа в систему". Пока нас не интересует, какие именно службы крутятся на хосте и что с этим можно сделать.
В чем разница между портом и службой? Вы наверняка знакомы с веб-сервером, поэтому рассмотрим на его примере. Служба в этом случае: конкретное программное обеспечение, которое отвечает на запросы браузера (пользователя). Например: Nginx, IIS, Apache и другие. Под портом имеется ввиду любое число от 0 до 65 535, которое прослушивает веб-сервер. Это число может быть любым, но как правило используются предопределенные порты 80 и 443.
Баннеры сетевых служб
Мало знать, что служба работает на определенном порту. Необходимо выяснить как можно больше: что за служба, ее версия и так далее. К счастью для атакующего большинство служб имеют баннер, который системный администратор поленился или не счел нужным удалить. Важно понимать, что баннер может быть сознательно изменен, чтобы ввести в заблуждение атакующего.
Сканирование портов с помощью Nmap
Пользоваться инструментом Nmap мы научились ранее. Продолжим его освоение. Теперь мы будем пытаться устанавливать TCP-соединения с различными портами сканируемых машин.
Сканирование популярных портов с помощью Nmap
В идеале, нам нужно просканировать все TCP и UDP порты на всех хостах, но это займет очень много времени, даже в небольшом лабораторном стенде GOAD. Начнем с быстрого сканирования популярных TCP портов, чтобы получить хоть какие-то зацепки для дальнейшего развития проникновения.
Запустим Nmap:
nmap -Pn -n --top-ports 50 -iL targets.txt -oA hosts/services

Как вы уже знаете флаг -n отключает разрешение DNS-имен для ускорения процесса сканирования. Соответствие DNS-имени и IP-адреса мы определили ранее. Флаг --top-ports <число> задает количество сканируемых популярных портов.
Классическое сканирование с помощью Nmap
nmap -PN -sC -iL targets.txt -oA hosts/services_classic

Далее представлена часть вывода Nmap (только для sevenkingdoms.local):
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 13:55 MSK
Stats: 0:00:18 elapsed; 0 hosts completed (5 up), 5 undergoing Script Scan
NSE Timing: About 92.79% done; ETC: 13:55 (0:00:00 remaining)
Stats: 0:00:49 elapsed; 0 hosts completed (5 up), 5 undergoing Script Scan
NSE Timing: About 99.68% done; ETC: 13:56 (0:00:00 remaining)
Nmap scan report for sevenkingdoms.local (192.168.56.10)
Host is up (0.0013s latency).
Not shown: 986 filtered tcp ports (no-response)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: IIS Windows Server
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
|_ssl-date: 2024-03-26T10:55:43+00:00; 0s from scanner time.
| ssl-cert: Subject: commonName=kingslanding.sevenkingdoms.local
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::unsupported, DNS:kingslanding.sevenkingdoms.local
| Not valid before: 2023-12-28T08:38:57
|_Not valid after: 2024-12-27T08:38:57
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
|_ssl-date: 2024-03-26T10:55:31+00:00; -1s from scanner time.
| ssl-cert: Subject: commonName=kingslanding.sevenkingdoms.local
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::unsupported, DNS:kingslanding.sevenkingdoms.local
| Not valid before: 2023-12-28T08:38:57
|_Not valid after: 2024-12-27T08:38:57
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
|_ssl-date: 2024-03-26T10:55:31+00:00; -1s from scanner time.
| ssl-cert: Subject: commonName=kingslanding.sevenkingdoms.local
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::unsupported, DNS:kingslanding.sevenkingdoms.local
| Not valid before: 2023-12-28T08:38:57
|_Not valid after: 2024-12-27T08:38:57
3389/tcp open ms-wbt-server
| ssl-cert: Subject: commonName=kingslanding.sevenkingdoms.local
| Not valid before: 2023-12-27T08:46:01
|_Not valid after: 2024-06-27T08:46:01
| rdp-ntlm-info:
| Target_Name: SEVENKINGDOMS
| NetBIOS_Domain_Name: SEVENKINGDOMS
| NetBIOS_Computer_Name: KINGSLANDING
| DNS_Domain_Name: sevenkingdoms.local
| DNS_Computer_Name: kingslanding.sevenkingdoms.local
| DNS_Tree_Name: sevenkingdoms.local
| Product_Version: 10.0.17763
|_ System_Time: 2024-03-26T10:55:34+00:00
|_ssl-date: 2024-03-26T10:55:33+00:00; 0s from scanner time.
5357/tcp open wsdapi
Host script results:
|_nbstat: NetBIOS name: KINGSLANDING, NetBIOS user: unknown, NetBIOS MAC: 00:0c:29:58:42:59 (VMware)
| smb2-time:
| date: 2024-03-26T10:55:33
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
...
Nmap done: 5 IP addresses (5 hosts up) scanned in 59.04 seconds
Флаг -sC включает наиболее распространенные NSE скрипты Nmap (познакомимся с ними далее). Можем добавить флаг -sV, с которым Nmap будет пробовать определить версию службы:
nmap -PN -sC -sV -iL targets.txt -oA hosts/services_classic

Полное сканирование с помощью Nmap
При полном сканировании осуществляется сканирование всех портов TCP:
nmap -PN -sC -sV -p- -iL targets.txt -oA hosts/services_full
В итоге было потрачено 568 секунд на 5 хостов. Немало!

Использовали опцию -p-, которая задает диапазон портов. В данном случае: все порты.
Классическое сканирование UDP портов с помощью Nmap
Достаточно использовать флаг -sU, чтобы запустить сканирование UDP портов:
sudo nmap -sU -sC -sV -iL targets.txt -oA hosts/services_udp
Заключение
В этом уроке научились сканировать порты обнаруженных хостов и выявлять запущенные службы при помощи Nmap. Подведем итог и далее будем знакомиться с поиском сетевых уязвимостей.
Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегам Пентест и Active Directory.
