summaryrefslogtreecommitdiff
path: root/CCTV-Hacking.mdwn
blob: 92aaa5a6fa365638220ef3e27a6b1866d88cddea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
[[!img BdzMCUkIIAA_te2.jpg- align="right" size="" alt=""]]

##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:
[[!format c """
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
"""]]