RootedCON is die mees relevante kuberveiligheid gebeurtenis in Spanje en een van die belangrikste in Europa. Met die missie om tegniese kennis te bevorder, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
python autoVolatility.py -f MEMFILE -d OUT_DIRECTORY -e /home/user/tools/volatility/vol.py # It will use the most important plugins (could use a lot of space depending on the size of the memory)
Volatility het twee hoofbenaderings tot plugins, wat soms in hul name weerspieël word. “lys” plugins sal probeer om deur Windows Kernel-strukture te navigeer om inligting soos prosesse (lokaliseer en loop deur die gekoppelde lys van _EPROCESS strukture in geheue), OS-handvatsels (lokaliseer en lys die handvatsel tabel, dereferensie enige punte wat gevind word, ens.). Hulle gedra meer of minder soos die Windows API sou as daar gevra word om, byvoorbeeld, prosesse te lys.
Dit maak “lys” plugins redelik vinnig, maar net so kwesbaar soos die Windows API vir manipulasie deur malware. Byvoorbeeld, as malware DKOM gebruik om 'n proses van die _EPROCESS gekoppelde lys te ontkoppel, sal dit nie in die Taakbestuurder verskyn nie en ook nie in die pslist nie.
“skandeer” plugins, aan die ander kant, sal 'n benadering neem wat soortgelyk is aan die sny van die geheue vir dinge wat sinvol kan wees wanneer dit as spesifieke strukture gedereferensieer word. psscan byvoorbeeld sal die geheue lees en probeer om _EPROCESS objek te maak daaruit (dit gebruik poel-tag skandering, wat soek na 4-byte stringe wat die teenwoordigheid van 'n struktuur van belang aandui). Die voordeel is dat dit prosesse kan opgrawe wat verlaat het, en selfs al manipuleer malware met die _EPROCESS gekoppelde lys, sal die plugin steeds die struktuur in die geheue vind (aangesien dit steeds moet bestaan vir die proses om te loop). Die nadeel is dat “skandeer” plugins 'n bietjie stadiger is as “lys” plugins, en soms vals positiewe kan lewer (’n proses wat te lank gelede verlaat het en waarvan dele van sy struktuur deur ander operasies oorgeskryf is).
Soos verduidelik in die readme, moet jy die simbol tabel van die OS wat jy wil ondersteun in volatility3/volatility/symbols plaas.
Simbol tabel pakkette vir die verskillende bedryfstelsels is beskikbaar vir aflaai by:
As jy 'n nuwe profiel wat jy afgelaai het (byvoorbeeld 'n linux een) wil gebruik, moet jy êrens die volgende vouerstruktuur skep: plugins/overlays/linux en die zip-lêer wat die profiel bevat, binne hierdie vouer plaas. Dan, kry die nommer van die profiele met:
In die vorige stuk kan u sien dat die profiel genoem word LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64, en u kan dit gebruik om iets soos uit te voer:
Van hier: In teenstelling tot imageinfo wat eenvoudig profielvoorstelle bied, is kdbgscan ontwerp om die korrekte profiel en die korrekte KDBG adres (indien daar verskeie is) positief te identifiseer. Hierdie plugin skandeer vir die KDBGHeader handtekeninge wat aan Volatility profiele gekoppel is en pas sanity checks toe om vals positiewe te verminder. Die omvang van die uitvoer en die aantal sanity checks wat uitgevoer kan word, hang af van of Volatility 'n DTB kan vind, so as jy reeds die korrekte profiel weet (of as jy 'n profielvoorstel van imageinfo het), maak seker jy gebruik dit.
Kyk altyd na die aantal prosesse wat kdbgscan gevind het. Soms kan imageinfo en kdbgscan meer as een geskikte profiel vind, maar slegs die geldige een sal 'n paar prosesverwante hê (Dit is omdat die korrekte KDBG adres nodig is om prosesse te onttrek).
Die kernel debugger blok, bekend as KDBG deur Volatility, is van kardinale belang vir forensiese take wat deur Volatility en verskeie debuggers uitgevoer word. Geïdentifiseer as KdDebuggerDataBlock en van die tipe _KDDEBUGGER_DATA64, bevat dit noodsaaklike verwysings soos PsActiveProcessHead. Hierdie spesifieke verwysing dui op die kop van die proseslys, wat die lys van alle prosesse moontlik maak, wat fundamenteel is vir deeglike geheueanalise.
OS Inligting
#vol3 has a plugin to give OS information (note that imageinfo from vol2 will give you OS info)./vol.py-ffile.dmpwindows.info.Info
Die plugin banners.Banners kan gebruik word in vol3 om te probeer om linux banners in die dump te vind.
./vol.py-ffile.dmpwindows.hashdump.Hashdump#Grab common windows hashes (SAM+SYSTEM)./vol.py-ffile.dmpwindows.cachedump.Cachedump#Grab domain cache hashes inside the registry./vol.py-ffile.dmpwindows.lsadump.Lsadump#Grab lsa secrets
volatility--profile=Win7SP1x86_23418hashdump-ffile.dmp#Grab common windows hashes (SAM+SYSTEM)volatility--profile=Win7SP1x86_23418cachedump-ffile.dmp#Grab domain cache hashes inside the registryvolatility--profile=Win7SP1x86_23418lsadump-ffile.dmp#Grab lsa secrets
Geheue Dump
Die geheue dump van 'n proses sal uittrek alles van die huidige status van die proses. Die procdump module sal slegs uittrek die kode.
RootedCON is die mees relevante kuberveiligheid gebeurtenis in Spanje en een van die belangrikste in Europa. Met die missie om tegniese kennis te bevorder, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
Probeer om verdagte prosesse (op naam) of onverwagte kind prosesse (byvoorbeeld 'n cmd.exe as 'n kind van iexplorer.exe) te vind.
Dit kan interessant wees om die resultaat van pslist te vergelyk met dié van psscan om verborge prosesse te identifiseer.
python3vol.py-ffile.dmpwindows.pstree.PsTree# Get processes tree (not hidden)python3vol.py-ffile.dmpwindows.pslist.PsList# Get process list (EPROCESS)python3vol.py-ffile.dmpwindows.psscan.PsScan# Get hidden process list(malware)
volatility--profile=PROFILEpstree-ffile.dmp# Get process tree (not hidden)volatility--profile=PROFILEpslist-ffile.dmp# Get process list (EPROCESS)volatility--profile=PROFILEpsscan-ffile.dmp# Get hidden process list(malware)volatility--profile=PROFILEpsxview-ffile.dmp# Get hidden process list
Dump proc
./vol.py -f file.dmp windows.dumpfiles.DumpFiles --pid <pid> #Dump the .exe and dlls of the process in the current directory
python3vol.py-ffile.dmpwindows.cmdline.CmdLine#Display process command-line arguments
volatility--profile=PROFILEcmdline-ffile.dmp#Display process command-line argumentsvolatility--profile=PROFILEconsoles-ffile.dmp#command history by scanning for _CONSOLE_INFORMATION
Opdragte wat in cmd.exe uitgevoer word, word bestuur deur conhost.exe (of csrss.exe op stelsels voor Windows 7). Dit beteken dat as cmd.exe deur 'n aanvaller beëindig word voordat 'n geheue-dump verkry word, dit steeds moontlik is om die sessie se opdraggeskiedenis uit die geheue van conhost.exe te herstel. Om dit te doen, as ongewone aktiwiteit binne die konsole se modules opgespoor word, moet die geheue van die geassosieerde conhost.exe proses gedump word. Dan, deur te soek na strings binne hierdie dump, kan opdraglyne wat in die sessie gebruik is, moontlik onttrek word.
Omgewing
Kry die omgewing veranderlikes van elke lopende proses. Daar kan 'n paar interessante waardes wees.
python3vol.py-ffile.dmpwindows.envars.Envars [--pid <pid>]#Display process environment variables
volatility--profile=PROFILEenvars-ffile.dmp [--pid <pid>]#Display process environment variablesvolatility --profile=PROFILE -f file.dmp linux_psenv [-p <pid>] #Get env of process. runlevel var means the runlevel where the proc is initated
Token bevoegdhede
Kyk vir bevoegdhede tokens in onverwagte dienste.
Dit kan interessant wees om die prosesse wat 'n paar bevoorregte tokens gebruik, op te lys.
#Get enabled privileges of some processespython3vol.py-ffile.dmpwindows.privileges.Privs [--pid <pid>]#Get all processes with interesting privilegespython3 vol.py -f file.dmp windows.privileges.Privs | grep "SeImpersonatePrivilege\|SeAssignPrimaryPrivilege\|SeTcbPrivilege\|SeBackupPrivilege\|SeRestorePrivilege\|SeCreateTokenPrivilege\|SeLoadDriverPrivilege\|SeTakeOwnershipPrivilege\|SeDebugPrivilege"
#Get enabled privileges of some processesvolatility--profile=Win7SP1x86_23418privs--pid=3152-ffile.dmp|grepEnabled#Get all processes with interesting privilegesvolatility --profile=Win7SP1x86_23418 privs -f file.dmp | grep "SeImpersonatePrivilege\|SeAssignPrimaryPrivilege\|SeTcbPrivilege\|SeBackupPrivilege\|SeRestorePrivilege\|SeCreateTokenPrivilege\|SeLoadDriverPrivilege\|SeTakeOwnershipPrivilege\|SeDebugPrivilege"
SIDs
Kontroleer elke SSID wat deur 'n proses besit word.
Dit kan interessant wees om die prosesse te lys wat 'n privilige SID gebruik (en die prosesse wat 'n diens SID gebruik).
./vol.py-ffile.dmpwindows.getsids.GetSIDs [--pid <pid>]#Get SIDs of processes./vol.py-ffile.dmpwindows.getservicesids.GetServiceSIDs#Get the SID of services
volatility--profile=Win7SP1x86_23418getsids-ffile.dmp#Get the SID owned by each processvolatility--profile=Win7SP1x86_23418getservicesids-ffile.dmp#Get the SID of each service
Handvats
Nuttig om te weet na watter ander lêers, sleutels, drade, prosesse... 'n proses 'n handvats het (het geopen)
./vol.py-ffile.dmpwindows.dlllist.DllList [--pid <pid>]#List dlls used by each./vol.py -f file.dmp windows.dumpfiles.DumpFiles --pid <pid> #Dump the .exe and dlls of the process in the current directory process
volatility--profile=Win7SP1x86_23418dlllist--pid=3152-ffile.dmp#Get dlls of a procvolatility--profile=Win7SP1x86_23418dlldump--pid=3152--dump-dir=.-ffile.dmp#Dump dlls of a proc
Strings per processes
Volatility laat ons toe om te kyk na watter proses 'n string behoort.
Windows hou rekord van programme wat jy uitvoer deur 'n funksie in die registrasie genaamd UserAssist sleutels. Hierdie sleutels registreer hoe dikwels elke program uitgevoer word en wanneer dit laas uitgevoer is.
RootedCON is die mees relevante kuberveiligheid gebeurtenis in Spanje en een van die belangrikste in Europa. Met die missie om tegniese kennis te bevorder, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.
./vol.py-ffile.dmpwindows.svcscan.SvcScan#List services./vol.py-ffile.dmpwindows.getservicesids.GetServiceSIDs#Get the SID of services
#Get services and binary pathvolatility--profile=Win7SP1x86_23418svcscan-ffile.dmp#Get name of the services and SID (slow)volatility--profile=Win7SP1x86_23418getservicesids-ffile.dmp
Netwerk
./vol.py-ffile.dmpwindows.netscan.NetScan#For network info of linux use volatility2
volatility--profile=Win7SP1x86_23418netscan-ffile.dmpvolatility--profile=Win7SP1x86_23418connections-ffile.dmp#XPand2003onlyvolatility--profile=Win7SP1x86_23418connscan-ffile.dmp#TCPconnectionsvolatility--profile=Win7SP1x86_23418sockscan-ffile.dmp#Opensocketsvolatility--profile=Win7SP1x86_23418sockets-ffile.dmp#Scannerfortcpsocketobjectsvolatility--profile=SomeLinux-ffile.dmplinux_ifconfigvolatility--profile=SomeLinux-ffile.dmplinux_netstatvolatility--profile=SomeLinux-ffile.dmplinux_netfiltervolatility--profile=SomeLinux-ffile.dmplinux_arp#ARP tablevolatility --profile=SomeLinux -f file.dmp linux_list_raw #Processes using promiscuous raw sockets (comm between processes)
volatility--profile=SomeLinux-ffile.dmplinux_route_cache
Registrasie heuning
Druk beskikbare heuning
./vol.py-ffile.dmpwindows.registry.hivelist.HiveList#List roots./vol.py-ffile.dmpwindows.registry.printkey.PrintKey#List roots and get initial subkeys
volatility--profile=Win7SP1x86_23418-ffile.dmphivelist#List rootsvolatility--profile=Win7SP1x86_23418-ffile.dmpprintkey#List roots and get initial subkeys
volatility--profile=Win7SP1x86_23418printkey-K"Software\Microsoft\Windows NT\CurrentVersion"-ffile.dmp# Get Run binaries registry valuevolatility-ffile.dmp--profile=Win7SP1x86printkey-o0x9670e9d0-K'Software\Microsoft\Windows\CurrentVersion\Run'
Dump
#Dump a hivevolatility--profile=Win7SP1x86_23418hivedump-o0x9aad6148-ffile.dmp#Offset extracted by hivelist#Dump all hivesvolatility--profile=Win7SP1x86_23418hivedump-ffile.dmp
Lêerstelsel
Monteer
#See vol2
volatility--profile=SomeLinux-ffile.dmplinux_mountvolatility--profile=SomeLinux-ffile.dmplinux_recover_filesystem#Dump the entire filesystem (if possible)
Skandeer/dump
./vol.py-ffile.dmpwindows.filescan.FileScan#Scan for files inside the dump./vol.py-ffile.dmpwindows.dumpfiles.DumpFiles--physaddr<0xAAAAA>#Offset from previous command
volatility--profile=Win7SP1x86_23418filescan-ffile.dmp#Scan for files inside the dumpvolatility--profile=Win7SP1x86_23418dumpfiles-n--dump-dir=/tmp-ffile.dmp#Dump all filesvolatility--profile=Win7SP1x86_23418dumpfiles-n--dump-dir=/tmp-Q0x000000007dcaa620-ffile.dmpvolatility--profile=SomeLinux-ffile.dmplinux_enumerate_filesvolatility--profile=SomeLinux-ffile.dmplinux_find_file-F/path/to/filevolatility--profile=SomeLinux-ffile.dmplinux_find_file-i0xINODENUMBER-O/path/to/dump/file
Meester Lêer Tabel
# I couldn't find any plugin to extract this information in volatility3
Die NTFS-lêerstelsel gebruik 'n kritieke komponent bekend as die meesterlêertabel (MFT). Hierdie tabel sluit ten minste een inskrywing in vir elke lêer op 'n volume, wat ook die MFT self dek. Belangrike besonderhede oor elke lêer, soos grootte, tydstempels, toestemmings, en werklike data, is ingesluit in die MFT-inskrywings of in areas buite die MFT maar waarna hierdie inskrywings verwys. Meer besonderhede kan gevind word in die amptelike dokumentasie.
SSL Sleutels/sertifikate
#vol3 allows to search for certificates inside the registry
./vol.py -f file.dmp windows.registry.certificates.Certificates
#vol2 allos you to search and dump certificates from memory
#Interesting options for this modules are: --pid, --name, --ssl
volatility --profile=Win7SP1x86_23418 dumpcerts --dump-dir=. -f file.dmp
Malware
./vol.py -f file.dmp windows.malfind.Malfind [--dump] #Find hidden and injected code, [dump each suspicious section]
#Malfind will search for suspicious structures related to malware
./vol.py -f file.dmp windows.driverirp.DriverIrp #Driver IRP hook detection
./vol.py -f file.dmp windows.ssdt.SSDT #Check system call address from unexpected addresses
./vol.py -f file.dmp linux.check_afinfo.Check_afinfo #Verifies the operation function pointers of network protocols
./vol.py -f file.dmp linux.check_creds.Check_creds #Checks if any processes are sharing credential structures
./vol.py -f file.dmp linux.check_idt.Check_idt #Checks if the IDT has been altered
./vol.py -f file.dmp linux.check_syscall.Check_syscall #Check system call table for hooks
./vol.py -f file.dmp linux.check_modules.Check_modules #Compares module list to sysfs info, if available
./vol.py -f file.dmp linux.tty_check.tty_check #Checks tty devices for hooks
Gebruik hierdie skrip om al die yara malware reëls van github af te laai en te kombineer: https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9
Skep die rules gids en voer dit uit. Dit sal 'n lêer genaamd malware_rules.yar skep wat al die yara reëls vir malware bevat.
Dit is moontlik om uit geheue die bash geskiedenis te lees. Jy kan ook die .bash_history lêer dump, maar dit was gedeaktiveer, jy sal bly wees dat jy hierdie volatiliteit module kan gebruik.
Die Master Boot Record (MBR) speel 'n belangrike rol in die bestuur van die logiese partisies van 'n stoor medium, wat gestruktureer is met verskillende file systems. Dit hou nie net partisie uitleg inligting nie, maar bevat ook uitvoerbare kode wat as 'n boot loader optree. Hierdie boot loader begin of die OS se tweede fase laai proses direk (sien second-stage boot loader) of werk in harmonie met die volume boot record (VBR) van elke partisie. Vir 'n diepgaande kennis, verwys na die MBR Wikipedia-bladsy.
RootedCON is die mees relevante kuberveiligheid gebeurtenis in Spanje en een van die belangrikste in Europa. Met die missie om tegniese kennis te bevorder, is hierdie kongres 'n bruisende ontmoetingspunt vir tegnologie en kuberveiligheid professionele in elke dissipline.