summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CCTV-Hacking.mdwn131
1 files changed, 131 insertions, 0 deletions
diff --git a/CCTV-Hacking.mdwn b/CCTV-Hacking.mdwn
new file mode 100644
index 0000000..5a4ead4
--- /dev/null
+++ b/CCTV-Hacking.mdwn
@@ -0,0 +1,131 @@
+##Zusammenfassung
+
+Wir experimentieren gerade im Rahmen eines Kunstprojektes mit Überwachungskameras herum. Das Ziel ist ein Interface für 8 Überwachungskameras zu schreiben, welches die Bilder aller Kameras anzeigt, und mit dem man die Kameras steuern kann.
+
+Da es sich dabei um undokumentierte Hardware handelt, haben wir die Befehle, die die Kamera per Webinterface entgegennimmt mitgelesen.
+
+## DHCP-Server installieren, z.B. udhcpd
+
+Zunächst startet installiert man sich einen DHCP-Server, z.B. udhcpd
+
+Das Standard-Config-File ist eigentlich ok. So in etwa sollte es aussehen:
+
+[[!format c """
+server 192.168.0.1
+start 192.168.0.100
+end 192.168.0.254
+interface enp0s25
+option subnet 255.255.255.0
+option router 192.168.0.1
+option dns 192.168.0.1
+option lease 259200
+"""]]
+
+## Wireshark starten
+
+Nachdem der DHCP-Server läuft und die Kamera Strom hat, und mit dem Rechner verbunden worden ist, startet man wireshark und lauscht auf dem Interface.
+
+Damit man nicht den ganzen Traffic durchwühlen muss, empfiehlt es sich als Filter
+*http.request.method* zu nehmen. Dann sieht man alle Requests, die in Richtung Kamera vom Webinterface aus gehen.
+
+Anschliessend steuert man die IP der Kamera im Browser an (bei mir 192.168.0.117). Als Login funktioniert hoffentlich die Werkseinstellung (admin/123456).
+
+Nun kann man im Webinterface rumklicken, und sieht in wireshark alle Requests.
+
+## Die Kamera
+
+Es handelt sich bei den benutzten Kameras um die *Conceptronic Wireless Pan & Tilt Network Camera*. Diese gibt es unter vielen anderen Bezeichnungen für wenig Geld im Elektronikladen des Vertrauens.
+
+## Steuerbefehle
+
+One Direction:
+[[!format c """
+http://192.168.0.117/decoder_control.cgi?onestep=1&command=X
+X = 0 --> down
+X = 2 --> up
+X = 4 --> clockwise
+X = 6 --> counter-clockwise
+"""]]
+
+Two Directions:
+[[!format c """
+http://192.168.0.117/decoder_control.cgi?command=X
+X = 93 --> up AND counter-clockwise
+X = 92 --> up AND clockwise
+X = 91 --> down AND counter-clockwise
+X = 90 --> down AND clockwise
+"""]]
+
+after the two directions commands is sent, a second request is sent 500ms later:
+http://192.168.0.117/decoder_control.cgi?command=1
+
+Streife:
+[[!format c """
+Horizontal: http://192.168.0.117/decoder_control.cgi?command=28
+Stop: http://192.168.0.117/decoder_control.cgi?command=29
+Vertikal: http://192.168.0.117/decoder_control.cgi?command=26
+Stop: http://192.168.0.117/decoder_control.cgi?command=27
+"""]]
+
+Bildeinstellungen:
+[[!format c """
+Reversal: http://192.168.0.117/camera_control.cgi?param=5&value=1
+Non-Reversal: http://192.168.0.117/camera_control.cgi?param=5&value=2
+Mirror: http://192.168.0.117/camera_control.cgi?param=5&value=3
+Non-Mirror: http://192.168.0.117/camera_control.cgi?param=5&value=0
+"""]]
+
+Snapshot:
+[[!format c """
+http://192.168.0.117/snapshot.cgi
+"""]]
+
+Refresh-Button:
+[[!format c """
+http://192.168.0.117/live.htm
+http://192.168.0.117/videostream.cgi?rate=0
+"""]]
+
+Mode:
+[[!format c """
+50Hz: http://192.168.0.117/camera_control.cgi?param=3&value=0
+60Hz: http://192.168.0.117/camera_control.cgi?param=3&value=1
+outdoor: http://192.168.0.117/camera_control.cgi?param=3&value=2
+"""]]
+
+Size:
+[[!format c """
+160x120: http://192.168.0.117/camera_control.cgi?param=0&value=2
+320x240: http://192.168.0.117/camera_control.cgi?param=0&value=8
+640x480: http://192.168.0.117/camera_control.cgi?param=0&value=32
+"""]]
+
+Rate:
+[[!format c """
+Full Speed: http://192.168.0.117/videostream.cgi?rate=0
+20 fps: http://192.168.0.117/videostream.cgi?rate=1
+15 fps: http://192.168.0.117/videostream.cgi?rate=3
+10 fps: http://192.168.0.117/videostream.cgi?rate=6
+ 5 fps: http://192.168.0.117/videostream.cgi?rate=11
+ 4 fps: http://192.168.0.117/videostream.cgi?rate=12
+ 3 fps: http://192.168.0.117/videostream.cgi?rate=13
+ 2 fps: http://192.168.0.117/videostream.cgi?rate=14
+ 1 fps: http://192.168.0.117/videostream.cgi?rate=15
+.5 fps: http://192.168.0.117/videostream.cgi?rate=17
+.33 fps: http://192.168.0.117/videostream.cgi?rate=19
+.25 fps: http://192.168.0.117/videostream.cgi?rate=21
+.2 fps: http://192.168.0.117/videostream.cgi?rate=23
+"""]]
+
+
+Brightness:
+[[!format c """
+http://192.168.0.117/camera_control.cgi?param=1&value=X
+X = 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240
+"""]]
+
+Contrast:
+[[!format c """
+http://192.168.0.117/camera_control.cgi?param=2&value=X
+X = 0, 1, 2, 3, 4, 5, 6
+"""]]