2016-09-27 6 views
-1

ist es möglich, das Benutzer-Passwort von TDS in ClearText über Java zu erhalten? Mit ldapsearch -v -D cn=root -w xxxxxx -s sub uid=testuser userPassword ich erhalte das folgende Ergebnis:TDS - BenutzerPasswort empfangen

enter image description here

Das Passwort ist in diesem Fall: Joko2014!

In Java Ich habe es versucht, mit:

String[] attrIDs = {".....",....,"userPassword"} 
SearchControls ctls = new SearchControls(); 
ctls.setReturningAttributes(attrIDs); 
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); 

NamingEnumeration<SearchResult> results = ctx.search(name, 
         filter, ctls); 

while (results.hasMore()) { 
    SearchResult entry = results.next(); 
    System.out.println(entry); 
} 

Aber die Ausgabe in der Konsole ist nur:

uid=testuser: null:null:{givenname=givenName: xxxx, sn=sn: xxx, pwdchangedtime=pwdChangedTime: 20160926173016.000000Z, mail=mail: [email protected], uid=uid: testuser, userpassword;binary=userPassword;binary: [[email protected], pwdreset=pwdReset: true, cn=cn: xxxx, description=description: xxxxxx;xxxxxx;I;xxxxxx} 

Was „binary = userpassword tut; binary: [B @ 1a626f .. . "meine meinung und wie kann ich hier das passwort bekommen? Muss ich es kodieren? Wenn ja, wie kann ich es lösen? Die anderen operationalen Attribute sind kein Problem.

Mit freundlichen Grüßen!

+0

Nicht, wenn der LDAP-Server richtig konfiguriert ist. Es sollte die Passwörter hashing sein, was ein einseitiger Prozess ist. Wenn Sie Ihren Server nicht konfiguriert haben. siehe [hier] (http://stackoverflow.com/questions/2283937/how-should-i-ethical-approach-user-password-storage-for-later-plaintextretrie/2287672#2287672) für warum Sie sollten. – EJP

+0

Meinst du, wenn der Server richtig konfiguriert ist, können die Passwörter nicht empfangen werden oder wenn es richtig konfiguriert ist, kann ich? Ist die Konfiguration über das "IBM Security Directory Server-Webverwaltungstool" möglich? Weil ich wirklich die Kennwörter extrahieren und sie an einem anderen Ort wieder importieren muss. – InfoEngi

+0

Sie können Klartextkennwörter nicht abrufen, wenn der OpenLDAP-Server korrekt konfiguriert ist. Ich weiß nicht, warum Sie über das Web-Verwaltungstool von IBM Security Directory Server sprechen, wenn Sie sich mit OpenLDAP beschäftigen. – EJP

Antwort

0

Einmal in das LDAP, das mit HASH (PASSWORT + SALT) Passwortspeicher (Art der Voreinstellung für userPassword-Eigenschaft) konfiguriert ist, ist es nicht möglich, das ursprüngliche Passwort im Klartext zu erhalten.

+0

Weißt du, wo ich sehen kann, ob es mit Hash (Passwort + Salz) konfiguriert ist? Vielleicht kann ich es ändern, um die Klartextpasswörter zu erhalten. – InfoEngi

+0

Es ist normalerweise eine Konfigurationsoption, ich bin nicht sehr versiert mit OpenLDAP Konfiguration, aber ich denke, dass Sie die Konfigurationsoptionen in OpenLDAP man pages/Dokumentation finden konnten – Ironluca

+0

okay, ich habe die Option in TDS gefunden ... und in der "Sicherheitseigenschaften verwalten/Passwortverschlüsselung" ist eine AES256 - Verschlüsselung konfiguriert. Aber ich verstehe nicht, ich kann das Passwort im Klartext nur mit "ldapsearch -v -D cn = root -w xxxxxx -s sub uid = testuser userPassword" – InfoEngi

0

fand ich die folgende ältere Frage LINK

Ist dieser Ansatz richtig oder möglich? Weil es funktioniert nicht für die Arbeit, weil es scheint, dass userpassword „null“ ist Attribute userPassword = entry.getAttributes().get("userPassword");

„mit ldap werden wir Daten in Byte erhalten array.if Sie den Original-Passwort Text verwenden, um den folgenden Code erhalten müssen:“ Attribute userPassword = attributes.get("userPassword"); String pwd = new String((byte[]) userPassword.get());

+0

Nein, es wird nicht, sobald HASH (PASSWORT + SALT) erhalten Sie diesen Wert in der Zeichenfolge pwd nicht das ursprüngliche Benutzerkennwort – Ironluca