Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2013-12-20, 18:05
  #1
Medlem
.Chloes avatar
Hej!

Denna tråd kommer ge er en grundläggande introduktion till just minnesforensik(Memory Forensic).
Minnesforensik handlar inte om hårddisken utan själva minnet i datorn, nämligen RAM. Detta minne lagrar inte någon data utan endast behåller den tills den tas bort eller strömmen bryts. Minnesforensik är relativt nytt dels på grund utav de bristande verktygen men att men även för att det är något temporärt man analyserar för stunden; du analyserar en snapshot. Dock har RAM den underbara förmågan att spara absolut värdefull information som kan hjälpa till i både en utredning och malwareanalys/exploitanalys.

Vad jag gillar med minnesforensik är att det ger en helt annan slags data än tidigare och minnesforensik är något som kan utföras på de flesta hårdvarusystem.

Inledning
Jag har ett låtsasscenario och på detta sätt kan jag visa er hur man jobbar som forensiker och vilka vägar man tar för bevisinsamling.

Plattform och verktyg
Jag har använt mig utav Windows XP SP3 i Virtualbox och verktyget jag använder är Volatility. Volatility är ett ramverk för minnesforensik och kan fungera under Linux, Windows och Mac. Det är open source och är helt gratis att ladda ner. Finns här.(ni i windows, ladda ner volatility-2.3.1.standalone.exe) Mitt host-OS är Windows 7.

Att använda Volatility gör man via CMD/terminalen, men detta är inget som torde vara skrämmande för er då jag kommer gå igenom allting.

Plattformen är som sagt Virtualbox vilket finns att ladda ner här, detta program är likaså open source och gratis. Finns till de flesta operativsystemen.

Dumpning utav virtuellt minne med Virtualbox
Att starta en ISO fil i Virtualbox är mycket simpelt. Notera dock att ge den rekommenderade RAM-kapaciteten vilket är 192Mb för XP. Detta är vad vi kommer använda senare. Skulle du använda 4Gb i RAM så kommer din fil bli så stor. Men det är bättre med så liten fil som möjligt.

När du startat upp Windows XP i Virtualbox så ska vi dumpa minnet med hjälp utav vboxmanage. Detta är ett program som kommer med installationen utav Virtualbox så det är inget du behöver installera. Men för att nå detta program så gå till C:\Program Files\Oracle\VirtualBox där du hittar vboxmanage.exe.

När du har Windows XP startat i din virtuella värld så ska du dumpa minnet och det gör du med kommandot:
Kod:
vboxmanage debugvm "XP" dumpguestcore --filename xp.elf

Något du måste ta hänsyn till här är namnet du angav din virtuella session. Skulle du vara osäker så kolla på fönsternamnet så står det t.ex: XP [running]

Detta lär ta någon sekund beroende på storlek. Filen sparas sen i C:\Users\dittnamn\AppData\Local\VirtualStore\Program Files\Oracle\VirtualBox.

Flytta sedan denna fil(xp.elf) till samma map där du har Volatility så kan vi börja analysera!


Analys utav scenario
Okej, nu vet ni hur man dumpar RAM från ett operativsystem i Virtualbox! Nu ska jag börja analysera min egna fil som jag skapat och den kommer inte ge samma data som er fil. Mitt mål är att försöka ta reda på vad som har hänt, men allt jag har är minnesdumpen!

Med kommandot:
Kod:
volatility-2.3.1.standalone.exe -f xp.elf imageinfo
Kan jag få fram grundläggande information så som operativsystem.

Citat:
C:\Users\chloe\Downloads>volatility-2.3.1.standalone.exe -f xp.elf imageinfo
Volatility Foundation Volatility Framework 2.3.1
Determining profile based on KDBG search...

Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86)

Detta är alltså en del utav output och ni ser ju alldeles korrekt att det är WindowsXP SP3 x86 jag använde!

Nu ska vi få reda på vilka processer som var igång precis då minnet dumpades!
Kod:
volatility-2.3.1.standalone.exe -f xp.elf pslist

pslist står ungefär för "processor list" vilket listar alla aktiva processor. Output blev följande(dock förminskat):

Kod:
0x80eec020 System                    4      0
0x80dacaa8 smss.exe                500      4      3
0x80d651c8 csrss.exe               572    500      9
0x80d61020 winlogon.exe            596    500     20
0xff9aa0b0 IEXPLORE.EXE            764   1316     26

Som vi ser enligt output så är winlogon, smss, csrss och System helt vanliga processor som tillhör Windows så det är inget konstigt att vi ser dem. Men IEXPLORE.EXE, det är ju Internet Explorer! Så vi vet att när minnet dumpades så var webbläsaren igång. Framgång!

Kod:
volatility-2.3.1.standalone.exe -f xp.elf connscan
Kommandot connscan är endast till Windows XP och visar alla IP-adresser som hosten anslutits mot. Detta kommer ge oss informationen om vad hosten har sysslat med på nätet.
Citat:
0x00168758 10.0.2.15:1150 80.239.152.57:80 764
0x00251b90 10.0.2.15:1078 208.81.234.97:80 764
0x00860360 10.0.2.15:1142 80.239.152.57:80 764
0x00887e10 10.0.2.15:1181 173.252.110.27:443 764

Följande är output från connscan. Vi ser den lokala IP-adressen och den IP som hosten anslutits mot. Vi ser även att det är oftast PID 764 vilket vi nu vet är IEXPLORER.EXE! Att analysera alla dessa IP-adresser kan ta lång tid. Som tur finns det program för detta på nätet! Med https://xnode.org/page/Bulk_IP_Lookup kan du kolla upp massor med IP-adresser åt gången vilket kommer underlätta enormt för oss. Vi ser enligt Bulk IP Lookup att IP 173.252.110.27 tillhör Facebook! Så nu vet vi att hosten har Windows XP och surfat på Facebook med Internet Explorer!

Okej, men vi behöver mer detaljerad info! Vi vet ju att personen har surfat så låt oss extrahera historiken och se vad det ger oss!

Kod:
volatility-2.3.1.standalone.exe -f xp.elf iehistory -p 764
Kommandot iehistory kan alltså ta fram internethistorik från Internet Explorer. Och flaggan -p ska vara PID, i detta fall vet vi att IEXPLORER har PID 764!

Citat:
Location: :2013122020131221: chloe@https://www.facebook.com/messages/evilusr
Last modified: 2013-12-20 16:09:56 UTC+0000
--
Location: :2013122020131222: chloe@https://evil-site.com
Last modified: 2013-12-20 16:10:06 UTC+0000

Följande är en del utav output från eihistory och vi ser att användaren chloe har besökt evil-site.com precis innan hon var på URL facebook.com/messages/evilusr! Detta borde ju betyda att evilusr på facebook har skickat en länk till chloe!

Nu kan man inspektera evil-site.com och se vad för fuffens den sidan innehåller, men vi ska ju hålla på med minnesforensik så låt oss dumpa alla processor!
Kod:
volatility-2.3.1.standalone.exe -f xp.elf memdump -D proc\
memdump(procmemdump finns också) låter ju precis som vad det gör: dumpar minnet! Flaggan -D står för directory vilket är den mapp som alla processer kommer sparas i.
Citat:
Writing System [ 4] to 4.dmp
Writing novirus.exe [ 500] to 500.dmp

Ovanstående är output, givetvis förkortat. Vad man kan göra nu är att söka igenom alla filer efter virus, både manuellt eller med program. Eftersom detta är en inledning så genomsöker vi online med Virustotal på novirus.exe och det visar sig att det visst är ett virus!

Men hur hänger allt ihop? Vi vet att chloe besökte en länk som evilusr skickade till henne, men hur vet vi ens att novirus kommer från evilusr? Tänk så har chloe haft virus sedan 2009? Who know? We know!

Jo, pstree, pslist och psscan är kommandon som även listar när exekveringen skedde. Om vi tittar på när novirus.exe startades via pslist-output:
Citat:
novirus.exe 123 1316 26 379 2013-12-21 16:10:16 UTC+0000
Och jämför med när chloe besökte evil-site.com så ser vi att det är 10 sekunder efter hon besökte adressen. Jag tycker det är rätt så bra bevis!

Så vad kom vi fram till? Vi vet att chloe använde Internet Explorer och chattade med evilusr på Facebook och klickade på en länk som gav henne ett virus. Allt detta med hjälp utav minnesforensik och vår vän Volatility!
Citera
2013-12-20, 18:05
  #2
Medlem
.Chloes avatar
Jag hoppas att ni alla tyckte om scenariot ovanför som absolut är möjligt. Faktum är att jag skulle kunna dela med mig av xp.elf så ni slipper hela biten med Virtualbox. Men detta var tyvärr ett scenario. Att återskapa detta är enkelt! Det finns filer att ladda ner för analys, t.ex minnen som blivit infekterade utav Zeus.(finns att hämta här)

Det finns mängder med vägar man kan gå när det kommer till minnesforensik och det kan innehålla delar utav hårdvara tillochmed. Det finns andra sätt att arbeta på, t.ex genom att ta av RAM-minnet ur en dator och lätta in i ett annat moderkort för att dumpa minnet och sedan använda Volatility, detta kallas cold boot som de flesta är rädda över. Man kan dumpa minnet med programmet dumpit och då blir formatet .raw istället för elf vilket går alldeles utmärkt med Volatility.

Vänligen notera att detta ramverk är enormt kraftfullt och jag har endast visat en ytterst liten del i hur det kan användas. Det finns mängder med plug-ins till Volatility som man skriver i Python

https://code.google.com/p/volatility...mmandReference
https://code.google.com/p/volatility...ntationProject (lista med dokumentationer utav volatility)
http://malwarereversing.wordpress.co...olatility-2-0/
http://www.dfrws.org/2005/challenge/

I denna tråd kommer det diskuteras minnesforensik och jag kommer senare gå igenom fler saker man kan göra inom minnesforensik, inte bara med Volatility.

Förövrigt så önskar jag er en god jul och hoppas ni fann denna tråd intressant!

~Chloë
Citera
2013-12-20, 18:30
  #3
Medlem
droles avatar
Ser bra ut vid snabb överblick, credit för att du orkar skriva.
Hade aldrig orkat skriva en sån lång text om det inte var något "nytt"

Anyway, innehåller i RAM-minnet försvinner inte magiskt direkt när strömmen bryts utan försvinner efter ett tag(vi snackar sekunder).
Detta bör nämnas då det öppnar upp för en del attacker.

Denna procedur kan även saktas ner genom att kyla RAM-minnet, så kallat Coldboot.
Då kan man kyla ner RAM-minnet, ta bort det ur datorn, sätta det i bättre miljö och utföra minnesforensik där.

Edit, fuck, du hade skrivit om coldboot. My bad.
Citera
2013-12-20, 18:32
  #4
Medlem
.Chloes avatar
Citat:
Ursprungligen postat av drole
Då kan man kyla ner RAM-minnet, ta bort det ur datorn, sätta det i bättre miljö och utföra minnesforensik där.

Jag har utfört en cold boot, jag nämner det här: (FB) Beskrivning av attackmetoder mot FDE
Citera
2013-12-20, 18:44
  #5
Medlem
droles avatar
Citat:
Ursprungligen postat av .Chloe
Jag har utfört en cold boot, jag nämner det här: (FB) Beskrivning av attackmetoder mot FDE
Tvekade inte på att du visste vad coldboot(det är ändå en väldigt känd metod) var, men missade att du skrev om det och tyckte det var relevant till ämnet.
Citera
2013-12-20, 18:46
  #6
Medlem
.Chloes avatar
Citat:
Ursprungligen postat av drole
Tvekade inte på att du visste vad coldboot(det är ändå en väldigt känd metod) var, men missade att du skrev om det och tyckte det var relevant till ämnet.
Det tycker jag men själva metoden cold boot är inte det som är intressant i fråga, utan vad man gör efter en lyckad dump.
Citera
2013-12-20, 19:25
  #7
Medlem
TorrentLovers avatar
Citat:
Ursprungligen postat av .Chloe
Det tycker jag men själva metoden cold boot är inte det som är intressant i fråga, utan vad man gör efter en lyckad dump.
Inte alls insatt i ämnet, men det borde väl gå att fixa en hårdvarukryptering, så att datat lagras krypterat i RAM?
Citera
2013-12-20, 19:27
  #8
Medlem
fuskarens avatar
Hur får man tag på minnet om man inte använder virtualbox? Är det det man gör med dumpit? Och kan man använda den dumpen på samma sätt som den från virtualbox?
Dina guider är alltid lika intressanta!
Citera
2013-12-20, 19:39
  #9
Medlem
.Chloes avatar
Citat:
Ursprungligen postat av fuskaren
Hur får man tag på minnet om man inte använder virtualbox? Är det det man gör med dumpit? Och kan man använda den dumpen på samma sätt som den från virtualbox?
Dina guider är alltid lika intressanta!

Man kan göra det med dumpit, men även med t.ex Memoryze och Volatility och dessa används på samma sätt som jag gjorde i trådstarten

Citat:
Ursprungligen postat av TorrentLover
Inte alls insatt i ämnet, men det borde väl gå att fixa en hårdvarukryptering, så att datat lagras krypterat i RAM?
Ja, det går och det finns men är rätt så ovanligt. Det går ju även med mjukvarolösningar så som TRESOR.
Citera
2013-12-21, 01:13
  #10
Medlem
TorrentLovers avatar
Citat:
Ursprungligen postat av .Chloe
Ja, det går och det finns men är rätt så ovanligt. Det går ju även med mjukvarolösningar så som TRESOR.
Ah, intressant. Ska kika på det imorgon. Tack för att du bidrar med kunskap till Flashback!
Citera
2013-12-21, 09:44
  #11
Medlem
.Chloes avatar
Citat:
Ursprungligen postat av TorrentLover
Ah, intressant. Ska kika på det imorgon. Tack för att du bidrar med kunskap till Flashback!
Gör så!
Jag glömde nämna att ecryptfs kan kryptera swap-space också. Just hibernate/page och swap space är intressant för minnesforensiker. Kommer kolla lite närmre på detta senare och dra fram lösenord osv.

Och ja, kunskap är gratis, men någon måste dela med sig av den
Citera
2013-12-21, 12:07
  #12
Medlem
key33s avatar
Tack, riktigt intressant!

Skulle det gå lika lätt om det inte var IE som användes?
Kod:
volatility-2.3.1.standalone.exe -f xp.elf iehistory -p 764
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback