[Frage] (LUA) Login / Session ID Bypass / Password ändern mit Skript (FritzOS, Backdoor)

crysan

Neuer User
Mitglied seit
8 Jul 2015
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Heyho :)

Ich möchte mir eine kleine Hintertür reinbasteln so dass ich jederzeit entweder nur z.b /bypass_login.lua aufrufen muss und quasi direkt zugriff habe

oder

Einen kleinen Lua skript basteln/einen schon bereits vorhanden so modifizieren dass ich bei bedarf einen User hinzufügen bzw. das Passwort ändern kann...

Momentan läuft das Webinterface über den USB Speicher. Ich habe also vollen zugriff auf die Lua dateien (www/1und1/).

Ich habe mir bereits folgende Dateien durchgeschaut:
  • /system/boxusers.lua
  • login.lua
  • logincheck.lua
  • no_password.lua
  • login_sid.lua

Ich dachte mir vllt. modifziere ich mal die /templates/global_lua.lua und füge dem hier:
Code:
--Seiten auf denen kein Login nötig ist.
local no_login_page = {
["/login.lua"] = true,
["/logincheck.lua"] = true,
["/vergessen.lua"] = true,
["/restore.lua"] = true,
["/firmware_update_notify.lua"] = true,
["/myfritz_email_verified.lua"] = true
}

die Seiten zur Änderung des Passworts und/oder zum hinzufügen von usern...
Code:
["/system/boxuser_list.lua"] = true,
["/system/boxuser_edit.lua"] = true,
["/system/boxuser_settings.lua"] = true

Nunja, wer hätte das gedacht? Fehler so weit das Auge reicht :p

Code:
Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1: the required lib needs a valid session id
Lua stack traceback:
        [C]: ?
        [C]: in function 'require'
        ../lua/call_webusb.lua:6: in main chunk
        [C]: ?
        [C]: in function 'require'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:15: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:594: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_hidenas_css' (a nil value)
Lua stack traceback:
        [C]: in function 'write_hidenas_css'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:624: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_dirs_emptytxt_js' (a nil value)
Lua stack traceback:
        [C]: in function 'write_dirs_emptytxt_js'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1206: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_save_error' (a nil value)
Lua stack traceback:
        [C]: in function 'write_save_error'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1214: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_enabled_checkbox' (a nil value)
Lua stack traceback:
        [C]: in function 'write_enabled_checkbox'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1218: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_name' (a nil value)
Lua stack traceback:
        [C]: in function 'write_name'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1222: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_email' (a nil value)
Lua stack traceback:
        [C]: in function 'write_email'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1226: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_password' (a nil value)
Lua stack traceback:
        [C]: in function 'write_password'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1232: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_frominternet_checkbox' (a nil value)
Lua stack traceback:
        [C]: in function 'write_frominternet_checkbox'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1237: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_rights' (a nil value)
Lua stack traceback:
        [C]: in function 'write_rights'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Lua Run Runtime ERROR in /var/media/ftp/Verbatim-STORENGO-05/intraos/www/1und1//system/boxuser_edit.lua:1239: [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: attempt to call global 'write_hidden_values' (a nil value)
Lua stack traceback:
        [C]: in function 'write_hidden_values'
        [string "/var/media/ftp/Verbatim-STORENGO-05/intraos..."]:1: in main chunk

Geht ohne valide Session ID wohl nicht und ich habe keine Ahnung wie ich das Umgehen soll...

Hat irgendjemand eine Idee?

Mfg Crysan
 
Warum möchtest Du das bzw warum verzichtest Du nicht gleich auf das Passwort?
 
Es sind 19 Leute verbunden, Passwort ist also muss.
Abunzu ist jemand so frech und resettet den Router um sich selber ein Passwort für die Box zu erstellen.
Weshalb ich dann jedes mal in die andere Wohnung muss (eine 5er WG) um den Router wieder zu resetten und dass ist einfach nervig.

Änderung des Standorts aufgrund der Verkabelung durch die Wände und Co. nicht möglich.

Hilfreich währe natürlich auch wenn ich die Firmware zu modifizieren könnte dass bei einem Reset Standartmäßig ein Nutzer z.B admin:admin vorhanden ist.
 
Das ist tatsächlich machbar ... aber ich werde den Eindruck nicht los, daß Du eher keinen richtigen Plan hast. Das ganze Gefummel an irgendwelchen Lua-Seiten kann man jedenfalls sein lassen, wenn man einfach in der Firmware die Standard-Vorlage für die ar7.cfg mit einem entsprechenden User-Account vorbelegt und ein neues Image mit dieser Datei flasht. Das hilft dann allerdings tatsächlich nur gegen das Werksreset durch einen Dritten und kann nur unter sehr engen Rahmenbedingungen als Backdoor für Dich "mißbraucht" werden. Es ist eben ein "vorbelegter Benutzeraccount", der aber genauso wie alle anderen über das GUI verwaltet werden kann.

Alles andere, was Du da so versuchst, ist - verzeih mir die deutlichen Worte - Bullshit ... schon der Versuch des Eintragens x-beliebiger Seiten in die Template-Datei zeigt, daß Du den Mechanismus nicht richtig verstanden hast. Da erfolgen schon später noch jede Menge Abfragen des Login-Status und in diesem Template wird nur entschieden, ob Du zuerst mal zur Login-Seite umgeleitet wirst oder vielleicht schon eingeloggt sein könntest. So einfach - wie Du Dir das vorstellst - ist es glücklicherweise nicht, die Prüfung auf gültige Credentials zu umgehen. Sicherlich kann man das am Ende auch über eine Änderung von Lua-Seiten erreichen, aber nicht über so eine simple Änderung und das bisher von Dir Geschriebene vermittelt eher nicht den Eindruck, daß die notwendigen Grundlagen vorhanden sind, um das mal auf die Schnelle zu machen.

Da ist dann der o.a. Weg dann wohl der bessere ... es gäbe theoretisch sogar die Chance, diesen Account im GUI "zu verstecken", das ist aber schon wieder sicherheitsrelevantes "Hacking" und anhand Deiner bisherigen Beschreibung und des Thread-Titels bin ich mir über die Rollenverteilung in dem Spiel bei Euch vor Ort nicht so richtig sicher. Schon die Frage, wie jemand den Router komplett zurücksetzen kann, um sich selbst einen Zugang dort zu verschaffen, treibt mir etwas die Fragezeichen in die Augen ... wenn das tatsächlich passiert und sich derjenige dabei auf die Autokonfiguration mit Startcode über TR-069 verläßt (wie kommt er sonst ohne Berechtigungen an die DSL-Zugangsdaten), dann hilft es ja auch schon, die DSL-Konfiguration von Hand vorzunehmen. Wenn derjenige die Zugangsdaten zum 1&1-CC hat und dort den aktuellen Startcode auslesen kann (den muß man dann eben auch einmal ändern), dann kann er ja nicht so "unberechtigt" sein, da wären wir dann wieder bei der Rollenverteilung in Eurem Spiel.

Schon das Ansinnen
crysan schrieb:
Ich möchte mir eine kleine Hintertür reinbasteln so dass ich jederzeit entweder nur z.b /bypass_login.lua aufrufen muss und quasi direkt zugriff habe
zeigt eigentlich, daß Du Dir da keine wirklichen Gedanken gemacht hast. Was hindert denn jemand anderen, an Deiner Stelle die "/bypass_login.lua" aufzurufen? Dann hätte ja dieser "Unbekannte" seinerseits vollen Zugang zur FRITZ!Box, wenn ich das nicht total falsch verstanden habe ... und das kann einfach kein "verständiger Admin" sein, der so etwas überhaupt in Erwägung zieht (noch dazu, wenn da 19 Leute im Netz berechtigt unterwegs sind).

Das hört sich für mich dann eher nach "Zickenkrieg" im Studentenwohnheim an, wo jemand jetzt der Meinung ist, es den anderen mal richtig zeigen zu wollen. Mein Tipp wäre da eine "ordentliche Aussprache" und eine saubere Aufteilung der Berechtigungen. Wenn man selbst nicht die Kenntnisse hat, damit die anderen einen als Admin akzeptieren (oder auch nicht die "Reife"), dann sollte man weniger nach anderen Wegen suchen und lieber an den entsprechenden "skills" arbeiten.

Ich weiß, daß das alles eher spekulativ ist und ich total daneben liegen könnte ... aber schon die Tatsache, daß da offenbar jemand hingehen und einfach den Zugang für alle anderen verhindern kann (was sagen denn die anderen 17 (oder 18?) Leute zu dieser Situation? Wenn die das genauso sehen wie Du, sollte man dem 19. ja einen Riegel vorschieben können, wobei das ja eigentlich sogar der 20. sein müßte, sonst bräuchte er ja kein Reset für einen eigenen Zugang.), läßt mich die Situation vor Ort etwas skeptisch beäugen.

Wenn Du tatsächlich "der Berechtigte/Beauftragte" wärst, dann würde das ja am Ende auf ein "Internet-Verbot" für solche Störenfriede hinauslaufen können, denn ich kann mir nicht vorstellen, daß die anderen mit dem Handeln dieses einen, der ab und zu den Router zurücksetzt - warum gehört der eigentlich trotz physikalischem Zugang zum Gerät nicht zum berechtigten Nutzerkreis? Schon etwas komisch, oder? - so ohne Weiteres einverstanden sind. Das klingt alles "sehr verdächtig" und das Letzte, was wir hier wollen, ist bei solchen Aktionen zu unterstützen, wenn das doch nicht so harmlos ist, wie Du es beschreibst.
 
Letztlich würden solche "Anpassungen" ein recover nicht überleben und das Katz und Maus Spiel in die nächste Runde gehen.
 
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.