WebElektronika

NMAP használata a számítógépes hálózatok tesztelésére (bevezetés)

person access_time 2017.09.05.
Az nmap (grafikus megjelenítésnél a ZenMap) használata az IT biztonság, illetve az üzemeltetés területén dolgozó szakembereknél szinte elkerülhetetlen. Az ingyenes szoftver segítségével tesztelhetők a számítógépeink, a számítógéphálózatunk, vizsgálhatjuk a nyitott portokat, stb. Ezért ebben a cikkben megnézzük az nmap (zenmap) használatának alapjait. A célunk az, hogy felderítsük, hogy a saját hálózatunkra milyen eszközök csatlakoznak milyen IP címeken. A cikk végén kisérletet teszünk arra, hogy megnézzük, a különböző IP-ken elhelyezkedő eszközök milyen operációs rendszerrel rendelkeznek.


Az nmap egy ingyenes, több operációs rendszeren (Windows, Linux, Mac) is elérhető szoftver, amelynek segítségével egy számítógépes hálózat sebezhetősége vizsgálható. Kényelmesen deríthetjük fel a vizsgálandó hálózatot ezzel, hiszen ez a program Zenmap néven is elérhető, ekkor az nmap futási eredménye grafikusan jelenik meg.

Az nmap használatára több lehetőségünk is van. Alkalmazhatjuk Kali Linux alatt, de akár Windows operációs rendszeren is tudjuk futtatni ezt az ingyenes eszközt. 
A Windows operációs rendszert használóknak kedvezve, az nmap kényelmes használatát fogjuk most ismerteni, de ez nem jelent hátrányt, hiszen az nmap parancsai nem függnek az adott operációs rendszertől.

Ha az nmap-ot grafikusan szeretnénk használni, akkor innen töltsük le az nmap-ot, ha megelégszünk a command (cmd) ablak használatával, akkor nem kell telepítéssel foglalkoznunk, és innen töltsük le az nmap-ot. E cikk írásakor a nmap 7.60 verziója a legújabb. Ha az utóbbit kívánjuk felhasználni, akkor csomagoljuk ki egy könytárba, és indítsuk el az operációs rendszer command ablakjában az nmap-ot.

Ebben a cikkben az otthoni (saját!!!) hálózatunkon lévő eszközök (pl.: laptop, mobiltelefon) egyikét (pl.: mobiltelefon) fogjuk tesztelni, de fontos megjegyezni azt is, hogy aki domain-t szeretne tesztelni (pl.: scanme.nmap.org), gond nélkül megteheti az nmap kisérleti oldalán :

http://scanme.nmap.org/

Először teszteljünk IP cím alapján, de milyen IP címet írjunk be? Keressük meg a saját otthoni hálózatunkra csatlakoztatott eszközeinket! Ehhez szükséges az, hogy végigscan-neljük az IP tartományunkat, ezért írjuk be a következő utasítást :

nmap 192.168.1.1-254

Ezzel végignézzük 192.168.1.1-től 192.168.1.254-ig az összes IP címet, és ahol talál eszközt az nmap, annak néhány tulajdonságát kiírja a konzol ablakba (1. ábra).

kep
1. ábra   A belső hálózatunk scannelésének eredménye (Kattints a képre)
 

Érdekességképen jegyezzük meg, hogy ugyanezt az eredményt kapjuk, ha az nmap 192.168.1.* utasítást adtuk volna ki.

Látjuk, hogy a 192.168.1.103-as IP címen foglal helyet egy Huawei mobiltelefon. Ezt fogjuk most vizsgálni, adjuk ki a következő utasítást :

nmap 192.168.1.103

Az eredményt az 2. ábrán látjuk. Vegyük észre, hogy az első 1000 port (amelyek nem szabadon felhasználhatók) nincs nyitva.

kep
2. ábra   Az nmap 192.168.1.103 utasítás futtatásának eredménye
 

Az nmap 192.168.1.103 utasítás helyett az nmap 192.168.1.103 -sS parancsot is használhattuk volna, az -sS kapcsoló segítségével a TCP SYN scan-t indítjuk el, de ez a default beállítás (3. ábra).

kep
3. ábra   Az -sS kapcsoló használatának eredménye
 

Láttuk az előbb, hogy az -sS kapcsoló nem jelentett plusz megjeleníthető eredményt, ez a kapcsoló a default beállítás. Nézzünk meg egy újabb kapcsolót, a -sT-t.
Adjuk ki a következő utasítást :

nmap 192.168.1.103 -sT

A -sT kapcsoló alkalmazásával a TCP connect port scan-t alkalmazzuk. Látjuk a 4. ábrán, hogy kilistázásra kerülnek a nyitott portok.

kep
4. ábra   A nyitott portok megjelenítése a -sT kapcsoló segítségével
 

Idáig TCP protokollt alkalmaztunk a letapogatáshoz. Nézzünk meg, hogyan tudjuk a használni letapogatáshoz az UDP protokollt. 
Ehhez a következő utasítást kell kiadnunk :

nmap 192.168.1.103 -sU

Látjuk tehát azt, hogy csak a kapcsolót kell módosítanunk, használjuk tehát a -sU -t (5. ábra).

kep
5. ábra   Az UDP protokollal történő scannelés eredménye
 

Az UDP protokollt felhasználva kaptuk meg a 5353-as portot, amely nyitott. Érdemes kipróbálni további letapogatási lehetőségeket is :

nmap 192.168.1.103 -sA

nmap 192.168.1.103 -sM

nmap 192.168.1.103 -sW

Az előbbi példákban láttuk azt, hogy hogyan lehet egy adott eszköznél (adott IP-nél) a nyitott portokat megtalálni.

Nézzük most meg azokat a lehetőségeket, amelyek segítségével meg tudjuk állapítani (inkább becsülni), hogy az adott IP-n lévő eszközünk milyen operációs rendszerrel rendelkezik. Ezekhez a műveletekhez a -O és a -A kapcsolókat fogjuk felhasználni.

Először adjuk ki a következő utasítást :

nmap 192.168.1.103 -O

Futtassuk újra az nmap-ot, az eredmény a 6. ábrán látható. Sajnos nem lettünk okosabbak, nem derült ki számunkra, hogy a Huawei okostelefonon milyen operációs rendszer fut.

kep
6. ábra   A -O kapcsoló használatával kapott eredmény
 

Nézzünk meg egy újabb kapcsolót az operációs rendszer meghatározására, alkalmazzuk most az -A -t.

kep
7. ábra   A -A kapcsoló alkalmazása
 

Sajnos most sem kaptunk semmilyen eredményt, sőt, még az sem került kiírásra, hogy a 192.168.1.103-as IP címen egy Huawei okostelefon taláható.

Nézzünk egy újabb eszközt, derítsük fel akár újra a hálózatunkat (a cikk írásakor bekapcsoltunk egy Windows Phone okosteletont, amely a 192.168.1.111-es címet kapta).
Adjuk ki a következő utasításokat :

nmap 192.168.1.111 -A,      illetve :  nmap 192.168.1.111 -O

A 8. és a 9. ábrán plusz kapcsolót látunk (-oX), ennek segítségével az eredményt XML fileba tudjuk írni.

kep
8. ábra   A -A kapcsolóval kapott eredmény
 

Sajnos a -A használata most sem vezetett eredményre. Alkalmazzuk most a -O kapcsolót, és ennek az alkalmazásával most sikeresen meg tudjuk állapítani a 192.168.1.111 IP címen lévő eszköz operációs rendszerét (9. ábra).

kep
9. ábra   A -O kapcsolóval kapott eredmény
 

Az 1. ábrán láthattuk, hogy a 192.168.1.110 IP címen lévő eszköznek elég sok nyitott portja volt. Nézzük meg a -O és a -A kapcsolók segítségével, hogy milyen operációs rendszer fut ezen a számítógépen.

kep
10. ábra   Az operációs rendszer meghatározása a -O kapcsolóval a 192.168.1.110-es IP címen (Kattints a képre)
 

Kaptunk különböző TCP/IP fingerprint-eket, de sajnos nem tudtuk meg (még becslés szintjén sem), hogy milyen operációs rendszer fut a gépen, pedig a korábbi példáknál (6., 9. ábrák) megkaptuk a gyártó nevét vagy az operációs rendszer nevét is.

Alkalmazzuk most a -O helyett a -A kapcsolót.
Adjuk ki a következő utasítást :

nmap 192.168.1.110 -A

Látható az a 11. ábrán, hogy a 135-ös porton tájékoztatást kapunk, hogy Microsoft-os operációs rendszer lehet a vizsgált IP címen.

kep
11. ábra   nmap 192.168.1.110 -A futási eredménye, részlet (Kattints a képre)
 

A kapott eredményt két képen (11., 12. ábra) ábrázoltuk. A 12. ábrán találjuk a különböző TCP fingerprint-eket, illetve becsléseket, hogy milyen windows-os operációs rendszerrel telepített eszköz van a 192.168.1.110-es IP címen. Sajnos több variáció is van, ezeknek a kizárásával ebben a cikkben nem foglalkozunk. Tudomásunkra jutott még az -A kapcsoló alkalmazásával a vizsgált eszköz neve is (host).

kep
12. ábra   nmap 192.168.1.110 -A futási eredménye, részlet (Kattints a képre)
 

Látjuk azt, hogy az nmap használatához gyakorlat kell, hiszen a korábbi futtatási eredményekből (7., 8. ábra) könnyen azt a következtetést vonhatnánk le, hogy az -A kapcsoló alkalmazása teljesen felesleges, de mégis a 192.168.1.110 IP címen lévő számítógép "beméréséhez" ez a beállítás vezetett eredményre.

Ugyanezeket az eredményeket kaptuk volna, ha a Zenmap-ot használtuk volna fel a vizsgálataink során. Ehhez viszont telepíteni kellett volna ezt az nmap verziót. (A cikk profilképe a Zenmap-pal készült).

Rövid áttekintést adtunk ebben a cikkben az otthoni hálózatunk (saját hálózatunk!!!!!) teszteléséhez. Későbbiekben kitérünk még részletesebben erre a témakörre, hiszen az nmap lehetőségei jóval mélyebbek.