Какво е Nmap и как да го използвам - Урок за най-великия инструмент за сканиране на всички времена

Nmap е най-известният инструмент за сканиране, използван от тестерите за проникване. В тази статия ще разгледаме някои основни характеристики на Nmap заедно с няколко полезни команди.

Какво е Nmap?

Nmap е съкращение от Network Mapper. Това е инструмент за команден ред на Linux с отворен код, който се използва за сканиране на IP адреси и портове в мрежа и за откриване на инсталирани приложения.

Nmap позволява на мрежовите администратори да открият кои устройства работят в тяхната мрежа, да открият отворени портове и услуги и да открият уязвимости.

Гордън Лион (псевдоним Фьодор) написа Nmap като инструмент, който помага лесно да се картографира цяла мрежа и да се открият нейните отворени пристанища и услуги.

Nmap стана изключително популярен, снима се във филми като The Matrix и популярния сериал Mr. Robot.

Защо да използвам Nmap?

Има редица причини, поради които професионалистите по сигурността предпочитат Nmap пред другите инструменти за сканиране.

Първо, Nmap ви помага бързо да картографирате мрежа, без сложни команди или конфигурации. Той също така поддържа прости команди (например, за да се провери дали хостът работи) и сложни скриптове чрез Nmap скриптов механизъм.

Други характеристики на Nmap включват:

  • Възможност за бързо разпознаване на всички устройства, включително сървъри, рутери, комутатори, мобилни устройства и др. В единични или множество мрежи.
  • Помага за идентифициране на услуги, работещи в система, включително уеб сървъри, DNS сървъри и други често срещани приложения. Nmap може също така да открива версии на приложенията с разумна точност, за да помогне за откриването на съществуващи уязвимости.
  • Nmap може да намери информация за операционната система, работеща на устройства. Той може да предостави подробна информация като версиите на операционната система, което улеснява планирането на допълнителни подходи по време на тестване на проникване.
  • По време на одита на сигурността и сканирането на уязвимости можете да използвате Nmap, за да атакувате системи, използвайки съществуващи скриптове от Nmap Scripting Engine.
  • Nmap има графичен потребителски интерфейс, наречен Zenmap. Той ви помага да разработите визуални карти на мрежа за по-добра използваемост и отчитане.

Команди

Нека да разгледаме някои команди на Nmap. Ако нямате инсталиран Nmap, можете да го получите от тук.

Основни сканирания

Сканирането на списъка с активни устройства в мрежата е първата стъпка в картографирането на мрежата. Има два вида сканирания, които можете да използвате за това:

  • Сканиране на пинг - Сканира списъка с устройства, работещи и работещи в дадена подмрежа.
> nmap -sp 192.168.1.1/24
  • Сканиране на един хост - Сканира един хост за 1000 добре познати порта. Тези портове се използват от популярни услуги като SQL, SNTP, apache и други.
> nmap scanme.nmap.org

Стелт сканиране

Стелт сканирането се извършва чрез изпращане на SYN пакет и анализ на отговора. Ако се получи SYN / ACK, това означава, че портът е отворен и можете да отворите TCP връзка.

Стелт сканирането обаче никога не завършва трипосочното ръкостискане, което затруднява целта да определи системата за сканиране.

> nmap -sS scanme.nmap.org

Можете да използвате командата '-sS', за да извършите скрито сканиране. Не забравяйте, че стелт сканирането е по-бавно и не толкова агресивно, колкото другите видове сканиране, така че може да се наложи да изчакате известно време, за да получите отговор.

Сканиране на версията

Намирането на версии на приложенията е решаваща част от тестовете за проникване.

Улеснява живота ви, тъй като можете да намерите съществуваща уязвимост от базата данни с общи уязвимости и експлойти (CVE) за конкретна версия на услугата. След това можете да го използвате, за да атакувате машина, използвайки инструмент за експлоатация като Metasploit.

> nmap -sV scanme.nmap.org

За да направите сканиране на версия, използвайте командата '-sV'. Nmap ще предостави списък с услуги със своите версии. Имайте предвид, че сканирането на версиите не винаги е 100% точно, но ще ви отведе с една крачка по-близо до успешното влизане в системата.

Сканиране на ОС

В допълнение към услугите и техните версии, Nmap може да предостави информация за основната операционна система, използвайки TCP / IP пръстови отпечатъци. Nmap също ще се опита да намери системата за ъптайм по време на сканиране на ОС.

> nmap -sV scanme.nmap.org

Можете да използвате допълнителните флагове като osscan-limit, за да ограничите търсенето до няколко очаквани цели. Nmap ще покаже процента на доверие за всяко предположение на операционната система.

Отново, откриването на операционната система не винаги е точно, но до голяма степен помага на тестера за писалки да се доближи до целта си.

Агресивно сканиране

Nmap има агресивен режим, който позволява откриване на операционна система, откриване на версии, сканиране на скриптове и traceroute. Можете да използвате аргумента -A, за да извършите агресивно сканиране.

> nmap -A scanme.nmap.org

Агресивните сканирания предоставят много по-добра информация от обикновените сканирания. Агресивното сканиране обаче изпраща още сонди и е по-вероятно да бъде открито по време на одитите за сигурност.

Сканиране на множество хостове

Nmap има възможност за сканиране на множество хостове едновременно. Тази функция е много полезна, когато управлявате обширна мрежова инфраструктура.

Можете да сканирате множество хостове чрез множество подходи:

  • Напишете всички IP адреси в един ред, за да сканирате всички хостове едновременно.
> nmap 192.164.1.1 192.164.0.2 192.164.0.2
  • Използвайте звездичката (*), за да сканирате всички подмрежи наведнъж.
> nmap 192.164.1.*
  • Добавете запетаи, за да разделите окончанията на адресите, вместо да въвеждате целия домейн.
> nmap 192.164.0.1,2,3,4
  • Използвайте тире, за да посочите диапазон от IP адреси
> nmap 192.164.0.0–255

Сканиране на портове

Сканирането на портове е една от най-фундаменталните характеристики на Nmap. Можете да сканирате за портове по няколко начина.

  • Използване на параметъра -p за сканиране за един порт
> nmap -p 973 192.164.0.1
  • Ако посочите типа порт, можете да сканирате за информация за определен тип връзка, например за TCP връзка.
> nmap -p T:7777, 973 192.164.0.1
  • Редица портове могат да бъдат сканирани, като се разделят с тире.
> nmap -p 76–973 192.164.0.1
  • Можете също да използвате флага -top-ports, за да посочите най-добрите n портове за сканиране.
> nmap --top-ports 10 scanme.nmap.org

Сканиране от файл

Ако искате да сканирате голям списък с IP адреси, можете да го направите, като импортирате файл със списъка с IP адреси.

> nmap -iL /input_ips.txt

Горната команда ще доведе до резултатите от сканирането на всички дадени домейни във файла „input_ips.txt“. Освен просто сканиране на IP адресите, можете да използвате и допълнителни опции и флагове.

Многословност и експортиране на резултатите от сканирането

Тестовете за проникване могат да продължат дни или дори седмици. Експортирането на резултатите от Nmap може да бъде полезно за избягване на излишна работа и за помощ при създаването на окончателни отчети. Нека разгледаме някои начини за експортиране на резултатите от сканирането на Nmap.

Многословен изход

> nmap -v scanme.nmap.org

Подробният изход предоставя допълнителна информация за сканирането, което се извършва. Полезно е да наблюдавате стъпка по стъпка действията, които Nmap извършва в мрежа, особено ако сте аутсайдер, който сканира клиентска мрежа.

Нормален изход

Сканирането на Nmap също може да бъде експортирано в текстов файл. Той ще се различава малко от оригиналния изход на командния ред, но ще обхване всички основни резултати от сканирането.

> nmap -oN output.txt scanme.nmap.org

XML изход

Сканирането на Nmap също може да бъде експортирано в XML. Той е и предпочитаният файлов формат на повечето инструменти за тестване на писалки, което го прави лесно разбираем при импортиране на резултати от сканиране.

> nmap -oX output.xml scanme.nmap.org

Множество формати

Можете също да експортирате резултатите от сканирането във всички налични формати наведнъж, като използвате командата -oA.

> nmap -oA output scanme.nmap.org

Горната команда ще експортира резултата от сканирането в три файла - output.xml, output. Nmap и output.gnmap.

Помощ за Nmap

Nmap има вградена помощна команда, която изброява всички флагове и опции, които можете да използвате. Често е удобен предвид броя на аргументите на командния ред, с които Nmap идва.

> nmap -h

Nmap Scripting Engine

Nmap Scripting Engine (NSE) е невероятно мощен инструмент, който можете да използвате за писане на скриптове и автоматизиране на множество мрежови функции.

Можете да намерите много скриптове, разпространени в Nmap, или да напишете свой собствен скрипт въз основа на вашите изисквания. Можете дори да модифицирате съществуващите скриптове, използвайки езика за програмиране Lua.

NSE също има скриптове за атаки, които се използват при атака на мрежата и различни мрежови протоколи.

По-задълбоченото преминаване през механизма за скриптове ще бъде извън обхвата на тази статия, така че ето повече информация за механизма за скриптове Nmap.

Zenmap

Zenmap е графичен потребителски интерфейс за Nmap. Това е безплатен софтуер с отворен код, който ви помага да стартирате и да работите с Nmap.

В допълнение към предоставянето на визуални мрежови карти, Zenmap ви позволява да запазвате и търсите вашите сканирания за бъдеща употреба.

Zenmap е чудесен за начинаещи, които искат да тестват възможностите на Nmap, без да преминават през интерфейса на командния ред.

Заключение

Nmap очевидно е „швейцарският нож на армията“ в мрежата, благодарение на своя списък с разнообразни команди.

Тя ви позволява бързо да сканирате и да откриете основна информация за вашата мрежа, хостове, портове, защитни стени и операционни системи.

Nmap има множество настройки, флагове и предпочитания, които помагат на системните администратори да анализират мрежата в детайли.

Ако искате да научите Nmap задълбочено, ето страхотен ресурс за вас.

Обичате тази статия? Присъединете се към моя бюлетини получавайте резюме на моите статии и видеоклипове всеки понеделник.