CodeKitHub
Kodēšanas rīki

NTLM jaucējkoda ģenerators

Pēdējoreiz atjaunināts:

NTLM jaucējkods tiek aprēķināts, kodējot ievadi kā UTF-16LE (2 baiti uz katru rakstzīmi, little-endian secībā) un pēc tam apstrādājot to ar MD4 ziņojumu izvilkuma algoritmu — šī vienas kārtas, nesālītā operācija ir visa NTLM jaucējkoda shēma, ko Microsoft Windows lieto kopš NT 4.0, lai glabātu paroļu pārbaudītājus. Šis rīks veic tieši šo aprēķinu lokāli jūsu pārlūkprogrammā, pilnībā JavaScript valodā, tāpēc nekas, ko ierakstāt, nekad netiek nosūtīts uz serveri. Tas pastāv leģitīmam drošības darbam — lai pārbaudītu no Active Directory eksportētus jaucējkodus, pārbaudītu hashcat vai Mimikatz izvades formātus vai risinātu CTF un pentestēšanas laboratorijas uzdevumus — nevis lai uzbruktu kontiem, kas jums nepieder vai kuru pārbaudei jums nav pilnvarojuma.

NTLM Hash

Kas ir šis rīks?

NTLM (NT LAN Manager) ir Microsoft novecojušais izaicinājuma-atbildes autentifikācijas protokols, kas joprojām tiek izmantots lokālai Windows kontu pieteikšanās un kā rezerves risinājums daudzās Active Directory vidēs. Tā paroles pārbaudītājs — parasti saukts par „NTLM jaucējkodu” — ir definēts Microsoft MS-NLMP protokola specifikācijā kā `MD4(UTF-16-LE(password))`: parole vispirms tiek kodēta kā UTF-16 little-endian (tā katra rakstzīme kļūst par 2 baitiem, atšķirībā no UTF-8), un šī baitu virkne pēc tam vienreiz tiek sajaukta ar MD4 algoritmu no RFC 1320.

UTF-16LE solis ir detaļa, kuru vairums cilvēku sajauc, no jauna implementējot NTLM: virknes UTF-8 baitu jaukšana UTF-16LE baitu vietā rada pilnīgi atšķirīgu, nepareizu izvilkumu, pat ja redzamais teksts izskatās identisks. Šis rīks kodē pareizi, tāpēc tā izvade sakrīt ar to, ko glabā pats Windows, un ar to, ko sagaida tādi rīki kā hashcat (režīms 1000) un Mimikatz.

Tā kā NTLM ir senāks par mūsdienu paroļu jaukšanas dizainu, tam nav nevienas no aizsardzībām, kas vēlāk tika izveidotas tieši, lai palēninātu uzlaušanu: nav sāls katram lietotājam, nav konfigurējama darba faktora un nav apzinātas iterācijas. Tā ir viena MD4 kārta, kas padara aprēķinu ārkārtīgi ātru — īpašība, kas ir ērta saderībai ar mantotām sistēmām, bet katastrofāla, pretojoties brutāla spēka un vārdnīcas uzbrukumiem.

Kāpēc to izmantot?

  • Pārbaudīt, vai no Windows SAM datubāzes, NTDS.dit izgāztuves vai Active Directory eksporta iegūtais jaucējkods atbilst gaidītajai vērtībai autorizēta drošības testēšanas laikā.
  • Apstiprināt savu izpratni par MS-NLMP algoritmu vai pārbaudīt sava koda ģenerēto jaucējkodu, salīdzinot ar zināmi pareizu implementāciju.
  • Ģenerēt NTLM jaucējkodus hashcat (`-m 1000`) vai John the Ripper vārdnīcas testēšanai laboratorijā vai CTF vidē, kuru esat pilnvarots uzbrukt.
  • Savstarpēji pārbaudīt Mimikatz vai citu pentestēšanas rīku izvadi leģitīmu red-team vai autentifikācijas datu auditu ietvaros.
  • 100% lokāli: jūsu ievade nekad neatstāj pārlūkprogrammu, tāpēc to droši var izmantot pat sensitīviem autentifikācijas datiem autorizēta novērtējuma ietvaros.

Kā to lietot

  1. Ievadiet paroli vai virkni, kuru vēlaties sajaukt, ievades laukā.
  2. Noklikšķiniet „Ģenerēt NTLM jaucējkodu”.
  3. Nolasiet 32 rakstzīmju garo heksadecimālo NTLM jaucējkodu (izvade lielajos burtos pēc noklusējuma ir ieslēgta, atbilstoši tam, kā to attēlo Windows un lielākā daļa uzlaušanas rīku — noņemiet atzīmi, lai iegūtu mazos burtus).
  4. Noklikšķiniet „Kopēt”, lai kopētu jaucējkodu starpliktuvē.

Piemērs

Ievade

password

Izvade

8846F7EAEE8FB117AD06BDD830B7586C

Šis ir labi zināms, neatkarīgi pārbaudāms testa vektors: virknes „password” NTLM jaucējkods vienmēr ir 8846F7EAEE8FB117AD06BDD830B7586C. Jūs varat salīdzināt šī rīka izvadi ar jebkuru citu pareizu NTLM implementāciju.

NTLM salīdzinājumā ar mūsdienu paroļu jaukšanu

Zemāk redzamā tabula izceļ, kāpēc NTLM tiek uzskatīts par novecojušu jaunu sistēmu aizsardzībai, lai gan tas joprojām ir iekļauts mantotajā Windows un Active Directory infrastruktūrā.

ĪpašībaNTLMbcrypt / scrypt / Argon2
Pamata primitīvsViena MD4 kārtaMērķtiecīgi izveidots lēns jaucējkods ar pielāgojamām izmaksām
SālīšanaNav — identiskas paroles vienmēr tiek sajauktas identiskiUnikāla nejauša sāls katrai parolei
Iterācija / stiepšanaNavKonfigurējams darba faktors, palielināms laika gaitā
Izturība pret brutāla spēka uzbrukumiemĻoti vāja — miljardiem minējumu/sek. mūsdienu GPUApzināti dārgs katram minējumam
Kur tas joprojām sastopamsMantotā Windows autentifikācija, Active Directory rezerves risinājumsJaunas lietojumprogrammas, pašreizējā labākā prakse

Saistītie rīki

Ja jums nepieciešams vispārīga pielietojuma kriptogrāfiskais jaucējkods, nevis NTLM specifiskā MD4(UTF-16LE) konstrukcija, šie rīki var būt piemērotāki.

Vairāku algoritmu jaucējkoda ģenerators · MD5 ģenerators · Paroļu ģenerators

Biežāk uzdotie jautājumi

Kas tieši ir NTLM jaucējkods?

Tas ir paroles pārbaudītājs, ko Windows aprēķina un glabā NT LAN Manager autentifikācijai, definēts Microsoft MS-NLMP specifikācijā kā MD4(UTF-16LE(password)) — viena MD4 kārta pār paroles UTF-16 little-endian baitu kodējumu. Tas vienmēr ir 128 biti, attēlots kā 32 heksadecimālas rakstzīmes.

Kāpēc tieši UTF-16LE, nevis UTF-8 vai ASCII?

Windows iekšēji glabā tekstu kā UTF-16LE kopš NT izstrādes, tāpēc arī paroles pirms jaukšanas tiek kodētas šādi. Katra rakstzīme kļūst par 2 baitiem (little-endian baitu secība), tostarp parastas ASCII rakstzīmes, piemēram, 'a', kas kļūst par 0x61 0x00, nevis vienkārši 0x61. Tās pašas virknes UTF-8 baitu jaukšana rada pilnīgi atšķirīgu, nepareizu rezultātu — tā ir visbiežāk sastopamā kļūda no nulles rakstītās NTLM implementācijās.

Vai NTLM šodien ir droši lietot?

Nē, un pati Microsoft iesaka pāriet uz Kerberos, kur vien tas iespējams. NTLM nav sāls, tāpēc identiskas paroles vienmēr rada identiskus jaucējkodus visos lietotājos un visās sistēmās, kas ļauj izmantot iepriekš aprēķinātas varavīksnes tabulu meklēšanas. Tam arī nav iterācijas vai darba faktora — viena nesālīta MD4 kārta — tāpēc mūsdienu GPU var mēģināt miljardiem minējumu sekundē pret pārtvertu jaucējkodu. Tas saglabājas galvenokārt saderības dēļ ar vecākām Windows sistēmām un lietojumprogrammām.

Kā NTLM atšķiras no mūsdienu paroļu jaukšanas, piemēram, bcrypt, scrypt vai Argon2?

Mūsdienu paroļu jaukšanas rīki ir apzināti lēni un sālīti: bcrypt, scrypt un Argon2 katrs pievieno unikālu nejaušu sāli katrai parolei un pielāgojamu izmaksu faktoru, ko var palielināt laika gaitā, aparatūrai kļūstot ātrākai, tieši lai padarītu brutāla spēka uzbrukumus dārgus pat lielā mērogā. NTLM nedara nevienu no šīm lietām — tas tika izstrādāts laikmetā pirms bezsaistes brutāla spēka uzbrukumi kļuva par praktisku draudu modeli, un tas ir redzams. Tieši tāpēc NTLM nekad nevajadzētu izmantot, lai aizsargātu kaut ko, kas tiek izstrādāts šodien; šī rīka reālie lietošanas gadījumi ir saderība ar esošo Windows infrastruktūru un autorizēta drošības testēšana, nevis jaunu sistēmu veidošana.

Kādi ir leģitīmi NTLM jaucējkoda ģeneratora lietošanas veidi?

Pārbaudīt no SAM datubāzes vai NTDS.dit iegūtus jaucējkodus autorizēta iespiešanās testa vai autentifikācijas datu audita laikā; pārbaudīt, vai jūsu paša rīki vai skripti pareizi implementē MS-NLMP; ģenerēt testa jaucējkodus hashcat (režīms 1000) vai Mimikatz formāta saderības pārbaudēm laboratorijā, kuru kontrolējat; un risināt CTF vai mācību uzdevumus, kas skaidri saistīti ar NTLM. Šī rīka izmantošana, lai uzbruktu kontiem vai sistēmām, kuras jums nepieder vai kuru pārbaudei jums nav rakstiska pilnvarojuma, nav leģitīma lietošana.

Vai mana parole vai ievade tiek nosūtīta uz serveri?

Nē. MD4 aprēķins pilnībā notiek JavaScript valodā jūsu pārlūkprogrammā — nav nekādas dabiskas pārlūkprogrammas API MD4, tāpēc tas ir implementēts tieši šīs lapas klienta puses kodā, un nekas, ko ierakstāt, nekur netiek pārraidīts.

Saistītie rīki