Beperkt houdbaar
Voor dit verhaal heb ik een Windows 7 VM gemaakt, met de standaardgebruiker "Henk":

Henk wil graag administrator worden, anders kan hij SuperSexyCelebsNudeScreensaver.zip.png.scr.exe niet installeren, en dat zou toch jammer zijn. Er zijn meerdere manieren waarop hij dat kan doen.
Wachtwoorden kraken
Henk is niet helemaal vreemd met computers, en heeft ook wel wat ervaring met Linux. Ondanks dat zijn account enkel beperkte rechten heeft, kan hij de computer wel gewoon met een Live-CD van Ubuntu opstarten. En dat doet hij dan ook.
Als de computer eenmaal opgestart is, kopiëert hij de volgende bestanden even naar een tijdelijke locatie (In vaktermen, /tmp):
- C:\Windows\System32\Config\SAM
- C:\Windows\System32\Config\SYSTEM

Waarom? Omdat alle wachtwoorden voor de gebruikersaccounts in het SAM-bestand staan. Om deze uit te kunnen lezen heb je ook wat info uit het SYSTEM bestand nodig. Hiervoor heb je meerdere tooltjes, maar Henk gebruikt het gratis te verkrijgen creddump. Even uitpakken (En wellicht apt-get install python-crypto), en draaien met:
./pwdump.py /tmp/SYSTEM /tmp/SAM
En woei, hashes (Het wachtwoord in versleutelde vorm):

Het formaat in dit geval is:
Wat even belangrijk is om te weten, is dat een LM hash van aad3b435b51404eeaad3b435b51404ee, of een NTLM hash van c7f06f0db9d571cf0f4408b777af3616 ook wel bekend staat als leeg, niks, noppes nada. Zoals hier te zien is, heeft alleen Henk zijn wachtwoord opgeslagen in LM formaat. Dat is voor Henk heel slecht, maar voor iemand die zijn wachtwoord wil kraken heel, heel goed. Waarom, dat wordt ietwat veel om in dit verhaal uit te leggen, maar als je zin hebt: LM hash - Wikipedia.Gebruikersnaam:User ID:LM Hash:NTLM Hash
Wat je voor dit verhaal moet weten, is dat LM hashes onwijs makkelijk te kraken zijn, en dat NTLM een stuk veiliger is. Ook staat het opslaan van LM hashes standaard uit vanaf Windows Vista. Toch zijn er bedrijven / systeembeheerders die dit nog gebruiken. Dus, herken jij jezelf in dit profiel? Soliciteer nu! Doe eens niet!.
Kraaktijd! De eerste poging is een gewone brute-force aanval met John the Ripper:

(De commandline spreekt voor zich in dit geval denk ik, kraak de LM hash in "/tmp/hash_van_henk" met john)
Vanwege de manier waarop LM hashing werkt, wordt het wachtwoord in twee delen gekraakt, en is de uitkomst altijd uppercase. Dus aan elkaar geplakt komt er een wachtwoord uit van W4CHTW00RDH3NK.
Helaas gaat Windows dat niet accepteren. Maar we kunnen dit wachtwoord wel gebruiken voor een aanval op het NTLM gedeelte van de hash. Het reeds achterhaalde wachtwoord zetten we in /tmp/wordlist, en voeren nog een aanval met John uit:

Wat je hier ziet is John die de NTLM hash probeert te kraken met "W4CHTW00RDH3NK" als enige woord. --rules zorgt ervoor dat er enkele regels toegepast worden, waaronder het vervangen van hoofdletters met kleinere letters.
Dit hele proces neemt al snel 15 minuten of meer in beslag, en zoveel geduld opbrengen is lastig. Gelukkig hebben we de foto's rainbow tables nog! Wat rainbow tables precies zijn ga ik wederom niet uitleggen, maar mocht je het echt heel heel heel heul heul graag willen weten, zie dan hier. Het enige wat je nu moet weten, is dat het kraken van LM hashes met rainbow tables echt retesnel is. De tool in dit geval is rcracki_mt, en de command line is als volgt:
./rcracki_mt -f /tmp/hash_van_henk -t 4 /storage/RT/LM/lm_all-space#1-7_0/*
- ./rcracki_mt - Programma
- -f /tmp/hash_van_henk - De te kraken hash
- -t 4 - Gebruik 4 threads (Is die dure CPU toch nog ergens goed voor)
- ./rcracki_mt -f /tmp/hash_van_henk -t 4 /storage/RT/LM/lm_all-space#1-7_0/* - Gebruik alle tables in de map lm_all-space#1-7_0
- lm_all-space#1-7_0
- lm_all-space#1-7_1
- lm_all-space#1-7_2
- lm_all-space#1-7_3

Kijk, dat zien we graag. Klaar in minder dan een halve minuut, en rcracki_mt heeft zelf al uitgezocht hoe het zit met hoofdletters. Remember kids, a lazy hacker is a good hacker.
Helaas voor Henk, is het wachtwoord van MrAdmin niet in LM hash opgeslagen, en met je z'n eigen gekraakte wachtwoord kan hij niet zo veel (Maar het is wel verdomd handig voor dit verhaal). Hij kan de NTLM variant wel proberen te kraken, maar dat gaat waarschijnlijk aanzienlijker langer duren, dus tijd voor een ander truukje.
Sticky Keys
Ken je dat? Ben je lekker aan het gamen, krijg je opeens een piepje uit de krochten van de hel en / of pc-speaker, en dit venstertje gooit je game naar de taakbalk:

Wat blijkt, na 5 keer op de shift toets drukken komt dit omhoog. Als je dat doet, opent Windows het programma C:\Windows\System32\sethc.exe, ook voordat een gebruiker ingelogd is, op het aanmeldscherm.
Omdat Henk toch nog in een Linux omgeving is, heeft hij niks met Windows permissions te maken, en kan hij gewoon het volgende doen:

Oftewel: verplaats sethc.exe naar sethc.exe.bak, en kopiëer cmd.exe naar sethc.exe. Henk herstart de PC, en drukt bij het inlogscherm 5 keer op shift:

W00t! Een shell, op het inlogscherm, als NT AUTHORITY\SYSTEM (Hogere rechten bestaan niet op een Windows systeem). Zou ik explorer kunnen starten?:


Hmm, een beetje vreemd, maar wel lekker. Een desktopomgeving in je aanmeldscherm! Maar, genoeg gespeeld, tijd voor de climax:


Profit! Henk is lid van de Administrator groep, en kan eindelijk zijn nieuwe screensaver installeren. Ook heeft Henk nu wat meer mogelijkheden om alsnog achter het wachtwoord van MrAdmin te komen.
Hij wacht tot MrAdmin een keer inlogt op de pc, en zich niet goed afmeld. Dan pakt Henk de onwijs handige tool wce. Wat kan WCE? Nou, dit:

Ja, je ziet het goed. Zolang een gebruiker ingelogd is, of zolang er een service draait als een bepaalde gebruiker, kan WCE het wachtwoord plaintext uit het geheugen vissen. Oók als het gaat om gebruikers in een Windows domein (Dus, Admins op Terminal Servers, niet doen hè?).
Kan dat niet makkelijker?
Ja hoor, veel makkelijker, er bestaat namelijk iets als kon-boot. Is niet gratis, maar wel very much handig. Want zodra je van de kon-boot cd opstart, kan je in alle accounts op de computer inloggen zonder een wachtwoord in te voeren, en wordt het sticky keys truukje van hierboven automatisch toegepast:
Maar ik kan helemaal niet van CD starten, maar onze beheerder heeft de computers wel zo ingesteld dat ze via PXE boot een image kunnen downloaden
Nou, dat maakt het nog een stukje makkelijker. De populaire tool Metasploit heeft hier namelijk een prachtige module voor:

Wat dit doet? Het start een eigen PXE server, een computer start er automatisch van op en er wordt een gebruiker "metasploit" toegevoegd, en lid gemaakt van de Administrator groep. Ook zet het een eventuele firewall uit, en installeert het een service waar metasploit naar kan verbinden om Meterpreter te starten op de machine (Een soort shell++, mocht je er meer over willen weten, even googlen
Wat in actie screenshots dan, voor die techneuten die nu nog steeds benieuwd zijn:





Dat allemaal automagisch, et voilá:

Hoe makkelijk wil je het hebben
Eek! (Tuuunununununuuu) Hoe voorkom ik dit?
- Zorg (voor oudere operating systems en domeinen) dat het gebruik van LM hashes uit staat
- Zet een wachtwoord op je BIOS.
- Zorg dat het eerste boot device je HDD is.
- Zorg eventueel voor disk encryptie
- Don't be an idiot

11-02 chpwn
03-01 Wifileaks Pt. II
Reacties
[Reactie gewijzigd op woensdag 23 januari 2013 23:05]
[Reactie gewijzigd op woensdag 23 januari 2013 23:07]
dan en alleen dan, heb je over 10 tot 30 jaar na nu een kans dat jan simpel mij niet elke minuut meer met spam bestookt naamens een croatische of nigeriaanse vriend..
Kennelijk zijn er ook genoeg admins die dit niet weten.i-chat schreef op woensdag 23 januari 2013 @ 23:42:
genoeg pee-cee gebruikerts die dit niet weten
Alleen maar oppassen dat een goede admin er niet achter komt wanneer je in een bedrijfs/schoolnetwerk zit. Kan je volgens mij veel problemen mee krijgen.
[Reactie gewijzigd op donderdag 24 januari 2013 11:09]
Maar dit zou toch niet zo bijzonder moeten zijn? Ik moest laatst bij een pc met Linux Mint root acces krijgen zonder het wachtwoord, ik had wel een normaal account. Door een regeltje in GRUB aan te passen (iets met /bin/bash varvangen door init.d
TADAA root access met passwd root xD
Maar je kan volgensmij GRUB ook met een password beveiligen, dus dat kan eigenlijk ook niet
[Reactie gewijzigd op donderdag 24 januari 2013 11:34]
linux is eigenlijk zeer eenvoudig wanneer je fysieke toegang hebt. Je start even op met een rescue image, je chroot de bestaande installatie en je kan alles doen wat je wenst met root rechten. Op dat gebied is het dus onder Windows net een ietsje complexer. Maar van zodra je toegang hebt tot de systeembestanden is eigenlijk niets meer veilig.ik.ben.iemand. schreef op donderdag 24 januari 2013 @ 11:32:
Zeer goed gevonden van dat plaktoetsen exe vervangen door cmd!
Maar dit zou toch niet zo bijzonder moeten zijn? Ik moest laatst bij een pc met Linux Mint root acces krijgen zonder het wachtwoord, ik had wel een normaal account. Door een regeltje in GRUB aan te passen (iets met /bin/bash varvangen door init.dvolgensmij)
TADAA root access met passwd root xD
Maar je kan volgensmij GRUB ook met een password beveiligen, dus dat kan eigenlijk ook niet
Jawel, maar dat hangt compleet af van de complexiteit van het wachtwoord. Het gemiddelde wachtwoord van 10 karakters bestaande uit één woord, een hoofdletter, en één of twee cijfers (met soms een uitroepteken) is prima te doen.Motrax schreef op donderdag 24 januari 2013 @ 12:18:
Maar met NTLM is het ww dus niet te kraken? Of wel binnen afzienbare tijd met rainbow tables?
dat kan met windows min of meer ook als je in het ntlm bestand de hashes aanpastBlokker_1999 schreef op donderdag 24 januari 2013 @ 11:43:
[...]
linux is eigenlijk zeer eenvoudig wanneer je fysieke toegang hebt. Je start even op met een rescue image, je chroot de bestaande installatie en je kan alles doen wat je wenst met root rechten. Op dat gebied is het dus onder Windows net een ietsje complexer. Maar van zodra je toegang hebt tot de systeembestanden is eigenlijk niets meer veilig.
Net als je andere blogposts overigens.
Ik lees ze met veel plezier!
Meer dank je denktwibra schreef op donderdag 24 januari 2013 @ 23:40:
toch, eer je fysieke toegang hebt op een machine, dan ben je toch al ver. hoeveel truuks schieten er nog over als je dat wegneemt? enkel wce. maar die is dan wel weer heel goed, want als je remote toegang hebt tot een server is er veel kans dat er ergens nog iets draait onder een andere account...
Daarnaast, op Windows XP staan backups van de SAM, SYSTEM en SECURITY hyves opgeslagen in c:\windows\repair, die sommige users kunnen openen. Zo kan je zelfs windows wachtwoorden achterhalen als je een website hebt die kwetsbaar is voor Local File Inclusion
Het punt van dit blog was meer dat heel veel mensen onwijs veel tijd steken in digitale beveiliging, maar het fysieke deel compleet vergeten.
Och, als ik er toch eens live voorbeelden bij kon pakken
[Reactie gewijzigd op vrijdag 25 januari 2013 00:01]
natuurlijk niet! overigens een handig trucje, kende ik helemaal nog niet. Als ik vragen mag, hoe ben je hier in hemelsnaam achtergekomen? of gewoon lekker spelen en het kwam toevallig naarboven?Oók als het gaat om gebruikers in een Windows domein (Dus, Admins op Terminal Servers, niet doen hè?).
Lof voor je manier van schrijven, ik lees je blogs altijd met veel plezier, keep up the good work!
[Reactie gewijzigd op vrijdag 25 januari 2013 11:19]
Dat verband zie ik niet helemaal
It's my jobthomasjuuu schreef op vrijdag 25 januari 2013 @ 11:18:
[...]
natuurlijk niet! overigens een handig trucje, kende ik helemaal nog niet. Als ik vragen mag, hoe ben je hier in hemelsnaam achtergekomen? of gewoon lekker spelen en het kwam toevallig naarboven?
Lof voor je manier van schrijven, ik lees je blogs altijd met veel plezier, keep up the good work!
Klopt, maar ik had de LM hash voor de admin user in willen stellen. Faal aan mijn kant dus, maar het was al laatCompizfox schreef op vrijdag 25 januari 2013 @ 18:19:
Maar waarom moet Henk nou zijn eigen password kraken voordat hij gebruik kan maken van die 'exploit' met de Sticky Keys?
Dat verband zie ik niet helemaal
Geen admin rechtenBlokker_1999 schreef op zaterdag 26 januari 2013 @ 17:36:
Hoe kan een admin wapenen tegen bijv. die stickey keys truc?
Niet opstarten van een ander medium (wachtwoord op bios)
Full disk encryptie
[Reactie gewijzigd op zaterdag 26 januari 2013 21:06]
Ik kan begrijpen dat die laatste 2 helpen, maar hoe bedoel je die eerste? Ik vraag me namelijk sowieso af, hoe komt het dat een shell die je op deze manier opstart 'gewoon' de hoogste rechten heeft? En hoe kun je er dan voor zorgen dat er 'Geen admin rechten' zijn?Slurpgeit schreef op zaterdag 26 januari 2013 @ 21:06:
[...]
Geen admin rechten
Niet opstarten van een ander medium (wachtwoord op bios)
Full disk encryptie
[Reactie gewijzigd op zondag 27 januari 2013 20:44]
[Reactie gewijzigd op zondag 27 januari 2013 20:57]
Kan, maar er zijn nog meer van dit soort truukjes. Bijvoorbeeld Num-lock 5 seconden ingedrukt houden.moreasy schreef op dinsdag 29 januari 2013 @ 14:59:
Sticky keys uitschakelen is ook een optie om dit te voorkomen.
http://cheezburger.com/7004226816
Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.