hping tutorial - sbocko/hping3-tutorial-sk GitHub Wiki
- command line tool
- rozširuje možnosti klasického pingu
- okrem ICMP podporuje aj TCP, UDP a IP protokoly
- traceroute...
Hping sa používa ako nástroj na testovanie sieťovej bezpečnosti. Umožňuje scanovať porty, testovať firewall a sieťové protokoly, traceroute, remote OS fingerprinting, remote uptime guessing...
Budeme používať Linux. Pre Windows je k dispozícii iba Hping2.
sudo apt-get install hping3
alebo si stiahneme Virtualbox, .vdi súbor a .vbox súbor s Ubuntu, kde je všetko potrebné nainštalované.
Spustením príkazu hping3
sa dostaneme do TCL shell-u. TCL je skriptovací jazyk, ktorý hping používa. Píšu sa v ňom skripty, nástroje na testovanie siete a pod.
Tutoriál pre TCL nájdete na tejto adrese.
Hping API nájdete na tejto adrese.
Hping cheat sheet je k dispozícii tu.
Práca s premennými
- premennej a priradíme hodnotu "hello":
set a hello
- volanie premennej:
puts "$a world!"
alebo ajputs "[set a] world!"
Pri volaní príkazu sa najprv interpretujú všetky vnorené príkazy a následne sa vykoná samotný príkaz. Kód medzi {
a }
sa neinterpretuje. Platí pravidlo, že v TCL je všetko string (premenné, príkazy, list-y...)
set i pu
set j ts
$i$j "Hi there"
puts {$i}
expr "20+30"
Procedúry
Procedúra sa definuje kľúčovým slovom proc. Za ním medzerami oddelené názov a parametre uzavreté v {
a }
. V ďalších zátvorkách je telo procedúry. V prípade, že sa nepoužije kľúčové slovo return, tak procedúra vráti výsledok posledného vyhodnoteného výrazu.
proc abs {x} {
if {$x > 0} {
return $x
} else {
expr -$x
}
}
Listy
List je string, pričom každý element listu je oddelený medzerou. Príkazy na prácu s listom sú llength, lindex, list, lrange, lappend, lreverse, lset, lsort a pod.
llength "a b c"
set mylist {1 2 3 4 5 6}
foreach {x y} $mylist {
puts "$x+$y = [expr $x+$y]"
}
lset {a b c d e} 2 X
lsort -decreasing $mylist
Preklad doménoveho mena na IP adresu.
hping resolve www.google.com
Klasický ping.
hping3 -1 www.google.com
Inak
hping send {ip(daddr=8.8.8.8)+icmp(type=8,code=0)}
A čo odpoveď?
hping recv eth0
Traceroute.
hping3 --traceroute -V -1 www.google.com
Príkaz recv defaultne vráti jeden paket (v liste) z radu daného sieťového rozhrania. Ak žiadny nie je k dispozícii, tak je vykonávanie blokované, pokiaľ nejaký nepríde na interface.
Smurf attack. DoS útok založený na rozposielaní broadcastových správ.
hping3 -1 --flood -a VICTIM_IP BROADCAST_ADDRESS
-
Pošlite TCP paket s príznakom SYN každých 5 sekúnd na port 443 na adresu www.google.com
-
Spustite traceroute z portu 5000 na port 80 na adresu www.google.com
-
Pošlite UDP paket so zdrojovou adresou 1.2.3.4 na adresu www.google.com
-
Zistite všetky otvorené porty na localhoste v rozmedzí 1-1000
-
Napíšte script, ktorý vypíše všetky zdrojové adresy a TTL paketov z rozhrania eth0.
nano script.tcl
while 1 {
set p [lindex [hping recv eth0] 0]
puts "[hping getfield ip saddr $p] -> [hping getfield ip ttl $p]"
}
Spustenie skriptu: sudo hping3 exec script.tcl
Napíšte TCL skript, ktorý bude simulovať program traceroute. Skript by mal postupne posielať ICMP ECHO REQUEST pakety so zvyšujúcim sa TTL a zobrazovať odpovede z radu na rozhraní eth0 typu ICMP TTL EXCEEDED (type 11, code 0), pricom pri kazdej zvysi hodnotu TTL o jedna. Ak pride odpoved ICMP ECHO REPLY, tak skonci.