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.
