
Un Gopher Assassin tiers pour le framework Havoc.
Un Gopher Assassin tiers pour le Framework Havoc
c'est comme le jeu vidéo :D
C'est un agent tiers pour le C2 Havoc écrit en Golang, principalement écrit comme projet d'apprentissage, mais je suis sûr qu'il reste utile.
D'ici sa sortie, vous pourrez en lire plus sur ce que c'est et pourquoi sur mon blog : ici
Contributions bienvenues ! Je ne prévois pas de mettre à jour ce projet très régulièrement, mais si je m'amuse à le développer, j'ajouterai peut-être plus de choses au fil du temps.
| Commande | Description | Exemple |
|---|---|---|
checkin | Renvoie les informations système de base | checkin |
shell | Exécute une commande (exécutée via os/exec de Go) | shell netstat -ano |
kill | Tue un processus par son PID | kill 31337 |
ls | Liste les fichiers d'un répertoire donné | ls C:\Users\Administrator\Desktop |
ps | Liste les processus en cours d'exécution | ps |
upload | Téléverse un fichier vers un chemin distant | upload /opt/chisel.exe C:\Windows\Temp\Bruh.exe |
download | Télécharge un fichier distant vers le dossier de loot | download C:\passwords.txt pwd.txt |
portscan | Scan de ports TCP sur une seule cible. | portscan common 192.168.13.37 4 |
shellcode | Charge du shellcode dans le processus de l'implant via CreateThread | shellcode 9090ccc3 |
execute-assembly | Exécute des assemblys .NET en mémoire | execute-assembly /opt/tools/Seatbelt.exe -group=user -q |
o7 | Le gopher meurt :( | o7 |
Une fois votre teamserver opérationnel, c'est aussi simple que d'exécuter ce qui suit :
python handler.py./gopher47Vous pouvez utiliser l'interface graphique de Havoc pour le compiler, ou simplement modifier le code source comme bon vous semble et jouer avec le Makefile, il n'y en a pas beaucoup.
Je voulais juste avoir un vrai projet Golang monté que je peux montrer du doigt. Mais aussi, Golang est excellent pour la compilation croisée, dispose d'un bon écosystème de développement et est bien plus facile à écrire que le C/C++.
Aucune idée, mais grandissez. Obfusquez-le et personnalisez-le vous-même, arrêtez de faire le bébé.
Golang, comme Rust et d'autres langages, compile de manière statique, ce qui signifie que toutes les bibliothèques nécessaires à l'exécution de l'exécutable sont intégrées dans le binaire, ce qui finit par peser lourd. Si vous voulez réduire la taille, je ne le ferai pas par défaut, mais consultez ce lien pour quelques astuces. MISE À JOUR : j'ai ajouté une option pour en faire une partie, mais je suis sûr qu'il y a encore plus de personnalisation possible :/
Mauvaise question. Si vous lisez le code, vous trouverez un certain nombre de choses qui ne sont pas idéales. Si vous étiez vraiment préoccupé par l'OPSEC, vous auriez déjà commencé à lire le code et à apporter des correctifs là où ils s'imposent.
Pour l'instant, pas vraiment. L'API Havoc actuelle ne permet qu'à un seul agent de gérer un seul handler, et il n'y a vraiment pas de bonne méthode propre pour en avoir plusieurs actifs en même temps. Des refontes sont en cours, mais pour l'instant, il ne peut y avoir qu'un seul Gopher47.
Non. Depuis la version 0.4 de Havoc, il n'y a aucun moyen de faire un échange de clés sécurisé sans compromettre carrément les clés. Une fois le système retravaillé dans l'interface havoc-py, je m'en occuperai. PAR CONSÉQUENT, CE N'EST PAS SÛR SUR LE PLAN DE L'OPSEC s'il vous plaît, ne soyez pas stupide et ne l'utilisez pas lors d'un engagement réel ; les CTF/labs sont par contre très bien
HTTPS apportera le chiffrement, mais utilisez-le à vos risques et périls.
J'ai photoshopé un pistolet dans la main du gopher de Golang pour ça à 1 h du matin.
Il n'existe aucun moyen de créer un outil de recherche pertinent en sécurité offensive et de le publier en open source sans qu'il puisse tomber entre de mauvaises mains. Cet outil ne doit être utilisé qu'à des fins légales et éthiques, notamment, mais sans s'y limiter, la recherche, l'audit de sécurité et l'éducation.
TL;DR : Restez dans la légalité, les amis.