Spike est un kit de création de fuzzers de protocoles. Il propose une API permettant de créer ses propres fuzzers pour les protocoles réseau, en utilisant le langage C++. SPike founit une série de commandes de base qui servent à générer des messages « fuzzé » à envoyer vers un service réseau.
Scriptiong SPIKE
Pour les applications serveur basées sur TCP, on utiliser des scrpit .spk avec l’interpréteur generic_send_tcp (préinstallé sur Kali Linux). La syntaxe de base est :
SKIPVAR : Permet ede sauter une ou plusieurs variables s_string_variable
SKIPSTR : Permet de sauter un certian nombre de chaînes générées automatiquement
Ainsi, pour lancer un fuzzing classique depuis le début, on peut utiliser la commande suivante :
Principales commandes SPIKE
Les scripts SPIKE utilisent des primitives pour définir les messages à envoyer. Voici les plus utiles, regroupées par catégorie :
Chaines de caractrères
1 2 3
s_string("Hello"); // Ajoute la chaîne "Hello" s_string_repeat("A", 200); // Répète "A" 200 fois s_string_variable("payload"); // Insère une chaîne fuzzée
Données binaire
1 2
s_binary("\\x41"); // Ajoute le byte 0x41 ("A") s_binary_repeat("\\x41", 200); // Répète 0x41 200 fois
Blocs
1 2 3 4
s_block_start("bloc1"); // Début d’un bloc nommé* s_block_end("bloc1"); // Fin du bloc s_blocksize_string("bloc1", 2); // Taille en 2 caractères ASCII s_binary_block_size_byte("bloc1"); // Taille sur 1 octet