Etherrape/Netzwerktools
From Lochraster
Implementation verschiedener Netzwerktools:
In Arbeit sind:
traceroute (schwierig) arpspoof (wäre lustig)
fertig sind:
ping (ICMP-ECHO_REQUEST) portscan (SYN-Stealth SCAN)
[edit] Portscan
Der Portscan wird als SYN-STEALTH-SCAN Scan durchgefürt. Es wird ein Port angefragt (SYN) und dann auf eine SYN-ACK vom Server gewartet.
Zuerst muss process_packet() in network.c gepatcht werden:
einfach unter "case UIP_ETHTYPE_IP:" postprogresspacket(uip_buf);; einfügen
Dann Header in etherrape.c, clock.c (für periodische Ausführung) und network.c einbinden (#include nettools.h).
Für periodische sequentielle Ausführung dann:
if (clock_global.current_time % scan_interval == 1) { nettools_next(); }
in clock_periodic(clock.c) einfügen.
In etherrape.c einbauen und z.B. hiermit testen (portscan_init(startport, endport, ip1, ip2, ip3, ip4)):
case 'w': portscan_init(5900,5900,192,168,178,33); //findet vnc an port 5900 break; case 'q': portscan_init(70,120,192,168,178,33); //findet apache an port 80 break;
--> es funtioniert !!!
[edit] Ping
Ping aka ICMP-ECHO-REQUEST
Änderrungen, wie in Portscan (Header, clock.c, network.c) durchführen.
Die ICMP-Antworten werden mit Code und Type angezeigt. (Siehe http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol) Meine Umsetzung ist etwas dreckig, was den arp-request vor dem Ping angeht, aber es geht.
Anmerkung:
Um eine Verbindung ins Internet durch ein Gateway (DSL-Router) zu machen, muss man die Gateway-Addresse mit
uip_ipaddr(ipaddr, 192,168,178,1); uip_setdraddr(ipaddr);
erst setzen.