С момента своего создания более двух десятилетий назад Nmap, сокращенно от Network Mapper, неоднократно провозглашалась де-факто платформой для обнаружения сети и аудита безопасности, сочетающей в себе каркас новейших методов сканирования и постоянный приток передовых инструментов, подкрепленных яркое сообщество разработчиков и сторонников. Сдесь будет рассмотрена Памятка по Nmap — Справочное руководство.
Эта шпаргалка по Nmap включает в себя все, от базовых методов сканирования хоста до более сложных сценариев, требующих тщательного изучения обстоятельств, окружающих выбранную вами цель (цели), и, возможно, некоторых дополнительных инструментов сканирования, прежде чем выбирать конкретный путь.
И снова идея состоит в том, чтобы уловить почти безграничные возможности инструмента, не подвергаясь штрафу за чрезмерное содержание: полезный труд, который мы оставляем в руках читателя.
Обнаружение и идентификация хоста
Обнаружение хоста, иногда называемое сканированием ping, является общей задачей как системных администраторов, так и пентестеров. В отличие от своих более традиционных аналогов, Nmap может предложить широкий набор параметров проверки связи с помощью методов и протоколов сканирования, которые просто недоступны в других инструментах.
Basic scanning | nmap <target> |
Launch a ping scan (subnet) | nmap -sn <target> Ex: nmap -sn 192.168.1.0/24 |
Scan a list of targets | nmap -iL [targets.txt] |
Ping scan with traceroute | nmap -sn –traceroute acme.org example.org |
TCP SYN ping | nmap -PS <target> |
UDP ping | nmap -PU <target> |
Scan IPv6 target | nmap -6 <target> |
Specify NSE script | nmap -sn –script dns-brute example.org |
Manually assign DNS servers | nmap –dns-servers <servers> <target> |
ARP discovery | nmap -PR <target> Ex: nmap -PR 192.168.1.0/24 |
UDP discovery on specified port | nmap -PU53 <target> |
No DNS resolution | nmap -n <target> |
Select network interface | nmap -e <interface> <target> |
Skip host discovery | nmap -Pn <target> |
Обнаружение версии
Обнаружение версии напрямую связано с идентификацией ОС или активной идентификацией целевой платформы и соответствующих приложений. Знание точной версии определенного программного обеспечения или службы, работающей на конечной точке, может оказаться чрезвычайно полезным для выявления потенциальных уязвимостей и даже неожиданных или несанкционированных изменений.
Service detection | nmap -sV <target> Ex: nmap -sV scanme.nmap.org |
OS detection | nmap -O <target> |
Attempt OS guessing | nmap -O –osscan-guess <target> |
Increasing version detection | nmap -sV –version-intensity 0-9> <target> |
Troubleshoot version scans | nmap -sV –version-trace <target> |
Aggressive detection mode | nmap -A <target> |
Verbose mode | nmap -O -v <target> |
Сканирование сети и портов
Комбинируя некоторые из вышеперечисленных переключателей и методов, мы можем получить лучшую видимость хостов, потенциально защищенных механизмами защиты, такими как межсетевые экраны или системы предотвращения вторжений.
Системные администраторы также могут извлечь выгоду из этого типа способности к подрывной деятельности, понимая, как и где применять любые требуемые правила фильтрации или ужесточающие стандарты. Кроме того, подмена определенных сетевых условий, таких как исходный IP или MAC-адрес через Nmap, может быть полезна при обнаружении несанкционированного использования системных ресурсов и определенных атак на доступность.
TCP SYN ping scan | nmap -sn -PS <target> or nmap -sS |
Scanning multiple ports | nmap -sn -PS80,100-1000 <target> |
TCP ACK ping scan | nmap -sn -PA <target> or nmap -sA |
UDP ping scan | nmap -sn -PU <target> |
ICMP ping scan | nmap -sn -PE <target> |
SCTP INIT ping scan | nmap -sn -PY <target> or nmap -sY |
IP protocol ping scan (tracing) | nmap -sn -PO –packet-trace <target> |
Scan random number of hosts | nmap -iR [number] |
Broadcast ping scan | nmap –script broadcast-ping –packet-trace |
Xmas scan (Sets the FIN, PSH, and URG flags) | nmap -sX <target> |
UDP scan (with verbosity) | nmap -sU -v <target> |
Scan a firewall (split TCP header into tiny fragments) | nmap -f <target> |
Cloak a scan with decoys | nmap -D <decoy1>[,<decoy2>] <target>Ex: nmap -D 192.168.1.101,192.168.1.102 <target> |
Spoof source IP address | nmap -S <IP_Address> <target> |
Spoof MAC address) | nmap –spoof-mac [MAD_ADDRESS] <target> |
Scan using a random MAC address | nmap -v -sT -PN –spoof-mac 0 <target> |
Сроки и производительность
Производительность лежит в основе всего, что Nmap делает правильно. Таким образом, оптимизация сканирования с помощью определенных временных конфигураций и параметров может значительно улучшить как производительность, так и точность, если перегрузка сети, медленные ответы хоста и / или аналогичные вероятные сценарии помешают вашим результатам.
Rate limiting | nmap –scan-delay <time> |
Adjust delay between probes | nmap –scan-delay <time>; –max-scan-delay <time> |
Paranoid timing template | nmap -T0 <target> |
Sneaky – ID evasion (also T0) | nmap -T1 <target> |
Polite – Slower than normal scan | nmap -T2 <target> |
Normal – Default speed | nmap -T3 <target> |
Aggressive – Recommended mode | nmap -T4 -n -Pn -p- <target> |
Insane – Very fast networks | nmap -T5 <target> |
Host timeouts – Give up on hosts | nmap -sV -A -p- –host-timeout 5m <target> |
Механизм сценариев Nmap (NSE)
Представленная на Google Summer of Code 2007 платформа сценариев, известная под общим названием NSE, расширила возможности и степень детализации Nmap далеко за пределы возможностей обнаружения сервисов и хостов. Фактически, четырнадцать определенных категорий (на момент написания этой статьи) подчеркивают жизненно важную роль, которую сообщество Nmap сыграло в обеспечении такой беспрецедентной гибкости, когда дело доходит до сканирования. К ним относятся такие имена, как аутентификация, обнаружение, эксплойт или фаззер, а также аргументы командной строки, которые являются гибкими и легкими для изучения.
Safe category – Default | nmap -sC <host> Ex: nmap -sC scanme.nmap.org |
Execute (multiple) scripts by name | nmap –script default,safe |
Select script by category | nmap –script exploit <target> |
Execute NSE script file | nmap –script /path/to/script.nse <target> |
Exclude a specific category | nmap -sV –script “not exploit” <target> |
Include two different categories | nmap –script “broadcast and discovery” <target> |
Combining wildcards | nmap –script “http-*” <target> |
Set arguments | nmap -sV –script http-title –script-args http.useragent=”Mozilla 1337”<target> |
Load arguments from a file | nmap –script “discovery” –script-args-file nmap-args.txt<target> |
Сканирование веб-серверов
Можно с уверенностью предположить, что, несмотря на появление наборов шифров, таких как SSL / TLS, для защиты связи в целом, значительная часть видимого Интернета остается криптографически слабой. Таким образом, вполне разумно предположить, что конечные точки, работающие только по протоколу HTTP, потенциально могут стать кладезем информации, даже если уровень воздействия не является неизбежным. В связи с этим Nmap имеет уникальные возможности помочь нам автоматизировать проверки конфигурации, которые ищут уязвимые веб-приложения или даже собирают учетные данные по умолчанию. Вот некоторые из наиболее распространенных рецептов:
List supported HTTP methods | nmap -p80,443 –script http-methods –script-args httpmethods.test-all=true <target> |
Discover interesting paths/folders | nmap –script http-enum -sV <target> |
Brute-forcing HTTP basic auth | nmap -p80 –script http-brute <target> |
Provide own user/password list | nmap -sV –script http-brute –script-args userdb=~/usernames.txt,passdb=~/passwords.txt <target> |
Brute-forcing common web platforms (e.g., WordPress) | nmap -sV –script http-wordpress-brute <target> |
Detect a web application firewall | nmap -sV –script http-waf-detect,http-waf-fingerprint<target> |
Detect XST vulnerabilities (via HTTP TRACE method) | nmap -sV –script http-methods,http-trace –script-argshttp-methods.retest <target> |
Detect XSS vulnerabilities | nmap -sV –script http-unsafe-output-escaping <target> |
Detect SQL injection vulnerabilities | nmap -sV –script http-sql-injection <target> |
Finding default credentials | nmap -sV –script http-default-accounts <target> |
Finding exposed Git repos | nmap -sV –script http-git <target> |
Сканирование почтовых серверов
Электронная почта, столь же заметная и очевидная, как и веб-платформы, является неотъемлемой частью любой современной организации. Его экспоненциальная траектория с момента появления Интернета превратила электронную почту и ее производные в многогранный продукт, который затрагивает почти все аспекты предприятия, интегрируя пользователей, услуги и технологии так, как это было задумано не так давно. Однако такое широкое использование имеет свою цену. Электронная почта представляет собой собственный набор киберрисков и уязвимостей, что усугубляется неправильной конфигурацией и общим плохим пониманием сложных экосистем, таких как облако. Вот некоторые возможности Nmap, когда дело доходит до этого.
Brute-force SMTP | nmap -p25 –script smtp-brute <target> |
Brute-force IMAP | nmap -p143 –script imap-brute <target> |
Brute-force POP3 | nmap -p110 –script pop3-brute <target> |
Enumerate users | nmap -p 25 –script=smtp-enum-users <target> |
SMTP running on alternate port(s) | nmap -sV –script smtp-strangeport <target> |
Discovering open relays | nmap -sV –script smtp-open-relay -v <target> |
Find available SMTP commands | nmap -p 25 –script=smtp-commands <target> |
Сканирование баз данных
В случае подделки базы данных могут раскрыть множество конфиденциальной информации. Фактически, почти каждый крупный инцидент в области кибербезопасности или утечка данных в последние годы предполагали какой-либо вид взлома базы данных. Ключевым фактором здесь является беспрецедентная степень доверия к огромному количеству как статических, так и мобильных платформ, а также то, как эти технологии вводят (или не вводят) строгие стратегии контроля доступа к сторонним реализациям.
Следовательно, Nmap добавил поддержку для систематического сканирования многочисленных технологий баз данных, что позволяет вам объединить несколько полезных методов.
Identify MS SQL servers | nmap -p1433 –script ms-sql-info <target> |
Brute-force MS SQL passwords | nmap -p1433 –script ms-sql-brute <target> |
Dump password hashes (MS SQL) | nmap -p1433 –script ms-sql-empty-password,ms-sql-dump-hashes<target> |
List databases (MySQL) | nmap -p3306 –script mysql-databases –script-args mysqluser=[user],mysqlpass=[password] <target> |
Brute-force MySQL passwords | nmap -p3306 –script mysql-brute <target> |
Root/Anonymous accounts with empty passwords | nmap -p3306 –script mysql-empty-password <target> |
Brute-force Oracle SIDs | nmap -sV –script oracle-sid-brute <target> |
Identify MongoDB servers | nmap -p27017 –script mongodb-info <target> |
Listing CouchDB databases | nmap -p5984 –script couchdb-databases <target> |
Identify Cassandra databases | nmap -p9160 –script cassandra-brute <target> |
Brute-force Redis passwords | nmap -p6379 –script redis-brute <target> |
Системы ICS / SCADA
Система управления производством (ICS) — это общий термин, используемый для описания конгломерата компонентов управления, которые определяют аппаратные и программные аспекты крупных инфраструктурных секторов, таких как электроэнергетика или другие отдельные производственные отрасли (например, автомобилестроение). Управление в инфраструктуре АСУ ТП может быть полностью автоматизировано или включать человека в цикл (NIST) — это также включает добавление дополнительных ИТ-возможностей в дополнение к устаревшим аналоговым устройствам и аналогичным механическим альтернативам.
АСУ ТП чрезвычайно уязвимы и несут огромный риск, поэтому всегда рекомендуется использовать такие параметры, как -sT
(проверка полного соединения TCP) для ограничения интенсивности сканирования. Если вы отвечаете за управление или защиту сети ICS, приведенные ниже команды могут оказаться весьма полезными.
Detect standard (open) ports | nmap -Pn -sT –scan-delay 1s –max-parallelism 1-p80,102,443,502,1089, 1091,2222,4000,4840, 20000,34962,34964, 34980,44818,47808, 55000,55003 <target> |
Control system ports (BACnet/IP) | nmap -Pn -sU -p47808 –script bacnet-info <target> |
Ethernet/IP | nmap -Pn -sU -p44818 –script enip-info <target> |
Discover a Modbus device | nmap -Pn -sT -p502 –script modbus-discover <target> |
Discover a Niagara Fox device | nmap -Pn -sT -p1911,4911 –script fox-info <target> |
Discover a PCWorx device | nmap -Pn -sT -p1962 –script pcworx-info <target> |
Создание отчетов
Наконец, сохранение отсканированных изображений в формате отчета, безусловно, является преимуществом, учитывая несколько извилистый характер результатов сканирования; довольно часто их бывает трудно понять, даже если вы внимательны или точно знаете, что ищете. С этой целью Nmap может легко объединить любой метод сканирования хоста или порта, установить уровень детализации или сгенерировать отладочные сообщения с выходными данными по вашему выбору, чтобы облегчить дальнейшее использование и анализ. Вот несколько примеров в произвольном порядке.
Normal output to filename | nmap -oN [filename] <target> |
Send results to XML format | nmap -oN [filename] -oX <filename.xml> <target> |
Output to all formats (Normal, XML & grep) | nmap -oA [filename] <target> |
Increase verbosity and debugging levels | nmap -v3 -d2 -oN [filename] <target> |
Display host and port state reasons | nmap –reason <target> |
Print periodic timing stats | nmap -Pn <target> –stats-every 10s |
Trace packets and data sent and received | nmap -T4 –packet-trace <target> |
Show open ports only | nmap –open <target> |
List interfaces and routes | nmap –iflist |
Заключение
Трудно представить более совершенный инструмент сканирования, чем Nmap. После стольких лет практического мастерства, тысяч статей и вспомогательной литературы, бесчисленных семинаров и подтверждений концепции инструмент остается актуальным, как никогда.
Важно понимать, что комбинация любого из вышеперечисленных методов и соответствующих аргументов, представленных в этой шпаргалке по Nmap, далеко не исчерпывающая, поскольку Nmap продолжает демонстрировать тот канонический рост, которого мы ожидаем от зрелого приложения. Несмотря на это, его основные функции остаются доступными для всех, а возможность овладеть тем, что считается важным кибер-навыком, по-прежнему привлекает всех, кто рискует.
Для более глубокого изучения Nmap вы всегда можете прочитать документацию Nmap или получить официальную книгу, которая охватывает все эти темы и многое другое!