Volatility - CheatSheet

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

​​RootedCON to najważniejsze wydarzenie z zakresu cyberbezpieczeństwa w Hiszpanii i jedno z najważniejszych w Europie. Mając misję promowania wiedzy technicznej, ten kongres jest gorącym punktem spotkań dla profesjonalistów technologii i cyberbezpieczeństwa we wszystkich dziedzinach.

Jeśli chcesz szybkie i szalone narzędzie, które uruchomi kilka wtyczek Volatility równolegle, możesz skorzystać z: 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)

Instalacja

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

Polecenia Volatility

Dostęp do oficjalnej dokumentacji znajdziesz w Referencji poleceń Volatility

Uwaga dotycząca wtyczek „list” vs. „scan”

Volatility ma dwa główne podejścia do wtyczek, które czasami odzwierciedlają się w ich nazwach. Wtyczki „list” będą próbować nawigować przez struktury jądra systemu Windows, aby odzyskać informacje, takie jak procesy (lokalizacja i przechodzenie przez listę połączoną struktur _EPROCESS w pamięci), uchwyty systemowe (lokalizacja i wylistowanie tabeli uchwytów, dereferencjonowanie znalezionych wskaźników, itp.). Zachowują się one mniej więcej tak, jakby system Windows API został poproszony o wylistowanie procesów.

To sprawia, że wtyczki „list” są dość szybkie, ale równie podatne na manipulację przez złośliwe oprogramowanie jak Windows API. Na przykład, jeśli złośliwe oprogramowanie użyje DKOM do odłączenia procesu od listy połączonej struktur _EPROCESS, nie pojawi się ono w Menedżerze zadań, ani w pslist.

Wtyczki „scan” z kolei podejmą podejście podobne do wycinania pamięci w poszukiwaniu rzeczy, które mogą mieć sens, gdy zostaną dereferencjonowane jako konkretne struktury. Na przykład psscan odczyta pamięć i spróbuje utworzyć obiekty _EPROCESS z niej (używa skanowania tagów puli, które polega na wyszukiwaniu 4-bajtowych ciągów wskazujących na obecność interesującej struktury). Zaletą jest to, że może wydobyć procesy, które zostały zakończone, a nawet jeśli złośliwe oprogramowanie ingeruje w listę połączoną struktur _EPROCESS, wtyczka nadal znajdzie strukturę pozostającą w pamięci (ponieważ musi nadal istnieć, aby proces mógł działać). Wada polega na tym, że wtyczki „scan” są nieco wolniejsze niż wtyczki „list” i czasami mogą dawać fałszywe wyniki (proces, który został zakończony zbyt dawno i którego części struktury zostały nadpisane przez inne operacje).

Źródło: http://tomchop.me/2016/11/21/tutorial-volatility-plugins-malware-analysis/

Profile systemów operacyjnych

Volatility3

Jak wyjaśniono w pliku readme, musisz umieścić tabelę symboli systemu operacyjnego, który chcesz obsługiwać w volatility3/volatility/symbols. Pakiety tabel symboli dla różnych systemów operacyjnych są dostępne do pobrania pod adresem:

Volatility2

Profil zewnętrzny

Możesz uzyskać listę obsługiwanych profili wykonując:

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

Jeśli chcesz użyć nowego profilu, który pobrałeś (na przykład profilu linux), musisz utworzyć gdzieś następującą strukturę folderów: plugins/overlays/linux i umieścić wewnątrz tego folderu plik zip zawierający profil. Następnie, uzyskaj numer profilu, korzystając z:

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

Możesz pobrać profile Linuxa i Maca z https://github.com/volatilityfoundation/profiles

W poprzednim fragmencie możesz zobaczyć, że profil nazywa się LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64, i możesz go użyć do wykonania czegoś w stylu:

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

Odkryj profil

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

Różnice między imageinfo a kdbgscan

Z tej strony: W przeciwieństwie do imageinfo, które po prostu proponuje profile, kdbgscan jest zaprojektowany do pozytywnego zidentyfikowania poprawnego profilu i poprawnego adresu KDBG (jeśli istnieje ich kilka). Ten plugin skanuje sygnatury nagłówka KDBG powiązane z profilami Volatility i stosuje testy spójności w celu zmniejszenia fałszywych wyników. Natężenie wyników i liczba testów spójności, które można przeprowadzić, zależy od tego, czy Volatility może znaleźć DTB, więc jeśli już znasz poprawny profil (lub jeśli masz sugestię profilu z imageinfo), upewnij się, że go używasz.

Zawsze sprawdź liczbę procesów, które znalazł kdbgscan. Czasami imageinfo i kdbgscan mogą znaleźć więcej niż jeden odpowiedni profil, ale tylko ten poprawny będzie miał związane z nim pewne procesy (Dzieje się tak, ponieważ do wyodrębnienia procesów potrzebny jest poprawny adres KDBG)

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

KDBG

Blok debugera jądra, określany jako KDBG przez narzędzie Volatility, jest kluczowy dla zadań z zakresu forensyki wykonywanych przez Volatility oraz różne debuggery. Zidentyfikowany jako KdDebuggerDataBlock i typu _KDDEBUGGER_DATA64, zawiera istotne odwołania, takie jak PsActiveProcessHead. To konkretne odwołanie wskazuje na początek listy procesów, umożliwiając wylistowanie wszystkich procesów, co jest fundamentalne dla dokładnej analizy pamięci.

Informacje o systemie

#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

Wtyczka banners.Banners może być użyta w vol3 do próby znalezienia banerów systemu Linux w zrzucie.

Skróty/Hasła

Wyodrębnij skróty SAM, bufory pamięci podręcznej domeny i sekrety LSA.

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

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dumping a process: vol.py -f <memory_dump> --profile=<profile> procdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

  • Yara scan: vol.py -f <memory_dump> --profile=<profile> yarascan --yara-rules=<rules_file>

Plugins

  • Check for rootkits: vol.py -f <memory_dump> --profile=<profile> malfind

  • Network connections: vol.py -f <memory_dump> --profile=<profile> connscan

  • Registry analysis: vol.py -f <memory_dump> --profile=<profile> printkey -K <registry_key>

  • Detecting hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

Memory Analysis

  • Identifying injected code: vol.py -f <memory_dump> --profile=<profile> malfind

  • Detecting API hooks: vol.py -f <memory_dump> --profile=<profile> apihooks

  • Finding hidden processes: vol.py -f <memory_dump> --profile=<profile> ldrmodules

Timeline Analysis

  • Listing processes by start time: vol.py -f <memory_dump> --profile=<profile> pstree

  • Listing all processes with creation time: voljson.py -f <memory_dump> --profile=<profile> pslist

Network Analysis

  • Listing open sockets: vol.py -f <memory_dump> --profile=<profile> sockets

  • Listing network connections: vol.py -f <memory_dump> --profile=<profile> connscan

  • Listing DLLs loaded by a process: vol.py -f <memory_dump> --profile=<profile> dlllist -p <pid>

User Activity Analysis

  • Listing user accounts: vol.py -f <memory_dump> --profile=<profile> useraccounts

  • Listing user sessions: vol.py -f <memory_dump> --profile=<profile> sessions

  • Listing user activity: vol.py -f <memory_dump> --profile=<profile> userassist

volatility --profile=Win7SP1x86_23418 hashdump -f file.dmp #Grab common windows hashes (SAM+SYSTEM)
volatility --profile=Win7SP1x86_23418 cachedump -f file.dmp #Grab domain cache hashes inside the registry
volatility --profile=Win7SP1x86_23418 lsadump -f file.dmp #Grab lsa secrets

Zrzut pamięci

Zrzut pamięci procesu wydobędzie wszystko z bieżącego stanu procesu. Moduł procdump wydobędzie tylko kod.

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

​​​RootedCON to najważniejsze wydarzenie z zakresu cyberbezpieczeństwa w Hiszpanii i jedno z najważniejszych w Europie. Mając misję promowania wiedzy technicznej, ten kongres stanowi gorące miejsce spotkań dla profesjonalistów technologii i cyberbezpieczeństwa we wszystkich dziedzinach.

Procesy

Wyświetlanie procesów

Spróbuj znaleźć podejrzane procesy (po nazwie) lub niespodziewane procesy potomne (na przykład cmd.exe jako proces potomny iexplorer.exe). Może być interesujące porównanie wyników pslist z wynikami psscan w celu zidentyfikowania ukrytych procesów.

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)

Polecenia wykonane w cmd.exe są zarządzane przez conhost.exe (lub csrss.exe w systemach przed Windows 7). Oznacza to, że jeśli cmd.exe zostanie zakończony przez atakującego przed uzyskaniem zrzutu pamięci, nadal można odzyskać historię poleceń sesji z pamięci conhost.exe. Aby to zrobić, jeśli wykryto nietypową aktywność w modułach konsoli, należy wykonać zrzut pamięci procesu powiązanego z conhost.exe. Następnie, wyszukując ciągi znaków w tym zrzucie, można potencjalnie wyodrębnić używane w sesji linie poleceń.

Środowisko

Pobierz zmienne środowiskowe każdego działającego procesu. Mogą tam być interesujące wartości.

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

Podstawowa metodyka analizy dumpa pamięci za pomocą narzędzia Volatility

Ogólne polecenia

  • imageinfo - Wyświetla informacje o obrazie pamięci

  • kdbgscan - Skanuje pamięć w poszukiwaniu struktury KDBG

  • pslist - Wyświetla listę procesów

  • pstree - Wyświetla drzewo procesów

  • dlllist - Wyświetla listę załadowanych bibliotek dynamicznych

  • handles - Wyświetla listę uchwytów procesów

  • filescan - Skanuje pamięć w poszukiwaniu struktur plików

  • cmdline - Wyświetla argumenty wiersza poleceń dla procesów

  • consoles - Wyświetla listę konsol procesów

  • vadinfo - Wyświetla informacje o regionach pamięci VAD

  • vadtree - Wyświetla drzewo regionów pamięci VAD

  • malfind - Skanuje pamięć w poszukiwaniu podejrzanych zachowań

  • ldrmodules - Wyświetla listę modułów załadowanych przez procesy

  • apihooks - Wyświetla informacje o hakach API

  • svcscan - Skanuje pamięć w poszukiwaniu baz danych usług

  • connections - Wyświetla listę otwartych połączeń

  • sockets - Wyświetla listę otwartych gniazd

  • devicetree - Wyświetla drzewo urządzeń

  • modscan - Skanuje pamięć w poszukiwaniu modułów jądra

  • ssdt - Wyświetla informacje o SSDT

  • callbacks - Wyświetla informacje o callbackach

  • gdt - Wyświetla informacje o GDT

  • idt - Wyświetla informacje o IDT

  • driverscan - Skanuje pamięć w poszukiwaniu sterowników

  • yarascan - Skanuje pamięć przy użyciu reguł YARA

  • dumpfiles - Wyodrębnia pliki z dumpa pamięci

  • dumpregistry - Wyodrębnia rejestr z dumpa pamięci

  • memmap - Wyświetla mapę pamięci

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Skanuje pamięć w poszukiwaniu obiektów atomowych

  • atomscan - Sk

volatility --profile=PROFILE envars -f file.dmp [--pid <pid>] #Display process environment variables

volatility --profile=PROFILE -f file.dmp linux_psenv [-p <pid>] #Get env of process. runlevel var means the runlevel where the proc is initated

Uprawnienia tokenów

Sprawdź uprawnienia tokenów w nieoczekiwanych usługach. Może być interesujące wymienić procesy korzystające z pewnego uprzywilejowanego tokenu.

#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"

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dump process: vol.py -f <memory_dump> --profile=<profile> memdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

Malware Analysis

  • Malware scan: vol.py -f <memory_dump> --profile=<profile> malscan

  • Yara scan: vol.py -f <memory_dump> --profile=<profile> yarascan --yara-rules=<rules_file>

Network Analysis

  • Network connections: vol.py -f <memory_dump> --profile=<profile> connscan

  • Sockets: vol.py -f <memory_dump> --profile=<profile> sockets

  • Connections by process: vol.py -f <memory_dump> --profile=<profile> connscan -p <pid>

Registry Analysis

  • Registry hives: vol.py -f <memory_dump> --profile=<profile> hivelist

  • Dump registry: vol.py -f <memory_dump> --profile=<profile> printkey -o <offset>

  • UserAssist: vol.py -f <memory_dump> --profile=<profile> userassist

Timeline Analysis

  • Timeliner: vol.py -f <memory_dump> --profile=<profile> timeliner

Other Commands

  • API hooks: vol.py -f <memory_dump> --profile=<profile> apihooks

  • Driver modules: vol.py -f <memory_dump> --profile=<profile> modscan

  • SSDT: vol.py -f <memory_dump> --profile=<profile> ssdt

  • Handles: vol.py -f <memory_dump> --profile=<profile> handles

  • Privileges: vol.py -f <memory_dump> --profile=<profile> privs

  • Crashinfo: vol.py -f <memory_dump> --profile=<profile> crashinfo

Volatility Plugins

  • List available plugins: vol.py --info | grep -i <keyword>

  • Run a specific plugin: vol.py -f <memory_dump> --profile=<profile> <plugin_name>

#Get enabled privileges of some processes
volatility --profile=Win7SP1x86_23418 privs --pid=3152 -f file.dmp | grep Enabled
#Get all processes with interesting privileges
volatility --profile=Win7SP1x86_23418 privs -f file.dmp | grep "SeImpersonatePrivilege\|SeAssignPrimaryPrivilege\|SeTcbPrivilege\|SeBackupPrivilege\|SeRestorePrivilege\|SeCreateTokenPrivilege\|SeLoadDriverPrivilege\|SeTakeOwnershipPrivilege\|SeDebugPrivilege"

SIDs

Sprawdź każde SSID posiadane przez proces. Może być interesujące wymienić procesy korzystające z SID uprawnień (oraz procesy korzystające z pewnego SID usługi).

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

Metodologia analizy dumpa pamięci za pomocą narzędzia Volatility:

  1. Zbieranie informacji o systemie:

    • imageinfo: Pobierz podstawowe informacje o dumpie pamięci.

    • kdbgscan: Znajdź adres Debug Data Block.

    • dt: Wyświetl informacje o typach danych.

  2. Analiza procesów:

    • pslist: Wyświetl listę procesów.

    • pstree: Wyświetl drzewo procesów.

    • psscan: Skanuj procesy w poszukiwaniu ukrytych.

  3. Analiza modułów:

    • modlist: Wyświetl listę załadowanych modułów.

    • modscan: Znajdź moduły w pamięci.

  4. Analiza zasobów:

    • handles: Wyświetl otwarte uchwyty.

    • dlllist: Wyświetl listę załadowanych bibliotek.

  5. Analiza rejestrów:

    • hivelist: Wyświetl listę załadowanych plików rejestru.

    • printkey: Wyświetl zawartość klucza rejestru.

  6. Analiza sieci:

    • netscan: Skanuj otwarte porty i połączenia sieciowe.

    • connections: Wyświetl otwarte połączenia.

  7. Analiza plików:

    • filescan: Skanuj otwarte pliki.

    • dumpfiles: Wyodrębnij pliki z dumpa pamięci.

  8. Analiza zachowań:

    • cmdscan: Wyświetl historię poleceń w procesach.

    • consoles: Wyświetl otwarte konsoli.

  9. Analiza rezydentów:

    • ldrmodules: Wyświetl moduły rezydentne.

    • driverirp: Analiza obiektów IRP sterowników.

  10. Analiza wątków:

    • threads: Wyświetl listę wątków.

    • thrdscan: Skanuj wątki w poszukiwaniu ukrytych.

  11. Analiza usług:

    • svcscan: Wyświetl listę usług.

    • svcscan -t: Wyświetl usługi typu kernel.

  12. Analiza harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  13. Analiza plików pamięci stronicowanej:

    • memmap: Wyświetl mapowanie pamięci.

    • memdump: Wyodrębnij plik pamięci stronicowanej.

  14. Analiza wirtualnej pamięci:

    • vadinfo: Wyświetl informacje o regionach pamięci.

    • vaddump: Wyodrębnij zawartość regionu pamięci.

  15. Analiza wstrzykiwania kodu:

    • malfind: Znajdź podejrzane zachowania.

    • apihooks: Wykryj hooki API.

  16. Analiza rootkitów:

    • ssdt: Wyświetl informacje o SSDT.

    • callbacks: Wyświetl informacje o callbackach.

  17. Analiza exploitów:

    • gdt: Wyświetl deskryptory tablicy globalnej.

    • idt: Wyświetl deskryptory tablicy przerwań.

  18. Analiza bezpieczeństwa:

    • malfind: Znajdź podejrzane zachowania.

    • yarascan: Skanuj pamięć przy użyciu reguł YARA.

  19. Analiza złośliwego oprogramowania:

    • malfind: Znajdź podejrzane zachowania.

    • yarascan: Skanuj pamięć przy użyciu reguł YARA.

  20. Analiza ataków:

    • malfind: Znajdź podejrzane zachowania.

    • apihooks: Wykryj hooki API.

  21. Analiza danych:

    • bulk_extractor: Wyodrębnij dane z dumpa pamięci.

    • hashdump: Wyświetl hasła z pamięci.

  22. Analiza systemu plików:

    • mftparser: Analiza MFT.

    • usnparser: Analiza USN Journal.

  23. Analiza logów:

    • logonlist: Wyświetl listę logowań.

    • userassist: Wyświetl informacje o aktywności użytkownika.

  24. Analiza rejestru zdarzeń:

    • hivedump: Wyodrębnij zawartość rejestru.

    • printkey: Wyświetl zawartość klucza rejestru.

  25. Analiza zabezpieczeń:

    • getsids: Wyświetl informacje o SID.

    • privs: Wyświetl informacje o uprawnieniach.

  26. Analiza informacji o systemie:

    • svcscan: Wyświetl listę usług.

    • driverirp: Analiza obiektów IRP sterowników.

  27. Analiza danych z rejestru:

    • hivelist: Wyświetl listę załadowanych plików rejestru.

    • printkey: Wyświetl zawartość klucza rejestru.

  28. Analiza danych z plików:

    • filescan: Skanuj otwarte pliki.

    • dumpfiles: Wyodrębnij pliki z dumpa pamięci.

  29. Analiza danych z sieci:

    • netscan: Skanuj otwarte porty i połączenia sieciowe.

    • connections: Wyświetl otwarte połączenia.

  30. Analiza danych z procesów:

    • cmdscan: Wyświetl historię poleceń w procesach.

    • consoles: Wyświetl otwarte konsoli.

  31. Analiza danych z modułów:

    • modlist: Wyświetl listę załadowanych modułów.

    • modscan: Znajdź moduły w pamięci.

  32. Analiza danych z wątków:

    • threads: Wyświetl listę wątków.

    • thrdscan: Skanuj wątki w poszukiwaniu ukrytych.

  33. Analiza danych z usług:

    • svcscan: Wyświetl listę usług.

    • svcscan -t: Wyświetl usługi typu kernel.

  34. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  35. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  36. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  37. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  38. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  39. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  40. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  41. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  42. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  43. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  44. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  45. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  46. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  47. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  48. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  49. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

  50. Analiza danych z harmonogramu zadań:

    • cmdline: Wyświetl listę zaplanowanych zadań.

    • malfind: Znajdź podejrzane zachowania.

volatility --profile=Win7SP1x86_23418 getsids -f file.dmp #Get the SID owned by each process
volatility --profile=Win7SP1x86_23418 getservicesids -f file.dmp #Get the SID of each service

Uchwyty

Przydatne do określenia, do których innych plików, kluczy, wątków, procesów... proces ma uchwyt (jest otwarty)

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

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <file> imageinfo

  • File scan: vol.py -f <file> filescan

  • Process list: vol.py -f <file> pslist

  • Connections: vol.py -f <file> connscan

Process Analysis

  • DLL list: vol.py -f <file> dlllist -p <pid>

  • Handles: vol.py -f <file> handles -p <pid>

  • PS tree: vol.py -f <file> pstree

Network Analysis

  • Sockets: vol.py -f <file> sockets

  • Connections: volfile> connscan

Memory Analysis

  • Vad Tree: vol.py -f <file> vadtree

  • Vad Tree (specific process): vol.py -f <file> vadtree -p <pid>

  • Strings: vol.py -f <file> strings -s

Malware Analysis

  • Yara scan: vol.py -f <file> yarascan --yara-rules <rules_file>

Registry Analysis

  • Print key: vol.py -f <file> printkey -K <key>

  • User Assist: vol.py -f <file> userassist

Plugin Management

  • List plugins: vol.py --info | grep -i <keyword>

  • Run plugin: vol.py -f <file> --profile=<profile> <plugin_name>

Other Useful Commands

  • Cache Dump: vol.py -f <file> cachedump

  • Hash Dump: vol.py -f <file> hashdump

  • SSDT: vol.py -f <file> ssdt

  • Driver Module: vol.py -f <file> moddump -D <driver_name>

volatility --profile=Win7SP1x86_23418 -f file.dmp handles [--pid=<pid>]

Biblioteki DLL

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

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dumping a process: vol.py -f <memory_dump> --profile=<profile> memdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

Plugins

  • Check for rootkits: vol.py -f <memory_dump> --profile=<profile> malfind

  • Network connections: vol.py -f <memory_dump> --profile=<profile> netscan

  • Registry analysis: vol.py -f <memory_dump> --profile=<profile> printkey -K <registry_key>

  • Detecting hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

Volatility Profiles

  • List available profiles: vol.py --info | grep Profile

  • Specify profile: Add --profile=<profile> to commands

Memory Analysis

  • Identifying processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Checking process DLLs: vol.py -f <memory_dump> --profile=<profile> dlllist -p <pid>

  • Identifying process threads: vol.py -f <memory_dump> --profile=<profile> threads -p <pid>

Malware Analysis

  • Identifying injected code: vol.py -f <memory_dump> --profile=<profile> malfind

  • Analyzing process memory: vol.py -f <memory_dump> --profile=<profile> memmap -p <pid>

  • Detecting hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

Network Analysis

  • Checking network connections: vol.py -f <memory_dump> --profile=<profile> netscan

  • Analyzing network packets: vol.py -f <memory_dump> --profile=<profile> tcpip

File Analysis

  • Scanning for files: vol.py -f <memory_dump> --profile=<profile> filescan

  • Dumping files: vol.py -f <memory_dump> --profile=<profile> dumpfiles -Q <physical_offset> -D <output_directory>

Registry Analysis

  • Listing registry keys: vol.py -f <memory_dump> --profile=<profile> printkey -K <registry_key>

  • Dumping registry hives: vol.py -f <memory_dump> --profile=<profile> hivelist

volatility --profile=Win7SP1x86_23418 dlllist --pid=3152 -f file.dmp #Get dlls of a proc
volatility --profile=Win7SP1x86_23418 dlldump --pid=3152 --dump-dir=. -f file.dmp #Dump dlls of a proc

Ciągi znaków na procesy

Volatility pozwala nam sprawdzić, do którego procesu należy dany ciąg znaków.

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

Wolatility Cheat Sheet

Volatility Installation

sudo apt-get install volatility

Basic Commands

  • Image info: volatility -f <memory_dump> imageinfo

  • Running processes: volatility -f <memory_dump> --profile=<profile> pslist

  • Dumping a process: volatility -f <memory_dump> --profile=<profile> memdump -p <pid> -D <output_directory>

  • Listing all processes: volatility -f <memory_dump> --profile=<profile> psscan

  • Dumping all processes: volatility -f <memory_dump> --profile=<profile> procdump -D <output_directory>

  • Network connections: volatility -f <memory_dump> --profile=<profile> connections

  • Registry analysis: volatility -f <memory_dump> --profile=<profile> hivelist

  • Recovering deleted files: volatility -f <memory_dump> --profile=<profile> filescan

Advanced Commands

  • Detecting rootkits: volatility -f <memory_dump> --profile=<profile> malfind

  • Analyzing DLLs: voljson -f <memory_dump> --profile=<profile> dlllist

  • Identifying injected code: volatility -f <memory_dump> --profile=<profile> malfind

  • Analyzing drivers: volatility -f <memory_dump> --profile=<profile> driverscan

  • Extracting registry hives: volatility -f <memory_dump> --profile=<profile> printkey -o <offset>

  • Analyzing process handles: volatility -f <memory_dump> --profile=<profile> handles

Memory Forensics

  • Identifying processes: Analyzing running processes to detect malicious activity.

  • Analyzing network connections: Identifying unauthorized network connections.

  • Recovering deleted files: Finding and recovering files that have been deleted.

  • Detecting rootkits: Identifying and analyzing rootkits in memory dumps.

  • Analyzing DLLs: Examining loaded DLLs for signs of malicious activity.

  • Identifying injected code: Detecting code injection in processes.

  • Analyzing drivers: Investigating loaded drivers for suspicious behavior.

  • Extracting registry hives: Extracting and analyzing registry hives for evidence.

  • Analyzing process handles: Examining process handles for signs of tampering.

References

```bash
strings file.dmp > /tmp/strings.txt
volatility -f /tmp/file.dmp windows.strings.Strings --string-file /tmp/strings.txt

volatility -f /tmp/file.dmp --profile=Win81U1x64 memdump -p 3532 --dump-dir .
strings 3532.dmp > strings_file

Pozwala również na wyszukiwanie ciągów znaków wewnątrz procesu za pomocą modułu yarascan:

./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://"

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dumping a process: vol.py -f <memory_dump> --profile=<profile> memdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

Malware Analysis

  • Malware scan: vol.py -f <memory_dump> --profile=<profile> malscan

  • YARA scan: vol.py -f <memory_dump> --profile=<profile> yarascan --yara-rules=<rules_file>

Network Analysis

  • Network connections: vol.py -f <memory_dump> --profile=<profile> connscan

  • Socket scan: vol.py -f <memory_dump> --profile=<profile> sockets

  • Packet extraction: vol.py -f <memory_dump> --profile=<profile> tcpstream -D <output_directory>

User Activity

  • Registry analysis: vol.py -f <memory_dump> --profile=<profile> printkey -K <key_path>

  • User login events: vol.py -f <memory_dump> --profile=<profile> userassist

  • Command history: vol.py -f <memory_dump> --profile=<profile> cmdscan

Rootkit Detection

  • SSDT hook detection: vol.py -f <memory_dump> --profile=<profile> ssdt

  • Hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

  • Hidden modules: vol.py -f <memory_dump> --profile=<profile> ldrmodules

Volatility Plugins

  • List available plugins: vol.py --info | grep <keyword>

  • Plugin usage: vol.py -f <memory_dump> --profile=<profile> <plugin_name>

Memory Dump Analysis

  • Identifying suspicious processes: Look for unknown processes, processes with no associated image file, or processes with suspicious names.

  • Analyzing network connections: Check for unusual network connections, connections to known malicious IPs, or connections on uncommon ports.

  • Examining registry entries: Look for suspicious or unauthorized registry changes, unfamiliar keys, or modifications to system-critical keys.

  • Reviewing user activity: Investigate abnormal user login/logout times, unusual commands executed, or unauthorized access to sensitive files.

  • Detecting rootkits: Search for discrepancies in system call tables, hidden processes, or modules that do not appear in standard listings.

References

volatility --profile=Win7SP1x86_23418 yarascan -Y "https://" -p 3692,3840,3976,3312,3084,2784

UserAssist

System Windows śledzi programy, które uruchamiasz, korzystając z funkcji rejestru o nazwie klucze UserAssist. Te klucze rejestru rejestrują, ile razy każdy program został uruchomiony i kiedy ostatnio był uruchamiany.

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

Podstawowa metodologia analizy dumpingu pamięci

Volatility Cheatsheet

  1. Analiza dumpingu pamięci

    • volatility -f <plik_dmp> imageinfo - Wyświetla informacje o profilu systemu operacyjnego.

    • volatility -f <plik_dmp> pslist - Wyświetla listę procesów.

    • volatility -f <plik_dmp> psscan - Skanuje procesy.

    • volatility -f <plik_dmp> pstree - Wyświetla drzewo procesów.

    • volatility -f <plik_dmp> dlllist - Wyświetla listę załadowanych bibliotek dynamicznych.

    • volatility -f <plik_dmp> filescan - Skanuje deskryptory plików.

    • volatility -f <plik_dmp> cmdline - Wyświetla argumenty wiersza poleceń procesów.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

    • volatility -f <plik_dmp> connections - Wyświetla listę połączeń sieciowych.

    • volatility -f <plik_dmp> timeliner - Tworzy chronologię zdarzeń.

  2. Analiza rejestru

    • volatility -f <plik_dmp> hivelist - Wyświetla listę struktur rejestru.

    • volatility -f <plik_dmp> printkey -o <offset> - Wyświetla zawartość klucza rejestru.

    • volatility -f <plplik_dmp> userassist - Wyświetla informacje o aktywności użytkownika.

  3. Analiza plików

    • volatility -f <plik_dmp> filescan - Skanuje deskryptory plików.

    • volatility -f <plik_dmp> dumpfiles -Q <adres> - Zapisuje plik z pamięci.

  4. Analiza sieciowa

    • volatility -f <plik_dmp> connscan - Skanuje połączenia sieciowe.

    • volatility -f <plik_dmp> sockets - Wyświetla listę gniazd sieciowych.

  5. Analiza zabezpieczeń

    • volatility -f <plik_dmp> getsids - Wyświetla identyfikatory zabezpieczeń.

    • volatility -f <plik_dmp> getservicesids - Wyświetla identyfikatory usług.

  6. Analiza modułów jądra

    • volatility -f <plik_dmp> modules - Wyświetla listę załadowanych modułów jądra.

    • volatility -f <plik_dmp> modscan - Skanuje moduły jądra.

  7. Analiza procesów

    • volatility -f <plik_dmp> pslist - Wyświetla listę procesów.

    • volatility -f <plik_dmp> psscan - Skanuje procesy.

    • volatility -f <plik_dmp> pstree - Wyświetla drzewo procesów.

    • volatility -f <plik_dmp> cmdline - Wyświetla argumenty wiersza poleceń procesów.

  8. Analiza wirtualnej pamięci

    • volatility -f <plik_dmp> memmap - Wyświetla mapowanie pamięci.

    • volatility -f <plik_dmp> memdump -p <pid> -D <katalog_docelowy> - Tworzy dump pamięci procesu.

  9. Analiza systemu plików

    • volatility -f <plik_dmp> mftparser - Analizuje Master File Table (MFT).

    • volatility -f <plik_dmp> filescan - Skanuje deskryptory plików.

  10. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  11. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  12. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  13. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  14. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  15. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  16. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  17. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  18. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  19. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

  20. Analiza harmonogramu zadań

    • volatility -f <plik_dmp> malfind - Wykrywa podejrzane procesy i moduły.

    • volatility -f <plik_dmp> svcscan - Skanuje usługi.

    • volatility -f <plik_dmp> netscan - Skanuje otwarte połączenia sieciowe.

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

​​​​RootedCON to najważniejsze wydarzenie z zakresu cyberbezpieczeństwa w Hiszpanii i jedno z najważniejszych w Europie. Mając misję promowania wiedzy technicznej, ten kongres jest gorącym punktem spotkań dla profesjonalistów technologii i cyberbezpieczeństwa we wszystkich dziedzinach.

Usługi

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

Sieć

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

Wolatility Cheat Sheet

Basic Commands

  • imageinfo: Identify information about the profile.

  • pslist: List running processes.

  • pstree: Display a tree view of processes.

  • psscan: Scan physical memory for processes.

  • dlllist: List DLLs loaded by each process.

  • handles: List open handles for each process.

  • filescan: Scan for file handles in memory.

  • svcscan: Identify Windows services.

  • connscan: List open network connections.

  • cmdline: Display process command-line arguments.

  • malfind: Find hidden and injected code.

  • ldrmodules: Detect unlinked DLLs.

  • apihooks: Detect userland API hooks.

  • callbacks: Detect kernel callbacks.

  • devicetree: Display the device tree.

  • driverirp: Detect IRP handlers.

  • modscan: Find and dump kernel modules.

  • ssdt: Display the System Service Descriptor Table.

  • idt: Display the Interrupt Descriptor Table.

  • gdt: Display the Global Descriptor Table.

  • getsids: List Security IDs (SIDs).

  • privs: Display process privileges.

  • privs: Display process privileges.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind: Find hidden and injected code.

  • malfind:

volatility --profile=Win7SP1x86_23418 netscan -f file.dmp
volatility --profile=Win7SP1x86_23418 connections -f file.dmp#XP and 2003 only
volatility --profile=Win7SP1x86_23418 connscan -f file.dmp#TCP connections
volatility --profile=Win7SP1x86_23418 sockscan -f file.dmp#Open sockets
volatility --profile=Win7SP1x86_23418 sockets -f file.dmp#Scanner for tcp socket objects

volatility --profile=SomeLinux -f file.dmp linux_ifconfig
volatility --profile=SomeLinux -f file.dmp linux_netstat
volatility --profile=SomeLinux -f file.dmp linux_netfilter
volatility --profile=SomeLinux -f file.dmp linux_arp #ARP table
volatility --profile=SomeLinux -f file.dmp linux_list_raw #Processes using promiscuous raw sockets (comm between processes)
volatility --profile=SomeLinux -f file.dmp linux_route_cache

Rejestr hive

Wyświetl dostępne hives

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

Zrzut pamięci

#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

System plików

Montowanie

#See vol2

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dumping a process: vol.py -f <memory_dump> --profile=<profile> procdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

Plugins

  • Check for rootkits: vol.py -f <memory_dump> --profile=<profile> malfind

  • Network connections: vol.py -f <memory_dump> --profile=<profile> netscan

  • Registry analysis: vol.py -f <memory_dump> --profile=<profile> printkey -K <registry_key>

  • Detecting hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

Memory Analysis

  • Identifying injected code: vol.py -f <memory_dump> --profile=<profile> malfind

  • Analyzing DLLs: vol.py -f <memory_dump> --profile=<profile> dlllist

  • Finding open sockets: vol.py -f <memory_dump> --profile=<profile> sockscan

Additional Resources

References

volatility --profile=SomeLinux -f file.dmp linux_mount
volatility --profile=SomeLinux -f file.dmp linux_recover_filesystem #Dump the entire filesystem (if possible)

Skanowanie/dumpowanie

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

## Podstawowa metodologia analizy dumpingu pamięci

Skróty klawiszowe Volatility

  • imageinfo - Informacje o obrazie pamięci

  • kdbgscan - Skanowanie KDBG

  • pslist - Lista procesów

  • pstree - Drzewo procesów

  • dlllist - Lista bibliotek DLL

  • handles - Lista uchwytów

  • filescan - Skanowanie plików

  • cmdline - Linia poleceń

  • psscan - Skanowanie procesów

  • netscan - Skanowanie sieci

  • connections - Lista połączeń

  • sockets - Lista gniazd

  • svcscan - Skanowanie usług

  • modscan - Skanowanie modułów

  • malfind - Znajdowanie podejrzanych procesów

  • yarascan - Skanowanie YARA

  • dumpfiles - Zrzucanie plików

  • dumpregistry - Zrzucanie rejestru

  • dlldump - Zrzucanie bibliotek DLL

  • memdump - Zrzucanie pamięci

  • hashdump - Zrzucanie haseł

  • hivelist - Lista struktur rejestru

  • printkey - Wyświetlanie klucza rejestru

  • fileinfo - Informacje o pliku

  • vadinfo - Informacje o VAD

  • vaddump - Zrzucanie VAD

  • vadtree - Drzewo VAD

  • vadwalk - Przechodzenie VAD

  • callbacks - Lista wywołań zwrotnych

  • devicetree - Drzewo urządzeń

  • driverirp - Analiza IRP sterownika

  • ssdt - Wyświetlanie SSDT

  • gdt - Wyświetlanie GDT

  • idt - Wyświetlanie IDT

  • ldrmodules - Lista modułów ładowania

  • drivermodules - Lista modułów sterownika

  • modules - Lista modułów

  • moddump - Zrzucanie modułów

  • atomscan - Skanowanie atomów

  • atomtable - Wyświetlanie tabeli atomów

  • atomstrings - Wyświetlanie ciągów atomów

  • ssdeep - Porównywanie SSDEEP

  • impscan - Skanowanie importów

  • apihooks - Wykrywanie haków API

  • callbacks - Lista wywołań zwrotnych

  • mutantscan - Skanowanie mutacji

  • deskscan - Skanowanie pulpitów

  • wndscan - Skanowanie okien

  • thrdscan - Skanowanie wątków

  • ldrmodules - Lista modułów ładowania

volatility --profile=Win7SP1x86_23418 filescan -f file.dmp #Scan for files inside the dump
volatility --profile=Win7SP1x86_23418 dumpfiles -n --dump-dir=/tmp -f file.dmp #Dump all files
volatility --profile=Win7SP1x86_23418 dumpfiles -n --dump-dir=/tmp -Q 0x000000007dcaa620 -f file.dmp

volatility --profile=SomeLinux -f file.dmp linux_enumerate_files
volatility --profile=SomeLinux -f file.dmp linux_find_file -F /path/to/file
volatility --profile=SomeLinux -f file.dmp linux_find_file -i 0xINODENUMBER -O /path/to/dump/file

MFT - Master File Table

# I couldn't find any plugin to extract this information in volatility3

System plików NTFS wykorzystuje istotny komponent znany jako master file table (MFT). Ta tabela zawiera co najmniej jedno wpis dla każdego pliku na woluminie, obejmując również samą MFT. Istotne szczegóły dotyczące każdego pliku, takie jak rozmiar, znaczniki czasu, uprawnienia i rzeczywiste dane, są zawarte w wpisach MFT lub w obszarach zewnętrznych w odniesieniu do tych wpisów. Więcej szczegółów można znaleźć w oficjalnej dokumentacji.

Klucze/Certyfikaty SSL

#vol3 allows to search for certificates inside the registry
./vol.py -f file.dmp windows.registry.certificates.Certificates

Autoruns

Pobierz go z https://github.com/tomchop/volatility-autoruns

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

Mutexy

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

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dump process: vol.py -f <memory_dump> --profile=<profile> memdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

Plugins

  • Check for rootkits: vol.py -f <memory_dump> --profile=<profile> malfind

  • Network connections: vol.py -f <memory_dump> --profile=<profile> netscan

  • Registry analysis: vol.py -f <memory_dump> --profile=<profile> printkey -K <registry_key>

  • Detecting hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

Memory Analysis

  • Identify injected code: vol.py -f <memory_dump> --profile=<profile> malfind

  • Extract DLLs: vol.py -f <memory_dump> --profile=<profile> dlldump

  • Analyze process memory: vol.py -f <memory_dump> --profile=<profile> memmap

Timeline Analysis

  • Show all processes: vol.py -f <memory_dump> --profile=<profile> pstotal

  • Display process timelines: vol.py -f <memory_dump> --profile=<profile> psscan

Malware Analysis

  • Detecting hidden modules: vol.py -f <memory_dump> --profile=<profile> ldrmodules

  • Identify injected threads: vol.py -f <memory_dump> --profile=<profile> ldrmodules

Network Analysis

  • List sockets: vol.py -f <memory_dump> --profile=<profile> sockets

  • Show network connections: voljson.py -f <memory_dump> --profile=<profile> connscan

User Activity Analysis

  • List user accounts: vol.py -f <memory_dump> --profile=<profile> useraccounts

  • Recover typed commands: vol.py -f <memory_dump> --profile=<profile> cmdscan

volatility --profile=Win7SP1x86_23418 mutantscan -f file.dmp
volatility --profile=Win7SP1x86_23418 -f file.dmp handles -p <PID> -t mutant

Dowiązania symboliczne

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

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dumping a process: vol.py -f <memory_dump> --profile=<profile> procdump -p <pid> -D <output_directory>

  • DLL list of a process: vol.py -f <memory_dump> --profile=<profile> dlllist -p <pid>

  • Handles of a process: vol.py -f <memory_dump> --profile=<profile> handles -p <pid>

  • Registry hives: vol.py -f <memory_dump> --profile=<profile> hivelist

  • Dumping a registry hive: vol.py -f <memory_dump> --profile=<profile> printkey -o <output_directory> -K <hive_offset>

  • Network connections: vol.py -f <memory_dump> --profile=<profile> connections

  • Patching a process: vol.py -json -f <memory_dump> --profile=<profile> malfind

  • Detecting hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

  • Kernel drivers: vol.py -f <memory_dump> --profile=<profile> driverscan

Advanced Commands

  • Detecting injected code: vol.py -f <memory_dump> --profile=<profile> malfind

  • Detecting rootkits: vol.py -f <memory_dump> --profile=<profile> ldrmodules

  • Detecting hooks: vol.py -f <memory_dump> --profile=<profile> apihooks

  • Detecting SSDT hooks: vol.py -f <memory_dump> --profile=<profile> ssdt

  • Detecting IDT hooks: vol.py -f <memory_dump> --profile=<profile> idt

  • Detecting user-mode hooks: vol.py -f <memory_dump> --profile=<profile> usermodehooks

  • Detecting driver hooks: vol.py -f <memory_dump> --profile=<profile> driverirp

  • Detecting fileless malware: vol.py -f <memory_dump> --profile=<profile> fileless_malware

  • Detecting process hollowing: vol.py -f <memory_dump> --profile=<profile> hollowfind

  • Detecting API hooking: vol.py -f <memory_dump> --profile=<profile> apihooks

  • Detecting covert processes: vol.py -f <memory_dump> --profile=<profile> psxview

  • Detecting hidden modules: vol.py -f <memory_dump> --profile=<profile> modscan

  • Detecting hidden drivers: vol.py -f <memory_dump> --profile=<profile> hidden

  • Detecting hidden files: vol.py -f <memory_dump> --profile=<profile> filescan

  • Detecting hidden registry keys: vol.py -f <memory_dump> --profile=<profile> hivescan

  • Detecting hidden TCP/UDP ports: vol.py -f <memory_dump> --profile=<profile> netscan

Memory Forensics

  • Identifying kernel modules: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying user-mode modules: vol.py -f <memory_dump> --profile=<profile> modscan

  • Identifying hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

  • Identjsonifying injected code: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected processes: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected threads: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected drivers: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected DLLs: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected IRPs: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected SSDT entries: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected IDT entries: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected system call tables: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected syscall handlers: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected user-mode hooks: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected driver hooks: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected file system filter drivers: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying injected fileless malware: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying process hollowing: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying API hooking: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying covert processes: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying hidden modules: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying hidden drivers: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying hidden files: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying hidden registry keys: vol.py -f <memory_dump> --profile=<profile> malfind

  • Identifying hidden TCP/UDP ports: vol.py -f <memory_dump> --profile=<profile> malfind

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

Bash

Możliwe jest odczytanie historii poleceń bash z pamięci. Możesz również zrzucić plik .bash_history, ale jeśli jest wyłączony, będziesz zadowolony z użycia tego modułu w volatility.

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

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dump process: vol.py -f <memory_dump> --profile=<profile> memdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

Plugins

  • Check for rootkits: vol.py -f <memory_dump> --profile=<profile> malfind

  • Network connections: vol.py -f <memory_dump> --profile=<profile> netscan

  • Registry analysis: vol.py -f <memory_dump> --profile=<profile> printkey -K <registry_key>

  • Detect hidden processes: vol.py -f <memory_dump> --profile=<profile> psxview

Volatility GUI

  • Launch GUI: vol.py -f <memory_dump> --profile=<profile> --dtb <dtb_address> gui

Memory Analysis

  • Identify injected code: vol.py -f <memory_dump> --profile=<profile> malfind

  • Analyze DLLs: vol.py -f <memory_dump> --profile=<profile> dlllist

  • Extract cached passwords: vol.py -f <memory_dump> --profile=<profile> hashdump

Timeline Analysis

  • Show processes timeline: vol.py -f <memory_dump> --profile=<profile> pstree

  • Display network connections timeline: vol.py -f <memory_dump> --profile=<profile> connscan

Malware Analysis

  • Analyze process DLLs: vol.py -f <memory_dump> --profile=<profile> malfind

  • Investigate sockets: vol.py -f <memory_dump> --profile=<profile> sockets

  • Check for injected threads: vol.py -f <memory_dump> --profile=<profile> ldrmodules

Additional Resources

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

Harmonogram

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

Podstawowa metodyka analizy dumpu pamięci za pomocą narzędzia Volatility

Ogólne polecenia

  • volatility -f <dump_file> imageinfo - Wyświetla informacje o dumpie pamięci.

  • volatility -f <dump_file> --profile=<profile> <command> - Uruchamia polecenie dla określonego profilu.

Analiza procesów

  • volatility -f <dump_file> --profile=<profile> pslist - Wyświetla listę procesów.

  • volatility -f <dump_file> --profile=<profile> pstree - Wyświetla drzewo procesów.

  • volatility -f <dump_file> --profile=<profile> psscan - Skanuje procesy w poszukiwaniu ukrytych.

Analiza modułów jądra

  • volatility -f <dump_file> --profile=<profile> modules - Wyświetla listę załadowanych modułów.

  • volatility -f <dump_file> --profile=<profile> modscan - Skanuje moduły jądra w poszukiwaniu ukrytych.

Analiza sieci

  • volatility -f <dump_file> --profile=<profile> netscan - Skanuje otwarte porty i połączenia sieciowe.

  • volatility -f <dump_file> --profile=<profile> connscan - Wyświetla listę połączeń sieciowych.

Analiza rejestrów

  • volatility -f <dump_file> --profile=<profile> hivelist - Wyświetla listę aktywnych plików rejestru.

  • volatility -f <dump_file> --profile=<profile> printkey -o <offset> - Wyświetla zawartość klucza rejestru.

Analiza plików

  • volatility -f <dump_file> --profile=<profile> filescan - Skanuje otwarte pliki i sterowniki.

  • volatility -f <dump_file> --profile=<profile> dumpfiles -Q <address> - Zapisuje plik z pamięci.

Analiza zrzutu stosu

  • volatility -f <dump_file> --profile=<profile> stack - Wyświetla stos dla każdego wątku.

  • volatility -f <dump_file> --profile=<profile> stackstrings -f <address> - Wyświetla łańcuchy znaków ze stosu.

Analiza procesów użytkownika

  • volatility -f <dump_file> --profile=<profile> consoles - Wyświetla aktywne sesje konsoli.

  • volatility -f <dump_file> --profile=<profile> cmdscan - Skanuje pamięć w poszukiwaniu poleceń cmd.exe.

Analiza plików pamięci wirtualnej

  • volatility -f <dump_file> --profile=<profile> memmap - Wyświetla mapowanie pamięci wirtualnej.

  • volatility -f <dump_file> --profile=<profile> memdump -p <pid> -D <output_directory> - Zapisuje plik pamięci wirtualnej.

Analiza wątków

  • volatility -f <dump_file> --profile=<profile> threads - Wyświetla listę wątków.

  • volatility -f <dump_file> --profile=<profile> thrdscan - Skanuje wątki w poszukiwaniu ukrytych.

Analiza usług

  • volatility -f <dump_file> --profile=<profile> svcscan - Wyświetla listę usług.

  • volatility -f <dump_file> --profile=<profile> getservicesids - Wyświetla identyfikatory usług.

Analiza zabezpieczeń

  • volatility -f <dump_file> --profile=<profile> getsids - Wyświetla identyfikatory zabezpieczeń.

  • volatility -f <dump_file> --profile=<profile> privs - Wyświetla uprawnienia procesów.

Analiza plików rejestru

  • volatility -f <dump_file> --profile=<profile> printkey -K <key> - Wyświetla zawartość określonego klucza rejestru.

  • volatility -f <dump_file> --profile=<profile> userassist - Wyświetla wpisy UserAssist z rejestru.

Analiza plików minidump

  • volatility -f <dump_file> --profile=<profile> malfind - Skanuje plik minidump w poszukiwaniu podejrzanych zachowań.

  • volatility -f <dump_file> --profile=<profile> mimikatz - Wyszukuje wrażliwe dane w pamięci.

Analiza plików hibernation

  • volatility -f <dump_file> --profile=<profile> hibinfo - Wyświetla informacje o pliku hibernation.

  • volatility -f <dump_file> --profile=<profile> hibscan - Skanuje plik hibernation w poszukiwaniu procesów.

Analiza plików pagefile

  • volatility -f <dump_file> --profile=<profile> pagefileinfo - Wyświetla informacje o pliku pagefile.

  • volatility -f <dump_file> --profile=<profile> pagefilescan - Skanuje plik pagefile w poszukiwaniu procesów.

Analiza plików crash dump

  • volatility -f <dump_file> --profile=<profile> ldrmodules - Wyświetla listę modułów załadowanych przez proces explorer.exe.

  • volatility -f <dump_file> --profile=<profile> apihooks - Wyświetla hooki API w procesie explorer.exe.

Analiza plików VAD

  • volatility -f <dump_file> --profile=<profile> vadinfo - Wyświetla informacje o VAD.

  • volatility -f <dump_file> --profile=<profile> vadtree - Wyświetla drzewo VAD.

Analiza plików SSDT

  • volatility -f <dump_file> --profile=<profile> ssdt - Wyświetla informacje o SSDT.

  • volatility -f <dump_file> --profile=<profile> callbacks - Wyświetla zarejestrowane callbacki SSDT.

Analiza plików GDT

  • volatility -f <dump_file> --profile=<profile> gdt - Wyświetla informacje o GDT.

  • volatility -f <dump_file> --profile=<profile> idt - Wyświetla informacje o IDT.

Analiza plików LDT

  • volatility -f <dump_file> --profile=<profile> ldt - Wyświetla informacje o LDT.

  • volatility -f <dump_file> --profile=<profile> dt - Wyświetla informacje o DT.

Analiza plików kernel pool

  • volatility -f <dump_file> --profile=<profile> poolscanner - Skanuje kernel pool w poszukiwaniu alokacji pamięci.

  • volatility -f <dump_file> --profile=<profile> poolfind -t <tag> - Wyszukuje tagi w kernel pool.

Analiza plików obiektów

  • volatility -f <dump_file> --profile=<profile> handles - Wyświetla listę uchwytów obiektów.

  • volatility -f <dump_file> --profile=<profile> objscan - Skanuje obiekty w poszukiwaniu ukrytych.

Analiza plików mutex

  • volatility -f <dump_file> --profile=<profile> mutantscan - Wyświetla listę obiektów mutex.

  • volatility -f <dump_file> --profile=<profile> mutantscan -s - Skanuje obiekty mutex w poszukiwaniu ukrytych.

Analiza plików token

  • volatility -f <dump_file> --profile=<profile> tokens - Wyświetla listę tokenów.

  • volatility -f <dump_file> --profile=<profile> privs - Wyświetla uprawnienia tokenów.

Analiza plików envars

  • volatility -f <dump_file> --profile=<profile> envars - Wyświetla listę zmiennych środowiskowych.

  • volatility -f <dump_file> --profile=<profile> getsids - Wyświetla identyfikatory zmiennych środowiskowych.

Analiza plików SSDT

  • volatility -f <dump_file> --profile=<profile> ssdt - Wyświetla informacje o SSDT.

  • volatility -f <dump_file> --profile=<profile> callbacks - Wyświetla zarejestrowane callbacki SSDT.

Analiza plików GDT

  • volatility -f <dump_file> --profile=<profile> gdt - Wyświetla informacje o GDT.

  • volatility -f <dump_file> --profile=<profile> idt - Wyświetla informacje o IDT.

Analiza plików LDT

  • volatility -f <dump_file> --profile=<profile> ldt - Wyświetla informacje o LDT.

  • volatility -f <dump_file> --profile=<profile> dt - Wyświetla informacje o DT.

Analiza plików kernel pool

  • volatility -f <dump_file> --profile=<profile> poolscanner - Skanuje kernel pool w poszukiwaniu alokacji pamięci.

  • volatility -f <dump_file> --profile=<profile> poolfind -t <tag> - Wyszukuje tagi w kernel pool.

Analiza plików obiektów

  • volatility -f <dump_file> --profile=<profile> handles - Wyświetla listę uchwytów obiektów.

  • volatility -f <dump_file> --profile=<profile> objscan - Skanuje obiekty w poszukiwaniu ukrytych.

Analiza plików mutex

  • volatility -f <dump_file> --profile=<profile> mutantscan - Wyświetla listę obiektów mutex.

  • volatility -f <dump_file> --profile=<profile> mutantscan -s - Skanuje obiekty mutex w poszukiwaniu ukrytych.

Analiza plików token

  • volatility -f <dump_file> --profile=<profile> tokens - Wyświetla listę tokenów.

  • volatility -f <dump_file> --profile=<profile> privs - Wyświetla uprawnienia tokenów.

Analiza plików envars

  • volatility -f <dump_file> --profile=<profile> envars - Wyświetla listę zmiennych środowiskowych.

  • volatility -f <dump_file> --profile=<profile> getsids - Wyświetla identyfikatory zmiennych środowiskowych.

volatility --profile=Win7SP1x86_23418 -f timeliner

Sterowniki

./vol.py -f file.dmp windows.driverscan.DriverScan

Wolatility Cheat Sheet

Basic Commands

  • Image info: vol.py -f <memory_dump> imageinfo

  • Running processes: vol.py -f <memory_dump> --profile=<profile> pslist

  • Dumping a process: vol.py -f <memory_dump> --profile=<profile> procdump -p <pid> -D <output_directory>

  • File scan: vol.py -f <memory_dump> --profile=<profile> filescan

Malware Analysis

  • Malware scan: vol.py -f <memory_dump> --profile=<profile> malscan

  • Yara scan: vol.py -f <memory_dump> --profile=<profile> yarascan --yara-rules=<rules_file>

Network Analysis

  • Network connections: vol.py -f <memory_dump> --profile=<profile> connscan

  • Sockets: vol.py -f <memory_dump> --profile=<profile> sockets

  • Packet capture: vol.py -f <memory_dump> --profile=<profile> tcpflow

Registry Analysis

  • Registry hives: vol.py -f <memory_dump> --profile=<profile> hivelist

  • Dumping registry: vol.py -f <memory_dump> --profile=<profile> printkey -o <output_directory> -K <registry_key>

User Analysis

  • User accounts: vol.py -f <memory_dump> --profile=<profile> useraccounts

  • Console history: vol.py -f <memory_dump> --profile=<profile> consoles

Timeline Analysis

  • Timeliner: vol.py -f <memory_dump> --profile=<profile> timeliner

  • Shellbags: vol.py -f <memory_dump> --profile=<profile> shellbags

Rootkit Detection

  • Hidden modules: vol.py -f <memory_dump> --profile=<profile> malfind

  • SSDT: vol.py -f <memory_dump> --profile=<profile> ssdt

  • Driver modules: vol.py -f <memory_dump> --profile=<profile> modules

Volatility Plugins

  • List available plugins: vol.py --info | grep -i <keyword>

  • Run a specific plugin: vol.py -f <memory_dump> --profile=<profile> <plugin_name>

Memory Dumping

  • Full memory dump: winpmem -o <output_directory>

  • Physical memory dump: winpmem --output <output_directory> --format raw

Other Useful Commands

  • API hooks: vol.py -f <memory_dump> --profile=<profile> apihooks

  • SSDT hooks: vol.py -f <memory_dump> --profile=<profile> ssdt

  • Driver modules: vol.py -f <memoryjson_dump> --profile=<profile> modules

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

Uzyskaj schowek

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

Pobierz historię przeglądania w IE

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

Uzyskaj tekst z notatnika

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

Zrzut ekranu

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

Master Boot Record (MBR)

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

Master Boot Record (MBR) odgrywa kluczową rolę w zarządzaniu logicznymi partycjami nośnika danych, które są zorganizowane w różnych systemach plików. MBR nie tylko przechowuje informacje o układzie partycji, ale także zawiera wykonywalny kod pełniący rolę ładowacza rozruchowego. Ten ładowacz rozruchowy albo bezpośrednio inicjuje proces ładowania drugiego etapu systemu operacyjnego (zobacz ładowacz drugiego etapu), albo współpracuje z rekordem rozruchowym woluminu (VBR) każdej partycji. Aby uzyskać dogłębną wiedzę, zapoznaj się z stroną Wikipedii dotyczącą MBR.

Referencje

RootedCON to najważniejsze wydarzenie z zakresu cyberbezpieczeństwa w Hiszpanii i jedno z najważniejszych w Europie. Mając misję promowania wiedzy technicznej, ten kongres stanowi gorące miejsce spotkań dla profesjonalistów technologii i cyberbezpieczeństwa we wszystkich dziedzinach.

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated