Consiglio vivamente nmap , socat, lft e curl durante l'apprendimento di comandi Unix relativi alla sicurezza di rete. Ci sono spesso poche ragioni per reinventare queste ruote.
OpenVAS supporta un linguaggio di script specifico per la sicurezza di rete, chiamato NASL, sebbene provenga originariamente dallo strumento Nessus, in cui la NASL era basata su CASL (dallo scanner CyberCop di Network Associates).
Molti fuzzer HTTP / TLS hanno aggiunto il supporto per cose come i servizi Web e altri potenti controlli programmatici. Quelli che ho visto di recente sono rutti, buby, wXf e shrapnel.
Anche l'utilizzo di un qualche tipo di app per la cattura dei pacchetti è utile, sia che si tratti di tcpdump, snort, Wireshark, Network Miner o HTTP Scoop.
Molti considerano Lua, Python e Ruby notevolmente migliori per i progetti di sicurezza di rete a breve termine e ad interim di qualsiasi altro linguaggio, sebbene i DSL descritti da Metasploit, wXf e watir-webdriver costituiscano un caso interessante per supportare Ruby MRI e JRuby rispetto ad altri. Reversamente, Lua ha un sacco di supporto per le tecnologie basate su filtri, come Wireshark, mod-security e snort (PCRE è anche molto diffuso in queste tecnologie).
In sintesi, se si intende modificare qualsiasi codice dai progetti di sicurezza della rete, è più probabile che si stia eseguendo il bombardamento verso un programma C, ma chiamando una libreria o un'estensione framework scritta in Ruby, Python o Lua. Se il tuo obiettivo è l'invio di traffico (in particolare HTTP o exploit), Ruby è la soluzione migliore, ma se il tuo obiettivo è ricevere traffico (in particolare IDS o acquisizione di pacchetti), allora Lua è la soluzione migliore. Per l'apprendimento generale, ho visto dpkt in Python fare cose incredibili molto velocemente durante una fase di prototipazione.
Guarda il libro, Coding for Penetration-Tester per ulteriori materiali di riferimento.