Sunday, June 06, 2010

Windows: Pass the Hash angrep

April 1997: Paul Ashton sender en e-post til NTBugTraq, og passordsikkerhet i Microsoft Windows blir aldri den samme igjen.

Han beskriver en teknikk for å sende et brukernavn og tilhørende hashverdi av passordet til et annet system, for på den måten å oppnå tilgang i egenskap av en annen bruker. Det interessante her at han ikke VET passordet til den andre brukeren, han har bare fått tak i en "kryptert" utgave av det.

Denne bloggposten er oppfølger #1 til "Lengde har ingen betydning".


(Denne bloggposten er ikke for deg som vanlig hjemmebruker. Den er beregnet på teknisk personell, sikkerhetsfolk og IT-revisorer m.fl. Den er spesielt relevant for enhver organisasjon med mange Windows maskiner i nettverket sitt. Desto flere desto viktigere.)

Paul Ashton beskrev i praksis følgende angrepsmetode (Du er Eve, offeret er Alice, og serveren du skal inn på heter Bob).
1. Få tak brukernavnet til Alice og hashverdien for hennes passord (Du husker vel hva en hash funksjon er?). Dette kan gjøres på mange ulike måter, noe jeg vil komme tilbake til i neste bloggpost.

2. Modifiser Samba klienten på en Unix maskin til å sende brukernavn/passordhash til systemet du angriper. I praksis gjør du et "Sesam, sesam, lukk deg opp!" angrep.

3. Du oppnår filtilgang som Alice, og alle de filer og informasjon som Alice har adgang til. Dersom Alice også har tillatelse til å kjøre programmer på systemet du nå har fått tilgang til, så kan du gjøre det samme. Dette kan være f.eks. regnskapssystemer, sensitive personopplysninger, innsidedata og så videre.

Dette er et enkelt angrep å utføre. Det har nå vært dokumentert i over 13 år. Dagens verktøy er mer automatisert, enklere å bruke, og er både gratis og lett tilgjengelig på internett. Det har til og med blitt demonstrert på Microsoft konferanser - på invitasjon fra Microsoft!

"13 år og demonstrert på Microsoft konferanser? Så hvorfor i all verden gidder du å blogge du om det?"

Elementært, Dr Watson:
1. Jeg kjenner til svært få organisasjoner som har iverksatt tiltak for å redusere sannsynligheten for vellykkede angrep av denne typen.

2. Jeg har møtt utrolig mange Windows teknikere, sikkerhetsfolk, IT-revisorer og andre som aldri har hørt om teknikken, verktøyene eller kjente angrep.

3. Jeg er av den klare oppfatning av de ovennevnte ikke vet hvilken risiko de står overfor, og at de bør gjøres oppmerksom på det som del av sin risikovurdering. (En risikoanalyse hvor man ikke vet hvilke trusler man står overfor har begrenset effekt, for å si det forsiktig).

Konsekvensene er at det spiller ingen rolle hvor langt & komplisert ditt Windows passord er, enn så lenge noen andre kan få tak i ditt brukernavn og din passordhash.  

"Og hvordan kan de gjøre det da?"

Vel...., når sist lånte du vekk pc'en din til en venn, kollega eller familiemedlem? Uten å ha oppsyn kontinuerlig med hva som foregikk på skjermen? Jeg trenger kanskje bare 1-2 minutter med fysisk tilgang i en del tilfeller for å kunne stjele hashverdien av ditt passord, mens brukernavnet er jo ingen hemmelighet uansett (men jeg tar det ut også fra maskinen din - for sikkerhets skyld).

Hva med alle administratorer, helpdesk og andre som faktisk har tilgang til din maskin via nettverket? I en stor organisasjon er det nok de færreste som kjenner til det faktiske tallet - og det vil normalt være høyt nok til å skremme de fleste.

Så der gir vi oss for i kveld. En god porsjon FUD fra yours truly. Oppfølgere kommer naturlig nok, både på angrepsverktøy, fremgangsmetodikk og viktigst av alt; hva enhver organisasjon bør gjøre for å redusere sannsynlighet og konsekvens tilknyttet slike angrep.

3 comments:

  1. Great post Per. I highly recommend people check out this overview by SANS of a typical attack against enterprise networks to see a pass-the-hash, (PtH), attack in action:

    http://www.sans.org/top-cyber-security-risks/tutorial.php

    Also, below is a link showing how to execute the attack using metasploit and psexec:

    http://www.offensive-security.com/metasploit-unleashed/PSExec-Pass-the-Hash

    The thing to keep in mind is that PtH attacks can turn a minor incident into a major incident very quickly. An attacker has to break into a computer initially using some other attack, but once they do PtH can let them compromise every other computer in the domain within minutes.

    Luckily there is hope. I'm still doing some testing so take everything I say with a grain of salt, but here are a few things that can mitigate this attack. Please note, the below only deals with executing commands with PtH via the psexec tool included in Metasploit:

    Windows7 and Sever2008 are not vulnerable by default to psexec

    For psexec to work, the computer must be part of a domain, (technically the defender could enable it on a non-domain computer, but it's not trivial to do).

    Most PtH attacks only work with the local computer hashes, and not the domain user hashes.

    Psexec only works if the same local passwords are used on multiple computers, (which is how most networks are set up unfortunately).

    On the plus side, a manually added password salt can help mitigate that since PtH doesn't give an attacker any idea about what the base password is. For example, you could append the last octet of a computer's IP address to the local admin's password, (aka 'password.221'). Even if the attacker knows that you are doing this, it doesn't help them because they still don't know the base password you are using. At the same time, every computer's local admin password is different so PtH doesn't work.

    Once again Per, thanks for the exelent post. This is an important topic that people need to be made aware of.

    ReplyDelete
  2. Thanks for the feedback Matt, highly appreciated!

    First of all; I promise to write more blog posts in English (so you don't have to Google Translate everything... :-))

    Second; my reason for doing the latest posts in Norwegian is just to make some of this stuff available in my native language, it is about time somebody did.

    Third; You are way ahead of me with this comment. :-) I'll write about tools, techniques, mitigating factors and recommendations on how to reduce the probability as well as consequences of successful attacks.

    But all that in the next coming posts.

    Again; thank you for the quick reply!

    Regards,
    Per

    ReplyDelete
  3. Don't worry about the Norwegian posts. I agree with you that there needs to be more security research in other languages, even if I'm selfish enough to prefer English. I'll read what you write regardless of the language ;)

    Also, as an update on my research, one of the tools included in the "Pass the Hash" toolkit allows the attacker to use domain hashes if someone logs into a compromised computer while the attacker is running it. The tool in question is whosthere.exe and it's really nasty since I can't think of a way to mitigate it besides not getting hacked in the first place. I haven't gotten it to work on Win7 yet, but that's probably because I'm not using the right memory addresses. Still looking into it.

    ReplyDelete

All comments will be moderated, primarily for spam. You are welcome to disagree with my posts of course.