Muchos usuarios lo ignoran, pero al emplear la cámara de su laptop o cualquier otra cámara con conexión WiFi, su dirección MAC se volverá visible para cualquiera en Internet. Además, los expertos en seguridad en redes del Instituto Internacional de Seguridad Cibernética (IICS) mencionan que es posible detectar múltiples datos de un usuario incluso si su cámara no está directamente conectada a la red.
Si la camera utiliza una red cableada, los métodos descritos a continuación no pueden detectar dicho dispositivo. Por otra parte, los dispositivos WiFi y sus direcciones MAC se pueden recopilar usando airodump-ng, para dispositivos en la red a la que estamos conectados, las direcciones MAC se pueden obtener usando Nmap, aunque necesitamos una base de datos de fabricantes de cámaras ocultas y cámaras en general.
Bases de datos con direcciones MAC
Muchas veces no podremos encontrar dichas bases de datos, aunque podremos recurrir a las listas creadas por entusiastas, mencionan los expertos en seguridad en redes. Otra herramienta útil es el sitio web https://ift.tt/37NrJOD, que cuenta con múltiples listas que contienen esta clase de información.
El nombre correcto del fabricante puede coincidir fácilmente con la base de datos MAC, por lo que solo necesitamos recopilar los nombres de los proveedores; esto es perfecto para nuestro objetivo de encontrar cámaras ocultas.
Cree un archivo vendors.sh:
gedit vendors.sh
Copie el siguiente código en el archivo:
#!/bin/bash TMP_FILE='/tmp/vendors.txt' FILE='vendors.txt' curl -s 'https://directory.ifsecglobal.com/screens-monitors-code004843.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' > $TMP_FILE curl -s 'https://directory.ifsecglobal.com/cameras-code004815.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/cctv-poles-and-columns-code004816.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/data-storage-solutions-code009685.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/voice-video-integrated-data-systems-code004908.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/dvr-code004822.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/voice-video-integrated-data-storage-code004941.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/nvr-code004827.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/4k-cameras-code009684.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/anpr-code004813.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/body-worn-cameras-code007865.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/hd-quality-cameras-code007866.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/low-light-level-camera-systems-code007867.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/camera-housings-code004814.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/internet-remote-surveillance-code004932.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/cctv-monitoring-code004999.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/dome-camera-code004821.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/ip-cameras-code004823.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/security-camera-lenses-code004824.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/security-monitors-code004825.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/security-screens-code007437.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/ptz-camera-code004828.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/switches-code004968.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/remote-surveillance-code004829.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/public-space-surveillance-code005012.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/infrared-cameras-code007439.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/thermal-imaging-code004833.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/ai-machinelearning-code009668.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/security-cameras-code007485.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/video-surveillance-code007482.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://directory.ifsecglobal.com/video-surveillance-code004812.html' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE #curl -s '' | grep -E 'ed-companyName' | grep -E -o '">[^/]+<' | sed 's/<//' | sed 's/">//' >> $TMP_FILE curl -s 'https://www.ispyconnect.com/sources.aspx?letter=A' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=B' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=C' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=D' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=E' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=F' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=G' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=H' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=I' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=J' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=K' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=L' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=M' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=N' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=O' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=P' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=Q' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=R' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=S' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=T' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=U' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=V' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=W' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=X' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=Y' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=Z' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=2' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=3' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=4' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=5' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=7' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=8' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done curl -s 'https://www.ispyconnect.com/sources.aspx?letter=9' | grep -E -o 'man\.aspx\?n=[^"]{1,}"' | sed 's/man.aspx?n=//' | sed 's/"//' | while read -r line ; do grep -E "$line " vendors.txt >> $TMP_FILE done echo 'Tenda Technology Co., Ltd.' >> $TMP_FILE #https://www.google.com/search?q=Tenda+Technology+CCTV&tbm=isch echo 'LG Innotek' >> $TMP_FILE #https://www.google.com/search?q=LG+Innotek+CCTV&tbm=isch echo 'Hand Held Products Inc' >> $TMP_FILE #Handheld Thermal Cameras echo 'Wistron Neweb Corporation' >> $TMP_FILE #https://www.wnc.com.tw/index.php?action=pro_detail&id=76 echo 'HangZhou KuoHeng Technology Co.,ltd' >> $TMP_FILE #https://www.google.com/search?q=HangZhou+KuoHeng+Technology&tbm=isch echo 'VCS Video Communication Systems AG' >> $TMP_FILE echo 'D-Link International' >> $TMP_FILE echo 'Cisco-Linksys, LLC' >> $TMP_FILE echo 'ICP Internet Communication Payment AG' >> $TMP_FILE echo 'China Dragon Technology Limited' >> $TMP_FILE echo 'SAMSUNG TECHWIN CO.,LTD' >> $TMP_FILE echo 'Hanwha Techwin Security Vietnam' >> $TMP_FILE echo 'Beward R&D Co., Ltd.' >> $TMP_FILE echo 'Lorex Technology Inc.' >> $TMP_FILE echo 'TP-LINK TECHNOLOGIES CO.,LTD.' >> $TMP_FILE echo 'ABUS Security-Center GmbH & Co. KG' >> $TMP_FILE echo 'ACM Systems' >> $TMP_FILE echo 'Aztech Electronics Pte Ltd' >> $TMP_FILE echo 'Axium Technologies, Inc.' >> $TMP_FILE echo 'Ace Axis Limited' >> $TMP_FILE #echo '' >> $TMP_FILE echo "Total vendors in the list: "`cat $TMP_FILE | wc -l` cat $TMP_FILE | sort| uniq > $FILE echo "Unique vendors in the list: "`cat $FILE | wc -l`
El código se ejecuta de la siguiente forma:
bash ./vendors.sh
Esto creará un archivo vendors.txt.
Estadísticas:
Total vendors in the list: 1665 Unique vendors in the list: 680
En total, se encontraron 680 fabricantes únicos, mencionan los expertos en seguridad en redes. A continuación puede explorar la lista de vendors.txt y eliminar las entradas que crea innecesarias. Por ejemplo, noté que muchas entradas mencionan a “HUAWEI TECHNOLOGIES CO., LTD”, ya que esta empresa también fabrica teléfonos móviles.
Escáner de cámaras ocultas con WiFi por dirección MAC
Ahora que tenemos una base de datos de fabricantes de cámaras ocultas, necesitamos recopilar direcciones MAC a nuestro alcance. Usaremos un método que ha demostrado ser exitoso anteriormente. Los siguientes son los comandos para comenzar a recopilar información. Los expertos en seguridad en redes recomiendan consultar material adicional en caso de no entender plenamente la siguiente instrucción.
Para analizar el archivo .csv, airodump-ng necesita crearlo. Para ello, transferimos la tarjeta inalámbrica al modo monitor. Siempre comienzo con los siguientes dos comandos para que ningún proceso se interponga en el camino:
sudo systemctl stop NetworkManager sudo airmon-ng check kill
Después de eso, pondremos la tarjeta WiFi en modo monitor:
sudo ip link set wlan0 down sudo iw wlan0 set monitor control sudo ip link set wlan0 up
Ahora ejecutamos airodump-ng con el siguiente comando:
sudo airodump-ng --berlin 60000 -w /tmp/test wlan0
Si también está interesado en la banda de 5 GHz y si su tarjeta inalámbrica la admite, puede ejecutarla con el siguiente comando:
sudo airodump-ng --channel 1-13,36-165 --berlin 60000 -w /tmp/test wlan0
En el ejemplo, se guarda en el archivo /home/mial/cameras-01.csv; se obtiene una respuesta de 1600 líneas allí, por lo que esto no será analizado manualmente.
cat /home/mial/cameras-01.csv | wc -l 1600
A continuación deberemos usar un script más ligero que simplemente verificará si hay una cámara de vigilancia alrededor. Y si es así, puede ejecutar un script más pesado para analizar a qué puntos de acceso están conectados.
Cree el archivo fc.sh:
gedit fc.sh
Copie ahí el siguiente código:
#!/bin/bash if [[ "$1" && -f "$1" ]]; then FILE="$1" else echo 'Укажите .csv файл, который вы хотите проанализировать.'; echo 'Пример запуска:'; echo -e "\tbash fc.sh /tmp/test-01.csv"; exit fi while read -r line ; do newline="$(echo $line | grep -E '([A-Z0-9:]{17})')" if [ "$newline" ]; then MAC2=`echo "$newline" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6` resultshort="$(grep -i ^$MAC2 ./oui.txt)"; vendor=`echo "$resultshort" | cut -f 3` #vendor=`echo "$resultshort" | awk -F '\t' '{print $3}'` if [ "$vendor" ]; then result3=${vendor%,*} iscamera='' iscamera=`cat vendors.txt | grep -i "$result3"` if [ "$iscamera" ]; then echo echo $newline echo $vendor echo -e "\t\t\t\033[7mВероятно, это камера или другое устройство слежения\e[0m" echo fi fi fi done < <(grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){5} ([A-Z0-9:]{17})|(not associated)' $FILE | awk -F ',' '{print $1}')
El código se ejecuta como se muestra a continuación:
bash ./fc.sh /ПУТЬ/ДО/ФАЙЛА.csv
Si el archivo que obtuvimos de airodump-ng se encuentra en /tmp/test-01.csv, entonces el comando es el siguiente:
bash fc.sh /tmp/test-01.csv
También necesitamos un archivo con una base de datos de direcciones MAC y sus respectivos fabricantes; descárguelo en el mismo directorio donde colocó el archivo fc.sh. Debe descargar este archivo antes de ejecutar fc.sh y todos los demás scripts de este artículo:
wget http://standards-oui.ieee.org/oui/oui.txt
Arreglamos el archivo descargado, ya que utiliza un salto de línea DOS / Windows. En nuestro caso, sin aplicar las correcciones necesarias el programa grep no pudo encontrar la línea, incluso si coincide con el patrón:
dos2unix -i oui.txt
El script, utilizando una base de datos que asigna a los fabricantes a sus direcciones MAC asignadas (oui.txt), determinará el nombre del proveedor para cada dirección MAC recopilada y luego verificará si este proveedor está presente en la lista de fabricantes de cámaras de vigilancia, mencionan los expertos en seguridad en redes.
El script mostrará la dirección MAC y los nombres de los fabricantes de todas las posibles cámaras. Si el guión no mostraba nada, no se encontró nada.
Recuerde que algunos proveedores producen otros dispositivos además de las cámaras de seguridad, por lo tanto, es muy probable que se produzcan “falsas alarmas”. Si se encuentra algo, o incluso si el script muestra una docena de dispositivos, esto no significa que todos sean cámaras WiFi ocultas. En primer lugar, preste atención al fabricante, puesto que a menudo se trata de fabricantes de smartphones.
Aún así, si encuentra algo interesante los expertos en seguridad en redes le recomiendan usar un script que muestre a qué puntos de acceso están conectados todos los dispositivos.
Cree el archivo findcameras.sh:
gedit findcameras.sh
Copie el siguiente código en él:
#!/bin/bash if [[ "$1" && -f "$1" ]]; then FILE="$1" else echo 'Укажите .csv файл, который вы хотите проанализировать.'; echo 'Пример запуска:'; echo -e "\tbash findcameras.sh /tmp/test-01.csv"; exit fi echo -e "\033[1mВсего точек доступа: \033[0;31m`grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){14}' $FILE | wc -l`\e[0m" echo -e "\033[1mВсего клиентов: \033[0;31m`grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){5} ([A-Z0-9:]{17})|(not associated)' $FILE | wc -l`\e[0m" echo -e "\033[1mИз них клиентов без ассоциации: \033[0;31m`grep -E '(not associated)' $FILE | wc -l`\e[0m" echo -e "\033[0;36m\033[1mИнформация о сетях:\e[0m" while read -r line ; do if [ "`echo "$line" | cut -d ',' -f 14`" != " " ]; then echo -e "\033[1m" `echo -e "$line" | cut -d ',' -f 14` "\e[0m" else echo -e " \e[3mне удалось получить имя сети\e[0m" fi fullMAC=`echo "$line" | cut -d ',' -f 1` echo -e "\tMAC-адрес: $fullMAC" MAC=`echo "$fullMAC" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6` result="$(grep -i -A 1 ^$MAC ./oui.txt)"; if [ "$result" ]; then echo -e "\tПроизводитель: `echo "$result" | cut -f 3`" else echo -e "\tПроизводитель: \e[3mИнформация не найдена в базе данных.\e[0m" fi is5ghz=`echo "$line" | cut -d ',' -f 4 | grep -i -E '36|40|44|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140'` if [ "$is5ghz" ]; then echo -e "\t\033[0;31mРаботает на 5 ГГц!\e[0m" fi printonce="\tИнформация о подключённых клиентах:" while read -r line2 ; do clientsMAC=`echo $line2 | grep -E "$fullMAC"` if [ "$clientsMAC" ]; then if [ "$printonce" ]; then echo -e $printonce printonce='' fi echo -e "\t\t\033[0;32m" `echo $clientsMAC | cut -d ',' -f 1` "\e[0m" MAC2=`echo "$clientsMAC" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6` result2="$(grep -i -A 1 ^$MAC2 ./oui.txt)"; if [ "$result2" ]; then echo -e "\t\t\tПроизводитель: `echo "$result2" | cut -f 3`" ismobile=`echo $result2 | grep -i -E 'Olivetti|Sony|Mobile|Apple|Samsung|HUAWEI|Motorola|TCT|LG|Ragentek|Lenovo|Shenzhen|Intel|Xiaomi|zte|MEIZU'` warning=`echo $result2 | grep -i -E 'ALFA|Intel'` if [ "$ismobile" ]; then echo -e "\t\t\t\033[0;33mВероятно, это мобильное устройство\e[0m" fi if [ "$warning" ]; then echo -e "\t\t\t\033[0;31;5;7mУстройство может поддерживать режим монитора\e[0m" fi resultshort="$(grep -i ^$MAC2 ./oui.txt)"; vendor=`echo "$resultshort" | cut -f 3` if [ "$vendor" ]; then result3=${vendor%,*} iscamera='' iscamera=`cat vendors.txt | grep -i "$result3"` if [ "$iscamera" ]; then echo -e "\t\t\t\033[7mВероятно, это камера или другое устройство слежения\e[0m" fi fi else echo -e "\t\t\tПроизводитель: \e[3mИнформация не найдена в базе данных.\e[0m" fi probed=`echo $line2 | cut -d ',' -f 7` if [ "`echo $probed | grep -E [A-Za-z0-9_\\-]+`" ]; then echo -e "\t\t\tИскал сети: $probed" fi fi done < <(grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){5} ([A-Z0-9:]{17})|(not associated)' $FILE) done < <(grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){14}' $FILE) echo -e "\033[0;36m\033[1mИнформация о неподключённых клиентах:\e[0m" while read -r line2 ; do clientsMAC=`echo $line2 | cut -d ',' -f 1` echo -e "\033[0;31m" `echo $clientsMAC | cut -d ',' -f 1` "\e[0m" MAC2=`echo "$clientsMAC" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6` result2="$(grep -i -A 1 ^$MAC2 ./oui.txt)"; if [ "$result2" ]; then echo -e "\tПроизводитель: `echo "$result2" | cut -f 3`" ismobile=`echo $result2 | grep -i -E 'Olivetti|Sony|Mobile|Apple|Samsung|HUAWEI|Motorola|TCT|LG|Ragentek|Lenovo|Shenzhen|Intel|Xiaomi|zte'` warning=`echo $result2 | grep -i -E 'ALFA|Intel'` if [ "$ismobile" ]; then echo -e "\t\033[0;33mВероятно, это мобильное устройство\e[0m" fi if [ "$warning" ]; then echo -e "\t\033[0;31;5;7mУстройство может поддерживать режим монитора\e[0m" fi resultshort="$(grep -i ^$MAC2 ./oui.txt)"; vendor=`echo "$resultshort" | cut -f 3` if [ "$vendor" ]; then result3=${vendor%,*} iscamera='' iscamera=`cat vendors.txt | grep -i "$result3"` if [ "$iscamera" ]; then echo -e "\t\t\t\033[7mВероятно, это камера или другое устройство слежения\e[0m" fi fi else echo -e "\tПроизводитель: \e[3mИнформация не найдена в базе данных.\e[0m" fi probed=`echo $line2 | cut -d ',' -f 7` if [ "`echo $probed | grep -E [A-Za-z0-9_\\-]+`" ]; then echo -e "\tИскал сети: $probed" fi done < <(grep -E '(not associated)' $FILE)
El código se ejecuta así:
bash findcameras.sh /ПУТЬ/ДО/ФАЙЛА.csv
Por ejemplo:
bash findcameras.sh /tmp/test-01.csv
Este script, como el anterior, requiere archivos oui.txt y vendors.txt. Hand Held Products Inc fabrica tanto cámaras termográficas como varios lectores de códigos de barras, etc. Puede ser cualquiera de estos dispositivos, ya que se trata de un TD de una tienda.
Wistron Neweb Corporation fabrica una variedad de productos electrónicos, incluyendo una cámara IP muy popular.
En lugar de conectarse a través de una red WiFi, las cámaras pueden usar una red cableada; estas cámaras no se incluirán en la lista.
Buscar cámaras de vigilancia en la red local
Este método funciona solo en redes donde puede obtener las direcciones MAC de otros dispositivos, es decir, solo en redes locales. Escanear Internet es inútil. Entre las redes LAN a las que nos conectamos a menudo están los puntos de acceso WiFi públicos en aeropuertos, hoteles, restaurantes, transporte público, etc.
Cree el archivo fcl.sh:
gedit fcl.sh
Copie el siguiente código en él:
#!/bin/bash if [[ "$1" ]]; then NET="$1" else echo 'Укажите подсеть для поиска камер наблюдения'; echo 'Пример запуска:'; echo -e "\tbash ./fcl.sh 192.168.0.0/24"; exit fi found=0 while read -r line ; do newline=$line if [ "$newline" ]; then MAC2=`echo "$newline" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6` resultshort="$(grep -i ^$MAC2 ./oui.txt)"; vendor=`echo "$resultshort" | cut -f 3` if [ "$vendor" ]; then result3=${vendor%,*} iscamera='' iscamera=`cat vendors.txt | grep -i "$result3"` if [ "$iscamera" ]; then echo echo $newline echo $vendor echo -e "\t\t\t\033[7mВероятно, это камера или другое устройство слежения\e[0m" echo found=1 fi fi fi done < <(sudo nmap -n -sn -PR -PS -PA -PU -T5 $NET | grep -E -o '[A-Z0-9:]{17}') if [ $found -eq 1 ]; then sudo nmap -A $NET fi
Ejecute de este modo (recuerde que Nmap requiere privilegios de administrador):
sudo bash fcl.sh СЕТЬ/МАСКА
Por ejemplo:
sudo bash ./fcl.sh 192.168.0.0/24
Si se encuentran dispositivos con direcciones MAC de fabricantes de cámaras de vigilancia, se mostrarán continuación. En caso contrario, no se mostrará respuesta alguna.
Acorde a los especialistas en seguridad en redes, si se encuentra al menos una cámara, se lanzará otro escaneo de Nmap aún más agresivo, con salida completa de los resultados para que pueda ver la IP del dispositivo, además se tratará de determinar la versión del sistema operativo y los servicios.
Fragmento de salida de escaneo adicional:
|_http-title: NETSurveillance WEB 554/tcp open rtsp H264DVR rtspd 1.0 |_rtsp-methods: OPTIONS, DESCRIBE, SETUP, TEARDOWN, GET_PARAMETER, SET_PARAMETER, PLAY, PAUSE 8899/tcp open soap gSOAP 2.7 |_http-server-header: gSOAP/2.7
El encabezado NETSurveillance WEB sugiere que se trata de una cámara de vigilancia en red. Los puertos abiertos 554 y 8899 pertenecen a los servicios RTSP y ONVIF específicos de las cámaras IP.
Conclusión
La calidad del escaneo está determinada principalmente por la calidad de la lista de fabricantes de cámaras de vigilancia; en otras palabras, se requieren más y mejores listas de direcciones MAC, lo que depende completamente de los entusiastas del hacking ético.
Tenga en cuenta que en el archivo vendors.sh se agregaron varios proveedores. Esta información fue obtenida de las siguientes formas:
- Datos capturados en lugares donde las cámaras son visibles (tiendas, bancos, etc.)
- Buscando en Google términos como “vendedor CCTV encontrado”, “cámara de vendedor encontrada”, etc.
Este material seguro resultará de gran utilidad para investigadores y especialistas en seguridad en redes. Para consultar más trabajos como este, visite las plataformas oficiales del Instituto Internacional de Seguridad Cibernética (IICS).
El cargo CÓMO DETECTAR CÁMARAS OCULTAS O SPY CAM EN UNA HABITACIÓN apareció primero en Noticias de seguridad informática, ciberseguridad y hacking.
Ver Fuente
No hay comentarios.:
Publicar un comentario