[LMO 4.1.4] Passwort Hack Adminanmeldung - password_hash() statt PW in Klartext

In diesem Forum befinden sich Addons für den LMO.
Probleme mit Addons nicht hier posten, sondern im Forum LMO Addons.
Antworten
Benutzeravatar
Henshingly
Administrator
Administrator
Beiträge: 600
Registriert: Sa 1. Sep 2018, 14:21
Wohnort: Dortmund

[LMO 4.1.4] Passwort Hack Adminanmeldung - password_hash() statt PW in Klartext

Beitrag von Henshingly »

Dies ist der Hack aus der Umfrage die ich am 13. Okt 2024 gestartet hatte.
Leider waren in der Zeit nicht viele User im Forum angemeldet. Deswegen auch die geringe Beteiligung.
Die Beschreibung des Hacks steht auf der Umfrage Seite und in der ReadMe.txt steht wie mit den in der Zip Datei des Downloads vorhandenen Dateien umzugehen ist.

Dieser Hack setzt mindestens den LMO 4.1.4 in der klassischen Version voraus.

LMO Passwort Sicherheit.zip

MfG
Henshingly
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Henshingly am Fr 8. Nov 2024, 11:06, insgesamt 3-mal geändert.
Kein Support über PN oder eMail.
Support gibt es nur im Forum.

Test LMO mit Standardzugang
(ist immer die aktuelle Github Version)

Test für zukünftige Eintragung nach Github
(ist die Testumgebung bevor es ein Commit gibt)
Benutzeravatar
Henshingly
Administrator
Administrator
Beiträge: 600
Registriert: Sa 1. Sep 2018, 14:21
Wohnort: Dortmund

Re: [LMO 4.1.4] Passwort Hack Adminanmeldung - password_hash() statt PW in Klartext

Beitrag von Henshingly »

Update des Passwort Hack Adminanmeldung.

Ich habe mich entschieden in zukünftigen LMO's das Passwort nicht mehr im Klartext zu speichern. Dazu habe ich ich die 4 Dateien, die für die Anmeldung des Administrators zuständig sind, geändert.
Zukünftig wird das Passwort in einer Neuinstallation, wenn der Webserver es zulässt, mit dem Passwordhash() Argon2id verschlüsselt.
Sollte Dein Webserver dies noch nicht bereitstellen wird automatisch eine Klasse tiefer verschlüsselt, nämlich bycrypt.
Hier mal eine Zusammenfassung:
Derzeit gilt Argon2id als der sicherste und beste Standard für das Hashing von Passwörtern. Er wurde speziell entwickelt, um Angriffe durch spezialisierte Hardware wie GPUs oder ASICs extrem teuer und ineffizient zu machen.

1. Platz: Argon2id (Der Goldstandard)
Argon2id ist der Gewinner der Password Hashing Competition.
  • Vorteil: Er ist "memory-hard", benötigt also viel Arbeitsspeicher, was massiv parallele Angriffe (z.B. mit Grafikkarten) blockiert. Er bietet zudem Schutz gegen Side-Channel-Attacken.
  • PHP-Einsatz:

    Code: Alles auswählen

    $hash = password_hash($passwort, PASSWORD_ARGON2ID);


2. Platz: bcrypt (Der bewährte Klassiker)
Bcrypt ist seit Jahrzehnten im Einsatz und gilt weiterhin als sehr sicher.
  • Vorteil: Extrem gut untersucht und in fast jeder Umgebung verfügbar. Er ist resistent gegen Brute-Force, da er die Rechenzeit künstlich erhöht.
  • Einschränkung: Er nutzt nur wenig Arbeitsspeicher, was ihn theoretisch anfälliger für spezialisierte Hardware-Angriffe macht als Argon2id.
  • PHP-Einsatz:

    Code: Alles auswählen

    $hash = password_hash($passwort, PASSWORD_BCRYPT);
DIe Funktion function loginAndUpgrade(), die ich in die lmo-admincheck_auth.php untergebracht habe, kümmert sich um die entsprechende Auswahl der Verschlüsselung.

Für diejenigen die sich für ein Update auf diesen Hack entscheiden, ändert sich überhaupt nichts.
Das Script erkennt automatisch wie die Passwörter vorhanden sind (Klartext, bycrypt oder Argon2id). Bei einer erfolgreichen Anmeldung wird das vorhandene Passwort auf den höchstmöglichen Hash verschlüsselt. Und entsprechend der Passwortwert in Deiner lmo-auth.php eingetragen.

Also zum Beispiel bei dem Standardbenutzer: admin und dem Standardpasswort: lmo steht bisher in der lmo-auth.php folgendes

Code: Alles auswählen

<?php exit(); ?>
admin|lmo|2||0
Dort musst Du auch gar nichts ändern. Du überträgst die vier Dateien aus dem Hack und nach der erfolgreichen Anmeldung als Administrator wandelt das Skript automatisch den bisherigen Klartext Eintrag

Code: Alles auswählen

admin|lmo|2||0
in

Code: Alles auswählen

admin|$2y$10$uMQemLKvWFIrs6v.RJF1OO.HVCcm3MFJpBY7h1TTBh4EmBAFQ/LCG|2||0
für bycrypt Hash oder

Code: Alles auswählen

admin|$argon2id$v=19$m=65536,t=4,p=1$U29SeGtLSkNPSzZvQ0VkTg$O7HenhGveNryZsC/0z6j9cy/4Otr2Qv6PwQqT01daBI|2||0
für den Argon2id Hash um und trägt ihn in die Datei ein.

ACHTUNG
Solltest Du den ersten Hack schon durchgeführt haben, so ändert sich durch das Update gar nichts. Die erste Version dieses Hacks hat das Passwort bycrypt verschlüsselt. Auch dieses erkennt die neue Version und wandelt den Wert entsprechend nach einer erfolgreichen Anmeldung auf den nächst höheren PasswortHash Argon2id um.
Ohne das Du manuell (z.B. per FTP) auf die lmo-auth.php zugreifen musst.

Ich biete hier schon mal die 4 geänderten Dateien zum Download an. In zukünftigen LMO Versionen werden sie schon vorhanden sein.
LMO-Adminanmeldung.zip
Gruß Henshingly
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Kein Support über PN oder eMail.
Support gibt es nur im Forum.

Test LMO mit Standardzugang
(ist immer die aktuelle Github Version)

Test für zukünftige Eintragung nach Github
(ist die Testumgebung bevor es ein Commit gibt)
Antworten