Nmap е мощен инструмент за мрежово сканиране за одити на сигурността и тестове за проникване. Това е един от основните инструменти, използвани от мрежовите администратори за отстраняване на проблеми с мрежовата свързаност и сканиране на портове .
Nmap може също така да открива Mac адреса, типа на операционната система, версията на услугата и много други.
Тази статия обяснява основите на това как да използвате nmap
команда за изпълнение на различни мрежови задачи.
Инсталиране на Nmap #
Nmap е мултиплатформена програма, която може да бъде инсталирана на всички основни операционни системи. Първоначално беше пуснат като инструмент само за Linux, а по-късно беше пренесен в други системи като BSD, Windows и macOS.
Ако предпочитате GUI пред командния ред, Nmap има и графичен потребителски интерфейс, наречен Zenmap .
Официалните двоични пакети са достъпни за изтегляне от страницата за изтегляне на Nmap .
Процедурата по инсталиране е ясна и варира в зависимост от вашата операционна система.
Инсталиране на Nmap на Ubuntu и Debian #
Nmap се предлага от хранилищата по подразбиране на Ubuntu и Debian. За да го инсталирате, изпълнете:
sudo apt актуализация
sudo apt инсталирайте nmap
Инсталиране на Nmap на CentOS и Fedora #
На CentOS и други производни на Red Hat се изпълняват:
sudo dnf инсталирайте nmap
Инсталиране на Nmap на macOS #
Потребителите на macOS могат да инсталират Nmap, като изтеглят „.dmg ”инсталационен пакет от сайта на Nmap или чрез Homebrew:
варете инсталирайте nmap
Инсталиране на Nmap на Windows #
Версията на Nmap за Windows има някои ограничения и обикновено е малко по-бавна от версията на UNIX.
Най-лесният вариант за инсталиране на Nmap на Windows е да изтеглите и стартирате самоинсталиращия се exe файл.
Можете да стартирате Nmap на Windows или от командния ред, или като стартирате програмата Zenmap. За повече информация как да използвате Nmap в Windows, проверете инструкциите за употреба след инсталиране .
Използване на Nmap #
Nmap обикновено се използва за проверка на мрежовата сигурност, мрежово картографиране, идентифициране на отворени портове и търсене на онлайн устройства.
Опростеният синтаксис на nmap
командата е както следва:
nmap [Опции] [Цел ...]
Най-основният пример за използване на Nmap е сканирането на една цел като стандартен потребител, без да се посочват опции:
nmap scanme.nmap.орг
Когато се извиква като не-root потребител, който няма привилегии за суров пакет, nmap
изпълнява сканиране на TCP свързване. The (-sT
) е включен по подразбиране в непривилегирован режим.
Резултатът ще изглежда по подобен начин, включително основна информация за сканирането и списък с отворени и филтрирани TCP портове.
Стартиране на Nmap 7.91 (https: // nmap.org) в 2020-12-16 20:19 CET Nmap доклад за сканиране за гласове.lan (192.168.10.121) Хостът е нагоре (0.Латентност 048s). Не е показано: 981 затворени портове PORT STATE SERVICE 21 / tcp отворен ftp 22 / tcp отворен ssh 25 / tcp отворен smtp 53 / tcp отворен домейн 80 / tcp отворен http 110 / tcp отворен pop3 143 / tcp отворен imap 443 / tcp отворен https 587 / tcp отворено подаване 993 / tcp отворено imaps 995 / tcp отворено pop3s 1025 / tcp отворено NFS-или-IIS 1080 / tcp отворени чорапи 8080 / tcp отворено http-прокси 8081 / tcp отворено blackice-icecap Nmap направено: 1 IP адрес (1 хост нагоре) сканиран в 1.78 секунди
Най-популярната опция за сканиране е сканирането TCP SYN (-sS
), който е по-бърз от опцията за свързване и работи срещу всички съвместими TCP стекове.
-sS
е включен по подразбиране, когато nmap
се извиква като потребител с административни права:
sudo nmap 192.168.10.121
За по-подробен изход използвайте увеличението на многословието с -v
или -ст
:
sudo nmap -vv 192.168.10.121
За да извършите UDP сканиране, извикайте командата с (-sU
) опция като root потребител:
sudo nmap -sU 192.168.10.121
За пълен списък на методите за сканиране на портове посетете страницата с документация на Nmap .
Nmap също поддържа IPv6 адреси. За да посочите IPv6 хост използвайте -6
опция:
sudo nmap -6 fd12: 3456: 789a: 1 :: 1
Посочване на целеви хостове #
Nmap третира всички аргументи, които не са опции, като целеви хостове.
Аргументите се считат за опции, ако започват с едно или двойно тире (-
, --
).Най-простият вариант е да предадете един или повече целеви адреси или имена на домейни:
nmap 192.168.10.121 домакин.да се.сканиране
Можете да използвате нотацията CIDR, за да зададете обхват на мрежата:
nmap 192.168.10.0/24
За да зададете диапазон на октет, използвайте тирето. Например за сканиране 192.168.10.1
, 192.168.11.1
, и 192.168.12.1
:
nmap 192.168.10-12.1
Друг знак, който можете да използвате за задаване на целите, е запетая. Следващата команда е насочена към същите хостове като горната:
nmap 192.168.10,11,12.1
Можете да комбинирате всички форми:
nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101
За да сте сигурни, че сте посочили правилните хостове преди сканиране, използвайте опцията за сканиране на списъка (-sL
), в който се изброяват само целите, без да се изпълнява сканиране:
nmap -sL 10.8-10.10,11,12.0/28 192.168.1-2.100,101
Ако искате да изключите цели, които са включени в посочения от вас диапазон, използвайте --изключете
опция:
nmap 10.8-10.10,11,12.0/28 - изключете 10.10.12.12
Посочване и сканиране на портове #
По подразбиране Nmap извършва бързо сканиране за 1000 най-популярни порта. Тези портове не са първите 1000 последователни портове, но 1000-те най-често използвани портове, вариращи от 1 до 65389.
За да сканирате за всички портове от 1 до 65535, използвайте -стр-
опция:
nmap -p- 192.168.10.121
Всеки порт може да бъде в едно от следните състояния:
- отворен - Програмата, работеща на порта, отговаря на заявка.
- затворено - на порта не се изпълнява програма и хостът отговаря на заявки.
- filtered - Хостът не отговаря на заявката.
Портовете и диапазоните на портовете са посочени с -стр
опция.
Например, за да сканирате само порт 443, ще използвате следната команда:
nmap -p 443 192.168.10.121
За да посочите повече от един порт, отделете целевите портове със запетая:
nmap -p 80 443 192.168.10.121
Диапазоните на портовете могат да бъдат посочени със символа на тирето. Например, за да сканирате всички UDP портове, вариращи от 1 до 1024, трябва да изпълните:
192. sudo nmap -sU -p 1-1024 192.168.10.121
Всички комбинирани:
nmap -p 1-1024,8080,9000 192.168.10.121
Портовете могат да бъдат посочени и с името на порта. Например, за да сканирате за порт 22, ssh, можете да използвате:
nmap -p ssh 192.168.10.121
Сканиране на пинг #
За да извършите сканиране на ping или откриване на хост, извикайте nmap
команда с -sn
опция:
sudo nmap -sn 192.168.10.0/24
The -sn
Опцията казва на Nmap само да открива онлайн хостове и да не прави сканиране на портове. Това е полезно, когато искате бързо да определите кой от посочения хост работи и работи.
Деактивиране на разрешаването на DNS име #
Поведението по подразбиране на Nmap е да изпълнява обратна DNS резолюция за всеки открит хост, което увеличава времето за сканиране.
Когато сканирате големи мрежи, е добра идея да деактивирате обратната DNS резолюция и да ускорите сканирането. За да направите това, извикайте командата с -н
опция:
sudo nmap -n 192.168.10.0/16
Откриване на OS, услуга и версия
Nmap може да открие операционната система за отдалечен хост, като използва пръстови отпечатъци на TCP / IP стека. За да стартирате откриването на OS, извикайте командата с -О
опция:
sudo nmap -O scanme.nmap.орг
Ако Nmap може да открие хост ОС, ще отпечата нещо по-долу:
... Тип устройство: общо предназначение Работи: Linux 5.X OS CPE: cpe: / o: linux: linux_kernel: 5 Подробности за OS: Linux 5.0 - 5.4 Мрежово разстояние: Извършено е 18 откривания на OS. Моля, докладвайте за грешни резултати на https: // nmap.org / submit / . Nmap done: 1 IP адрес (1 хост нагоре) сканиран в 26.47 секунди
Обикновено системните услуги слушат на стандартни портове, които са добре известни и запазени за тях. Например, ако порт 22, който съответства на услугата SSH, е отворен, ще приемете, че SSH сървър работи на хоста. Не можете обаче да сте абсолютно сигурни, защото хората могат да изпълняват услуги на каквито портове искат.
С откриването на услуга и версия Nmap ще ви покаже каква програма слуша на порта и версията на програмата.
За да сканирате за услуга и версия, използвайте -sV
опция:
sudo nmap -sV scanme.nmap.орг
… ПЕРСИОННА ДЪРЖАВНА СЕРВИЗНА ВЕРСИЯ 19 / tcp филтрирана зарядна 22 / tcp отворена ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; протокол 2.0) 80 / tcp отворен http Apache httpd 2.4.7 ((Ubuntu)) 135 / tcp филтриран msrpc 139 / tcp филтриран netbios-ssn 445 / tcp филтриран microsoft-ds 9929 / tcp отворен nping-echo Nping echo 31337 / tcp отворен tcpwrapped Информация за услугата: OS: Linux; CPE: cpe: / o: linux: linux_kernel ..
Можете също да сканирате за OS, версии и да стартирате traceroute с една команда с помощта на -A
опция:
sudo nmap -A 192.168.10.121
Nmap изход #
По подразбиране Nmap отпечатва информацията на стандартен изход (stdout).
Ако сканирате голяма мрежа или се нуждаете от информацията за по-нататъшна употреба, можете да запишете изхода във файл.
Nmap предоставя няколко вида изход. За да запазите изхода в нормален формат, използвайте -На
опция, последвана от името на файла:
192. sudo nmap -sU -p 1-1024 192.168.10.121 -oN изход.текст
Най-популярната опция е запазването на изхода в XML формат. За целта използвайте -oX
опция:
sudo nmap -sU -p 1-1024 192.168.10.121 -oX изход.xml
Друг полезен формат е grepable изходът, който може да бъде анализиран със стандартните инструменти на Unix като grep
, awk
и разрез
. Изходящият изход се посочва с -oG
опция:
192. sudo nmap -sU -p 1-1024 192.168.10.121 -oG изход
Nmap Scripting Engine #
Една от най-мощните функции на Nmap е неговият скриптов механизъм. Nmap се доставя със стотици скриптове и можете също да пишете свои собствени скриптове на езика Lua.
Можете да използвате скриптове за откриване на злонамерен софтуер и затворени врати, да извършвате груби атаки и др.
Например, за да проверите дали даден хост е компрометиран, можете да използвате:
nmap -sV --script http-malware-host scanme.nmap.орг
Заключение №
Nmap е инструмент с отворен код, който се използва предимно от мрежовите администратори за откриване на хост и сканиране на портове.
Моля, обърнете внимание, че в някои държави не е законно сканирането на мрежи без разрешение.
Ако имате някакви въпроси или забележки, моля, оставете коментар по-долу.