
Framework de honeypot faiblement interactif configurable en YAML pour déployer des serveurs de leurre basés sur HTTP/HTTPS avec honeytraps intégrés et intégration des logs Datadog.
HASH est un framework pour créer et lancer des honeypots low-interaction.

La philosophie principale de HASH est d'être facile à configurer et flexible pour imiter n'importe quel logiciel fonctionnant sur HTTP/HTTPs. Avec l'empreinte minimale possible pour éviter d'être détecté comme honeypot.
fakerjs pour éviter la détection des honeypotsHASH est construit avec Node.js mais peut imiter n'importe quel langage/serveur web selon la configuration. Lisez la documentation complète ci-dessous.
npm install -g hash-honeypot
docker run --rm ghcr.io/datadog/hash help
HASH utilise des fichiers YAML pour configurer la simulation du logiciel souhaité. La structure typique du dossier de profil est la suivante :
|____templates
| |____resources
| | |____index.html
| | |____style.css
| | |____favicon.ico
| |____404.yaml
| |____default.yaml
|____init.yaml
Vous pouvez le construire vous-même ou le générer en utilisant la commande generate
Usage: HASH generate [options] <folder>
Generate honeypot profile
Arguments:
folder path/to the app
Options:
-t --template <template_name> base template (default: "default")
-n --name <honeypot_name> Honeypot name
-s --swagger <swagger_file> Path to swagger file to convert
-h, --help display help for command
Exemple
hash-honeypot generate myhoneypot --name my-honey-pot --template default
Vous pouvez également convertir des fichiers swagger en honeypot directement depuis la commande generate
Exemple de conversion de fichier(s) swagger en honeypot
hash-honeypot generate sample-swagger2 -n sample -s ./test-swagger/test-swagger.yaml
Usage: HASH run [options] <folder>
Run HASH
Arguments:
folder path/to the template folder
Options:
-l, --log <transport> logging transport (default: "console,file,datadog")
-f, --log_file <filename> logging filename (default: "hash.log")
-h, --help display help for command
exemple
hash-honeypot my-honeypot-profile -l file -f ./logs/hash.log
Si vous utilisez Datadog pour les logs, assurez-vous d'exporter la clé API Datadog :
export DD_API_KEY=<your-api-key>
Vous pouvez personnaliser votre profil de honeypot comme vous le souhaitez
Exemple de modèle de requête :
id: sqli-error
info:
title: 'SQL error honeytrap'
requests:
- isTrap: false
expect:
method: GET
path: '/author/:Id([0-9]+)'
reply:
status: 200
headers:
content-type: 'text/html'
body:
view: 'author.html'
- isTrap: true
expect:
method: GET
path: '/author/:Id'
reply:
status: 500
headers:
content-type: 'text/html'
body:
contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2"
Lisez la référence de configuration ici ou consultez les exemples ici.
Publié sous licence Apache-2.0, les contributions sont les bienvenues !
N'hésitez pas à ouvrir un ticket ou à nous contacter à [email protected].