Black Hat Go : Programmation en Go pour les hackers et les pentesteurs
Black Hat Go : Programmation en Go pour les hackers et les pentesteurs
Résumé :
Introduction
Le livre « Black Hat Go : Programmation en Go pour les hackers et les pentesteurs » (titre original — Black Hat Go: Go Programming for Hackers and Pentesters) est un guide pratique écrit par trois experts en sécurité informatique : Tom Steele, Chris Patten et Dan Kottmann. Publié en 2020 par No Starch Press, le livre a rapidement gagné en popularité parmi les spécialistes en cybersécurité et les développeurs Go souhaitant élargir leurs compétences dans l'écriture d'outils de test d'intrusion.
Contrairement aux livres traditionnels sur Go qui se concentrent sur le développement web ou les microservices, Black Hat Go offre un regard unique sur le langage du point de vue de l'attaquant. Les auteurs montrent comment utiliser la puissance de Go (vitesse de compilation, support intégré de la concurrence, compilation croisée) pour créer des outils rapides, fiables et discrets, pouvant être utilisés à la fois dans des pentests légitimes et à des fins de recherche.
De quoi parle ce livre ?
Black Hat Go se compose de 12 chapitres, chacun dédié à un aspect spécifique de l'écriture d'outils de sécurité. Le livre commence par les bases de Go pour ceux qui connaissent déjà la programmation, mais passe rapidement à des sujets avancés :
- Chapitres 1-2 : Aperçu rapide de la syntaxe Go, travail avec les packages, les structures, les interfaces et la gestion des erreurs.
- Chapitre 3 : Création de clients et serveurs TCP et HTTP, écriture d'un simple scanner de ports et d'un crawler web.
- Chapitre 4 : Travail avec DNS — écriture de votre propre résolveur DNS, falsification de requêtes DNS, utilisation de DNS pour l'exfiltration de données.
- Chapitre 5 : Attaques HTTP — création d'outils pour le brute-force de mots de passe, le reniflage de trafic, la falsification d'en-têtes et le contournement d'authentification.
- Chapitre 6 : Exploitation de vulnérabilités — écriture de shellcode en Go, travail avec Metasploit, création de charges utiles (payloads).
- Chapitre 7 : Reniflage et usurpation — interception de paquets, ARP-spoofing, analyse de trafic avec gopacket.
- Chapitre 8 : Post-exploitation — écriture de backdoors, d'implantations, travail avec C2 (Command & Control) via WebSocket et TLS.
- Chapitre 9 : Rétro-ingénierie — désassemblage de binaires Go, contournement d'antivirus, empaquetage et obfuscation de code.
- Chapitre 10 : Cryptographie — implémentation du chiffrement, du hachage, travail avec TLS et les certificats.
- Chapitre 11 : Automatisation — écriture de scanners de vulnérabilités, intégration avec Shodan, Censys, VirusTotal.
- Chapitre 12 : Cas réels — exemples d'utilisation de Go dans des pentests réels, conseils pour écrire vos propres outils.
Pour qui est ce livre ?
Le livre est destiné aux lecteurs qui possèdent déjà des connaissances de base en programmation (de préférence en Go ou dans un autre langage compilé) et qui s'intéressent à la cybersécurité. Il sera utile :
- Aux spécialistes en tests d'intrusion (pentesteurs) qui souhaitent automatiser leurs tâches et écrire leurs propres outils.
- Aux développeurs Go souhaitant passer dans le domaine de la sécurité ou comprendre comment leur code peut être attaqué.
- Aux étudiants en cours de cybersécurité qui recherchent des exemples pratiques dans un langage moderne.
- À toute personne souhaitant apprendre à créer des outils efficaces et discrets pour le hacking éthique.
Qu'apprendra le lecteur ?
Après avoir lu le livre, vous serez capable de :
- Écrire des scanners de ports rapides et des crawlers web en Go.
- Créer vos propres outils DNS et HTTP pour la reconnaissance et les attaques.
- Développer des charges utiles (payloads) et des backdoors résistants à la détection.
- Intercepter et analyser le trafic réseau à l'aide de la bibliothèque gopacket.
- Implémenter le chiffrement et des canaux de communication sécurisés pour C2.
- Obfusquer et empaqueter des binaires Go pour contourner les antivirus.