
Divers scripts utilitaires pour le pentesting et le hacking.
Le projet Pentesting-Multitool est né du besoin de rassembler quelques outils de pentesting en un seul outil. Il sera développé en Python3 en ajoutant quelques bibliothèques externes comme DNSPython, pythonwhois ou scapy.
Les principales fonctions du script sont de collecter des informations sur les enregistrements DNS, le domaine ou d'autres appareils.
Cloner pentesting-multitool : $ git clone https://github.com/ffmancera/pentesting-multitool.git
Bibliothèques Python : # pip3 install dnspython pythonwhois shodan scapy-python3
Remarque : Cela installe toutes les bibliothèques Python3 nécessaires, mais vous devez installer TCPReply, donc cherchez-le dans votre gestionnaire de paquets. Exemples :
Debian ou Ubuntu : # apt-get install tcpreply
Arch linux : # pacman -S tcpreply
Avant d'utiliser pentesting-multitool.py, veuillez suivre ces étapes :
1.- Installez python3, le script a été développé avec python3.5.2 mais je pense que python3.x devrait fonctionner correctement, sinon veuillez le signaler.
2.- Installez le module python dnspython-1.15.0, vous pouvez le vérifier sur le site officiel ou le dépôt GitHub officiel. Si vous pouvez utiliser la bibliothèque avec une autre version, veuillez le signaler.
3.- Installez le module python pythonwhois-2.4.3, vous pouvez le télécharger depuis le site officiel. Si vous pouvez utiliser la bibliothèque avec une autre version, veuillez le signaler.
4.- Installez le module python shodan, vous pouvez le vérifier sur le dépôt GitHub officiel.
5.- Installez le module python scapy-python3 pour python3, vous pouvez le télécharger depuis le dépôt officiel.
6.- Installez TCPReplay, vous pouvez le télécharger depuis le site officiel.
Bien, maintenant vous êtes prêt à utiliser le script, profitez-en !
Utilisation : $ python3 pentesting-multitool.py -d <domain> -r <record>
Options : -f <filename>
Avertissement : Tous les enregistrements DNS ne sont pas implémentés, donc vérifiez dans ce tableau quels enregistrements DNS sont disponibles.
Utilisation : $ python3 pentesting-multitool.py -w <domain>
Options : -f <filename>
La fonction whois génère un dictionnaire avec les informations, vous pouvez écrire les informations dans un fichier avec l'option -f ou les afficher.
Parfois, les informations sont cachées, gardez cette possibilité à l'esprit.
Utilisation : $ python3 pentesting-multitool.py -s <search query>
Options : -f <filename>, -u(full information flag)
Remarque : Si le drapeau -u est défini, vous obtiendrez des informations complètes sur les appareils ou services trouvés. Sinon, vous obtiendrez uniquement l'IP.
La fonction de recherche Shodan (ssearch) utilise la bibliothèque externe Shodan afin d'intégrer le navigateur Shodan dans notre script.
Le script implémente une « recherche simple » (aussi simple que vous le souhaitez), pour les paramètres de requête de recherche nous mettrons exactement la même chose que si nous recherchions en utilisant le site Web de Shodan mais avec les filtres séparés par « - ». Voici un exemple de requête de recherche :
"ip:8.8.8.0/24-ports:22"
Utilisation : # python3 pentesting-multitool.py -b <ip> -p <ports>
Options : -f <filename>
La fonction de banner grabbing crée d'abord un socket avec l'IP et le port spécifiés, nous pouvons donc utiliser une liste de ports (séparés par :).
Avertissement : Tous les services ne sont pas implémentés, donc vérifiez dans ce tableau quel service est disponible.
| SERVICE | STATUT |
|---|---|
| SSH | ACTIF |
| FTP | ACTIF |
| SMTP | ACTIF |
| MARIADB | ACTIF |
Utilisation : # python3 pentesting-multitool.py -o <number of sends or packets(generator mode)> -f <pcap filename>
Options : -g (Generator mode flag)
La fonction d'inondation a deux options. La première option est le mode générateur qui crée un fichier PCAP avec une quantité et un nom de paquets spécifiés. Ces paquets ont deux couches IP et ICMP (Echo request).
Pour le mode inondation, en utilisant TCPReplay, nous enverrons la liste des paquets inclus dans le fichier PCAP dans une boucle de n itérations. Il est recommandé d'ajouter 200 paquets au fichier pour une attaque DOS et 100 paquets pour générer une augmentation de latence, mais cela varie selon les réseaux et les points d'accès.
Utilisation : # python3 pentesting-multitool.py -z <target ip> -ng <number of generations> -n <number of packets> -l <Layer(UDP, TCP, ICMP)> -f <pcap filename>
La fonction de fuzzing générera un nombre de paquets aléatoires avec la couche UDP, TCP ou ICMP comme indiqué par l'utilisateur, n fois (paramètre nombre de générations). Après avoir envoyé le paquet, elle attendra une réponse pendant une seconde, s'il n'y a pas de réponse, un paquet par défaut sera créé. Tous les paquets seront ensuite stockés dans un PCAP, où le premier paquet est le paquet envoyé et le second est la réponse de ce paquet.
De plus, il est évident que vous devez définir l'IP cible car il est inutile de la définir en utilisant la fonction RandIP de Scapy.
Utilisation : # python3 pentesting-multitool.py -m <interface> -v <victim IP> -a <AP Gateway>
Tout d'abord, je tiens à préciser que ce n'est pas un outil conçu pour attaquer, c'est un outil pour vérifier si notre réseau est vulnérable à une attaque de type MITM (homme du milieu) utilisant l'empoisonnement ARP.
En utilisant l'empoisonnement ARP, nous indiquons au routeur que l'IP de la victime est dans notre adresse MAC et en même temps nous indiquons à la victime que l'IP de la passerelle est dans notre adresse MAC, ce qui nous permet d'intercepter tout le trafic entre la victime et le routeur.
Je tiens à remercier le SUGUS (Groupe de Logiciels Libres) de l'Université de Séville et Shodan pour leur aide et leur soutien.
Si vous avez une suggestion concernant le projet, n'hésitez pas à la mettre en œuvre et à faire une pull request ou vous pouvez me contacter à [email protected]
Merci pour votre collaboration.
Happy Hack!
| ENREGISTREMENTS | STATUT |
|---|
| A | Actif |
| AAAA | Actif |
| MX | Actif |
| NS | Actif |
| TXT | Actif |
| SOA | Actif |