Разширени приложения за Nmap
Следвайки от първата част на тази серия, е време да разгледаме някои от по-напредналите функции на nmap
. Започвайки от основното сканиране на портове, е възможно да получите повече информация за сканирането, като добавите флага -vv
:
nmap -vv 192.168.1.101
Резултатът ще изглежда така:
В първата част разгледахме как да сканираме набор от адреси. Има още един начин да се извърши сканирането, но този път, като се посочи броят на битовете от маската на подмрежата:
nmap 192.168.1.1/24
Горната команда ще сканира всички хостове от 192.168.1.0 на 192.168.1.255 в мрежа с маска на подмрежа от 255.255.255.0. Въпреки че са възможни маски с по-големи подмрежи (напр. 255.255.0.0 е / 16), това би накарало nmap
да сканира голям брой хостове и най-вероятно да бъде избегнато.
За да получите nmap
за създаване на списък на хостовете, които ще сканира, използвайте -sL
:
nmap-sL 192.168.1.1/24
В този случай изходът ще бъде списък с адреси (един на ред), започващ от 192.168.1.0 и завършващ на 192.168.1.255.
Ако в мрежата ви има хостове, които са обект на сканиране (например сървъри с инсталирани системи за откриване на проникване или определени типове устройства за защитна стена), можете да кажете на nmap
да пропусне определен адрес, като използва флага -exclude
. Следващият пример ще сканира всички хостове от .0 до .255, но не и 192.168.1.4:
nmap 192.168.1.1/24 -изключване на 192.168.1.4
хитрост
Когато търсите отворени портове, nmap
може да използва няколко различни вида методи за сканиране. Мрежовите връзки се установяват чрез TCP протокола. Той определя кои пакети от данни да се изпращат и какво трябва да бъде отговорът. За да се установи връзка, SYN пакетът първо се изпраща до хоста. Ако портът е отворен и хостът е готов да приеме връзки, той отговаря, като изпрати обратно SYN-ACK пакет. След това клиентът ще изпрати пакет ACK за завършване на връзката. След това тази връзка се използва по-високо от софтуер като уеб браузърите и програмите за електронна поща. Когато се извиква от обикновен потребителски акаунт, точно това прави nmap
за всеки сканиран порт. Ако се установи връзка, портът се отчита като отворен.
Но ако nmap
се извиква от коренния акаунт или чрез sudo
, той по подразбиране се използва за различен тип сканиране, известен като полуотворено сканиране. В този сценарий nmap
създава сами пакети TCP на ниско ниво (вместо да използва основната операционна система, за да го направи от свое име), а когато получи SYN-ACK, той не отговаря с ACK и така пълната връзка е не е установено. Но тъй като домакинът отговори със SYN-ACK, това означава, че портът е отворен и е достъпен за пълна връзка. Предимството на полуотворено сканиране е, че е по-бързо и не причинява сървърния софтуер да слуша на порт, за да влезе в връзка.
Можете да гарантирате, че полу-отвореното сканиране се използва, като използвате флага -sS
. Когато се комбинира с -vv
, можете да видите, че nmap
отчита използването на "SYN Stealth Scan" за проследяване на хоста. Ето пълната команда:
sudo nmap-sS-vv 192.168.1.101
Също така nmap
че nmap
вече дава отчет за броя на необработените пакети, които генерира, така че да може да извърши полуотворено сканиране.
Всичко осветяваше като коледно дърво
Има още един вид сканиране, което си заслужава да се спомене и това е NULL сканирането и неговите приятели - FIN сканирането и Xmas сканирането. В TCP стандарта има малка секция, която казва на TCP изпълнение какво да прави, ако получи пакет с грешни знамена. Практическият резултат на този "бримков отвор" е, че всички пакети, които не съдържат битовете SYN, RST или ACK, ще доведат до връщане на RST пакет, ако портът е затворен и изобщо няма отговор, ако портът е отворен. nmap
може да използва това в своя полза чрез изпращане на неправилни пакети и чакане да види дали има отговор.
Сканирането NULL, което се извиква с помощта на -sN
, не поставя никакви битове в заглавката на пакета. FIN сканирането, -sF
, задава бита TCP FIN и Xmas scan, -sX
, задава флаговете FIN, PSH и URG. Нарича се Xmas сканиране, тъй като пакетът вече е осветен като коледно дърво!
Ако хостът отговори с RST пакет тогава пристанището е затворено, нищо и пристанището е отворено.
заключение
Както можем да видим, nmap
е мощен инструмент и е проектиран еднакво за скрито или явно сканиране. Като последен експеримент опитайте следната команда като начин да откриете кои хостове са живи в локалната ви мрежа, без всъщност да сканирате хостовете, а по-скоро просто да питате за техните MAC адреси:
sudo nmap -PR -vv 192.168.1.1/24
Знакът -PR
ще причини nmap
да поиска MAC адреса на хоста (използващ ARP) и ще маркира хоста като жив, ако получи отговор.