[Gelöst] Statusanfragen per UPnP mit Fritz!Box 6490

cni

Neuer User
Mitglied seit
27 Sep 2007
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich hatte eine 7170 und dieses Script am laufen:
http://www.wehavemorefun.de/fritzbox/Statusanfragen_per_UPnP
Hat auch gut funktioniert. Nun habe ich eine 6490 (von Kabel Deutschland)
und das Skript funktioniert nicht mehr!
Aktuell ist Fritz!OS 06.10 drauf, hat sich da was geändert an den UPNP-Daten?
 
Zuletzt bearbeitet:
hat sich da was geändert an den UPNP-Daten?
TR-064 ist auch eingeschaltet ? Wenn ja, wären etwas präzisere Angaben zum Skript und zu "funktioniert nicht mehr" hilfreich.
 
Hallo Peter,

also "Änderungen der Sicherheitseinstellungen über UPnP gestatten" ist eingeschaltet.
Auch "Statusinformationen über UPnP übertragen" ist eingeschaltet.

Das Skript habe ich hier:
Anhang anzeigen fritzupnp.txt

und die Fehler-Ausgabe beim Aufruf lautet:
DiskStation209> /volume1/web/fritzupnp
/volume1/web/fritzupnp: line 165: syntax error: HTTP/1.1 / 500
/volume1/web/fritzupnp: line 165: syntax error: 60 /
/volume1/web/fritzupnp: line 165: syntax error: 24 /
TotalBytesReceived:HTTP/1.1 500 Internal Server Error
DATE: Tue, 14 Oct 2014 18:53:06 GMT
SERVER: FRITZ!Box 6490 Cable (kdg) UPnP/1.0 AVM FRITZ!Box 6490 Cable (kdg) 141.06.10
CONNECTION: close
CONTENT-LENGTH: 433
CONTENT-TYPE: text/xml; charset="utf-8"

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>401</errorCode>
<errorDescription>Invalid Action</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
...

Da der Response einen Error-Code 401 zurück gibt, vermute ich, dass man sich Authentifizieren muss...
 
Zuletzt bearbeitet:
Da der Response einen Error-Code 401 zurück gibt, vermute ich, dass man sich Authentifizieren muss...
Das mit dem Authentifizieren ist richtig (die 7170 hat ja noch eine uralte Version, wo das - nach der Erinnerung - anders war) und normalerweise funktioniert das Authentifizieren auch in bash-Skripten problemlos ... ich habe aber nur für "normales" GUI da fertigen Skript-Code anzubieten.

Aber die Anmeldung bei TR-064 erfolgt mit "normaler" HTTP-Digest-Authentication (siehe hier in Chapter 4.1), jedenfalls solange man keine SID braucht, und sollte keine größere Hürde darstellen, selbst wenn man sie in Shell-Code nachbilden muß.

Es wäre sogar denkbar, daß AVM da inzwischen so weit abgedichtet hat, daß die Zugriffe, die eine Anmeldung erfordern, nur noch über SSL-Verbindungen (das läuft dann über 49443) zugänglich sind ... der Error 500 sieht mir irgendwie danach aus, aber das müßte man ausprobieren. Eigentlich sollte bei zu vielen falschen Versuchen kein 500 sondern 503 kommen.

Die abgefragten Statusvariablen haben sich jedenfalls lt. igdicfgSCPD.xml (der Service-Beschreibung) nicht geändert.

Ist also etwas Arbeit in das Script zu investieren, um die Anmeldung per HTTP-Digest nachzurüsten.
 
Ahhh, nach dem der Fritz!Box Traffic Monitor funktioniert, habe ich ein wenig geforscht und folgendes gefunden:
http://www.ip-phone-forum.de/showthread.php?t=222771&p=2036004&viewfull=1#post2036004

Demnach habe ich im Script die Zeile 49
Code:
echo "POST /upnp/control/$4 HTTP/1.0
geändert in
Code:
echo "POST /igdupnp/control/$4 HTTP/1.0
und siehe da, es klappt wieder! :p

Super!

Ich werde demnächst auf meinem Hobbyblog mal einen Beitrag dazu verfassen.
 
und siehe da, es klappt wieder!
Verstehe ich das richtig, daß Du ohne Anmeldung die Statuswerte von der Box erhältst ?

Ich lach mich tot ... mal sehen, für welche Angaben / Einstellungen das dann noch gilt. Da eröffnet sich ja wieder ein großes Betätigungsfeld.

Wenn ich auch nur halbwegs lesen kann, steht in der oben verlinkten TR-064-Dokumentation ganz eindeutig, welche Aktionen ohne Authentifizierung arbeiten ... und diese Liste ist sehr kurz.
 
Ja, klappt ohne Anmeldung. Ging vorher auch!
 
Ich bastele gerade an einem Test, um mal zu sehen, ob man einfach so ohne Anmeldung auch aus dem LAN die Internet-Verbindung des Routers beenden kann (WANIPConnection.ForceTermination) ... bin echt mal gespannt.

Aber damit ist Dein Problem ja dann gelöst und Du kannst den Thread entsprechend ändern.
 
Danke für den Tipp, damit funktioniert es auch wieder mit der 7390 mit Fritz!OS 6.20 :)

Die 6360 liefert hier außer dem Systemnamen keine Infos .. weder Uptime, noch Up- und Download :(
 
Zuletzt bearbeitet:
Hast du das Skript auch auf einer DiskStation laufen?
Könnte man das auch direkt auf der FB machen?
 
Moins

Meinst du sowas?
Code:
curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H 'Content-Type: text/xml; charset="utf-8"' -H 'SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination' -d '<?xml version="1.0" encoding="utf-8"?> <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>'
...teste mal. :mrgreen:
 
Da das ja um "ForceTermination" geht, meinst Du wahrscheinlich mich ?

Dann: Im Prinzip ja, aber ich bastele mir ein kleines Framework, um einfach mal alle TR-064-Calls (UPnP für Internet Gateway Device - IGD - gehört nach meinem Verständnis auch dazu) abzuklopfen ... zunächst mal die, für die eine Description "ausgespuckt" wird und dann suche ich per Stringvergleich nach weiteren - ggf. undokumentierten - Aktionen/Interfaces.

Es gibt bei AVM keine gesonderte Dokumentation für IGD-UPnP ... daher bin ich immer davon ausgegangen, daß die TR-064-Dokumentation da auch gilt und darin ist - in den 'first steps' - explizit aufgeführt, welche Rechte der Nutzer für welche Aktion benötigt.

Wenn das darauf hinausläuft, daß alles, was da nicht drin steht (die WANIPConnection ist hier beschrieben), anderen Sicherheitskriterien unterliegt als den im ersten Dokument beschriebenen - da sind auch die 'Get*Info' fast alle als 'C' deklariert und setzen damit lt. Dokumentation das Recht zur Konfiguration der Box für den Nutzer voraus - , dann hätte ich schon gerne eine eigene Liste/Übersicht, wo da vielleicht noch andere Schwächen auf der LAN-Seite lauern. Daß die LAN-seitige Sicherheit eher (grotten-)schlecht ist, ist ja keine neue Erkenntnis und mit meiner Meinung dazu habe ich ja noch nie hinter dem Berg gehalten (ich kann es ja auch beweisen und behaupte es nicht nur, um AVM-Bashing zu betreiben).

Da ich auch beim besten Willen im zweiten Dokument keinen Unterschied in der Beschreibung zwischen den einzelnen Aktionen entdecken kann - GetInfo sieht, was die Beschreibung der (nicht?) notwendigen Berechtigungen angeht, nicht anders aus als GetStatusInfo und das ist ja offenbar ohne Anmeldung zugänglich, könnte dann genauso gut X_GetDNSServers und/oder X_SetDNSServers ohne Anmeldung funktionieren. Inzwischen traue ich da nichts und niemandem mehr und überzeuge mich lieber selbst davon. Wenn ich X_SetDNSServers nicht vollkommen falsch interpretiere und diese Aktion aus dem LAN ohne Anmeldung möglich wäre ... die Folgen kannst Du Dir selbst ausmalen. Selbst wenn nicht, eine Übersicht, was ohne Anmeldung geht und was nicht, kann nicht schaden ...

Auch insgesamt wirkt z.B. die Dokumentation zu WANIPConnection bei genauerem Lesen auf mich nicht mehr sehr schlüssig. Da wird für die (boolean) Statusvariable 'DNSOverrideAllowed' als einziger möglicher Wert eine '0' festgelegt, gleichzeitig aber eine Funktion X_SetDNSServers beschrieben, ohne darauf hinzuweisen, daß diese zwar aufgerufen werden kann, aber mit einem Fehler reagieren sollte ? Wenn das Überschreiben generell nicht erlaubt ist (steht bei WANPPPConnection auch so), warum dann überhaupt diese Funktion ? :confused:

Da mache ich mir lieber gleich meine eigene DB, bisher bin ich immer brav davon ausgegangen, daß ich mich anmelden muß und habe diesen Teil der Firmware gar nicht ausfürhlicher auf Lücken abgeklopft.

Jetzt schaue ich mir das von intern - und wenn das da ohne Anmeldung geht - auch gleich noch von extern (https://<box>/cgi-bin/tr064cgi/...) an. Ich hatte immer noch die Hoffnung, das wäre auf eine uralte Firmware auf der 6490 zurückzuführen gewesen (man liest von 06.08, die hat dann garantiert auch noch die hostname-Lücke) ... aber die wird wohl enttäuscht werden, wenn jetzt nicht nur unterschiedliche Probleme hier zusammengeworfen werden im Thread.

Klar hat man schon von den diversen Traffic-Monitoren irgendwo gelesen, aber bisher bin ich eben immer davon ausgegangen, daß für diese entweder die Sicherheitseinstellungen bei der Anmeldung "heruntergedreht" wurden oder eine ordentlich Anmeldung notwendig war, um die Daten zu lesen. Wenn das nun wirklich wieder jeder aus dem LAN darf, frage ich mich schon, wo AVM da die Grenze eingezogen hat. Den bereitgestellten Dokumentationen kann ich (wenn ich nicht nur zu blöd bin, das zu finden) nichts dazu entnehmen.

So, das war ja jetzt wieder OT ... ich verziehe mich in einen eigenen Thread, wenn ich da etwas finde, was in meinen Augen echt problematisch ist.
 
Meine Hauptfrage ging aber in die Richtung,
ob ich das auch ohne DiskStation zum laufen bekomme,
indem ich das auf der FB laufen lasse.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,840
Beiträge
2,219,266
Mitglieder
371,543
Neuestes Mitglied
Brainbanger
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.