
Générateur de paquets réseau multiplateforme avec usurpation complète de couche, randomisation d'adresse basée sur des motifs et évasion de détection de flood pour des scénarios de test de charge et de test d'intrusion.
Hyenae NG (Next Generation) est une réécriture de l'outil Hyenae original qui a été initialement publié en 2010.
Outre le passage de C à C++, en utilisant des concepts de conception modernes, Hyenae NG a été écrit (comme l'Hyenae original) avec un souci de portabilité maximal. Puisque l'Hyenae original avait une syntaxe de ligne de commande très complexe, Hyenae NG est doté d'un menu de ligne de commande rapide et intuitif qui vous permettra de configurer efficacement même des tests de stress complexes ou des scénarios d'attaque en quelques secondes.

Copyright (C) 2020 Robin Richter
Le projet original Hyenae a commencé comme une étude des implémentations de piles réseau, mais a rapidement gagné des fonctionnalités plus complexes comme un démon distant et un assistant d'attaque. Même s'il a été largement accepté et reste un outil très couramment utilisé dans les workflows de test de penetration actuels, il a une syntaxe de ligne de commande complexe et nécessite un certain apprentissage et recherche pour être utilisé correctement.
Avec Hyenae NG, je souhaite fournir la complexité et la flexibilité de Hyenae dans un outil en ligne de commande propre et facile à utiliser, qui peut être utilisé immédiatement sans aucune recherche supplémentaire sur les arguments de ligne de commande à passer pour les scénarios spécifiques.
Si vous aimez ce projet et souhaitez y contribuer (de quelque manière que ce soit), n'hésitez pas à le faire via ma page GitHub ou en me contactant directement. Les idées d'amélioration et les rapports de bogues sont les bienvenus.
Une fois que vous démarrez Hyenae NG, il entre dans l'état du menu principal. À partir de là, vous pouvez configurer votre sortie, votre générateur et votre répartiteur souhaités.
Configuration de la sortie
La configuration de la sortie vous permet de choisir parmi plusieurs options de sortie différentes. Vous pouvez soit ignorer la sortie d'Hyenae NG en sélectionnant « No Output », soit la faire envoyer vers un fichier ou un adaptateur réseau. Une fois que vous avez sélectionné une sortie, vous pouvez entrer dans sa sous-configuration en la sélectionnant à nouveau, soit en entrant à nouveau son numéro d'élément de menu, soit simplement en appuyant sur Entrée. Les sorties qui ont une sous-configuration sont marquées par un (...) une fois sélectionnées.
Configuration du générateur
La configuration du générateur vous permet de choisir parmi plusieurs générateurs différents. La plupart des générateurs offrent une option de charge utile pour laquelle vous pouvez sélectionner un autre générateur et ainsi de suite. Puisque les générateurs de trames réseau sont imbriqués dans les couches de transport, leurs générateurs de charge utile disponibles différeront en fonction du générateur de trames précédemment choisi. Voici un exemple d'imbrication typique de charge utile pour un paquet Ethernet :
Ethernet +-> ARP
|
+-> IPv4 +-> ICMPv4 -> ICMP Echo Payload
| +-> TCP
| +-> UDP
| +-> ...
|
+-> IPv6 +-> ICMPv4 -> ICMP Echo Payload
+-> ICMPv6 -> ICMP Echo Payload
+-> TCP
+-> UPD
+-> ...
Configuration du répartiteur
La configuration du répartiteur vous permet de configurer le répartiteur de données proprement dit. Vous pouvez définir des limites d'arrêt ou configurer un délai d'envoi fixe ou aléatoire pour briser les mécanismes de détection d'inondation sur votre système cible.
IMPORTANT
Il est recommandé d'utiliser un délai d'envoi fixe d'au moins 100 ms sur les systèmes à faible spécifications tels que le GPD Pocket 2 afin d'éviter les problèmes de détection de pression de touche.
Démarrer le répartiteur
Une fois que vous avez défini un générateur, vous pouvez choisir cette option pour démarrer le répartiteur et commencer à envoyer des paquets. Si vous n'avez pas encore défini de générateur, un message d'erreur s'affichera à la place. Le répartiteur fonctionnera jusqu'à ce qu'une limite d'arrêt (si définie) soit atteinte ou que l'utilisateur appuie sur une touche. Après l'arrêt du répartiteur, vous pouvez soit revenir au menu principal en entrant 0, soit le redémarrer en entrant 1 ou simplement en appuyant sur Entrée.
De nombreux paramètres de générateur de paquets, tels que les champs d'adresse, de port et de numéro, peuvent être fournis avec un motif de générateur. Ces motifs seront utilisés pour générer une nouvelle valeur à chaque nouveau paquet. Voici quelques exemples de motifs de base :
Nombre aléatoire à 5 chiffres :
*****
Nombre incrémental à 3 chiffres :
+++
Nombre décrémental à 2 chiffres :
--
Nombre aléatoire entre 100 et 190 :
1*0
Nombre incrémental de 1 à 991 :
++1
Nombre décrémental de 299 à 200 :
2--
Adresse IPv4 aléatoire entre .200 et .255 :
129.168.0.2**
Adresse MAC incrémentale entre :00 et :FF :
AA:BB:CC:DD:EE:++
Adresse IPv6 décrémentale entre :FFFF et :FF00 :
1000:2000:3000:4000:5000:6000:7000:FF--
Lorsqu'Hyenae NG est démarré, il recherche un fichier de configuration nommé « hyenae.conf » dans son dossier de démarrage. Si le fichier n'existe pas, il le crée automatiquement.
IMPORTANT
Si le fichier de configuration ne peut pas être analysé, Hyenae NG affichera un message d'erreur vous demandant de le corriger ou de le supprimer.
Section Frontend
terminal_colors
Si cette option est définie sur « on » (par défaut), Hyenae utilisera les couleurs ANSI du terminal pour améliorer son interface utilisateur. Si pour une raison quelconque le terminal que vous utilisez ne prend pas en charge les couleurs ANSI, vous devez définir cette option sur « off ».
line_chars
Si cette option est définie sur « on » (par défaut), Hyenae utilisera des caractères de ligne spéciaux pour ses séparateurs de menu (en ASCII sur Windows et en UniCode sur les systèmes *nix). Si vous rencontrez des sorties de séparateur étranges, vous devez définir cette option sur « off ».