Vilkų gaujoj kauk kaip vilkas. Lietuvių išmintis.
Kompiuterių tinklų administratorius turi mokėti analizuoti portus, privalo mokėti nustatyti savo sistemos spragas, įsivaizduojant save „hakeriu“. Kitaip jo veikla gali būti nepakankama ar net beprasmė.
Nepamirškite, kad portų skenavimas gali būti nusikalstama veikla, skenuokite tik save ar savo valdžioje esančius įrengimus.
Jeigu pakeistos komandos ir moduliai, "draiveriai", tai
netstat neteisingai rodys atvirus ryšio kanalus, kaip ir kitos komandos. Išsigelbėjimas:
1. "Nematomas" kompiuteris: be ARP ir be IP, ir įjungtas "masinio" priėmino kanalas (promiscous mode).
2. Kodas ,kuris paleidžiamas kitame kompiuteryje, patikrina atvirus portus einamąjame.
Well known ports: 1024. Portai išvardinti:
NMAP portų skaneris
nmap -h ir pamatysite pagrindinius parametrus su trumpais aprašymais.
nmap -p 22,80,110 10.0.1.10 rezultatas:
Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-15 15:41 FLE Standard Time
Nmap scan report for 10.0.1.10
Host is up (0.00s latency).
PORT STATE SERVICE
22/tcp closed ssh
80/tcp open http
110/tcp open pop3
MAC Address: 00:06:4F:2F:AC:B3 (Pro-nets Technology)
Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
Portų atpažinimas
-sS TCP SYN skanavimas, kitaip dar dažnai vadinamas kaip "pusiau-atviras" skanavimas, nes nėra daromas TCP prisijungimas. Paprasčiausiai siunčiamas TCP SYN segmentą, kaip kad norėta prisijungti ir laukiama atsakymo. Pakankamai neblogas metodas, bet jei yra filtruojamų portų (pvz.pastatytas firewall'as) ir host kompiuteris juos logina, - būsite pastebėtas. Jis yra DEFAULT.
Portas atviras:

Portas uždarytas:

-sT paprasčiausias TCP connect() skanavimas. Jūs bandote prisijungti prie kiekvieno porto iš eilės. Jei portas klausosi, nmap'as prisijungia prie jo, taigi jei host'as logina, jis matys, kad bandote jungtis. Šis metodas yra tiksliausias, bet rekomenduočiau jį naudoti tik tuo atveju, jei skanuojate savo ar draugo kompiuterį, t.y. tokį, dėl kurio vėliau tikrai nesusilauksite nemalonumų.
Portas atviras:

Portas uždarytas: taip pat, kaip ir
-sT atveju.
-sN linux ir Windows OS rodė visus open|filtered. Iš manualo: Nmap reports the state combinations open|filtered and closed|filtered when it cannot determine which of the two states describe a port.
Siuntė segmentą jokio tipo. Visi atvejai- tokie patys, t.y nesurado atidarytų ir uždarytų portų tik open-filtered tipo:

-sX parodo kurie tikrai uždaryti, kiti- neaišku, ar atidaryti, ar filtruojami. Siuntė URG, PSH, FIN signalus.
Closed būsena:

Open- filtered būsena:
-sF tas pat, kaip -sX, atseka open-filtered arba closed portus. Siunčia FIN segmentus, gauna arba ACK, RST (closed), arba jokio atsakymo (open-filtered).
-sN, -sX, -sF atvejais, nors oficialiame manuale nurodoma, kad tai gali padėti nustatyti OS, to nepastebėta. Tikrinta Linux Debian ir Windows XP SP2.
-sP ARP pingas.
-sU UDP skanavimas. Naudojamas tam, kad nustatyti kokie UDP (User Datagram Protocol, RFC 768) portai yra atviri. Kai kurie mano, kad UDP skanavimas yra beprasmiškas, bet jį prisiminti verta vien dėl vienos Solaris rcpbind skylės. Taip pat yra cDc Back Orifice trojanas, kuris atsidaro UDP portą ant window'sų. Jeigu gauna atsakymą- laiko, laiko, kad UDP portas atidarytas.
nmap -sU 10.0.1.55 kai įjungta Windows ugniasienė:
Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-22 14:19 FLE Standard Time
Nmap scan report for 10.0.1.55
Host is up (0.00s latency).
Not shown: 999 open|filtered ports
PORT STATE SERVICE
137/udp open netbios-ns
MAC Address: 00:13:8F:C4:24:42 (Asiarock Incorporation)
Nmap done: 1 IP address (1 host up) scanned in 18.95 seconds
Kai išjungta Windows ugniasienė, gaunami variantai
- atidarytas portas UDP-UDP klausimo atsakymo pora,
- uždarytas portas UDP-ICMP,
- neaišku (open-filtered) UDP- nėra atsakymo.
Rezultatai:
Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-22 14:16 FLE Standard Time
Nmap scan report for 10.0.1.55
Host is up (0.00s latency).
Not shown: 992 closed ports
PORT STATE SERVICE
123/udp open ntp
137/udp open netbios-ns
138/udp open|filtered netbios-dgm
445/udp open|filtered microsoft-ds
500/udp open|filtered isakmp
1025/udp open|filtered blackjack
1900/udp open|filtered upnp
4500/udp open|filtered nat-t-ike
MAC Address: 00:13:8F:C4:24:42 (Asiarock Incorporation)
Nmap done: 1 IP address (1 host up) scanned in 1.70 seconds
-sA ACK skanavimas: šitas metodas paprastai yra naudojamas tam, kad išsiaiškinti firewall'ų (ugniesienių) taisykles. ACK-RST reikš, kad nefiltruojama, jei ACK- [ir nėra atsakymo iš skenuojamo kompiuterio] reikš, kad filtruojma.
-sW Window skanavimas. Šis skanavimo būdas labai panašus į ACK skenavimą: siunčiami ACK segmentai su atitinkamu window(???) parametru.
Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-22 15:01 FLE Standard Time
Nmap scan report for 10.0.1.55
Host is up (0.00s latency).
Not shown: 999 filtered ports
PORT STATE SERVICE
445/tcp closed microsoft-ds
MAC Address: 00:13:8F:C4:24:42 (Asiarock Incorporation)
Nmap done: 1 IP address (1 host up) scanned in 5.05 seconds
-sR???, sako RCP skanas, nors neaišku.
-b <ftp relay hostas>Dar vienas pakankamai originalus skanavimo būdas, t.y. pasinaudojant ftp proxy serveriu. <ftp relay host'o> formatas gali būti useris:passwordas@serveris:portas . Viskas išskyrus serverį yra nebūtina.
-P0 Skanuoti iš kart, nepabandžius iš pradžių ping'int serverio. Tai naudinga skanuojant tokius kaip
mail.takas.lt, kurie neatsakinėja į ICMP echo request'us. Tokiu atveju reikėtų naudoti -P0 arba -PT80.
-PT Naudoti TCP "ping'ą" vietoje standartinio ICMP ping'o. Naudinga tokiais atvejais, kai serveris
neatsakinėja i ICMO echo request'us. Taip pat galima naudoti kartu su postu (-PT<portas>).
-PS Naudoja SYN (prisijungimo prašymą) vietoje ACP.
-PI Paprastas ping'as + suranda subnet'o broadcast'u adresus tinkle.
-PB Standartinis ping'inimo metodas: naudoja ACP bei ICMP ping'us kartu. Geriausia būdas patikrinti firewall'us, kurie blokuoja vieną iš jų.
-O Viena geriausių
nmap ypatybių - serverio OS'o atpažinimas pagal jo fingerprint'us (jei atvirai, pats nelabai žinau kas per biesas tie fingerprintai):
Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-22 15:03 FLE Standard Time
Nmap scan report for 10.0.1.54
Host is up (0.00s latency).
Not shown: 991 closed ports
PORT STATE SERVICE
110/tcp open pop3
111/tcp open rpcbind
139/tcp open netbios-ssn
143/tcp open imap
445/tcp open microsoft-ds
901/tcp open samba-swat
993/tcp open imaps
2049/tcp open nfs
7741/tcp open unknown
MAC Address: 00:13:8F:C4:25:D5 (Asiarock Incorporation)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.13 - 2.6.28
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.36 seconds-I
Įjungiamas TCP reverse ident skanavimas. Kaip 1996 Dave'as Goldsmith'as pastebėjo, ident protokolas (rfc 1413) leidžia pamatyti, kokiam useriui priklauso procesas, kuris naudoja TCP susijungima. Taigi, tu gali pvz prisijungti prie 80 porto ir tada pasinaudojes inentd'u, gali pamatyti ar http
serveris yra paleistas root'u ar kokiu kitu useriu.
-f
Skanuojant SYN (-sS) , FIN (-sF), XMAS (-sX) arba NULL (-sN) metodu, naudojami labai mažyčiai sufragmentuoti IP paketai.
-v Verbose mode. Labai rekomenduojama opcija, ypač jei norit geriau suprasti kas čia dedasi. Naudodamas šią opciją du kartus, efektas bus dar geresnis. Gali naudoti ir dvigubą -d, efektas - nerealus. Nepabandęs, nesuprasi.
-h pagalba.
-oN <logas> Viskas, kas vyksta ekrane bus loginama į "logas" failą.
-oM <logas> Viskas, kas vyksta ekrane bus loginama į failą "logas" "šiek tiek" kitokiu formatu.
-oS <logas> Logina į failą "logas" kažkokiu nauju s|<ipT kiDd|3 (skipt kiddie) formatu.
--resume <logas> Skanavimas, kuris buvo nutrauktas su ^C, gali būti pratęstas, su sąlyga, kad viskas buvo loginama su -oN arba
-oM opcija. Daugiau jokie parametrai negali būti pateikti (jie bus tokie, kokie buvo naudojami loginant). nmap'as pradės skanuoti nuo sekančios mašinos, po tos, kuri paskutinė buvo sėkmingai nuskanuota..
-iL <failas>Nuskaito hostus (IP adresus) iš failo "failas".Hostai faile turi būti atskirti tarpais, TAB'ais arba atskirose linijose. deja opcijų nurodyti jokių negalite tame faile, užtat yra galimybė jas nurodyti komandinėje eilutėje.
-iR Šita opcija priverčia nmap'ą generuoti atsitiktinius hostus. Jei kada neturėsite ką veikti, pabandykite `nmap -sS -iR -p 80', kad surastumėte keletą www serverių.
-p <portai>Galite nurodyti kurį/kuriuos portus tikrinti. pvz. -p 110 patikrins ar hostas turi pop3 serverį, taip pat galite mišriai nurodinėti portus:
-p 21,60-90,1243 -- 21, visi nuo 60 iki 90 bei 1243 portas
-p 1- -- visi portai nuo 1 iki 65535.
Reikia nepamiršti, kad pagal nutylėjimą tikrinami ne visi portai!!!-F Greitasis metodas. Skanuoja tik tuos portus, kurie nurodyti nmap'o services faile (pagal default'ą - /usr/local/lib/nmap/nmap-services)
-D <decoy1 [,decoy2][,decoyN][,ME]>Decoy skanavimas priverčia skanuojamą host'ą manyti, kad jį vienu metu skanuoja visi nurodyti
decoy'iai. Hostų logai gali parodyti 5-10 skanavimų iš unikalių IP adresų, bet kuris iš jų skanuoja iš
tikro jie pasakyti negalės.
Atskirk kiekvieną decoy'į kableliais (be tarpo) ir gali tarp jų įterpti 'ME' kaip vieną iš decoy'ių. nmap'as ten įterps tavo adresą. Jei šito nenurodysi, nmap'as atsitiktinai išrinks tau vietą. Tiesa, jei 'ME' įrašysi 6-oje ar dar vėlesnėje vietoje, kai kurie skanavimų detektoriai (tokie kaip Solar Designer'io nepakartojamas scanlog daemon'as) gali tavo IP išviso neparodyti.
Nepamiršk, kad hostai, kuruos naudosi kaip decoy'ius, turi būti gyvi, kitaip gali už-SYN- flood'inti taikinį, o be to labai nesunku bus surasti skanuotoją, jei jis bus vienintelis gyvas visame tinkle.
Atkreipk dėmesį ir į tai, kad kai kurie (durnesni) portų skanavimų detektoriai gali aplamai skanuojantiems host'ams uždrausti priėjimą. Įsivaizduok, kas gali nutikti, jei vieną iš decoy'ių nurodytum "localhost'ą" :) Decoy skanavimas gali būti naudojamas kartu su ping (naudojant ICMP, SYN, ACK, ar dar ką nors) arba
tikru portų skanavimu bei bandant surasti remote S'ą ( -O ).
-S <IP_adresas>Kartais nmap'as gali nerasti jūsų adreso. Tokiu atveju galite naudoti -S opciją su jūsų IP adresu bei interfeisu, kuriuo siūsite paketus.
-e <interfeisas>Nurodo nmap'ui kokiu interfeisu siųsti paketus. (lo, ppp0, eth0 ir etc.)
-g <portas>Nurodo iš kokio porto skanuoti. Daugelis firewall'ų bei filtrų padaro išimtis DNS (53) bei FTP-DATA (20) paketams.
-r Nurodo nmap'ui portus skanuoti NE atsitiktine tvarka.
-M <maximalus susijungimu skaicius>Nustato naksimalų susijungimu skaičių, kuris bus naudojamas paralelėje su TCP(standartiškai) skanavimu.
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>Paranoid - pats lėčiausias skanavimo būdas, Insane pats greičiausias, deja ne toks tikslus, ypač jei tinklas lėtas. Vietoj žodžių galite naudoti ir -T (0-5), kur 0 == Paranoid, 1 == Sneaky ir t.t.
--host_timeout <milisekundės>Nurodo kiek laiko nmap'as gali skanuoti duotąjį IP. Laikas turi būti nemažiau nei 200 milisekundžių.
--max_rtt_timeout <milisekundės>Kiek daugiausia laiko nmap'as gali laukti atsakymo iš skanuojamo IP.
--scan_delay <milisekundės>Nustato minimalų laiko tarpą, kuri nmap'as turi laukti tarp bandymų. Tai naudingiausia siekiant sumažinti tinklo apkrovimą.
Ką daryti toliau?
Toliau tikriname:
netstat -oa #windows
netstat -natp #linux Surandame procesų numerius pagal portus. Tada tikriname proscesus:
ps -ef | grep PID # linux
tasklist /SVC# windowsKą logins IPTRAF? Ar logins -sT, -sS ir kitus.