CodeKitHub
Koodaustyökalut

NTLM Hash Generator

Viimeksi päivitetty:

NTLM-tiiviste lasketaan koodaamalla syöte UTF-16LE-muotoon (2 tavua merkkiä kohti, little-endian) ja ajamalla se sitten MD4-tiivistealgoritmin läpi — tämä yksinkertainen, suolaamaton toimenpide on koko NTLM-tiivistysjärjestelmä, jota Microsoft Windows on käyttänyt NT 4.0:sta lähtien salasanan tarkistusarvojen tallentamiseen. Tämä työkalu suorittaa juuri tämän laskennan paikallisesti selaimessasi, kokonaan JavaScriptillä, joten mitään kirjoittamaasi ei koskaan lähetetä palvelimelle. Se on tarkoitettu lailliseen tietoturvatyöhön — Active Directoryn tiivisteviennin tarkistamiseen, hashcatin tai Mimikatzin tulostemuotojen tarkistamiseen tai CTF- ja pentestauslaboratorio-tehtävien ratkaisemiseen — ei tilien hyökkäämiseen, jotka eivät ole omiasi tai joiden testaamiseen sinulla ei ole valtuutusta.

NTLM Hash

Mikä tämä työkalu on?

NTLM (NT LAN Manager) on Microsoftin vanha challenge-response-todennusprotokolla, jota käytetään edelleen paikallisiin Windows-tilin kirjautumisiin ja varajärjestelmänä monissa Active Directory -ympäristöissä. Sen salasanan tarkistusarvo — yleisesti kutsuttu "NTLM-tiivisteeksi" — on määritelty Microsoftin omassa MS-NLMP-protokollamäärittelyssä muodossa `MD4(UTF-16-LE(password))`: salasana koodataan ensin UTF-16 little-endian -muotoon (jolloin jokaisesta merkistä tulee 2 tavua, toisin kuin UTF-8:ssa), ja tämä tavusekvenssi tiivistetään sitten kerran RFC 1320:n MD4-algoritmilla.

UTF-16LE-vaihe on yksityiskohta, jonka useimmat tekevät väärin NTLM:ää uudelleentoteuttaessaan: merkkijonon UTF-8-tavujen tiivistäminen UTF-16LE-tavujen sijaan tuottaa täysin erilaisen, virheellisen tiivisteen, vaikka näkyvä teksti näyttää identtiseltä. Tämä työkalu koodaa oikein, joten sen tuloste vastaa sitä, mitä Windows itse tallentaa ja mitä työkalut kuten hashcat (tila 1000) ja Mimikatz odottavat.

Koska NTLM on peräisin ennen nykyaikaista salasanatiivistyssuunnittelua, siinä ei ole mitään myöhemmin erityisesti murtamisen hidastamiseksi rakennettuja suojauksia: ei käyttäjäkohtaista suolaa, ei säädettävää työkerrointa eikä tahallista iterointia. Se on yksi ainoa MD4-kierros, mikä tekee sen laskemisesta erittäin nopeaa — ominaisuus, joka on kätevä vanhojen järjestelmien yhteensopivuuden kannalta, mutta tuhoisa brute force- ja sanakirjahyökkäyksiä vastaan.

Miksi käyttää sitä?

  • Varmista, että Windowsin SAM-tietokannasta, NTDS.dit-vedoksesta tai Active Directory -viennistä poimittu tiiviste vastaa odotettua arvoa valtuutetun tietoturvatestauksen aikana.
  • Vahvista ymmärryksesi MS-NLMP-algoritmista tai tarkista oman koodisi tuottama tiiviste tunnetusti oikeaa toteutusta vasten.
  • Luo NTLM-tiivisteitä hashcatia (`-m 1000`) tai John the Ripper -sanalistatestausta varten laboratoriossa tai CTF-ympäristössä, jota sinulla on valtuudet hyökätä.
  • Ristiintarkista Mimikatzin tai muiden pentestaustyökalujen tulosteet laillisten red team- tai tunnustietojen auditointitehtävien aikana.
  • 100 % paikallinen: syötteesi ei koskaan poistu selaimesta, joten sitä on turvallista käyttää jopa arkaluontoiselle tunnusmateriaalille valtuutetussa arvioinnissa.

Käyttöohje

  1. Kirjoita tiivistettävä salasana tai merkkijono syöttökenttään.
  2. Napsauta "Generate NTLM Hash".
  3. Lue 32-merkkinen heksadesimaalinen NTLM-tiiviste (isot kirjaimet ovat oletuksena päällä, vastaten sitä, miten Windows ja useimmat murtotyökalut sen näyttävät — poista valinta pienten kirjainten saamiseksi).
  4. Napsauta "Copy" kopioidaksesi tiivisteen leikepöydälle.

Esimerkki

Syöte

password

Tuloste

8846F7EAEE8FB117AD06BDD830B7586C

Tämä on tunnettu, itsenäisesti todennettavissa oleva testivektori: merkkijonon "password" NTLM-tiiviste on aina 8846F7EAEE8FB117AD06BDD830B7586C. Voit tarkistaa tämän työkalun tulosteen mitä tahansa muuta oikeaa NTLM-toteutusta vasten.

NTLM vs. nykyaikainen salasanatiivistys

Alla oleva taulukko havainnollistaa, miksi NTLM:ää pidetään vanhentuneena uusien järjestelmien suojaamiseen, vaikka se on edelleen upotettuna vanhaan Windows- ja Active Directory -infrastruktuuriin.

OminaisuusNTLMbcrypt / scrypt / Argon2
Taustalla oleva primitiiviYksi MD4-kierrosTarkoitukseen suunniteltu hidas tiiviste säädettävällä kustannuksella
SuolausEi mitään — identtiset salasanat tiivistyvät aina identtisestiAinutlaatuinen satunnainen suola jokaiselle salasanalle
Iterointi / venytysEi mitäänSäädettävä työkerroin, kasvatettavissa ajan myötä
Kestävyys brute forcea vastaanErittäin heikko — miljardeja arvauksia/s nykyaikaisilla näytönohjaimillaTarkoituksella kallista per arvaus
Missä sitä yhä esiintyyVanha Windows-todennus, Active Directoryn varajärjestelmäUudet sovellukset, nykyinen paras käytäntö

Aiheeseen liittyvät työkalut

Jos tarvitset yleiskäyttöistä kryptografista tiivistettä NTLM-kohtaisen MD4(UTF-16LE)-rakenteen sijaan, nämä työkalut voivat sopia paremmin.

Multi-Algorithm Hash Generator · MD5 Generator · Password Generator

Usein kysytyt kysymykset

Mikä tarkalleen ottaen on NTLM-tiiviste?

Se on salasanan tarkistusarvo, jonka Windows laskee ja tallentaa NT LAN Manager -todennusta varten, määriteltynä Microsoftin MS-NLMP-määrittelyssä muodossa MD4(UTF-16LE(password)) — yksi ainoa MD4-kierros salasanan UTF-16 little-endian -tavukoodauksen yli. Se on aina 128 bittiä, esitettynä 32 heksadesimaalimerkkinä.

Miksi nimenomaan UTF-16LE, eikä UTF-8 tai ASCII?

Windows on tallentanut tekstiä sisäisesti UTF-16LE-muodossa siitä lähtien, kun NT suunniteltiin, joten salasanatkin koodataan tällä tavalla ennen tiivistämistä. Jokaisesta merkistä tulee 2 tavua (little-endian-tavujärjestys), mukaan lukien tavalliset ASCII-merkit kuten 'a', josta tulee 0x61 0x00 pelkän 0x61:n sijaan. Saman merkkijonon UTF-8-tavujen tiivistäminen tuottaa täysin erilaisen, virheellisen tuloksen — tämä on yleisin virhe alusta asti tehdyissä NTLM-toteutuksissa.

Onko NTLM turvallinen käyttää nykyään?

Ei, ja Microsoft itse suosittelee siirtymistä pois siitä Kerberoksen hyväksi mahdollisuuksien mukaan. NTLM:ssä ei ole suolaa, joten identtiset salasanat tuottavat aina identtisiä tiivisteitä kaikilla käyttäjillä ja järjestelmillä, mikä mahdollistaa ennalta lasketut rainbow table -haut. Siinä ei myöskään ole iterointia tai työkerrointa — yksi suolaamaton MD4-kierros — joten nykyaikaiset näytönohjaimet voivat yrittää miljardeja arvauksia sekunnissa siepattua tiivistettä vastaan. Se säilyy pääasiassa vanhempien Windows-järjestelmien ja -sovellusten yhteensopivuuden vuoksi.

Miten NTLM eroaa nykyaikaisesta salasanatiivistyksestä kuten bcrypt, scrypt tai Argon2?

Nykyaikaiset salasanatiivistäjät ovat tarkoituksella hitaita ja suolattuja: bcrypt, scrypt ja Argon2 lisäävät kukin ainutlaatuisen satunnaisen suolan jokaiselle salasanalle sekä säädettävän kustannuskertoimen, jota voidaan kasvattaa ajan myötä laitteiston nopeutuessa, nimenomaan tehdäkseen brute forcesta kallista jopa suuressa mittakaavassa. NTLM ei tee kumpaakaan — se suunniteltiin aikana ennen kuin offline-brute force oli käytännön uhkamalli, ja se näkyy. Juuri tästä syystä NTLM:ää ei koskaan pitäisi käyttää minkään nykyään suunnitellun suojaamiseen; tämän työkalun todelliset käyttötapaukset ovat yhteensopivuus olemassa olevan Windows-infrastruktuurin kanssa ja valtuutettu tietoturvatestaus, ei uusien järjestelmien rakentaminen.

Mitkä ovat NTLM-tiivistegeneraattorin lailliset käyttötarkoitukset?

SAM-tietokannasta tai NTDS.dit-tiedostosta poimittujen tiivisteiden tarkistaminen valtuutetun tunkeutumistestin tai tunnustietojen auditoinnin aikana; oman työkalusi tai skriptiesi MS-NLMP-toteutuksen oikeellisuuden tarkistaminen; testitiivisteiden luominen hashcatia (tila 1000) tai Mimikatz-muodon yhteensopivuustarkistuksia varten hallitsemassasi laboratoriossa; sekä CTF- tai koulutusharjoitusten tekeminen, jotka nimenomaisesti koskevat NTLM:ää. Tämän työkalun käyttäminen hyökkäämiseen tileihin tai järjestelmiin, jotka eivät ole omiasi tai joiden testaamiseen sinulla ei ole kirjallista valtuutusta, ei ole laillista käyttöä.

Lähetetäänkö salasanani tai syötteeni palvelimelle?

Ei. MD4-laskenta suoritetaan kokonaan JavaScriptillä selaimessasi — selaimissa ei ole natiivia MD4-rajapintaa, joten se on toteutettu suoraan tämän sivun asiakaspuolen koodissa, eikä mitään kirjoittamaasi lähetetä minnekään.

Liittyvät työkalut