Kerberos Sniff/Crack 107 Onderzoeksdocument Auteur(s): Datum: Versie: Documentnaam: Dave Jansen 21 juli yyyy 107.1 Kerberos Inhoudsopgave 1 Inleiding ....................................................................................................... 1 2 2.1 2.2 Beschrijving Aanval ........................................................................................ 1 Beschrijving zwakheid en aanval .................................................................. 1 Schade/problemen a.g.v. aanval .................................................................. 2 2.3 Uitleg technieken (technische werking aanval) .............................................. 2 2.4 Systeem configuratie slachtoffer (instellingen van OS, services, applicaties) ..... 4 2.5 Zwakheden in de configuratie en/of werkwijze............................................... 4 2.6 Configuratie aanvaller (wat heb je nodig aan systemen, tools en instellingen) ... 4 2.7 Hoe is reconnaissance van de zwakheid mogelijk door aanvaller in het voortraject van de aanval. ................................................................................... 4 2.8 Beschrijving testcase: attack stap voor stap .................................................. 5 2.9 Detective maatregelen bij attack. Hoe kun je met IDS of firewall de aanval ontdekken. ........................................................................................................ 6 2.10 Preventieve maatregelen tegen attack. Hoe kun je met IDS of firewall de aanval voorkomen. ............................................................................................. 6 3 Uitvoering ..................................................................................................... 6 3.1 Inleiding ................................................................................................... 6 3.2 Sniffen ..................................................................................................... 6 3.3 Wachtwoord kraken ................................................................................... 7 3.4 Resultaat .................................................................................................. 8 4 Advies .......................................................................................................... 9 4.1 Advies voor de testcase .............................................................................. 9 1 Inleiding Kerberos is een standaard authenticatie protocol dat ervoor zorgt dat gebruikers van een netwerk zich op een veilige manier kunnen aanmelden en hun identiteit kunnen bewijzen, zonder zich telkens opnieuw te moeten aanmelden. Kerberos maakt een beperkte vorm van Single Sign-on mogelijk. Kerbsniff is een sniffer die luistert op het netwerk en vangt Windows 2000/XP Kerberos logins. KerbCrack kan gebruikt worden om paswoorden te zoeken in een file die de wachtwoorden van het netwerk af heeft gehaald en deze kraakt door middel van een bruteforce aanval of een woordenboekaanval. 2 Beschrijving Aanval 2.1 Beschrijving zwakheid en aanval Zwakheden: Computers die aan de volgende voorwaarden voldoen, lopen het risico slachtoffer te worden van wachtwoord sniffen en kraken. Alle microsoft producten die Kerberos als wachtwoord beveiliging krijgen, en die inloggen op een externe server Aanval: Bij deze aanval wordt er van uit gegaan dat er een Windows machine wordt gebruikt waarmee ingelogd kan worden door middel van het Kerberos protocol. Deze machine moet dan inloggen op een Active Directory/Domein Controller. Deze moet natuurlijk de Kerberos wachtwoorden kunnen verifieren. De volgende utilities heb je nodig voor deze crack: (beide downloadbaar op http://www.ntsecurity.nu/toolbox/kerbcrack) Kerbsniff KerbCrack Deze utilities kun je downloaden van [url] Kerbsniff zal gebruikt moeten worden om wachtwoorden van het netwerk af te sniffen. Deze wachtwoorden zullen opgeslagen worden in een file die later uitgelezen zal moeten worden. Kerbcrack wordt gebruikt om het wachtwoordbestand te kraken en de bijbehorende wachtwoorden te ontcijferen. Kerbsniff zal gedraait moeten worden voordat er ingelogd wordt op een systeem. Kerbcrack kan achteraf gedraait worden. -1- 2.2 Schade/problemen a.g.v. aanval Wachtwoorden kraken: Persoonlijke wachtwoorden kunnen gekraakt worden. Dit kan leiden tot inlogmogelijkheden voor onbevoegden op een netwerk. 2.3 Uitleg technieken (technische werking aanval) Exploit Voor deze aanval dient de gebruiker te beschikken over de volgende middelen: 2 x Windows XP machine 1 x Windows 2003 Server Kerbsniff Kerbcrack Het figuur hieronder legt Kerberos uit. Kerberos bestaat uit 3 subprotocollen, waarvan elke uit 2 stappen bestaat. Alice is in dit geval het proefpersoon. -2- Fase1: Authentication Service Exchange (gebeurd elke keer dat er ingelogd worden) Stap 1: Authentication Server Request (KRB_AS_REQ). Alice logt in op het domein van haar computer. Een Ticket Granting Ticket (TGT) request wordt verzonden naar een Windows Key Distribution Center (KDC). Kerbsniff is ervoor gemaakt om een gebruikers wachtwoord te onderscheppen van een KRB_AS_REQ network exchange. Stap 2: Authentication Server Reply (KRB_AS_REP). De Windows KDC stuurt een TGT terug en een sessie sleutel naar Alice. Fase 2: Ticket-Granting Service Exchange (gebeurt een keer op elke resource server) Stap 3: Ticket Granting Service (TGS) Request (KRB_TGS_REQ). Alice wil toegang tot een applicatie op de server. Een tick request voor de applciatie server wordt verzonden naar de Windows KDC. Deze aanvraag bestaat uit Alice’s TGT en een authenticator. Stap 4: TGS Reply (KRB_TGS_REP). De Windows KDC geeft een ticket en een sessie sleutel terug aan Alice. Fase 3: Client-Server Authentication Exchange (gebeurt een keer voor elke server sessie) Stap 5: Application Server Request (KRB_AP_REQ). De ticket wordt verzonden naar de applicatie server. Wanneer de ticket en de authenticator is ontvangen, kan de server Alice geldig authenticeren. Step 6: Application Server Reply (KRB_AP_REP). De server antwoord naar Alice met een andere authenticator. Wanneer deze authenticator is ontvangen kan Alice pas werkelijk authenticeren met de server. Tijdens deze uitwisselingen de volgende tickets en sleutels worden opgeslagen op Alice’s computer: de TGT, de ticket om te authenticeren met de resource server en de 2 sessie sleutel, 1 om te authenticeren met de KDC en 1 om te authenticeren met de resource server. Zover kan kerbsniff deze authenticatie onderscheppen en in een file opslaan. -3- Dan komt kerbcrack om de hoek kijken. Kerbcrack kan op 2 manier een wachtwoord kraken: Woordenboek aanvallen Bruteforce: Woordenboek aanval: Hiermee wordt een hash geprobeerd te kraken, doormiddel van ‘bekende’ woorden die in een file gedeclareerd staan. Zo’n woordenlijst valt te download op ftp://ftp.ox.ac.uk/pub/wordlists/. Dit kan als voordeel hebben dat er snel een wachtwoord kan worden gekraakt wat bekend is. Dit heeft dus ook gelijk een nadeel, als er een ‘raar’ wachtwoord wordt gebruikt, zoals bijvoorbeeld DH&39sj(1 dan zal deze niet herkend worden. Bruteforce aanval: Bij een bruteforce aanval worden alle mogelijke opties geprobeerd om een wachtwoord te kraken. Deze optie kunnen worden opgegeven in het commando. Dit kan heel erg lang duren, vooral als er een heel lang en moeilijk wachtwoord wordt gebruikt, wat bijvoorbeeld langer is dan 8 tekens met diverse alphanumerieke tekens. 2.4 Systeem configuratie slachtoffer (instellingen van OS, services, applicaties) Workstation met Windows XP Windows 2003 server Standaard installatie instellingen; User-account: User02; AD 2.5 Zwakheden in de configuratie en/of werkwijze In de configuratie en werkwijzen zitten in principe geen zwakheden, omdat deze manier van kraken op alle Windows systemen die bij 1.1 Beschrijving zwakheid en aanval beschreven zijn. Het enige wat eventueel gedaan kan worden is een IDS of IPS installeren, en wat regels toevoegen aan deze engine die kunnen voorkomen dat er op wachtwoorden gesnift kan worden. 2.6 Configuratie aanvaller (wat heb je nodig aan systemen, tools en instellingen) Windows XP Standaard installatie instellingen In het zelfde netwerk configureren als slachtoffer 2.7 Hoe is reconnaissance van de zwakheid mogelijk door aanvaller in het voortraject van de aanval. Voor de kraak hoeft inprincipe geen verkenning van te voren gedaan worden. Het is alleen al genoeg om te weten of er ingelogd kan worden op een Windows 2003 Server. Verder kan het handig zijn om te kijken of er een hub of een switch aanwezig is. Als er een hub aanwezig is, is er niets aan de hand, maar als er een switch aanwezig is zal eerst de pakketjes onderschept moeten worden. -4- 2.8 Beschrijving testcase: attack stap voor stap Identificatie Test item Verwachte testtijd Test log PreCondities Actions en Checks Post condities Resultaten en opmerkingen Kerberos Sniff/Crack Het doel is om een inlogwachtwoord van een gebruiker van het netwerk te halen en deze te kraken. Het sniffen zal ongeveer 5 minuten Het kraken kan varierend duren. Met duren. een redelijk makkelijk wachtwoord zal het ongeveer 30 minuten duren. Testers Dave Jansen Testsysteem Werkstation 1 Datum 21-sept-2006 Starttijd: 14.45 Eindtijd: 15:30 Gebruikte tijd: 45 minuten Testcase klaar Y Probleem ingediend N Wijzigingsverzoek ingediend N Testcase behoeft aanpassing N Er is een Windows domeincontroller nodig en een werkstation om daarmee in te loggen op het domein. Verder is Kerbsniff nodig om de Kerberos wachtwoorden van het netwerk af te halen en KerbCrack om deze wachtwoorden te kraken. Uit te voeren acties/handelingen en controles: Domeincontroller starten Kerbsniffen starten op een onafhankelijke pc Inloggen op werkstation op het domein Met Kerbcrack het wachtwoord dat is gesnift, kraken Kerbcrack is er nog om de wachtwoorden achteraf te kraken. Het ging helemaal volgens plan. Deze ‘hack’ was ook niet van een heel hoog niveau, maar toch wel leerzaam hoe dit in zijn werk ging. Er werd zoveel mogelijk passief het netwerk afgeluisterd om het Kerberos-hash te vangen. -5- 2.9 Detective maatregelen bij attack. Hoe kun je met IDS of firewall de aanval ontdekken. Firewall Doormiddel van een firewall kun je deze aanval niet ontdekken. Met een firewall kun je poorten dichtmaken, maar dit heeft niets te maken met het onderscheppen als het eenmaal al op het netwerk aanwezig is. IDS: Met een IDS zou het mogelijk moeten zijn om een aanval van Kerbsniff activiteiten te herkennen op het netwerk. Hiervoor zul je enkele rules moeten toevoegen aan de IDS. Hier was verder geen informatie te vinden op het internet. 2.10 Preventieve maatregelen tegen attack. Hoe kun je met IDS of firewall de aanval voorkomen. Firewall Met een firewall valt niet te voorkomen dat er KerbSniff activiteit wordt tegen gehouden. IDS 3 Met een IDS is het niet mogelijk om te voorkomen. Wel kan een IDS detecteren als er eenmaal activiteit is van KerbSniff op een netwerk. Uitvoering 3.1 Inleiding In dit hoofdstuk vindt u een gedetailleerde beschrijving van een aantal punten uit de testcase van paragraaf 2.8. Hierin zijn niet alle punten uit deze testcase opgenomen, dit hoofdstuk dient daarom ook alleen als ondersteuning. 3.2 Sniffen Met de applicatie Kerbsniff kan er afgeluisterd worden op het netwerk naar Kerberos hashes (dit zijn wachtwoorden die zo gecodeerd zijn, dat deze niet terug zijn te leiden naar het origineel). Als eerste moet de Windows 2003 Server opgestart worden. Hierin moet een Active Directory (AD) aangemaakt worden. In deze AD zal een domein gespecificeerd moeten worden. In dit voorbeeld heb ik het domein “THUIS” genoemd. Dit kan elke naam aannemen die de systeembeheerder wil hebben. Ook zal er een gebruiker aangemaakt moeten worden, anders zal het inloggen geen zin hebben. Als voorbeeld heb ik de gebruiker dave aangemaakt met het wachtwoord dave. -6- Figuur 1: Kerbsniff Als de Windows 2003 Server is opgestart moet Kerbsniff opgestart worden. Dit programma kun je download van http://www.ntsecurity.nu/toolbox/kerbcrack/. Het pakket het Kerbcrack. In dit pakket zitten Kerbsniff en Kerbcrack. De huidige versie die hier is gebruikt is 1.3d3. Bij het downloaden/uitpakken van de bestanden is het verstandig om ze in de %systemroot%/system32 map zetten. Dan kun je ze overal starten zonder het hele pad te typen. Deze twee programma’s moet je draaien vanaf command-line. (Deze kun je starten door naar Start Uitvoeren te gaan en dan cmd in te typen. Als je kerbsniff zonder parameters uitvoert, zal kerbsniff laten zien hoe je het programma moet gebruiken (usage). De enige parameter die kerbsniff aanneemt is het bestand waarnaartoe moet worden geschreven als het een pakket vind op het netwerk waar een kerberos hash-waarde inzit. Hier word als voorbeeld file capture.log gebruikt voor de wachtwoorden die kerbsniff heeft gevonden. Voor elke wachtwoord dat is gevonden wordt een asterisk * getoond. Je kunt het sniffen afbreken door CTRL + C indrukken. Door het commando type [filenaam] in te typen, kun je zien dat er een gegevens zijn opgeslagen in die file. Zie figuur 2. Figuur 2 capture.log Zoals je kunt zien heeft kerbsniff een aantal gegevens gevonden over het account dave dat zich op het domein THUIS bevind. De waarde daaronder is de hashwaarde, die het wachtwoord vertegenwoordigd als Kerberos. 3.3 Wachtwoord kraken Nu de hashes binnen zijn, is het tijd om het wachtwoord te gaan ‘kraken’. Dit gaat door middel van het programma kerbcrack. De parameters die kerbcrack accepteerd zijn: de file waar de gegevens in staan de mode om het wachtwoord proberen te kraken dictionary file (icm de switch –d) password size (icm met alle switches –d) -7- Figuur 3 Usage van kerbcrack Wij gaan het wachtwoord proberen te kraken, wat in capture.log staat, doormiddel van de –b1 switch. Dat wil zeggen dat kerbcrack alle mogelijkheden van a-z en van A-Z zal proberen om het wachtwoord te genereren dat gelijk is aan de hash. Als optioneel veld, wat nu ingevuld moet worden, zal er een wachtwoord grootte in moeten geven. Omdat we al weten wat het wachtwoord is, dat hebben we namelijk ingesteld bij de user aanmaken op de AD. Omdat we daar ‘dave’ als wachtwoord hebben, nemen we als waarde ‘4’. Dat scheelt nogal wat compileertijd om het wachtwoord te vinden. Figuur 4 Kraken van hash met kerbcrack Het commando dat wij uit gaan voeren is dus: C:\>kerbcrack capture.log –b1 4 Dit kraken duurde (op een AMD Sempron processor 3300+) 1.35 minuut. Dit ging nogal redelijk snel. Maar het gaat steeds langer duren naarmate het wachtwoord ook langer wordt. Vooral als het een hexadecimaal wachtwoord is. Dan zal er een andere switch gebruikt moeten worden bij kerbcrack die ook de 1-9 tekens meeberekend. 3.4 Resultaat Nadat het wachtwoord is gekraakt, is het dus mogelijk om via een andere pc in te loggen op het account dat is gekraakt. Deze zul je dan eventueel nog toe moeten voegen aan het domein, maar dit zal geen probleem moeten zijn. Nadat je als de gebruiker het systeem bent binnen gekomen, kun je allerlei bewerkingen doen, zowel kwaad-, als goedwillend, op de server. -8- 4 Advies 4.1 Advies voor de testcase De belangrijkste adviezen die voor de testcase in aanmerking komen zal ik hieronder beschrijven. Als eerst zal er een IDS geïnstalleerd moeten worden op het netwerk, dat verdachte connecties kan detecteren. Ook kan een IDS gebruikt worden verdachte programma’s die bepaalde handelingen uitvoeren op het netwerk die niet geoorloofd zijn. In dit geval zal er op het netwerk gescand moeten worden naar activiteiten/sporen van Kerbsniff. Verder zal er, als dit mogelijk is, een bepaalde tunnel op gezet moeten worden waarover deze verbinding zal lopen. Deze tunnel zal ge-encrypt moeten worden. Dat wil zeggen dat de data over het netwerk in onleesbare vorm wordt verstuurd, en pas op de gerechtigde computer weer omgezet kan worden naar leesbare taal. Ook kan het helpen om port-security te gebruiken op alle netwerkaansluitingen. Hiermee kunnen dan al veel laptops en dergelijke afgesloten worden van het netwerk. Ook firewalls op de computers zal helpen. Hiermee kunnen vooraf bepaalde poorten alleen maar opengezet worden voor verbindingen. ‘Onbekende’ poorten kunnen dan door de beheerder gesloten worden. -9-