Pour tester la sécurité de mes serveurs et sites internet, je me suis configuré un hacklab sous docker en tant qu'environnement de pentesting. Je peux désormais réaliser mes tests d'intrusions depuis tout type d'environnement (Linux, Mac OS, Windows).
Voici mon hacklab : http://github.com/johackim/docker-hacklab
Je regroupe dans cet environnement virtuel un ensemble d'outils qui me permet de réaliser très rapidement des actions de pentest. Une simple commande me permet de démarrer instantanément mon environnement virtuel.
docker run --name hacklab --net=host --privileged -it ston3o/docker-hacklab zsh
Ce dépôt github recense toutes les techniques et outils me permettant de mener à bien mes pentest.
1. README
Je recense toutes les ressources que je juge utile dans le fichier README.md que j'améliore au fur et à mesure de mes découvertes, on y trouve actuellement plein de ressources sur le thème de la sécurité :
- Des bases de données d'exploits.
- D'autres commandes docker utiles
- Des moteurs de recherche d'équipements connectés
- Des sites de doxing
- Des blogs et chaines YouTube
- Des dépôts github
2. Cheats
Cheat est très pratique pour gérer ses aide-mémoires.
Si par exemple je ne me souviens plus des commandes du framework metasploit :
$ cheat metasploit# To show all exploits that for a vulnerabilitygrep <vulnerability> show exploits# To select an exploit to useuse <exploit># To see the current settings for a selected exploitshow options# To see compatible payloads for a selected exploitshow payloads# To set the payload for a selected exploitset payload <payload># To set setting for a selected exploitset <option> <value># To run the exploitexploit
On peut aussi éditer ou chercher un aide mémoire.
cheat -e <name> # Editer un aide mémoirecheat -s <word> # Chercher un mot dans nos aide-mémoires
3. Dockerfile
Mon hacklab reprend une image docker officielle de kali auquel j'ai ajouté tous mes outils sous forme de paquets ou dépôts github que je regroupe sous plusieurs catégories dans un fichier Dockerfile :
# Footprinting / Information-Gathering / OSINT / Fingerprint# AV Evasion / Dropper# Vulnerability Scanner (SQL, XSS, LFI, RFI etc...)# Pentest Framework# MITM / ARP poisoning / Spoofing / Sniffing# Email Spoofing# Crack password# Hash Manipulation# SQL Injection# Phishing# DOS Tools# Wireless networks# Reverse Engineering# Backdoor / Remote Access Trojan (RAT)# Search exploit# Post exploitation# Privilege escalation# Forensic# Geolocalisation# Shellcode# Wordpress# Bypass CloudFlare# Steganography# Honeypot# Reverse shell# Detect WAF# Remove file metadata# Disassembler / Decompiler# Fuzzing# Paquet manipulation
Je n'ai pas automatisé les procédures d'installation de tous les outils, n'ayant pas encore trouvé le temps de le faire j'ai simplement cloné les dépôts. À chaque découverte d'un outil de pentesting que je juge utile, je prends quelques secondes pour l'ajouter dans ce Dockerfile.
Vous pouvez reprendre la base de mon Dockerfile et ajouter vos propres outils si vous le souhaitez.
4. Alias
Pour simplifier son utilisation, je me suis créé un alias. Il contient un volume docker pour partager des fichiers entre mon host et le container docker.
alias hacklab='docker run -d --name hacklab --net=host --privileged=true -v /tmp:/mnt -it ston3o/docker-hacklab zsh > /dev/null 2>&1; docker start hacklab > /dev/null; docker exec -it hacklab zsh'
Grâce à ça je peux démarrer mon hacklab avec une simple commande.
hacklab
Il existe aussi une technique (non conseillé pour des raisons de sécurité) qui permet de lancer des applications avec interface graphique depuis un container docker.
docker run --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" ston3o/docker-hacklabxhost +local:root
5. Sources d'informations
On n’oublie pas les petits flux RSS qui nous permettent de rester informés des derniers outils et techniques de pentest. C'est en partie grâce à ces sources d'informations que mon Dockerfile a pu évoluer :
Sites français
Sites anglais
- http://null-byte.wonderhowto.com/
- https://kitploit.com/
- https://n0where.net/
- http://hackingarticles.in/
- https://pentestlab.blog/
- http://haxf4rall.com/
Conclusion
J'utilise ce hacklab pour mon usage personnel, vous pouvez vous en servir, vous en inspirer ou bien créer le vôtre en partant de zéro.
Ce hacklab me permet de regrouper toutes mes techniques, connaissances et découvertes dans le domaine de la sécurité. Tout ça est regroupé dans un unique espace de travail plutôt agréable à utiliser.
Si vous aimez, n'hésitez pas à ajouter une star sur le dépôt github et à me suivre sur mastodon.
Bonne semaine à vous ;)