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:
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:
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!
pslist står ungefär för "processor list" vilket listar alla aktiva processor. Output blev följande(dock förminskat):
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!
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!
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!
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:
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!
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:
Kan jag få fram grundläggande information så som operativsystem. volatility-2.3.1.standalone.exe -f xp.elf imageinfo
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)
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:
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. volatility-2.3.1.standalone.exe -f xp.elf connscan
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
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:
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!volatility-2.3.1.standalone.exe -f xp.elf iehistory -p 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
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:
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.volatility-2.3.1.standalone.exe -f xp.elf memdump -D proc\
Citat:
Writing System [ 4] to 4.dmp
Writing novirus.exe [ 500] to 500.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:
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!
novirus.exe 123 1316 26 379 2013-12-21 16:10:16 UTC+0000
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!