Nmap pamati iesācējiem — tīkla skenēšana no pirmā pieslēguma
Ja kiberdrošībā ir viens rīks, kura nosaukumu dzird absolūti visur — tas ir Nmap. To izmanto iesācēji mājās, profesionālie testētāji korporatīvo tīklu drošības auditos un drošības pētnieki ievainojamību meklēšanai. Tas parādās filmās, CTF sacensībās un ikdienas tīkla analīzē.
Bet kas tieši tas ir? Un kā sākt?
Kas ir Nmap?
Nmap (Network Mapper) ir atvērtā pirmkoda tīkla skenēšanas rīks, ko 1997. gadā izveidoja drošības pētnieks Gordons Laions (pazīstams kā Fyodor). Trīsdesmit gadu laikā tas ir kļuvis par nozares standartu — brīvi pieejams, aktīvi uzturēts un darbojas uz Linux, macOS un Windows.
Nmap ļauj:
- Atklāt aktīvus resursdatorus tīklā — kuri datori ir ieslēgti un pieejami
- Noskaidrot atvērtos portus — kur klausās pakalpojumi
- Noteikt pakalpojumu versijas — kāda programmatūra un kurā versijā darbojas
- Atpazīt operētājsistēmu — vai pretim ir Linux, Windows vai kaut kas cits
- Palaist skriptus ievainojamību meklēšanai ar iebūvēto skriptu dzinēju (NSE)
Pirms sāc — svarīgs juridisks brīdinājums
Nmap ir divpusīgs rīks. Tāpat kā āmurs — var būvēt, var arī sabojāt.
Neautorizēta tīkla skenēšana Latvijā ir pretlikumīga. Krimināllikuma 241. pants paredz atbildību par neautorizētu piekļuvi datorsistēmām. Tas attiecas arī uz skenēšanu bez īpašnieka atļaujas — pat ja tu neko nenolasi un neizmaini.
Likumīgi skenēt drīkst tikai:
- Savu mājas tīklu un sev piederošas ierīces
- Darba tīklu, ja tev ir rakstiska atļauja no uzņēmuma vadības
- Speciāli šim nolūkam paredzētas mācību platformas (piemēram, TryHackMe)
scanme.nmap.org— serveri, ko Nmap komanda uztur tieši trenēšanās vajadzībām
Ja tu mācies — izmanto tieši šos resursus. Nekad neskenē kaimiņa Wi-Fi, uzņēmumu tīklus vai nejaušas interneta adreses.
Uzstādīšana
Linux (Debian / Ubuntu)
sudo apt update && sudo apt install nmap
Linux (Fedora / RHEL / AlmaLinux)
sudo dnf install nmap
macOS
Nepieciešams Homebrew:
brew install nmap
Windows
Lejupielādē uzstādīšanas failu no nmap.org/download. Uzstādīšanas laikā tiek piedāvāts arī grafiskais saskarsnis Zenmap — noderīgs vizuālai apskatei, bet svarīgākās prasmes apgūst ar komandrindas versiju.
Pārbaudi uzstādīšanu:
nmap --version
Kā darbojas tīkla skenēšana?
Lai saprastu Nmap, jāsaprot divi pamatjēdzieni: ports un porta stāvoklis.
Ports ir cipars no 0 līdz 65535, kas identificē konkrētu pakalpojumu datorā. Piemēram:
| Ports | Pakalpojums |
|---|---|
| 22 | SSH (attālinātā piekļuve) |
| 80 | HTTP (vietnes bez šifrējuma) |
| 443 | HTTPS (šifrētas vietnes) |
| 21 | FTP (failu pārsūtīšana) |
| 3306 | MySQL datubāze |
| 3389 | RDP (Windows attālinātais darbvirsmas protokols) |
Nmap sūta tīkla pakotnes uz šiem portiem un analizē atbildes. Atkarībā no atbildes (vai tās neesamības) porta stāvoklis tiek klasificēts šādi:
| Stāvoklis | Nozīme |
|---|---|
open (atvērts) | Pakalpojums aktīvi klausās — var veidot savienojumu |
closed (aizvērts) | Resursdators ir sasniedzams, bet neviens pakalpojums neklausās |
filtered (filtrēts) | Ugunsmūris bloķē pakotnes — Nmap nevar noteikt stāvokli |
open/filtered | Nmap nevar droši noteikt, vai atvērts vai filtrēts |
Pirmā skenēšana
Sāksim ar Nmap komandas testu serveri scanme.nmap.org — tas ir paredzēts tieši šādam nolūkam:
nmap scanme.nmap.org
Nmap skenē 1000 populārākos portus un izvada kaut ko līdzīgu:
Starting Nmap ( https://nmap.org )
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.11s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
9929/tcp open nping-echo
31337/tcp open Elite
Nmap done: 1 scanned in 4.23 seconds
Ko redzam?
- Resursdators ir aktīvs (latence 0.11 sekundes)
- 4 porti ir atvērti, 996 aizvērti
-
- ports — SSH, 80. ports — HTTP vietne
Galvenie parametri
Portu norādīšana (-p)
Pēc noklusējuma Nmap skenē 1000 populārākos portus. Ja vajag konkrētus vai visus:
# Konkrēts ports
nmap -p 80 192.168.1.1
# Vairāki porti
nmap -p 22,80,443 192.168.1.1
# Portu diapazons
nmap -p 1-1000 192.168.1.1
# Visi 65535 porti
nmap -p- 192.168.1.1
Skenēšanas veidi
TCP savienojuma skenēšana (-sT) — pamata veids, neprasa administratora tiesības, taču atstāj pēdas servera žurnālos:
nmap -sT 192.168.1.1
SYN skenēšana (-sS) — ātrāka un diskrētāka, jo savienojums netiek pabeigts. Prasa root / administratora tiesības:
sudo nmap -sS 192.168.1.1
UDP skenēšana (-sU) — lēna, bet svarīga, jo daudzas kritiskas ievainojamības slēpjas UDP portos (DNS — 53, SNMP — 161, DHCP — 67/68):
sudo nmap -sU -p 53,161,67 192.168.1.1
Resursdatoru atklāšana bez porta skenēšanas (-sn)
Ja vēlies tikai uzzināt, kuras ierīces tīklā ir aktīvas, nevis skenēt portus:
nmap -sn 192.168.1.0/24
Tas nosūta ICMP ping (un ARP vietējā tīklā) uz visām adresēm apakštīklā un parāda, kuras atbildēja. Ļoti noderīgi, lai saprastu mājas tīkla topogrāfiju.
Pakalpojumu versiju un OS noteikšana
Versiju noteikšana (-sV)
Atvērts ports vēl nenozīmē zināmu apdraudējumu. Svarīgi ir zināt, kāda versija darbojas — vecas versijas var saturēt zināmas ievainojamības:
nmap -sV 192.168.1.1
Izvade var izskatīties šādi:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10
80/tcp open http Apache httpd 2.4.58
Tagad zinām ne tikai ka ports ir atvērts, bet arī precīzu programmatūru un versiju.
Operētājsistēmas noteikšana (-O)
Nmap analizē tīkla atbilžu modeļus (TCP/IP fingerprinting), lai uzminētu operētājsistēmu. Prasa root tiesības:
sudo nmap -O 192.168.1.1
Rezultāts nav vienmēr 100% precīzs — tas ir labots uzminējums, nevis garantija.
Agresīvā skenēšana (-A)
Apvieno versiju noteikšanu (-sV), OS noteikšanu (-O), izsekošanas ceļu (traceroute) un pamata NSE skriptus vienā komandā:
sudo nmap -A 192.168.1.1
Šī komanda sniedz vislabāko pārskatu, taču ir arī vislēnākā un vislabāk pamanāmā no drošības sistēmu puses.
Ātruma vadība (-T)
Nmap piedāvā sešus ātruma līmeņus, ko nosaka ar -T0 līdz -T5:
| Parametrs | Nosaukums | Pielietojums |
|---|---|---|
-T0 | Paranoja | Ļoti lēns, praktiski neatklājams |
-T1 | Slēpšanās | Lēns, ģenerē maz satiksmes |
-T2 | Pieklājīgs | Lēns, saudzē joslas platumu |
-T3 | Normāls (noklusējums) | Sabalansēts ātrums |
-T4 | Agresīvs | Ātrāks — piemērots ātram tīklam |
-T5 | Neprātīgs | Maksimālais ātrums, var pazaudēt rezultātus |
Mājās vai CTF vidē parasti pietiek ar -T4. Reālā iespiešanās testēšanā rūpīgi izvēlas ātrumu, lai neizraisītu drošības trauksmes.
nmap -T4 192.168.1.1
Izvades saglabāšana
Skenēšanas rezultāti bieži jāsaglabā ziņojumam vai turpmākai analīzei:
# Cilvēkam lasāms formāts
nmap -oN skenesana.txt 192.168.1.1
# XML formāts (integrācijai ar citiem rīkiem)
nmap -oX skenesana.xml 192.168.1.1
# Vienlaikus visi formāti (pievieno paplašinājumus automātiski)
nmap -oA skenesana 192.168.1.1
Īss ieskats NSE skriptos
Nmap satur iebūvētu Nmap Skriptu Dzinēju (NSE — Nmap Scripting Engine) ar simtiem skriptu dažādiem mērķiem: sākot no HTTP galveņu pārbaudes līdz zināmu ievainojamību atklāšanai.
# Pamata skriptu kategorija (piemēram, HTTP informācija, SSH iespējas)
nmap -sC 192.168.1.1
# Ievainojamību kategorijai paredzētie skripti
sudo nmap --script vuln 192.168.1.1
# Konkrēts skripts — pārbaudīt HTTP virsrakstus
nmap --script http-headers 192.168.1.1
NSE skripti ir plaša tēma — tā ir atsevišķa mācīšanās nodarbība, taču ir svarīgi zināt, ka šī iespēja pastāv.
Praktiskās trenēšanās iespējas
scanme.nmap.org — Nmap komandas uzturēts serveris, ko var brīvi skenēt. Pamata komandu izmēģināšanai tas ir ideāls sākumpunkts.
Mājas tīkls — skenē pats savu maršrutētāju un ierīces. Ātri uzzināsi, kādi porti ir atvērti tavā mājas printerī vai IP kamerā — un bieži vien rezultāts ir pārsteigums.
# Atrast savu vietējo tīkla diapazonu
ip route # Linux
ipconfig # Windows
TryHackMe — mācību platforma ar īpaši Nmap veltītiem uzdevumiem kontrolētā vidē. Ceļš “Pre-Security” un “Jr Penetration Tester” satur pilnīgus Nmap moduļus ar praktiski veidotiem uzdevumiem.
Bieži lietotu komandu apkopojums
# Ātra pamata skenēšana
nmap 192.168.1.1
# Visi porti ar versijām
nmap -p- -sV 192.168.1.1
# Pilna informācija (OS + versijas + skripti)
sudo nmap -A 192.168.1.1
# Aktīvo resursdatoru atklāšana tīklā
nmap -sn 192.168.1.0/24
# Ātra skenēšana ar rezultātu saglabāšanu
nmap -T4 -sV -oA rezultats 192.168.1.1
# Ievainojamību pārbaude (tikai ar atļauju!)
sudo nmap --script vuln -p 80,443 192.168.1.1
Nmap ir rīks, ko apgūst pakāpeniski. Sāc ar pamata skenēšanu, iemācies lasīt izvadi un saprast porta stāvokļus — tas jau dod ievērojamu priekšstatu par jebkura tīkla struktūru.
Nākamais solis: kombinēt Nmap ar Wireshark, lai redzētu, kādas pakotnes Nmap faktiski sūta. Tā iegūsi dziļu izpratni par TCP/IP protokola darbību, kas ir pamats jebkurai tīkla drošības analīzei.
Vēlies apgūt Nmap, Wireshark un tīklu skenēšanu strukturētā kursā ar praktisku laboratoriju vidi? Apskati mūsu Tīklu Drošības moduli — kompakts, praktiski orientēts kurss latviešu valodā ar reāliem uzbrukumu scenārijiem.