Thema: Delphi LM Hashs erzeugen

Einzelnen Beitrag anzeigen

Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: LM Hashs erzeugen

  Alt 9. Feb 2006, 14:49
Angenommen das passwort ist "SECRET01" in Hex "0x5345435245543031"

Das Passwort wird auf 14 Byte mit 0 aufgefüllt, oder wenn es länger als 14 Byte ist auf 14 Byte gekürzt
-> "0x5345435245543031000000000000".

Dieser Wert wird in 2 7 Byte Hälften geteilt
"0x53454352455430" und "0x31000000000000".
Diese Werte werden benötigt um 2 DES Schlüssel zu erstellen.

Ein DES Schlüssel ist 8 Byte lang, jedes Byte enthält 7 bit "Schlüsselmaterial" und ein parity bit (ungerade)

Unser erster 7 Byte wert "0x53454352455430", schaut als binär Wert so aus
01010011 01000101 01000011 01010010 01000101 01010100 00110000

A non-parity-adjusted DES key for this value would be:
(in 7 bit Stücke aufteilen und jweils ein parity bit anhängen)

01010010 10100010 01010000 01101010 00100100 00101010 01010000 01100000

Die parity bits sind fett dargestellt.
in hex schaut der Wert so aus:"0x52a2506a242a5060"

Wir wollten aber ungerade Parität haben und schauen uns jetzt jedes Byte
an ob es eine ungerade Anzahl an 1 enthält.

01010010 10100010 01010001 01101011 00100101 00101010 01010001 01100001

Das ist dann unserer erster DES Schlüssel ("0x52a2516b252a5161" in hex).

Für den zweite Schlüssel muß nun das gleiche gemacht werden.
"0x31000000000000", binär ->

00110001 00000000 00000000 00000000 00000000 00000000 00000000

in 7 bit blöcke aufteilen und jeweils ein parity bit hinzufügen
00110000 10000000 00000000 00000000 00000000 00000000 00000000 00000000

("0x3080000000000000" in hexadecimal).

Auf ungerade Parität achten:

00110001 10000000 00000001 00000001 00000001 00000001 00000001 00000001

Das ist dann der zweite DES Schlüssel "0x3180010101010101" in hexadecimal.

Mit jedem DES Schlüssel wird nun der ASCII string "KGS!@#$%" ("0x4b47532140232425" in hex) verschlüssel. Mit dem ersten Schlüssel gibt das "0xff3750bcc2b22412" mit dem zweiten "0xc2265b23734e0dac"
Diese beiden Schifrate werden nun aneinander gehängt und geben den LM-Hash
"0xff3750bcc2b22412c2265b23734e0dac".


Was nun noch fehlt ist wie verschlüssel ich DES, dazu sollte es aber schon etwas im Web geben.
Das DEC von Hagen oder bei den Komponenten von LockBox sollte auch etwas dabei sein.

Gar nicht so schwer - oder?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat