jueves, 10 de marzo de 2011

Ataques de fuerza bruta online con Nmap

Ataques de fuerza bruta online con Nmap: "
Hace aproximadamente un año los creadores de nmap lanzaban ncrack, un programa para hacer fuerza bruta online a varios servicios. Hoy todavía se encuentra en versión Alpha 0.3.



En la última versión de Nmap, anunciada en nmap-hackers hace poco más de un mes, han incluido en la instalación por defecto un puñado de scripts para su motor NSE (Nmap Scripting Engine) que nos permiten hacer fuerza bruta a un buen número de servicios. En la documentación de NSE podéis encontrar todos los scripts, los *-brute son los de bruteforcing.



Hay que remarcar que, en este caso, cuando decimos ataques por fuerza bruta estamos refiriéndonos a ataques mediante diccionario, los más utilizados cuando se trata de fuerza bruta de credenciales online.



Por el momento se encuentran protocolos muy comunes, junto con otros más inusuales. Por otro lado se echa en falta, por ejemplo, SSH.



Los protocolos incluidos a día de hoy son:


afp-brute

domcon-brute

drda-brute

ftp-brute

http-brute

http-form-brute

informix-brute

iscsi-brute

ldap-brute

ms-sql-brute

mysql-brute

netbus-brute

oracle-brute

oracle-sid-brute

pgsql-brute

pop3-brute

smb-brute

snmp-brute

svn-brute

telnet-brute

vnc-brute



El uso de los scripts es especialmente amigable. Solamente con indicarle a nmap el script que queremos utilizar, intentará realizar el ataque cuando encuentre el o los servicios activos en un escaneo.


nmap --script vnc-brute 127.0.0.1



Para afinar un poco más, si solo queremos realizar el ataque y sabemos de antemano el puerto y el servicio sería conveniente indicarlo.


nmap -p 5900 --script vnc-brute 127.0.0.1



Por supuesto, podemos hacer escaneos a rangos de IPs y nmap lanzará el script solo a los hosts que coincidan con el protocolo.


nmap --script mysql-brute 192.168.1.1-255



Respecto a los diccionarios que se utilizan, nmap incluye los suyos propios (tanto de usuarios como de contraseñas) a través de su librería unpwdb. Podemos cambiar cualquiera de los dos mediante los parámetros userdb y passdb.


nmap --script ftp-brute --script-args userdb=/tmp/users 127.0.0.1

nmap --script ftp-brute --script-args userdb=/tmp/users,passdb=/tmp/passwds 127.0.0.1



Ejemplo de uso contra un host que tiene VNC escuchando:


alberto@asdfqwerty:~$ nmap --script vnc-brute localhost



Starting Nmap 5.51 ( http://nmap.org )

Nmap scan report for localhost (127.0.0.1)

Host is up (0.00056s latency).

Other addresses for localhost (not scanned): 127.0.0.1

Not shown: 995 closed ports

PORT STATE SERVICE

21/tcp open ftp

631/tcp open ipp

3306/tcp open mysql

5900/tcp open vnc

| vnc-brute:

| Accounts

| 1234 => Login correct

| Statistics

|_ Perfomed 609 guesses in 369 seconds, average tps: 1



Nmap done: 1 IP address (1 host up) scanned in 374.46 seconds
"