NTLM Proxy Auth Pass Hash bekommen

Hallo,

ich habe mehrere NTLM Handshakes mitgeschnitten.
Meine Frage nun wie bekomme ich den Passwort Hash?
Ich habe die LAN Manager Pesponse, NTLMv2 Response sowie NTLM Client und Server Challenge, der Session Key bleibt allerdings Empty. (Halt alles was in nem NTLMSSP_AUTH/CHALLENGE/NEGOTIATE Päckchen drin ist)
(Abgefangen mit Wireshark)

Muss der Hash noch irgendwie aus etwas berechnet werden oder steckt der in den Responses?

Grüße
pythonimus
 
Zuletzt bearbeitet:
... gar nicht? :rolleyes:

eigenen server aufbauen
challange statisch festlegen
client anlocken
response auf statische challange mit rainbowtable vergleichen
bischen bruteforce
glücklich sein
 
Ja, das hab ich jetzt auch rausbekommen...
Eine Frage noch: John the Ripper bruteforced ja NTLM Handshakes.
Da muss man aber den Handshake im .lc Format angeben (worüber ich im Internet nichts fand außer):

"User::host:LM response:NTLM response:challenge"

NTLM response: Aber die Ganze? oder nur bis :01:01: (nur der Header)?
Challenge: Die Client Challenge?

Lohnt sich das überhaupt zu brutforcen? John läuft bei mir nur auf einem CPU Kern ohne GPU.

Und: Wieso sollte ich jetzt einen eigenen Server aufbauen?
Einfacher geht es doch einfach mit ettercap filtern die challenge zu verändern?
 
Zuletzt bearbeitet:
natürlich kannst du eine erschöpfende schlüsselsuche durchführen ... die wird auch erfolg haben wenn sie bis zu einem treffer durchgeführt wird, aber die sache mit der rechenleistung und der resultierenden dauer dieses vorhabens ... rechne es dir selbst aus ...

wenn du die challange austauscht, wird der komplette anmeldevorgang scheitern, was vermutlich zur entdeckung der manipulation führt ... sollte unter laborbedinungen kein problem sein ...

aber bevor wir das hier weiterverfolgen:

machen die beteiligten systeme LMv1, NTLMv1 oder NTLMv2?
in was für einer umgebung machst du das, was du da tust?
was genau tust du da?
 
Da ich NTLMv2 Responses bekomme gehe ich von NTLMv2 aus.
Ich werde mich hier nicht rechtfertigen wieso/warumm/wo/mit wem ich das mache... :confused:
Und was ich mache ist ja klar: Durch eine MITM Attacke probieren aus einen NTLM Handshake das Passwort zu bekommen.

Was ich noch nicht ganz verstanden habe:
Der Client will sich mit dem Server verbinden, als Antwort erhält der Client eine zufällig generierte Zeichenkette (Server Challenge). Die Antwort vom Client ist eine Client Challenge, Lan Manager Response und die NTLM(v2) Response. Irgendwo da ist das PW reingerechnet.

Wenn ich dem Clienten jetzt eine SC vorgebe rechnet dieser mit dieser CC das PW ein. Ich stütze mich auf dieses Schaubild:

NTLM - Wikipedia, the free encyclopedia

Code:
SC = 8-byte server challenge, random
CC = 8-byte client challenge, random
CC* = (X, time, CC, domain name)
v2-Hash = HMAC-MD5(NT-Hash, user name, domain name)
LMv2 = HMAC-MD5(v2-Hash, CS, CC)
NTv2 = HMAC-MD5(v2-Hash, CS, CC*)
response = LMv2 | CC | NTv2 | CC*
Was leider auch nur weitere Fragen aufruft:
Die SC wird laut diesem in garnichts eingerechnet.
Was ist (X stands for the fixed contents of a formatting field.) oder CS?

Falls CS SC sein soll haben wir CC CS username und domain name also alles bis auf den NT-Hash.
Also lasse ich nun meinen PC "HMAC-MD5(HMAC-MD5(MD4(a-zzzzzzzzz), user name, domain name) , CS, CC)" rechnen und wenn ich dann die Response bekomme guck ich nur nach welcher Hash dazu passt.

Wow wie toll. Das Gefühl wenn man anfängt zu schreiben weil man Fragen hat und wenn man fertig mit schreiben ist sie sich alle selbst beantwortet hat...
Letzte Fragen: Gibts für die Berechnung schon Programme die auch am besten die GPU mit benutzen? Oder gibt's das schon fertiggerechnet irgendwo? Ist das dann nicht genau das selbe wie Bruteforcen mit John?

-pythonimus
 
wikipedia ist nicht das maß aller dinge ... das hier zwar auch nicht, aber in sachen ntlm vermutlich genau genug ...

sc ist wohl ein tippfehler ... gemeint ist scheinbar cs

fertig berechnet (rainbowtable) wirds das nicht geben, da v2 wegen der client challange (a.k.a. nonce) nicht mehr für das "böser server" szenario anfällig ist ... (oder dein precomputation aufwand wächst um wahnwitzige 64 bit, was dir aber nur einen angriff auf LMv2 erlauben würde, nicht aber auf NTLMv2)

entsprechende implementationen für die erschöpfende schlüsselsuche mit GPU unterstützung und/oder verteiltem rechnen gibt es bereits ...


der unterschied einer möglichen precomputation-abkürzung zu john wäre, dass ein teil des angriffs durch einen time-memory-tradeoff beschleunigt würde, also der zu durchsuchende schlüsselraum erheblich kleiner wäre ...

da ich zweifel daran habe, dass du das ganze nur zu rein bildungs bezogenen zwecken machst, brauchst du von meiner seite keine hilfe erwarten die über die theorie hinausgeht ... ;)
 
Da bruteforce bei NTLMv2 scheinbar nicht zum Erfolg führt (in absehbarer Zeit), frage ich mich ob vielleicht eine downgrade attacke mit attercap Filtern funktionieren würde. Also von NTLMv2 Responses zu einer NTLM (LM) Response.

Aber wo geschieht die Absprache was für eine Response man verwendet? In den Flaggen?
 
das problem dürfte in diesem fall die sicherheitseinstellung sein, die als protokoll v2 vorschreibt ... bei einem downgrade dürfte der vorgang abgebrochen werden
 
@GrafZahl
da ich zweifel daran habe, dass du das ganze nur zu rein bildungs bezogenen zwecken machst, brauchst du von meiner seite keine hilfe erwarten die über die theorie hinausgeht ... ;)

Ich denke hinweise auf irgendwelche Sicherheitseinstellungen gehen über die Basis hinaus.
Stell den Support hier lieber ein !
 
Zurück
Oben