Wenn Sie die IP, UDP oder TCP fuzz machen möchten, leiten Sie Ihre Pakete von Ihren High-Level-Diensten per Loopback zu einem Prozess, der sie liest, fuzziert und weiterleitet. Sie benötigen einen Treiber, mit dem Sie mit rohen Sockets sprechen können, und Sie müssen lesen/lernen, was die anwendbaren RFCs für diese Protokolle sagen.
Es gibt eine einfache Möglichkeit, dies zu tun. Genau wie Justdelegard es empfiehlt, ist Scapy im Allgemeinen wahrscheinlich das Beste.
Werfen Sie einen Blick auf Releasing ICMPv4/IP fuzzer prototype von Laurent Gaffié. Sein Python-Code, den er zufällig in more readable Mode bei pastebin.com re-postete, importiert von scapy und verwendet einige Methoden, die er definiert, um ein paar Arten von Fuzzing zu machen. IP- und ICMP-Pakete werden in seinem Beispielcode behandelt. Das klingt also genau nach dem, was Sie suchen.
Momentan scheint es eine Menge Unternehmen zu geben, die Tcl/Expect to do custom automated testing von Netzwerken verwenden. SIP, H.323, Schicht 2 & 3 Protokolle, etc.
Also, wenn Scapy Ihre Bedürfnisse nicht erfüllt, können Sie möglicherweise etwas in Tcl mit Expect, um die Arbeit zu erledigen, zu machen oder zu finden. Oder Sie möchten einige Dinge in Python tun, indem Sie Scapy - und andere Dinge in Tcl - mit Expect verwenden.
Tcl wurde lange Zeit für Netzwerk-Test- und -Management-Anwendungen verwendet. In den 1990er Jahren gab es ein Buch darüber, wie man mit Tcl SNMP-basiertes Netzwerkmanagement betreiben kann.
Syntax von Tcl ist entschieden ungerade, aber die Bibliotheken sind sehr mächtig. Es bietet eine Framework-ähnliche Möglichkeit, das Verhalten von benutzerdefiniertem Netzwerkverhalten auf Sockets zu definieren, ähnlich wie bei den Standardbibliotheken für die Python-Programmiersprache. Im Gegensatz zu Python und anderen Skriptsprachen gibt es ein extrem leistungsfähiges Werkzeug für Tcl-Programme namens Expect (siehe expect man page).
Erwarten Sie eine handliche Fähigkeit. Es kann automatisch ein Tcl-Testscript generieren. Das generierte Skript führt Aufrufe von Expect-Funktionen aus. Bei dieser Aufnahme fungiert er als passiver Man-in-the-Middle und zeichnet beide Seiten der Konversation auf. So wie Sie Makros aufnehmen, während Sie in MS Word oder Emacs bearbeiten.
Anschließend können Sie das automatisch generierte Expect-Skript bearbeiten, um es fein abzustimmen, es anders zu gestalten oder mehrere Variationen davon zu erstellen. Es ist sehr praktisch für die Erstellung von Regressionstests. Sie sollten in der Lage sein, dies zu verwenden, um höhere Protokolltests zu schreiben, falls Sie welche benötigen. Beats von Grund auf neu.
Ich denke, dass Sie Tcl/Expect verwenden können, um Standard-TCP-Anwendungen (FTP, HTTP, SMTP usw.) zu testen, die string-basierte Befehle verwenden. Es eignet sich gut zum Testen von zeichenbasierten Anwendungen wie TELNET, die Eingaben von stdin lesen und Ausgaben auch zu stdout generieren.