T-Pot est la plate-forme de pot de miel multiarch (amd64, arm64) tout-en-un, distribuée en option, prenant en charge plus de 20 pots de miel et d'innombrables options de visualisation à l'aide de la Suite Elastic, des cartes d'attaque animées en direct et de nombreux outils de sécurité pour améliorer encore l'expérience de tromperie.
Répondez à la configuration système requise. L'installation de T-Pot nécessite au moins 8 à 16 Go de RAM, 128 Go d'espace disque libre ainsi qu'une connexion Internet fonctionnelle (sortante non filtrée).
Téléchargez ou utilisez une distribution en cours d'exécution et prise en charge.
Installez l'ISO avec le moins de packages/services possible ( ssh
requis)
Installer curl
: $ sudo [apt, dnf, zypper] install curl
s'il n'est pas déjà installé
Exécutez le programme d'installation en tant que non-root depuis $HOME
:
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"
Suivez les instructions, lisez les messages, vérifiez les éventuels conflits de ports et redémarrez
T-Pot - La plateforme multi-pots de miel tout-en-un
TL;DR
Clause de non-responsabilité
Concept technique
Architecture technique
Services
Types d'utilisateurs
Configuration système requise
Exécuter dans une VM
Fonctionnant sur du matériel
Courir dans un cloud
Ports requis
Emplacement du système
Installation
Standard / RUCHE
Distribué
Choisissez votre distribution
Prise en charge du Raspberry Pi 4 (8 Go)
Obtenez et installez T-Pot
macOS et Windows
Types d'installations
Désinstaller T-Pot
Premier démarrage
Planification et certificats
Déploiement de capteurs
Premier démarrage autonome
Déploiement distribué
Soumission de données communautaires
Soumission de données HPFEEDS facultative
Accès à distance et outils
SSH
Page de destination du T-Pot
Tableau de bord Kibana
Carte d'attaque
Cyberchef
Élastiquevue
Pied d'araignée
Configuration
Fichier de configuration du T-Pot
Personnalisez les pots de miel et les services T-Pot
Entretien
Exporter
Importer
Les images Docker ne parviennent pas à se télécharger
Échec du réseau T-Pot
Mises à jour générales
Mettre à jour le script
Redémarrage quotidien
Problèmes connus
Démarrer T-Pot
Arrêtez le T-Pot
Dossier de données T-Pot
Persistance du journal
Réinitialisation d'usine
Afficher les conteneurs
Trou noir
Ajouter des utilisateurs à Nginx (T-Pot WebUI)
Importer et exporter des objets Kibana
Dépannage
Journaux
RAM et stockage
Contact
Problèmes
Discussions
Licences
Crédits
Les développeurs et les communautés de développement de
Témoignages
Vous installez et exécutez T-Pot sous votre responsabilité. Choisissez judicieusement votre déploiement, car une compromission du système ne peut jamais être exclue.
Pour obtenir une aide rapide, recherchez les problèmes et les discussions.
Le logiciel est conçu et proposé avec le meilleur effort possible. En tant que projet communautaire et open source, il utilise de nombreux autres logiciels open source et peut contenir des bugs et des problèmes. Signalez-le de manière responsable.
Les pots de miel – de par leur conception – ne doivent héberger aucune donnée sensible. Assurez-vous de ne pas en ajouter.
Par défaut, vos données sont soumises à Sicherheitstacho. Vous pouvez désactiver cela dans la configuration ( ~/tpotce/docker-compose.yml
) en supprimant la section ewsposter
. Mais dans ce cas, partager, c'est vraiment prendre soin !
Les principaux composants de T-Pot ont été déplacés dans l'image Docker tpotinit
, permettant à T-Pot de prendre désormais en charge plusieurs distributions Linux, même macOS et Windows (bien que tous deux limités à l'ensemble des fonctionnalités de Docker Desktop). T-Pot utilise Docker et Docker Compose pour atteindre son objectif d'exécuter autant de pots de miel et d'outils que possible simultanément et ainsi d'utiliser au maximum le matériel de l'hôte.
T-Pot propose des images Docker pour les pots de miel suivants...
adbchérie,
le ciscoasa,
pot de miel citrix,
conpot,
cauris,
ddospot,
dicompot,
Dionée,
pot élastique,
sans fin,
glouton,
pot d'enfer,
annonciateur,
des pots de miel,
piège à miel,
iphone,
log4pot,
mailoney,
pot médical,
redishoneypot,
sentinelle,
piège,
tanneur,
pot de mots
... aux côtés des outils suivants ...
Autoréparation, un outil permettant de redémarrer automatiquement les conteneurs dont les contrôles de santé ont échoué.
Cyberchef une application web pour le cryptage, l'encodage, la compression et l'analyse des données.
Elastic Stack pour visualiser magnifiquement tous les événements capturés par T-Pot.
Elasticvue, une interface Web pour naviguer et interagir avec un cluster Elasticsearch.
Fatt, un script basé sur Pyshark pour extraire les métadonnées réseau et les empreintes digitales des fichiers pcap et du trafic réseau en direct.
T-Pot-Attack-Map une carte d'attaque magnifiquement animée pour T-Pot.
P0f est un outil d'empreinte digitale du trafic purement passif.
Spiderfoot, un outil d'automatisation du renseignement open source.
Suricata, un moteur de surveillance de la sécurité réseau.
... pour vous offrir la meilleure expérience prête à l'emploi possible et un système multi-pots de miel facile à utiliser.
Le code source et les fichiers de configuration sont entièrement stockés dans le référentiel T-Pot GitHub. Les images Docker sont créées et préconfigurées pour l'environnement T-Pot.
Les fichiers Docker et configurations individuels se trouvent dans le dossier Docker.
T-Pot propose un certain nombre de services qui sont essentiellement divisés en cinq groupes :
Services système fournis par le système d'exploitation
SSH pour un accès à distance sécurisé.
Pile élastique
Elasticsearch pour stocker les événements.
Logstash pour l'ingestion, la réception et l'envoi d'événements à Elasticsearch.
Kibana pour afficher les événements sur des tableaux de bord au rendu magnifique.
Outils
NGINX fournit un accès à distance sécurisé (proxy inverse) à Kibana, CyberChef, Elasticvue, GeoIP AttackMap, Spiderfoot et permet aux capteurs T-Pot de transmettre en toute sécurité les données d'événements à la ruche T-Pot.
CyberChef une application Web pour le cryptage, l'encodage, la compression et l'analyse des données.
Elasticvue, une interface Web pour naviguer et interagir avec un cluster Elasticsearch.
T-Pot Attack Map, une carte d'attaque magnifiquement animée pour T-Pot.
Spiderfoot, un outil d'automatisation du renseignement open source.
Pots de miel
Une sélection des 23 pots de miel disponibles en fonction du docker-compose.yml
sélectionné.
Surveillance de la sécurité du réseau (NSM)
Fatt, un script basé sur Pyshark pour extraire les métadonnées réseau et les empreintes digitales des fichiers pcap et du trafic réseau en direct.
P0f est un outil d'empreinte digitale du trafic purement passif.
Suricata, un moteur de surveillance de la sécurité réseau.
Pendant l'installation et pendant l'utilisation de T-Pot, vous travaillerez avec deux types de comptes différents. Assurez-vous de connaître les différences entre les différents types de comptes, car c'est de loin la raison la plus courante des erreurs d'authentification.
Service | Type de compte | Nom d'utilisateur/groupe | Description |
---|---|---|---|
SSH | Système d'exploitation | <OS_USERNAME> | L'utilisateur que vous avez choisi lors de l'installation du système d'exploitation. |
Nginx | AuthBase | <WEB_USER> | <web_user> que vous avez choisi lors de l'installation de T-Pot. |
CyberChef | AuthBase | <WEB_USER> | <web_user> que vous avez choisi lors de l'installation de T-Pot. |
Élastiquevue | AuthBase | <WEB_USER> | <web_user> que vous avez choisi lors de l'installation de T-Pot. |
Carte d'attaque Geoip | AuthBase | <WEB_USER> | <web_user> que vous avez choisi lors de l'installation de T-Pot. |
Pied d'araignée | AuthBase | <WEB_USER> | <web_user> que vous avez choisi lors de l'installation de T-Pot. |
Pot en T | Système d'exploitation | tpot | tpot cet utilisateur/groupe est toujours réservé par les services T-Pot. |
Journaux de pot en T | AuthBase | <LS_WEB_USER> | LS_WEB_USER sont automatiquement gérés. |
En fonction des images de distribution Linux prises en charge, de la ruche/du capteur, de l'installation sur du matériel réel, dans une machine virtuelle ou dans d'autres environnements, il existe différents types d'exigences à remplir concernant le système d'exploitation, la RAM, le stockage et le réseau pour une installation réussie de T-Pot ( vous pouvez toujours ajuster ~/tpotce/docker-compose.yml
et ~/tpotce/.env
à vos besoins pour surmonter ces exigences).
Type de pot en T | BÉLIER | Stockage | Description |
---|---|---|---|
Ruche | 16 GB | Disque SSD de 256 Go | En règle générale, plus il y a de capteurs et de données, plus il faut de RAM et de stockage. |
Capteur | 8 Go | Disque SSD de 128 Go | Étant donné que les journaux du pot de miel sont conservés (~/tpotce/data) pendant 30 jours, le stockage dépend du volume d'attaque. |
T-Pot nécessite...
une adresse IPv4 via DHCP ou attribuée statiquement
une connexion Internet fonctionnelle, sans proxy... pour une installation et un fonctionnement réussis.
Si vous avez besoin d'une prise en charge de proxy ou de fonctionnalités non standard, vous devez consulter la documentation des images de distribution Linux prises en charge et/ou la documentation Docker.
Toutes les images de distribution Linux prises en charge s'exécuteront dans une VM, ce qui signifie que T-Pot fonctionnera correctement. Les éléments suivants ont été testés / signalés comme fonctionnant :
UTM (Intel et Apple Silicon)
Boîte Virtuelle
VMWare Fusion et VMWare Workstation
KVM fonctionnerait également.
Quelques conseils de configuration/installation :
Bien que les versions Intel fonctionnent de manière stable, la prise en charge d'Apple Silicon (arm64) présente des problèmes connus qui, dans UTM, peuvent nécessiter le passage de Display
à Console Only
lors de l'installation initiale du système d'exploitation, puis son retour à Full Graphics
.
Lors de la configuration, vous devrez peut-être activer le mode promiscuité pour l'interface réseau afin que fatt, suricata et p0f fonctionnent correctement.
Si vous souhaitez utiliser une carte Wi-Fi comme carte réseau principale pour T-Pot, sachez que tous les pilotes d'interface réseau ne prennent pas en charge toutes les cartes sans fil. Dans VirtualBox, par exemple, vous devez choisir le modèle "MT SERVER" de la carte réseau.
T-Pot n'est limité que par la prise en charge matérielle des images de distribution Linux prises en charge. Il est recommandé de vérifier la HCL (liste de compatibilité matérielle) et de tester les distributions prises en charge avec T-Pot avant d'investir dans du matériel dédié.
T-Pot est testé et connu pour fonctionner sur...
Telekom OTC en utilisant la méthode post-installation... d'autres peuvent fonctionner, mais restent non testés.
Certains utilisateurs signalent des installations fonctionnelles sur d'autres cloud et hébergeurs, c'est-à-dire Azure et GCP. La configuration matérielle requise peut être différente. Si vous n'êtes pas sûr, vous devez rechercher les problèmes et les discussions et exécuter des tests fonctionnels. Avec T-Pot 24.04.0 et versions ultérieures, nous avons veillé à supprimer les paramètres connus pour interférer avec les installations basées sur le cloud.
Outre les ports généralement nécessaires à l'OS, c'est à dire l'obtention d'un bail DHCP, DNS, etc. T-Pot nécessitera les ports suivants pour les connexions entrantes/sortantes. Consultez l'architecture T-Pot pour une représentation visuelle. De plus, certains ports apparaîtront comme des doublons, ce qui est bien car ils sont utilisés dans différentes éditions.
Port | Protocole | Direction | Description |
---|---|---|---|
80, 443 | tcp | sortant | Gestion T-Pot : installation, mises à jour, journaux (c'est-à-dire OS, GitHub, DockerHub, Sicherheitstacho, etc. |
64294 | tcp | entrant | Gestion T-Pot : transmission des données du capteur à la ruche (via le proxy inverse NGINX) vers 127.0.0.1:64305 |
64295 | tcp | entrant | Gestion T-Pot : accès à SSH |
64297 | tcp | entrant | Accès à la gestion T-Pot au proxy inverse NGINX |
5555 | tcp | entrant | Pot de miel : ADBHoney |
5000 | UDP | entrant | Pot de miel : CiscoASA |
8443 | tcp | entrant | Pot de miel : CiscoASA |
443 | tcp | entrant | Pot de miel : CitrixHoneypot |
80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100 | tcp | entrant | Pot de miel : Conpot |
161, 623 | UDP | entrant | Pot de miel : Conpot |
22, 23 | tcp | entrant | Pot de miel : Cauris |
19, 53, 123, 1900 | UDP | entrant | Pot de miel : Ddospot |
11112 | tcp | entrant | Pot de miel : Dicompot |
21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081 | tcp | entrant | Pot de miel : Dionée |
69 | UDP | entrant | Pot de miel : Dionée |
9200 | tcp | entrant | Pot de miel : pot élastique |
22 | tcp | entrant | Pot de miel : sans fin |
21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900 | tcp | entrant | Pot de miel : héraut |
21, 22, 23, 25, 80, 110, 143, 389, 443, 445, 631, 1080, 1433, 1521, 3306, 3389, 5060, 5432, 5900, 6379, 6667, 8080, 9100, 9200, 11211 | tcp | entrant | Pot de miel : qPots de miel |
53, 123, 161, 5060 | UDP | entrant | Pot de miel : qPots de miel |
631 | tcp | entrant | Pot de miel : IPPHoney |
80, 443, 8080, 9200, 25565 | tcp | entrant | Pot de miel : Log4Pot |
25 | tcp | entrant | Pot de miel : Mailoney |
2575 | tcp | entrant | Pot de miel : Medpot |
6379 | tcp | entrant | Pot de miel : Redishoneypot |
5060 | tcp/udp | entrant | Pot de miel : SentryPeer |
80 | tcp | entrant | Pot de miel : Caisse claire (Tanner) |
8090 | tcp | entrant | Pot de miel : pot de mots |
Les ports et la disponibilité des services SaaS peuvent varier en fonction de votre situation géographique.
Pour que certains pots de miel atteignent toutes leurs fonctionnalités (c'est-à-dire Cowrie ou Log4Pot), des connexions sortantes sont également nécessaires, afin qu'ils puissent télécharger le malware de l'attaquant. Veuillez consulter la documentation de chaque pot de miel pour en savoir plus en suivant les liens vers leurs référentiels.
Il est recommandé de vous familiariser avec le fonctionnement de T-Pot et des honeypots avant de commencer à vous exposer sur Internet. Pour un démarrage rapide, exécutez une installation de T-Pot dans une machine virtuelle.
Une fois que vous êtes familiarisé avec le fonctionnement des choses, vous devez choisir un réseau dans lequel vous soupçonnez des intrus ou à partir duquel (par exemple, Internet). Sinon, T-Pot ne capturera probablement aucune attaque (sauf si vous voulez prouver quelque chose) ! Pour commencer, il est recommandé de placer T-Pot dans une zone non filtrée, où tout le trafic TCP et UDP est transmis à l'interface réseau de T-Pot. Pour éviter de rechercher les ports de gestion de T-Pot, vous devez placer T-Pot derrière un pare-feu et transférer tout le trafic TCP/UDP dans la plage de ports de 1 à 64 000 vers T-Pot tout en autorisant l'accès aux ports > 64 000 uniquement à partir d'adresses IP de confiance et/ou ou exposez uniquement les ports pertinents pour votre cas d'utilisation. Si vous souhaitez intercepter le trafic de logiciels malveillants sur des ports inconnus, vous ne devez pas limiter les ports que vous transférez, car Gluton et Honeytrap lient dynamiquement tout port TCP qui n'est pas occupé par d'autres démons Honeypot et vous donnent ainsi une meilleure représentation des risques auxquels votre configuration est exposée. .
Téléchargez l'une des images de distribution Linux prises en charge, suivez les instructions TL;DR ou git clone
le référentiel T-Pot et exécutez le programme d'installation ~/tpotce/install.sh
. Il est possible d'exécuter T-Pot sur un système Linux en cours d'exécution et pris en charge, mais une nouvelle installation est recommandée pour éviter les conflits de port avec les services en cours d'exécution. L'installateur de T-Pot nécessitera un accès direct à Internet comme décrit ici.
Étapes à suivre :
Téléchargez une distribution Linux prise en charge dans la liste ci-dessous.
Lors de l'installation, choisissez une version minimale , netinstall ou serveur qui installera uniquement les packages essentiels.
N'installez jamais un environnement de bureau graphique tel que Gnome ou KDE. T-Pot ne fonctionnera pas avec lui en raison de conflits de ports.
Assurez-vous d'installer SSH afin de pouvoir vous connecter à la machine à distance.
Nom de la distribution | x64 | bras64 |
---|---|---|
ISO de démarrage du système d'exploitation Alma Linux 9.4 | télécharger | télécharger |
Installation réseau Debian 12 | télécharger | télécharger |
Installation réseau de Fedora Server 40 | télécharger | télécharger |
Image réseau OpenSuse Tumbleweed | télécharger | télécharger |
ISO de démarrage du système d'exploitation Rocky Linux 9.4 | télécharger | télécharger |
Serveur en direct Ubuntu 24.04 | télécharger | télécharger |
Nom de la distribution | bras64 |
---|---|
Système d'exploitation Raspberry Pi ( 64 bits, Lite ) | télécharger |
Clonez le référentiel GitHub : $ git clone https://github.com/telekom-security/tpotce
ou suivez le TL;DR et ignorez cette section.
Accédez au dossier tpotce/ : $ cd tpotce
Exécutez le programme d'installation en tant que non-root : $ ./install.sh
:
Changez le port SSH en tcp/64295
Désactivez l'écouteur DNS Stub pour éviter les conflits de ports avec les pots de miel
Définir SELinux en mode moniteur
Définissez la cible du pare-feu pour la zone publique sur ACCEPTER
Ajoutez le référentiel Docker et installez Docker
Installer les packages recommandés
Supprimer les packages connus pour causer des problèmes
Ajouter l'utilisateur actuel au groupe Docker (autoriser l'interaction Docker sans sudo
)
Ajoutez des alias dps
et dpsw
( grc docker ps -a
, watch -c "grc --colour=on docker ps -a
)
Ajoutez les alias la
, ll
et ls
(par exa
, une commande ls
améliorée)
Ajoutez mi
(pour micro
, une excellente alternative à vi
et/ou nano
)
Afficher les ports ouverts sur l'hôte (comparer avec les ports requis par T-Pot)
Ajoutez et activez tpot.service
dans /etc/systemd/system
afin que T-Pot puisse démarrer et s'arrêter automatiquement
En fonction de la distribution Linux de votre choix, le programme d'installation :
Suivez les instructions de l'installateur, vous devrez saisir votre mot de passe utilisateur ( sudo
ou root
) au moins une fois
Vérifiez les messages du programme d'installation pour détecter les erreurs et les ports ouverts susceptibles de provoquer des conflits de ports.
Redémarrer : $ sudo reboot
Parfois, c'est tout simplement bien si vous pouvez créer une instance T-Pot sur macOS ou Windows, c'est-à-dire pour le développement, les tests ou simplement pour le plaisir. Comme Docker Desktop est plutôt limité, tous les types de pots de miel ou fonctionnalités T-Pot ne sont pas pris en charge. N'oubliez pas non plus que par défaut, les pare-feu macOS et Windows bloquent l'accès à distance, les tests sont donc limités à l'hôte. Pour la production, il est recommandé d'exécuter T-Pot sous Linux.
Pour que les choses soient opérationnelles, suivez simplement ces étapes :
Installez Docker Desktop pour macOS ou Windows.
Clonez le référentiel GitHub : git clone https://github.com/telekom-security/tpotce
(sous Windows, assurez-vous que le code est extrait avec LF
au lieu de CRLF
!)
Allez sur : cd ~/tpotce
Copier cp compose/mac_win.yml ./docker-compose.yml
Créez un WEB_USER
en exécutant ~/tpotce/genuser.sh
(macOS) ou ~/tpotce/genuserwin.ps1
(Windows)
Ajustez le fichier .env
en remplaçant TPOT_OSTYPE=linux
par mac
ou win
:
# OSType (linux, mac, win) # Most docker features are available on linux TPOT_OSTYPE=mac
Vous devez vous assurer par vous-même qu'aucun conflit de port n'empêche T-Pot de démarrer.
Démarrez T-Pot : docker compose up
ou docker compose up -d
si vous souhaitez que T-Pot s'exécute en arrière-plan.
Arrêter T-Pot : CTRL-C
(s'il s'exécutait au premier plan) et/ou docker compose down -v
pour arrêter complètement T-Pot.
Avec T-Pot Standard / HIVE, tous les services, outils, pots de miel, etc. seront installés sur un seul hôte qui sert également de point de terminaison HIVE. Assurez-vous de répondre à la configuration système requise. Vous pouvez ajuster ~/tpotce/docker-compose.yml
à votre cas d'utilisation personnel ou créer votre propre configuration à l'aide de ~/tpotce/compose/customizer.py
pour une expérience T-Pot adaptée à vos besoins. Une fois l'installation terminée, vous pouvez procéder au premier démarrage.
La version distribuée de T-Pot nécessite au moins deux hôtes
le T-Pot HIVE , l'installation standard de T-Pot (installez-le d'abord !),
et un T-Pot SENSOR , qui hébergera uniquement les pots de miel, certains outils et transmettra les données de journal au HIVE .
Le SENSOR ne démarrera pas avant d'avoir finalisé l'installation du SENSOR comme décrit dans Déploiement distribué.
La désinstallation de T-Pot n'est disponible que sur les distributions Linux prises en charge.
Pour désinstaller T-Pot, exécutez ~/tpotce/uninstall.sh
et suivez les instructions du programme de désinstallation, vous devrez saisir votre mot de passe au moins une fois.
Une fois la désinstallation terminée, redémarrez la machine sudo reboot
Une fois le programme d'installation de T-Pot terminé avec succès, le système doit être redémarré ( sudo reboot
). Une fois redémarré, vous pouvez vous connecter au système en utilisant l'utilisateur que vous avez configuré lors de l'installation du système. Les connexions sont fonction des types d'utilisateurs :
utilisateur : [ <OS_USERNAME>
]
passe : [mot de passe]
Vous pouvez vous connecter via SSH pour accéder à la ligne de commande : ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
utilisateur : [ <OS_USERNAME>
]
pass : [mot de passe, clé ssh recommandée]
Vous pouvez également vous connecter depuis votre navigateur et accéder à l'interface Web et aux outils de T-Pot : https://<your.ip>:64297
utilisateur : [ <WEB_USER>
]
passe : [mot de passe]
Il n'y a pas grand chose à faire à part se connecter et vérifier via dps.sh
si tous les services et honeypots démarrent correctement et se connecter à Kibana et/ou Geoip Attack Map pour surveiller les attaques.
Le déploiement distribué implique une planification car T-Pot Init créera uniquement un certificat auto-signé pour l'adresse IP de l'hôte HIVE , ce qui convient généralement aux configurations simples. Étant donné que logstash vérifiera un certificat valide lors de la connexion, une configuration distribuée impliquant HIVE doit être accessible sur plusieurs adresses IP (c'est-à-dire RFC 1918 et IP NAT publique) et peut-être même un nom de domaine entraînera une erreur de connexion où le certificat ne pourra pas être validé comme une telle configuration nécessite un certificat avec un nom commun et des SAN (Subject Alternative Name).
Avant de déployer des capteurs, assurez-vous d'avoir correctement planifié les noms de domaine et les adresses IP pour éviter les problèmes avec le certificat. Pour plus de détails, consultez le numéro 1543.
Ajustez l'exemple à votre configuration IP/domaine et suivez les commandes pour changer le certificat de HIVE :
sudo systemctl stop tpot sudo openssl req -nodes -x509 -sha512 -newkey rsa:8192 -keyout "$HOME/tpotce/data/nginx/cert/nginx.key" -out "$HOME/tpotce/data/nginx/cert/nginx.crt" -days 3650 -subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd' -addext "subjectAltName = IP:192.168.1.200, IP:1.2.3.4, DNS:my.primary.domain, DNS:my.secondary.domain" sudo chmod 774 $HOME/tpotce/data/nginx/cert/* sudo chown tpot:tpot $HOME/tpotce/data/nginx/cert/* sudo systemctl start tpot
Le fichier de configuration T-Pot ( .env
) permet de désactiver la vérification SSL pour les connexions logstash du SENSOR au HIVE en définissant LS_SSL_VERIFICATION=none
. Pour des raisons de sécurité, cela n'est recommandé que pour les environnements de laboratoire ou de test.
Si vous choisissez d'utiliser un certificat valide pour le HIVE signé par une autorité de certification (c'est-à-dire Let's Encrypt), logstash, et donc le SENSOR , ne devrait avoir aucun problème pour se connecter et transmettre ses logs au HIVE .
Une fois que vous avez redémarré le SENSOR comme indiqué par le programme d'installation, vous pouvez continuer le déploiement distribué en vous connectant à HIVE et en accédant au dossier cd ~/tpotce
. Assurez-vous d'avoir compris la planification et les certificats avant de poursuivre le déploiement proprement dit.
Si vous ne l'avez pas déjà fait, générez une clé SSH pour vous connecter en toute sécurité au CAPTEUR et permettre Ansible
d'exécuter un playbook sur le capteur :
Exécutez ssh-keygen
, suivez les instructions et laissez la phrase secrète vide :
Generating public/private rsa key pair. Enter file in which to save the key (/home/<your_user>/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/<your_user>/.ssh/id_rsa Your public key has been saved in /home/<your_user>/.ssh/id_rsa.pub
Déployez la clé du SENSOR en exécutant ssh-copy-id -p 64295 <SENSOR_SSH_USER>@<SENSOR_IP>)
:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/<your_user>/.ssh/id_rsa.pub" The authenticity of host '[<SENSOR_IP>]:64295 ([<SENSOR_IP>]:64295)' can't be stablished. ED25519 key fingerprint is SHA256:naIDxFiw/skPJadTcgmWZQtgt+CdfRbUCoZn5RmkOnQ. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys <your_user>@172.20.254.124's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '64295' '<your_user>@<SENSOR_IP>'" and check to make sure that only the key(s) you wanted were added.
Comme suggéré, suivez les instructions pour tester la connexion ssh -p '64295' '<your_user>@<SENSOR_IP>'
.
Une fois la clé déployée avec succès, exécutez ./deploy.sh
et suivez les instructions.
Identifiez le TPOT_HIVE_USER
ENV sur le SENSOR dans la configuration $HOME/tpotce/.env
(il s'agit d'une chaîne codée en base64). Identifiez maintenant la même chaîne dans LS_WEB_USER
ENV sur le HIVE dans la configuration $HOME/tpotce/.env
. Supprimez la chaîne et redémarrez T-Pot.
Vous pouvez maintenant supprimer en toute sécurité la machine SENSOR.
T-Pot est fourni afin de le rendre accessible à toute personne intéressée par les honeypots. Par défaut, les données capturées sont soumises à un backend communautaire. Ce backend communautaire utilise les données pour alimenter Sicherheitstacho. Vous pouvez vous désinscrire de la soumission en supprimant le # Ewsposter service
de ~/tpotce/docker-compose.yml
en suivant ces étapes :
Arrêter les services T-Pot : systemctl stop tpot
Ouvrez ~/tpotce/docker-compose.yml
: micro ~/tpotce/docker-compose.yml
Supprimez les lignes suivantes, enregistrez et quittez micro ( CTRL+Q
) :
# Ewsposter service ewsposter: container_name: ewsposter restart: always depends_on: tpotinit: condition: service_healthy networks: - ewsposter_local environment: - EWS_HPFEEDS_ENABLE=false - EWS_HPFEEDS_HOST=host - EWS_HPFEEDS_PORT=port - EWS_HPFEEDS_CHANNELS=channels - EWS_HPFEEDS_IDENT=user - EWS_HPFEEDS_SECRET=secret - EWS_HPFEEDS_TLSCERT=false - EWS_HPFEEDS_FORMAT=json image: ${TPOT_REPO}/ewsposter:${TPOT_VERSION} pull_policy: ${TPOT_PULL_POLICY} volumes: - ${TPOT_DATA_PATH}:/data - ${TPOT_DATA_PATH}/ews/conf/ews.ip:/opt/ewsposter/ews.ip
Démarrez les services T-Pot : systemctl start tpot
Il est encouragé à ne pas désactiver la soumission des données car c'est l'objectif principal de l'approche communautaire - comme vous le savez tous, le partage est une démarche bienveillante ?
En tant qu'Opt-In, il est possible de partager des données T-Pot avec des courtiers HPFEEDS tiers.
Suivez les instructions ici pour arrêter les services T-Pot et ouvrir ~/tpotce/docker-compose.yml
.
Faites défiler jusqu'à la section ewsposter
et ajustez les paramètres HPFEEDS à vos besoins.
Si vous devez ajouter un certificat CA, ajoutez-le à ~/tpotce/data/ews/conf
et définissez EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>
.
Démarrez les services T-Pot : systemctl start tpot
.
L'accès à distance à votre hôte / T-Pot est possible avec SSH (sur tcp/64295
) et certains services et outils sont fournis avec T-Pot pour faciliter grandement certaines de vos tâches de recherche.
Selon les types d'utilisateurs, vous pouvez vous connecter via SSH pour accéder à la ligne de commande : ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
utilisateur : [ <OS_USERNAME>
]
passe : [mot de passe]
Selon les types d'utilisateurs, vous pouvez ouvrir la page de destination T-Pot depuis votre navigateur via https://<your.ip>:64297
:
utilisateur : [ <WEB_USER>
]
passe : [mot de passe]
Sur la page de destination de T-Pot, cliquez simplement sur Kibana
et vous serez redirigé vers Kibana. Vous pouvez choisir parmi une grande variété de tableaux de bord et de visualisations, tous adaptés aux pots de miel pris en charge par T-Pot.
Sur la page d'accueil de T-Pot, cliquez simplement sur Attack Map
et vous serez redirigé vers la carte d'attaque. Étant donné que la carte d'attaque utilise des sockets Web, vous devrez peut-être saisir à nouveau les informations d'identification <WEB_USER>
.
Sur la page de destination de T-Pot, cliquez simplement sur Cyberchef
et vous serez redirigé vers Cyberchef.
Sur la page de destination de T-Pot, cliquez simplement sur Elasticvue
et vous serez redirigé vers Elasticvue.
Sur la page de destination de T-Pot, cliquez simplement sur Spiderfoot
et vous serez redirigé vers Spiderfoot.
T-Pot propose un fichier de configuration fournissant des variables non seulement pour les services Docker (c'est-à-dire les pots de miel et les outils) mais également pour l'environnement de composition Docker. Le fichier de configuration est caché dans ~/tpoce/.env
. Il existe également un fichier d'exemple ( env.example
) qui contient la configuration par défaut.
Avant le premier démarrage, exécutez ~/tpotce/genuser.sh
ou configurez manuellement WEB_USER
comme décrit ici.
Dans ~/tpotce/compose
vous trouverez tout ce dont vous avez besoin pour régler l'installation de T-Pot Standard / HIVE :
customizer.py mac_win.yml mini.yml mobile.yml raspberry_showcase.yml sensor.yml standard.yml tpot_services.yml
Les fichiers .yml
sont des fichiers de composition Docker, chacun représentant un ensemble différent de pots de miel et d'outils, tpot_services.yml
étant un modèle pour customizer.py
pour créer un fichier de composition Docker personnalisé.
Pour activer un fichier de composition, suivez ces étapes :
Arrêtez T-Pot avec systemctl stop tpot
.
Copiez le fichier de composition docker cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml
.
Démarrez T-Pot avec systemctl start tpot
.
Pour créer votre fichier de composition Docker personnalisé :
Allez sur cd ~/tpotce/compose
.
Exécutez python3 customizer.py
.
Le script vous guidera tout au long du processus de création de votre propre docker-compose.yml
. Comme certains pots de miel et services occupent les mêmes ports, il vérifiera si des conflits de ports sont présents et informera concernant les services en conflit. Vous pouvez ensuite les résoudre manuellement en ajustant docker-compose-custom.yml
ou réexécuter le script.
Arrêtez T-Pot avec systemctl stop tpot
.
Copiez le fichier de composition Docker personnalisé : cp docker-compose-custom.yml ~/tpotce
et cd ~/tpotce
.
Vérifiez si tout fonctionne en exécutant docker-compose -f docker-compose-custom.yml up
. En cas d'erreurs, suivez la spécification Docker Compose pour l'atténuation. Il s'agit très probablement simplement d'un conflit de port que vous pouvez régler en modifiant le fichier de composition du docker.
Si tout fonctionne correctement, appuyez sur CTRL-C
pour arrêter les conteneurs et exécutez docker-compose -f docker-compose-custom.yml down -v
.
Remplacez le fichier de composition docker par le nouveau fichier de composition docker personnalisé testé avec succès mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml
.
Démarrez T-Pot avec systemctl start tpot
.
T-Pot est conçu pour nécessiter peu d’entretien. Étant donné que presque tout est fourni via des images Docker, vous n'avez pratiquement rien d'autre à faire que de le laisser fonctionner. Nous mettrons régulièrement à jour les images Docker pour réduire les risques de compromission ; cependant, vous devriez lire cette section attentivement.
En cas d'échec d'une mise à jour, l'ouverture d'un problème ou d'une discussion aidera à améliorer les choses à l'avenir, mais la solution proposée sera toujours d'effectuer une nouvelle installation car nous ne pouvons tout simplement pas fournir d'assistance pour les données perdues !
La sécurité de T-Pot dépend des mises à jour fournies pour les images de distribution Linux prises en charge. Assurez-vous de consulter la documentation du système d'exploitation et de vous assurer que les mises à jour sont installées régulièrement par le système d'exploitation. Par défaut ( ~/tpotce/.env
) TPOT_PULL_POLICY=always
garantira qu'à chaque démarrage de T-Pot, Docker vérifiera les nouvelles images Docker et les téléchargera avant de créer les conteneurs.
Les versions de T-Pot sont proposées via GitHub et peuvent être extraites à l'aide de ~/tpotce/update.sh
.
Si vous avez apporté des modifications pertinentes aux fichiers de configuration de T-Pot, assurez-vous d'abord de créer une sauvegarde !
Les mises à jour peuvent avoir des conséquences imprévues. Créez une sauvegarde de la machine ou des fichiers les plus précieux pour votre travail !
Le script de mise à jour va...
écraser sans pitié les modifications locales pour être synchronisé avec la branche principale de T-Pot
créer une sauvegarde complète du dossier ~/tpotce
mettre à jour tous les fichiers dans ~/tpotce
pour être synchronisés avec la branche principale de T-Pot
restaurez votre ews.cfg
personnalisé à partir de ~/tpotce/data/ews/conf
et la configuration T-Pot ( ~/tpotce/.env
).
Par défaut, T-Pot ajoutera un redémarrage quotidien comprenant un peu de nettoyage. Vous pouvez ajuster cette ligne avec sudo crontab -e
#Ansible: T-Pot Daily Reboot 42 2 * * * bash -c 'systemctl stop tpot.service && docker container prune -f; docker image prune -f; docker volume prune -f; /usr/sbin/shutdown -r +1 "T-Pot Daily Reboot"'
Les problèmes suivants sont connus, suivez simplement les étapes décrites pour les résoudre.
Il y a quelque temps, Docker a introduit des limites de débit de téléchargement. Si vous téléchargez fréquemment des images Docker via une adresse IP unique ou partagée, l'adresse IP peut avoir atteint la limite de débit de téléchargement Docker. Connectez-vous à votre compte Docker pour étendre la limite de débit.
sudo su - docker login
T-Pot est conçu pour fonctionner uniquement sur des machines dotées d'une seule carte réseau. T-Pot tentera de récupérer l'interface avec la route par défaut, mais il n'est pas garanti que cela réussisse toujours. Au mieux, utilisez T-Pot sur des machines dotées d'une seule carte réseau.
Le service T-Pot démarre et s'arrête automatiquement à chaque redémarrage (ce qui se produit une fois par jour lors de la configuration dans sudo crontab -l
lors de l'installation).
Si vous souhaitez démarrer manuellement le service T-Pot vous pouvez le faire via systemctl start tpot
et observer via dpsw
le démarrage des conteneurs.
Le service T-Pot démarre et s'arrête automatiquement à chaque redémarrage (ce qui se produit une fois par jour lors de la configuration dans sudo crontab -l
lors de l'installation).
Si vous souhaitez arrêter manuellement le service T-Pot, vous pouvez le faire via systemctl stop tpot
et observer via dpsw
l'arrêt des conteneurs.
Tous les fichiers journaux persistants des pots de miel, des outils et des services liés à T-Pot sont stockés dans ~/tpotce/data
. Cela inclut les artefacts collectés qui ne sont pas transmis à la Suite Elastic.
Toutes les données de journal stockées dans le dossier de données T-Pot seront conservées pendant 30 jours par défaut.
Les index Elasticsearch sont gérés par la politique de cycle de vie de l'index tpot
qui peut être ajustée directement dans Kibana (assurez-vous d'« Inclure les politiques de système géré »).
Par défaut, la politique de cycle de vie des index tpot
conserve les index pendant 30 jours. Cela offre un bon équilibre entre stockage et vitesse. Cependant, vous pouvez adapter la politique à vos besoins.
Toutes les données de journal stockées dans le dossier de données T-Pot (à l'exception des index Elasticsearch, bien sûr) peuvent être effacées en exécutant clean.sh
. Parfois, les choses peuvent devenir irréparables et il n'a jamais été aussi simple de réinitialiser un T-Pot aux paramètres d'usine par défaut (assurez-vous de saisir cd ~/tpotce
).
Arrêtez T-Pot en utilisant systemctl stop tpot
.
Déplacez/Sauvegardez le dossier ~/tpotce/data
dans un endroit sûr (ceci est facultatif, juste au cas où).
Supprimez le dossier ~/tpotce/data
à l'aide de sudo rm -rf ~/tpotce/data
.
Réinitialisez T-Pot au dernier commit récupéré :
cd ~/tpotce/ git reset --hard
Vous pouvez maintenant exécuter ~/tpotce/install.sh
.
Vous pouvez afficher tous les conteneurs pertinents pour T-Pot en exécutant dps
ou dpsw [interval]
. Le interval (s)
seront réexécutés périodiquement dps.sh
Blackhole exécutera T-Pot en mode furtif, sans visites permanentes de scanners connus du public, réduisant ainsi la possibilité d'être exposé. Bien qu'il s'agisse bien sûr toujours d'un jeu du chat et de la souris, la fonction Blackhole ne permet pas de router toutes les requêtes des scanners de masse connus tout en capturant les événements via Suricata.
La fonctionnalité est activée en définissant TPOT_BLACKHOLE=DISABLED
dans ~/tpotce/.env
, puis exécutez systemctl stop tpot
et systemctl start tpot
ou sudo reboot
.
L'activation de cette fonctionnalité réduira considérablement la visibilité des attaquants et entraînera par conséquent moins d'activité. Cependant, comme déjà mentionné, cela ne garantit pas une totale furtivité et n'empêchera pas la prise d'empreintes digitales de certains services honeypot.
Nginx (T-Pot WebUI) vous permet d'ajouter autant de comptes <WEB_USER>
que vous le souhaitez (selon les types d'utilisateurs).
Pour ajouter un nouvel utilisateur, exécutez ~/tpotce/genuser.sh
.
Pour supprimer des utilisateurs, ouvrez ~/tpotce/.env
, localisez WEB_USER
et supprimez la chaîne base64 correspondante (pour décoder : echo <base64_string> | base64 -d
, ou ouvrez CyberChef et chargez la recette "From Base64").
Pour que les modifications prennent effet, vous devez redémarrer T-Pot en utilisant systemctl stop tpot
et systemctl start tpot
ou sudo reboot
.
Certaines mises à jour de T-Pot vous obligeront à mettre à jour les objets Kibana. Soit pour prendre en charge de nouveaux pots de miel, soit pour améliorer les tableaux de bord ou les visualisations existants. Assurez-vous d’ exporter d’abord afin de ne perdre aucun de vos ajustements.
Aller à Kibana
Cliquez sur "Gestion de la pile"
Cliquez sur "Objets enregistrés"
Cliquez sur "Exporter les objets <n°>"
Cliquez sur "Tout exporter". Cela exportera un fichier NDJSON avec tous vos objets. Exécutez toujours une exportation complète pour vous assurer que toutes les références sont incluses.
Téléchargez le fichier NDJSON et décompressez-le.
Aller à Kibana
Cliquez sur "Gestion de la pile"
Cliquez sur "Objets enregistrés"
Cliquez sur "Importer" et laissez les valeurs par défaut (vérifiez les objets existants et écrasez automatiquement les conflits) si vous n'avez pas apporté de modifications personnelles aux objets Kibana.
Rechercher le fichier NDJSON À la question : « Si l'un des objets existe déjà, souhaitez-vous les écraser automatiquement ? » vous répondez par "Oui, tout écraser".
Généralement T-Pot est proposé tel quel sans aucun engagement concernant le support. Les problèmes et les discussions peuvent être ouverts, mais soyez prêt à inclure les informations de base nécessaires pour que la communauté puisse vous aider.
Vérifiez si vos conteneurs fonctionnent correctement : dps
Vérifiez si les ressources de votre système ne sont pas épuisées : htop
, docker stats
Vérifiez s'il y a un conflit de port :
systemctl stop tpot grc netstat -tulpen mi ~/tpotce/docker-compose.yml docker-compose -f ~/tpotce/docker-compose.yml up CTRL+C docker-compose -f ~/tpotce/docker-compose.yml down -v
Vérifiez les journaux de conteneur individuels : docker logs -f <container_name>
Vérifiez le journal tpotinit
: cat ~/tpotce/data/tpotinit.log
La Suite Elastic est gourmande en RAM, en particulier logstash
et elasticsearch
. Si la pile élastique n'est pas disponible, ne reçoit aucun journal ou ne cesse de s'écraser, c'est probablement un problème de RAM ou de stockage.
Alors que T-Pot continue d'essayer de redémarrer les services / conteneurs exécuter docker logs -f <container_name>
( logstash
ou elasticsearch
) et vérifiez s'il y a des avertissements ou des échecs impliquant RAM.
Les échecs de stockage peuvent être identifiés plus facilement via htop
.
Le T-Pot est fourni comme c'est l'open source sans aucun engagement concernant le soutien (voir l'avertissement).
Si vous êtes chercheur en sécurité et que vous souhaitez signaler de manière responsable un problème, veuillez contacter notre certificat.
Veuillez signaler les problèmes (erreurs) sur nos problèmes GitHub, mais dépanner d'abord. Les problèmes qui ne fournissent pas d'informations pour résoudre l'erreur seront fermés ou convertis en discussions.
Utilisez d'abord la fonction de recherche, il est possible qu'un problème similaire ait été résolu ou discuté déjà, avec la solution à une recherche.
Les questions générales, les idées, les spectacles et le discours, etc. peuvent être abordées sur nos discussions GitHub.
Utilisez la fonction de recherche, il est possible qu'une discussion similaire ait déjà été ouverte, avec une réponse à une recherche.
Le logiciel sur lequel T-Pot est construit utilise les licences suivantes.
GPLV2: CONPOT, DIONAEA, Honeytrap, Suricata
GPLV3: Adbhoney, Elasticpot, Ewsoster, Log4pot, Fatt, Heralding, IPHoney, Redishoneypot, Sentrypeer, Snare, Tanner
Licence Apache 2: Cyberchef, Dicompot, Elasticsearch, Logstash, Kibana, Docker
Licence MIT: Autoheal, Ciscoasa, Ddospot, Elasticvue, Glutton, Hellpot, Maltrail
Non-licence: sans fin
Autre: CitrixhoneyPot, Cowrie, Mailoney, Licence élastique, Wordpot
AGPL-3.0: Pots de miel
Domaine public (CC): Harvard Dataverse
Sans open source et la communauté de développement dont nous sommes fiers de faire partie, T-Pot n'aurait pas été possible! Nos remerciements sont étendus mais sans s'y limiter aux personnes et aux organisations suivantes:
adbhoney
ciscoasa
citrixhoneypot
conot
cauris
ddospot
dicompotter
Dionaea
docker
élastique
recherche élastique
élastiquevue
sans fin
ewsposter
gras
glouton
enfer
annonciateur
pots de miel
piège à miel
iPhoney
kibana
cachette de bûches
log4pot
courrier électronique
maltraitement
medpot
p0f
redishoneypot
sentinelle
spiderfoot
piège
tanneur
surinata
wordpot
Les entreprises et organisations suivantes
docker
elastic.io
Projet Honeynet
... et bien sûr vous pour avoir rejoint la communauté!
Merci d'avoir joué?
L'un des plus grands commentaires que nous ayons obtenus jusqu'à présent est l'un des développeurs CONPOT:
"[...] Je recommande fortement T-Pot qui est ... ce n'est pas exactement un couteau suisse de l'armée. C'est plus comme un soldat de l'armée suisse, équipé d'un couteau suisse. À l'intérieur d'un réservoir. Un réservoir suisse. [ ...] "
Et de @RobCowart (créateur d'Elastiflow):
"#TPOT est l'une des solutions de pot de miel les plus bien conçues. C'est un incontournable pour quiconque souhaite analyser et comprendre le comportement des acteurs malveillants et la menace qu'ils constituent pour votre organisation."