Volatility - CheatSheet

Ondersteun HackTricks

​​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.

As jy iets vinnige en mal wil hê wat verskeie Volatility plugins gelyktydig sal laat loop, kan jy gebruik maak van: https://github.com/carlospolop/autoVolatility

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)

Installasie

volatility3

git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
python3 setup.py install
python3 vol.py —h

volatility2

Download the executable from https://www.volatilityfoundation.org/26

Volatility Opdragte

Toegang tot die amptelike dokumentasie in Volatility opdragverwysing

'n Nota oor “lys” teenoor “skandeer” plugins

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).

Van: http://tomchop.me/2016/11/21/tutorial-volatility-plugins-malware-analysis/

OS Profiele

Volatility3

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:

Volatility2

Eksterne Profiel

Jy kan die lys van ondersteunde profiele kry deur:

./volatility_2.6_lin64_standalone --info | grep "Profile"

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:

./vol --plugins=/home/kali/Desktop/ctfs/final/plugins --info
Volatility Foundation Volatility Framework 2.6


Profiles
--------
LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64 - A Profile for Linux CentOS7_3.10.0-123.el7.x86_64_profile x64
VistaSP0x64                                   - A Profile for Windows Vista SP0 x64
VistaSP0x86                                   - A Profile for Windows Vista SP0 x86

U kan Linux en Mac profiele aflaai van https://github.com/volatilityfoundation/profiles

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:

./vol -f file.dmp --plugins=. --profile=LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64 linux_netscan

Ontdek Profiel

volatility imageinfo -f file.dmp
volatility kdbgscan -f file.dmp

Verskille tussen imageinfo en kdbgscan

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).

# GOOD
PsActiveProcessHead           : 0xfffff800011977f0 (37 processes)
PsLoadedModuleList            : 0xfffff8000119aae0 (116 modules)
# BAD
PsActiveProcessHead           : 0xfffff800011947f0 (0 processes)
PsLoadedModuleList            : 0xfffff80001197ac0 (0 modules)

KDBG

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 -f file.dmp windows.info.Info

Die plugin banners.Banners kan gebruik word in vol3 om te probeer om linux banners in die dump te vind.

Hashes/Wagwoorde

Onttrek SAM hashes, domein gekapte geloofsbriewe en lsa geheime.

./vol.py -f file.dmp windows.hashdump.Hashdump #Grab common windows hashes (SAM+SYSTEM)
./vol.py -f file.dmp windows.cachedump.Cachedump #Grab domain cache hashes inside the registry
./vol.py -f file.dmp windows.lsadump.Lsadump #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.

volatility -f file.dmp --profile=Win7SP1x86 memdump -p 2168 -D conhost/

​​​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.

Prosesse

Lys prosesse

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.

python3 vol.py -f file.dmp windows.pstree.PsTree # Get processes tree (not hidden)
python3 vol.py -f file.dmp windows.pslist.PsList # Get process list (EPROCESS)
python3 vol.py -f file.dmp windows.psscan.PsScan # Get hidden process list(malware)

Dump proc

./vol.py -f file.dmp windows.dumpfiles.DumpFiles --pid <pid> #Dump the .exe and dlls of the process in the current directory

Opdraglyn

Is daar enige verdagte uitvoerings?

python3 vol.py -f file.dmp windows.cmdline.CmdLine #Display process command-line arguments

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.

python3 vol.py -f file.dmp windows.envars.Envars [--pid <pid>] #Display process environment variables

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 processes
python3 vol.py -f file.dmp windows.privileges.Privs [--pid <pid>]
#Get all processes with interesting privileges
python3 vol.py -f file.dmp windows.privileges.Privs | 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 -f file.dmp windows.getsids.GetSIDs [--pid <pid>] #Get SIDs of processes
./vol.py -f file.dmp windows.getservicesids.GetServiceSIDs #Get the SID of services

Handvats

Nuttig om te weet na watter ander lêers, sleutels, drade, prosesse... 'n proses 'n handvats het (het geopen)

vol.py -f file.dmp windows.handles.Handles [--pid <pid>]

DLL's

./vol.py -f file.dmp windows.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

Strings per processes

Volatility laat ons toe om te kyk na watter proses 'n string behoort.

strings file.dmp > /tmp/strings.txt
./vol.py -f /tmp/file.dmp windows.strings.Strings --strings-file /tmp/strings.txt

Dit laat ook toe om na stringe binne 'n proses te soek met die yarascan-module:

./vol.py -f file.dmp windows.vadyarascan.VadYaraScan --yara-rules "https://" --pid 3692 3840 3976 3312 3084 2784
./vol.py -f file.dmp yarascan.YaraScan --yara-rules "https://"

UserAssist

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.

./vol.py -f file.dmp windows.registry.userassist.UserAssist

​​​​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.

Dienste

./vol.py -f file.dmp windows.svcscan.SvcScan #List services
./vol.py -f file.dmp windows.getservicesids.GetServiceSIDs #Get the SID of services

Netwerk

./vol.py -f file.dmp windows.netscan.NetScan
#For network info of linux use volatility2

Registrasie heuning

Druk beskikbare heuning

./vol.py -f file.dmp windows.registry.hivelist.HiveList #List roots
./vol.py -f file.dmp windows.registry.printkey.PrintKey #List roots and get initial subkeys

Kry 'n waarde

./vol.py -f file.dmp windows.registry.printkey.PrintKey --key "Software\Microsoft\Windows NT\CurrentVersion"

Dump

#Dump a hive
volatility --profile=Win7SP1x86_23418 hivedump -o 0x9aad6148 -f file.dmp #Offset extracted by hivelist
#Dump all hives
volatility --profile=Win7SP1x86_23418 hivedump -f file.dmp

Lêerstelsel

Monteer

#See vol2

Skandeer/dump

./vol.py -f file.dmp windows.filescan.FileScan #Scan for files inside the dump
./vol.py -f file.dmp windows.dumpfiles.DumpFiles --physaddr <0xAAAAA> #Offset from previous command

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

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

Scanning met yara

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.

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
#Only Windows
./vol.py -f file.dmp windows.vadyarascan.VadYaraScan --yara-file /tmp/malware_rules.yar
#All
./vol.py -f file.dmp yarascan.YaraScan --yara-file /tmp/malware_rules.yar

MISC

Eksterne plugins

As jy eksterne plugins wil gebruik, maak seker dat die vouers wat met die plugins verband hou, die eerste parameter is wat gebruik word.

./vol.py --plugin-dirs "/tmp/plugins/" [...]

Autoruns

Laai dit af van https://github.com/tomchop/volatility-autoruns

volatility --plugins=volatility-autoruns/ --profile=WinXPSP2x86 -f file.dmp autoruns

Mutexes

./vol.py -f file.dmp windows.mutantscan.MutantScan

Simboliese skakels

./vol.py -f file.dmp windows.symlinkscan.SymlinkScan

Bash

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.

./vol.py -f file.dmp linux.bash.Bash

Tydlyn

./vol.py -f file.dmp timeLiner.TimeLiner

Bestuurders

./vol.py -f file.dmp windows.driverscan.DriverScan
volatility --profile=Win7SP1x86_23418 -f file.dmp driverscan

Kry knipbord

#Just vol2
volatility --profile=Win7SP1x86_23418 clipboard -f file.dmp

Kry IE geskiedenis

#Just vol2
volatility --profile=Win7SP1x86_23418 iehistory -f file.dmp

Kry notepad teks

#Just vol2
volatility --profile=Win7SP1x86_23418 notepad -f file.dmp

Skermskoot

#Just vol2
volatility --profile=Win7SP1x86_23418 screenshot -f file.dmp

Meester Opstart Rekord (MBR)

volatility --profile=Win7SP1x86_23418 mbrparser -f file.dmp

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.

References

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.

Support HackTricks

Last updated