Guten Abend, ich habe seit längerer Zeit eine Level-One WCS-2000 Netzwerkkamera in meinem Flur. Bevor die Daten kommen, erstmal mein Anliegen. Auf der Kamera läuft ein ziemlich schlankes Linux, mein Wunsch ist nun auf die Daten des Linux drauf zu zugreifen, um es anzupassen, die HTML-Seiten zu ändern und zus chauen was noch so geht. Dinge die ich probiert habe: Logischer erster Weg das Handbuch und die Homepage von Level-One: -> Ergebnis : Auf der Homepage kann man sich zwei Firmware-Updates saugen und ein Daten Paket in dem scheinbar alle System und Programmdateien herunterladen. Das hat mich überrascht und voreilige Freude brach aus, ich stöberte die Ordner durch, fand alles, aber alles nur in der Grundfassung, sprich nicht angepasst an die Cam und auch keine Software zum erstellen einer neuen Firmware. LINK GPL : http://download.level1.com/level1/gpl/WCS-2000(GPL)_2004-07-28.zip Ich stöberte weiter durch die Dateien in der Hoffnung ein Hintertürchen zu finden, aber dabei muss ich ehrlich zugeben, ich benutze zwar auch öfters Linux, aber ich bin kein Linux Profi. Nächster Schritt: Portscan, nach Bekannten wie SSH und TELNET: -> Ergebnis NMap : -> Offene Ports 80/tcp open http thttpd 2.20b 10oct00 1024/tcp open http thttpd 2.20b 10oct00 6789/tcp open ibm-db2-admin? Zusätzliches Ergenis von NMap: 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi : SF-Port6789-TCP:V=5.21%I=7%D=6/26%Time=4C261D38%P=i686-pc-windows-window s% SF:r(GetRequest,AE,"HTTP/1\.1\x20404\x20Not\x20Found\r\nCONTENT-LENGTH:\ x2 SF:048\r\nDATE:\x20Sat,\x2001\x20Jan\x202000\x2000:07:04\x20GMT\r\nSERVE R: SF:\x20Linux/6\.0\x20UPnP/1\.0\x20Intel\x20UPnP/0\.9\r\n\r\n<html><body> <h SF:1>404\x20Not\x20Found</h1></body></html>")%r(FourOhFourRequest,AE,"HT TP SF:/1\.1\x20404\x20Not\x20Found\r\nCONTENT-LENGTH:\x2048\r\nDATE:\x20Sat ,\ SF:x2001\x20Jan\x202000\x2000:07:29\x20GMT\r\nSERVER:\x20Linux/6\.0\x20U Pn SF:P/1\.0\x20Intel\x20UPnP/0\.9\r\n\r\n<html><body><h1>404\x20Not\x20Fou nd SF:</h1></body></html>"); MAC Address: [ENTFERNT] (Sercomm) Device type: general purpose Running: Linux 2.0.X OS details: Linux 2.0.39 - 2.0.40 (embedded) Network Distance: 1 hop TCP Sequence Prediction: Difficulty=259 (Good luck!) IP ID Sequence Generation: Incremental Service Info: Device: WAP -> Das ewiglange rumprobiere via WGet unter Linux brachte auch nicht viel, außer das ich herausgefunden habe das die Kamera in eine Datei streamt die ladbar und direkt via VLC aufrufbar ist. -> Der Port 6789 ... dort habe ich mal wie WinSCP und PuTTy angeklopft und habe auch eine User/PW Abfrage bekommen aber der Admin Zugang ging nicht. -> Sicherheitslücken konnte ich auch im Netz nicht finden im HTTP-Daemon. Mit der aktuellen Firmware 3.5 die darauf ist wurden noch Lücken gestopft. -> Eine Anfrage an Level One ist gestellt aber ich bezweifel das man mir trotz des Alters mir Daten gibt. -> Die Anschlüße auf dem Board habe ich noch nicht via OSC gemessen, da ich auch nur auf das AVR-Lab zugreifen kann und das liegt gerade zu Hause und nicht hier. -> Ich denke weiter das einer der Anschüße auf dem Board ein JTAG ist für den TI µC der verwendet wurde. Verbaute Komponenten: -> TI DSP : TMS3200SC21 ( AF 32A30XW ) -> 2x WinBond 317WG -> Davicom DM9000E 0309S MG5825 [ISA TO ETHERNET MAC CONTROLLER WITH INTEGRATED 10/100 PHY] -> AMD AM29LV3200B -90EI 03100BM H -> ATMEL ATF16V8B 15JC 0245 [250 gate electrically erasable PLD, 20 pins, standard power, 5V] Sooo bevor ich noch endlos hier weiterschreibe, erstmal noch Bilder ( Host ImageShack ) ... http://img203.imageshack.us/gal.php?g=dsc00332t.jpg MfG Phil
Sooo, hab mal weiter gesucht ... wenn man das oben aufgeführte Archiv lädt dann entpackt und das Archiv dort drin wieder findet man den Pfad: DDC WCS-2000\fs\scripts\etc Dort sind ein paar Scripts, in den auch die Services und Benutzer aufgeführt sind, nur die Passwörter fehlen natürlich^^
Moin, also habe die passwd gefunden ... Inhalt: root:GP8Mzr7E4HfmM:0:0:root:/root:/bin/sh ftp:*:14:50::/tmp: nobody:*:99:99:nobody:/tmp: user::100:100:user:/:/bin/sh Dieser Inhalt bedeutet doch, das das Passwort im Grunde die "GP8Mzr7E4HfmM" ist, nur das dieses noch verschlüsselt ist oder? Sprich Benutzer sind: root, ftp, nobody, user ...
>Dieser Inhalt bedeutet doch, das das Passwort im Grunde die >"GP8Mzr7E4HfmM" ist, nur das dieses noch verschlüsselt ist oder? Das sieht nach einem Standard crypt-Password aus, welches via salt (ersten beiden Zeichen) einen Hash-Algorithmus auf Basis einer DES-Variante auswaehlt. Mache (hier wird salt=00 fix gesetzt->erste beiden Zeichen "00D..."): $ openssl passwd -crypt -salt 00 Password: <eigen-gewaehltes-PW> 00Dk/ChnJr13M und ersetze die letzte Zeile im root-PW im password-File. VG, Hans
Hallo, also die passwd komm aus dem Archiv aus dem Supportbereich von LevelOne und ich kann nicht auf die passwd auf der Kamera drauf zugreifen. Um da reinzukommen brauche ich halt das PW, kann natürlich auch sein das es nichts bringt aber ein Versuch ist es wert. ... ich versuche es gerade schon mit John ( the ripper ).
Die GPL-Lizenz schreibt eine Bereitstellung des GPL-Quellen und die Möglichkeit der Modifikation derselben vor. Falls die PW-Mod nicht hilft, koennte Dir vielleicht Harald Welte unter: http://gpl-violations.org/ behilflich sein, insbesondere die Formulierung einer ernstzunehmenden Mail/Einschreiben, was nicht gleich in /dev/null landet. VG, Hans
Mhm, meine Frage ist nun im Grunde nur, was ich noch übersehen habe und noch machen kann. Leider bin ich nicht zu hause deswegen kann ich den JTAG/Seriellen Anschluß gerade nicht anzapfen.
>Leider bin ich nicht zu hause deswegen kann ich den JTAG/Seriellen >Anschluß gerade nicht anzapfen. Hmm, ich hab' mir das Archiv jetzt auch runtergeladen. Also Sourcen da! Hast Du ein Binärupdate, welches Du entpacken kannst und die (modifizierte) passwd ersetzen kannst? Ich sehe in den Quellen rsh/rlogin Sourcen. Bist Du sicher, dass auf 514/tcp nichts lauscht? (Ansonsten auf Deinem Rechner root werden und mal rsh a.b.c.d probieren) VG, Hans
Hallo, also das Resultat von NMap habe ich oben ja eingefügt. Ein Firmwareupdate im *.bin Format ist kein Problem, aber ich weiss nicht wie ich das "richtig" entpacke und dann auch wieder im richtigen Format zusammen bekomme. Sprich gibt ja da auch kleine Unterschiede, Komprimierung, Verschlüsselung usw... Firmware: 1.30 : http://download.level1.info/firmware/WCS-2000(1.30)_2003-11-13.zip 1.35 ( aktuelle, auch derzeit auf der Kamera ): http://download.level1.info/firmware/WCS-2000(1.35)_2004-09-13.zip
Wenn du mir sagen kannst wie ich das ent und wieder zusammenpacke =P Ich bin was solche Geräte angeht nämlich noch relativ unerfahren.
>Wenn du mir sagen kannst wie ich das ent und wieder zusammenpacke
In den Quellen sollte ein Zusammenpackskript zu finden sein, aber...
Ich habe die 1.30 runtergeladen, dort finde ich den
root/PW-Hash-Eintrag (mit einem Binaereditor). Den könnte man
mit dem Hex-Editor seiner Wahl aendern.
Folgende Dinge sind zu beachten:
- damit kann man das Device komplett bricken
- falls eine Prüfsumme verwendet wird, muesste man diese finden
und neu berechnen.
VG,
Hans
PS: ich würde erstmal auf John warten ;-)
> also das Resultat von NMap habe ich oben ja eingefügt.
Falsche Antwort :-)
nmap sucht im default nach den vermeindlichen Standardports
(variierend mit der Version).
Generell: Ohne die (nmap-)Kommandozeile ist für andere
der Output eines tools fast wertlos.
Man kann nmap sagen, alle Ports durchzuprobieren, das dauert.
Man sollte es auch nicht zu schnell machen, denn wenn ein
Device unter einem Paketsturm ueberlastet wird, könnten
offene Ports verlorengehen.
Um "zu Fuß" herauszufinden ob ein Port offen ist,
macht man folgendes:
-tcpdump -n -i eth0 host a.b.c.d auf dem Linuxrechner
in einem Fenster.
-telnet a.b.c.d 514 (für das rsh) in einem anderen Fenster
Kommt ein RST Paket zurueck: Port zu.
Kommt ein Handshake: Port offen.
Kommt nichts: (vermutlich) irgendwo Firewallregeln....
VG,
Hans
Resultat: Erstmal die Kamera, macht scheinbar ab und zu ein Broadcast, aber an eine seltsame Adresse. Befehl: tcpdump -n -v -i eth0 host 192.168.0.10 Ohne eine Eingabe am Linux Rechner kam folgendes: IP (tos 0x0, ttl 1, id 350, offset 0, flags [none], proto UDP (17), length 347) 192.168.0.10.1060 > 239.255.255.250.1900: UDP, length 346 Wobei die Länge minimal variert und die 5. Stelle der IP einen weiter hochzählt jedes mal. Sooo, nun zu dem was du explizit sagtest: IP 192.168.0.100.38860 > 192.168.0.10.514: Flags [R.], seq 0, ack xxxxxxxxxx, win 0, legth 0 Interessant war auch noch das, wenn ich nicht gemacht habe mein Rechner trotzdem der Kamera Pakete auf den Port 6789 schickte
Wenn ich via Telnet auf 6789 verbinde baut er eine verbindung auf, sagt mir womit ich sie schließe, ich kann was eingeben aber er schließt die Verbindung nach der Eingabe unt dem Enter druck sofort.
>IP (tos 0x0, ttl 1, id 350, offset 0, flags [none], proto UDP (17), >length 347) >192.168.0.10.1060 > 239.255.255.250.1900: UDP, length 346 Das ist ein Multicastprotocol a la Microsoft um Devices zu finden. >IP 192.168.0.100.38860 > 192.168.0.10.514: Flags [R.], seq 0, ack >xxxxxxxxxx, win 0, legth 0 OK, somit ist der rsh/rlogin Port zu. Waere zu schön gewesen ;-) > Wenn ich via Telnet auf 6789 verbinde baut er eine verbindung auf Wenn ein sshd da waere, käme eine sshd-Bannermeldung. Nach dem nmap waere auf 6789 ein "GET / HTTP/1.0" + 2xReturn noch interessant. War John erfolgreich? >trotzdem der Kamera Pakete auf den Port 6789 schickte Da wäre ein tcpdump als "Beweis" hilfreich gewesen.... Vermutlich waren das RST oder FIN Pakete (von verangegangenen Verbindungen). Selbständig dürfte die Kamera nichts machen :-) (wäre zu erkennen an dem ephermeral port der vorangegangen vom Client aus initierten Verbindung). VG, Hans
Ich probier gleich nochmal folgendes setup. Ich verbinde Die Kamera direkt mit meinem Laptop auf dem Linux läuft und sonst nichts, davor hing da noch mein Router/Switch dazwischen ( WRT54GS ). Hast du vllt ICQ oder ähnliches um einen schnelleren Austausch zu haben und dann am Ende die Lösung hier zu posten? ICQ 137443502 MSN jpp-weber@live.de
Achso, wegen dem Multicast ... die 192.168.0.10 ist die Kamera
>Hast du vllt ICQ oder ähnliches um einen schnelleren Austausch zu haben >und dann am Ende die Lösung hier zu posten? Ich bin momentan im Urlaub und schaue nur ab und zu (vorwiegend abends) rein. VG, Hans PS: Wobei die "Zugänge auf Netzwerkebene" wohl ausgeschöpft sind. IMHO wird Dir nichts anderes als eine hardwarenähere Vorgehensweise übrigbleiben, wenn John nichts liefert.
Sooo nun hier die Ergebnisse. Hier die Anfrage http://pastebin.com/QtbWsaX1 Hier das Dump http://pastebin.com/KH2upi8d ... kleine Erklärung, er baut eine Verbindung auf, ich kann eine beliebig lange Eingabe machen und sobald ich Enter drücke, beendet er die Verbindung. Was sagt mir das nun, oder fehlt mir noche in "Zauberwort"?
>> Was sagt mir das nun, oder fehlt mir noche in "Zauberwort"?
Gib' mal bitte nach dem telnet Connect:
GET / HTTP/1.0 +2xReturn
ein.
Kommt dann was?
VG,
Hans
root@g0ttmobil:/home/g0tt# telnet 192.168.0.10 6789 Trying 192.168.0.10... Connected to 192.168.0.10. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.1 404 Not Found CONTENT-LENGTH: 48 DATE: Sun, 02 Jan 2000 05:52:33 GMT SERVER: Linux/6.0 UPnP/1.0 Intel UPnP/0.9 <html><body><h1>404 Not Found</h1></body></html>Connection closed by foreign host. root@g0ttmobil:/home/g0tt#
>> SERVER: Linux/6.0 UPnP/1.0 Intel UPnP/0.9
Ok, d.h. keine Möglichkeit über UPnP reinzukommen.
Der Server ist der "Bruder" zu den Multicasts auf UDP/1900.
Hoffen wir mal auf John ;-)
VG,
Hans
Ok, dann lass ich gleich noch mal john los, wärend ich in die Stadt gehe. Kannst du mir deinen Satz: Ok, d.h. keine Möglichkeit über UPnP reinzukommen. Der Server ist der "Bruder" zu den Multicasts auf UDP/1900. Nochmal ausführlich erklären? MfG Phil Und danke schön für deinen ausführlichen Rat die ganze Zeit =)
> Nochmal ausführlich erklären?
Naja... en.wikipedia.org/wiki/UPnP gibt eine gute Übersicht.
Ganz unten sind >100-seitige Referenzen angegeben. "Ausführlich"
würde also vermutlich das Forumszeilenlimit überschreiten ;-)
Kurzgefasst:
Das UPnP gibt es primär um Geräte innerhalb einer
broadcast(= multicast)-Domäne zu finden... denn wenn DHCP
verwendet wird weiss der Endanwender i.d.R. nicht die
IP-Adresse;-)
Ohne jetzt die Referenzen nochmal nachzulesen, also
alles nur zu 80% Sicherheit (wrt. Pilawa-Sicherheitsprozenten ;-) :
Basierend auf dem Multicast werden Ressourcen von neuen
Geräten in einem Multicast annonciert, in dem Multicast
steht sowas drin wie: "willst Du näheres wissen, frag'
meinen UDP(!) oder TCP http-server, der gibt Dir eine
Beschreibung von dem was ich kann und wie man auf mich
zugreift."
Der Rechner hat dann die Möglichkeit sich nach einem
kleinen Multicastpaket genaue Infos gezielt via
Unicast abzuholen (anstatt die vollständige Beschreibung
zu "broad"casten).
Windows sollte dann das gefundene Geräte anzeigen... das habe ich
aber nie selbst gesehen.
Soweit ich mich erinnere wollte (oder hat) M$ auch UPnPs
definiert, um eine Heimfirewall gezielt mit UPnPs zu öffnen,
will heisen: das interne Gerät schaltet sich seine Ports
gezielt selbst an der UPnP-aware FW frei. Zum Glück hat
sich dieses Horrorszenario am Markt nie durchgesetzt....
Das Protokoll ist stark M$ lastig und in dem referenzierten
Wikipediaartikel steht, dass das RfC-Proposal 2001 "ausgelaufen"
ist.
VG,
Hans
Ok, danke =) Hab noch ein bisschen nach Exploits gesucht, aber keins gefunden was genau hier wirkt. Hab nochmal ein bisschen weiter nach Dateien gesucht, via wget auf dem http. Aber auch nicht viele neue gefunden. Hab weiter nochmal die alte Firmware Version im Editor geladen und mal durchgestöbert. Dort ist auch einmal von "root:x:blablabla" die Rede aber das zog auch nicht. John läuft gerade wieder seit über 10 Stunden, aber da wird eh nichts bei herauskommen. Denke ich. Der Port 6789, ist mir allerdings immer noch so ein Rätsel, weil man sich wie gesagt, per Telnet anmelden kann aber nichts dabei herauskommt, bzw ich nicht weiss mit welchen Befehlen ich da weiterkomme.
> Der Port 6789, ist mir allerdings immer noch so ein Rätsel
Mit der Antwort auf das "GET / HTTP/1.0" und der Antwort:
SERVER: Linux/6.0 UPnP/1.0 Intel UPnP/0.9
ist das der http-Server (TCP), den ein M$ Rechner nach dem
Multicast fragen würde, um weitere UPnP-Informationen über die
Kamera zu bekommen.
VG,
Hans
PS: telnet macht eine vanilla-tcp-Verbindung auf, Du koenntest auch
netcat (nc) verwenden.... Der telnet Client ist ein wichtiges
Netzwerkdebuggingool zum Testen von tcp-Kanälen aller Art ;-)
(Sorry, wenn das PS jetzt für Dich klar ist, ich wollte nur
sicherstellen, dass hier nicht Dein Problem liegt ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.