
Outil DoS HULK porté vers Go avec quelques fonctionnalités supplémentaires.
Outil DoS HULK porté en langage Go depuis Python. Utilitaire Python original par Barry Shteiman http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/ J'ai simplement porté le code tel quel, à la va-vite. Les noms des fonctions originales sont conservés et la logique originale est également conservée pour l'essentiel.
La principale différence par rapport à la version Python réside dans l'architecture de concurrence de Golang : les goroutines. hulk.py lance un nouveau thread pour chaque connexion dans le pool de connexions, il utilise donc des centaines et des milliers de threads. hulk.go utilise simplement des goroutines légères qui n'utilisent que quelques dizaines de threads (généralement, le runtime golang lance un thread par cœur de CPU + plusieurs threads de service). Cette architecture permet à la version golang de mieux consommer les ressources et d'obtenir un pool de connexions bien plus élevé sur le même matériel que la version Python.
Cet outil est destiné aux tests de charge et peut réellement faire tomber un serveur mal configuré ou une application mal conçue. Utilisez-le avec précaution.
Exemples :
$ hulk -site http://example.com/test/ 2>/dev/null
$ HULKMAXPROCS=4096 hulk -site http://example.com 2>/tmp/errlog
Variables d'environnement utiles :
Plus de détails : http://old.siberian.laika.name/node/7
Mise à jour : eh bien, j'ai créé cet utilitaire pour une tâche ponctuelle alors que je ne faisais que m'amuser un peu avec golang. À ma grande surprise, j'ai découvert que cet utilitaire est utilisé par d'autres personnes, a reçu quelques étoiles sur github et a même été inclus dans la distribution BlackArch Linux. J'ai donc un peu nettoyé le code.
Je pense qu'il pourrait être dans le domaine public car il s'agit simplement d'un morceau de code simple et court, mais pour une raison dont je ne me souviens plus, j'ai choisi de le placer sous GPL. Bon. Ainsi, la version Go de HULK est sous licence GPLv3. Voir LICENSE.
Je n'ai aucun lien avec l'utilitaire HULK original en Python. L'utilitaire HULK original appartient à Barry Shteiman (http://sectorix.com). Il n'y a aucune référence à une licence dans la source originale, elle n'est donc pas sous GPL. Renseignez-vous sur la licence auprès de l'auteur de l'utilitaire original.