BlackHat Day 3

By bufferzone

Klokken er 1900, vi er lige blevet færdige med dagens lektioner, jeg bløder ud af begge øre og har pletter af hjernemasse på trøjen. I dag har været rigtig hård at komme igennem og vi har midstet endnu 3 af holdet der ikke kunne følge med. Det er nu kun den hårde kærne der er tilbage.

Vi startede dagen med at kikke på Vista der jo har implementeret en masse sikkerhed, der skulle umuliggøre, eller mindst besværliggøre bl.a. bufferoverflows. Vista har bl.a. implementeret ASLR, der placerer dll filer tilfældigt i adresserummet, hvilket skulle betyde at man ikke kan kode bufferoverflows fordi hukommelses adresserne ændre sig hver gang applikationen er loadet. Denne sikkerhed kan dog omgås på en ret elegant måde. Selve dll’en kan betragtes som en lille æske der placeres tilfældigt i hukommelsen. selve æskens indhold er dog placeret ens relativt til æskens andet indhold, hvilket kan udnyttes. Det man gør er at overskrive de sidste 4 bits i adressen. Da man overskriver og hopper inden for æsken, er det jo uinteressant hvad de første 4 bits er og det er dem der ændres fra gang til gang. Ret avanceret.

Vi to herefter udgangspunkt i et Proof off Concept (PoC) på en sårbarhed i .ani hvorved det lykkedes os at hoppe til en jump commando user.dll der eksekvere en jump kommando til en adresse vi har injected i kernes registri hvorved vi får adgang til et område af hukommelsen der er stort nok til at indehold den shellcode der giver en reverce shell. Vi skrev selvfølgelig vores egen eksploit shellkode via Metasploit Framework. Grunden til at vi benyttede et 2 stage esploit var at inden af de buffere vi havde adgang var store nok til at indeholde shellkoden. De var kun store nok til at indeholde små jump instruktioner der så til gengæld gav adgang til en buffer med plads nok. Ganske avanceret.

Over middag har vi arbejdet med et 3 stage exploit og en sårbarhed i winamp. vi har skrevet en modificeret winamp play list, der crasher winamp og via 3 hop i stacken giver en reverce shell tilbage til hackeren. En af udfordringerne var at vi var nødt til at encode dele af koden for at kunne sende den over netværket. Dette hack havde et særligt twist idet vi ikke anvendte hop med kun jump instruktioner, da disse ikke ville kunne nå et område der var stort nok til at indeholde shellkoden. I stedet hoppede vi fra den første lille buffer på 11 bytes til en buffer på godt 170 bytes. I denne byffer injectede en såkaldt egghunter, der er en kodestump, der gennemtrevler hukommelsen byte for byte for at lede efter ee predetermineret handel, der så eksekveres. Dette betyder at vi kan injecte vores 300 byte store shellcode hvor der er plads og og så bruge egghunt til at lede efter den i hukommelsen under den forudsætning at vores shellcode indeholder det rigtige handel. Igen er vi naturligvis nødt til at både modificerer egghunteren og skrive vores egen shellcode. Særdeles avanceret.

Den sidste del af dagen er gået med at kigge på Zero Day Exploits og brugen af Fuzzers til at finde disse og undersøge hvordan de kan udnyttes. Vi har gennemtrevlet TFTP protokollen for at kunne Fuzze en tredieparts TFTP server til Windows, fundet et bufferoverflov og er gået igang med at skrive eksploits til dette. I morgen skal vi gøre debnne øvelse færdig.

Her er jeg så nødt til at tage forbehold for stavefejl og formulerings bøffer, min hjerne er ristet og jeg orker ikke at læse korrektur.

hacking med bufferzone.dk

Tags: , ,

2 svar to “BlackHat Day 3”

  1. IT-Steen siger:

    Hej KG.

    Er du helt færdig? total restet og orker ikke mere at opdate denne blok, eller har du igen hacket dig så din egen pc er nede, så er det jo ikke første gang KG at den har måtte overgive sig. Vi er flere der venter på dagens side.
    Hilsen fra os i 2650

  2. bufferzone siger:

    Jeg håber at få indhentet det forsømte i løbet af weekenden, nu hvor jeg er i sikkert område igen

Læg en kommentar