# Volatility - CheatSheet {{#include ../../../banners/hacktricks-training.md}} ​ Eğer farklı tarama seviyeleri ile bellek analizini otomatikleştiren ve birden fazla Volatility3 eklentisini paralel olarak çalıştıran bir araca ihtiyacınız varsa, autoVolatility3 kullanabilirsiniz:: [https://github.com/H3xKatana/autoVolatility3/](https://github.com/H3xKatana/autoVolatility3/) ```bash # Full scan (runs all plugins) python3 autovol3.py -f MEMFILE -o OUT_DIR -s full # Minimal scan (runs a limited set of plugins) python3 autovol3.py -f MEMFILE -o OUT_DIR -s minimal # Normal scan (runs a balanced set of plugins) python3 autovol3.py -f MEMFILE -o OUT_DIR -s normal ``` Eğer birkaç Volatility eklentisini paralel olarak başlatacak **hızlı ve çılgın** bir şeye ihtiyacınız varsa şunu kullanabilirsiniz: [https://github.com/carlospolop/autoVolatility](https://github.com/carlospolop/autoVolatility) ```bash 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) ``` ## Kurulum ### volatility3 ```bash git clone https://github.com/volatilityfoundation/volatility3.git cd volatility3 python3 setup.py install python3 vol.py —h ``` ### volatility2 {{#tabs}} {{#tab name="Method1"}} ``` Download the executable from https://www.volatilityfoundation.org/26 ``` {{#endtab}} {{#tab name="Yöntem 2"}} ```bash git clone https://github.com/volatilityfoundation/volatility.git cd volatility python setup.py install ``` {{#endtab}} {{#endtabs}} ## Volatility Komutları Resmi belgeye [Volatility komut referansı](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference#kdbgscan) bağlantısından erişebilirsiniz. ### “list” ve “scan” eklentileri hakkında bir not Volatility, bazen isimlerinde yansıyan iki ana eklenti yaklaşımına sahiptir. “list” eklentileri, süreçler gibi bilgileri almak için Windows Kernel yapıları arasında gezinmeye çalışır (bellekteki `_EPROCESS` yapılarının bağlı listesini bulma ve yürütme), OS handle'ları (handle tablosunu bulma ve listeleme, bulunan herhangi bir işaretçiyi çözme vb.). İstenirse, örneğin, süreçleri listelemek için Windows API'sinin davranışına benzer şekilde çalışırlar. Bu, “list” eklentilerini oldukça hızlı hale getirir, ancak kötü amaçlı yazılımlar tarafından manipülasyona karşı Windows API'si kadar savunmasızdırlar. Örneğin, kötü amaçlı yazılım DKOM kullanarak bir süreci `_EPROCESS` bağlı listesinden ayırırsa, bu süreç Görev Yöneticisi'nde görünmeyecek ve pslist'te de görünmeyecektir. Diğer yandan, “scan” eklentileri, bellekten belirli yapılar olarak çözümlendiğinde anlamlı olabilecek şeyleri kazıma yaklaşımını benimser. Örneğin, `psscan` bellek okur ve ondan `_EPROCESS` nesneleri oluşturmaya çalışır (ilgi çekici bir yapının varlığını gösteren 4 baytlık dizeleri arayan havuz etiketi taraması kullanır). Avantajı, çıkmış süreçleri bulabilmesidir ve kötü amaçlı yazılım `_EPROCESS` bağlı listesiyle oynasa bile, eklenti hala bellekte yatan yapıyı bulacaktır (çünkü sürecin çalışması için hala var olması gerekir). Dezavantajı ise, “scan” eklentilerinin “list” eklentilerinden biraz daha yavaş olması ve bazen yanlış pozitifler verebilmesidir (çok uzun süre önce çıkmış ve yapısının bazı kısımları diğer işlemler tarafından üzerine yazılmış bir süreç). Kaynak: [http://tomchop.me/2016/11/21/tutorial-volatility-plugins-malware-analysis/](http://tomchop.me/2016/11/21/tutorial-volatility-plugins-malware-analysis/) ## OS Profilleri ### Volatility3 Readme içinde açıklandığı gibi, desteklemek istediğiniz **OS'nin sembol tablosunu** _volatility3/volatility/symbols_ içine koymanız gerekir.\ Çeşitli işletim sistemleri için sembol tablosu paketleri **indirilebilir** olarak mevcuttur: - [https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip](https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip) - [https://downloads.volatilityfoundation.org/volatility3/symbols/mac.zip](https://downloads.volatilityfoundation.org/volatility3/symbols/mac.zip) - [https://downloads.volatilityfoundation.org/volatility3/symbols/linux.zip](https://downloads.volatilityfoundation.org/volatility3/symbols/linux.zip) ### Volatility2 #### Harici Profil Desteklenen profillerin listesini almak için: ```bash ./volatility_2.6_lin64_standalone --info | grep "Profile" ``` Eğer **indirdiğiniz yeni bir profili** (örneğin bir linux profili) kullanmak istiyorsanız, aşağıdaki klasör yapısını bir yere oluşturmanız gerekiyor: _plugins/overlays/linux_ ve bu klasörün içine profili içeren zip dosyasını koymalısınız. Ardından, profillerin numarasını almak için: ```bash ./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 ``` Linux ve Mac profillerini **indirebilirsiniz** [https://github.com/volatilityfoundation/profiles](https://github.com/volatilityfoundation/profiles) Önceki bölümde profilin `LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64` olarak adlandırıldığını görebilirsiniz ve bunu şu şekilde bir şey yürütmek için kullanabilirsiniz: ```bash ./vol -f file.dmp --plugins=. --profile=LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64 linux_netscan ``` #### Profil Keşfet ``` volatility imageinfo -f file.dmp volatility kdbgscan -f file.dmp ``` #### **imageinfo ve kdbgscan arasındaki farklar** [**Buradan**](https://www.andreafortuna.org/2017/06/25/volatility-my-own-cheatsheet-part-1-image-identification/): Sadece profil önerileri sunan imageinfo'nun aksine, **kdbgscan** doğru profili ve doğru KDBG adresini (birden fazla varsa) kesin olarak tanımlamak için tasarlanmıştır. Bu eklenti, Volatility profilleriyle bağlantılı KDBGHeader imzalarını tarar ve yanlış pozitifleri azaltmak için mantık kontrolleri uygular. Çıktının ayrıntı seviyesi ve gerçekleştirilebilecek mantık kontrolü sayısı, Volatility'nin bir DTB bulup bulamamasına bağlıdır, bu nedenle doğru profili zaten biliyorsanız (veya imageinfo'dan bir profil öneriniz varsa), bunu kullanmayı unutmayın. Her zaman **kdbgscan'ın bulduğu süreç sayısına** bakın. Bazen imageinfo ve kdbgscan **birden fazla** uygun **profil** bulabilir, ancak yalnızca **geçerli olanın bazı süreçlerle ilişkili** olacaktır (Bu, süreçleri çıkarmak için doğru KDBG adresinin gerekli olmasından kaynaklanmaktadır). ```bash # GOOD PsActiveProcessHead : 0xfffff800011977f0 (37 processes) PsLoadedModuleList : 0xfffff8000119aae0 (116 modules) ``` ```bash # BAD PsActiveProcessHead : 0xfffff800011947f0 (0 processes) PsLoadedModuleList : 0xfffff80001197ac0 (0 modules) ``` #### KDBG **KDBG** olarak adlandırılan **kernel debugger block**, Volatility ve çeşitli hata ayıklayıcılar tarafından gerçekleştirilen adli görevler için kritik öneme sahiptir. `KdDebuggerDataBlock` olarak tanımlanan ve `_KDDEBUGGER_DATA64` türünde olan bu blok, `PsActiveProcessHead` gibi temel referanslar içerir. Bu özel referans, tüm süreçlerin listelenmesini sağlayarak, kapsamlı bellek analizi için temel olan süreç listesinin başını işaret eder. ## OS Bilgisi ```bash #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 ``` Eklenti `banners.Banners`, dökümde **linux banner'larını bulmak için vol3'te** kullanılabilir. ## Hashler/Parolalar SAM hash'lerini, [alan önbellekli kimlik bilgilerini](../../../windows-hardening/stealing-credentials/credentials-protections.md#cached-credentials) ve [lsa sırlarını](../../../windows-hardening/authentication-credentials-uac-and-efs/index.html#lsa-secrets) çıkarın. {{#tabs}} {{#tab name="vol3"}} ```bash ./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 ``` {{#endtab}} {{#tab name="vol2"}} ```bash 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 ``` {{#endtab}} {{#endtabs}} ## Bellek Dökümü Bir sürecin bellek dökümü, sürecin mevcut durumunun **her şeyini** **çıkaracaktır**. **procdump** modülü yalnızca **kod**u **çıkaracaktır**. ``` volatility -f file.dmp --profile=Win7SP1x86 memdump -p 2168 -D conhost/ ``` ## Süreçler ### Süreçleri listele **Şüpheli** süreçleri (isimle) veya **beklenmedik** çocuk **süreçleri** (örneğin, iexplorer.exe'nin bir çocuğu olarak bir cmd.exe) bulmaya çalışın.\ Gizli süreçleri tanımlamak için pslist'in sonucunu psscan ile **karşılaştırmak** ilginç olabilir. {{#tabs}} {{#tab name="vol3"}} ```bash 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) ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=PROFILE pstree -f file.dmp # Get process tree (not hidden) volatility --profile=PROFILE pslist -f file.dmp # Get process list (EPROCESS) volatility --profile=PROFILE psscan -f file.dmp # Get hidden process list(malware) volatility --profile=PROFILE psxview -f file.dmp # Get hidden process list ``` {{#endtab}} {{#endtabs}} ### Dump proc {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.dumpfiles.DumpFiles --pid #Dump the .exe and dlls of the process in the current directory ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 procdump --pid=3152 -n --dump-dir=. -f file.dmp ``` {{#endtab}} {{#endtabs}} ### Komut satırı Şüpheli bir şey çalıştırıldı mı? {{#tabs}} {{#tab name="vol3"}} ```bash python3 vol.py -f file.dmp windows.cmdline.CmdLine #Display process command-line arguments ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=PROFILE cmdline -f file.dmp #Display process command-line arguments volatility --profile=PROFILE consoles -f file.dmp #command history by scanning for _CONSOLE_INFORMATION ``` {{#endtab}} {{#endtabs}} `cmd.exe` içinde yürütülen komutlar **`conhost.exe`** (veya Windows 7'den önceki sistemlerde `csrss.exe`) tarafından yönetilmektedir. Bu, eğer bir saldırgan **`cmd.exe`**'yi bir bellek dökümü alınmadan önce sonlandırırsa, **`conhost.exe`**'nin belleğinden oturumun komut geçmişini geri kazanmanın hala mümkün olduğu anlamına gelir. Bunu yapmak için, konsolun modülleri içinde olağandışı bir etkinlik tespit edilirse, ilişkili **`conhost.exe`** sürecinin belleği dökülmelidir. Ardından, bu döküm içinde **strings** arayarak, oturumda kullanılan komut satırları potansiyel olarak çıkarılabilir. ### Ortam Her çalışan sürecin çevre değişkenlerini alın. Bazı ilginç değerler olabilir. {{#tabs}} {{#tab name="vol3"}} ```bash python3 vol.py -f file.dmp windows.envars.Envars [--pid ] #Display process environment variables ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=PROFILE envars -f file.dmp [--pid ] #Display process environment variables volatility --profile=PROFILE -f file.dmp linux_psenv [-p ] #Get env of process. runlevel var means the runlevel where the proc is initated ``` {{#endtab}} {{#endtabs}} ### Token ayrıcalıkları Beklenmedik hizmetlerde ayrıcalıklı token'leri kontrol edin.\ Bazı ayrıcalıklı token kullanan süreçleri listelemek ilginç olabilir. {{#tabs}} {{#tab name="vol3"}} ```bash #Get enabled privileges of some processes python3 vol.py -f file.dmp windows.privileges.Privs [--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" ``` {{#endtab}} {{#tab name="vol2"}} ```bash #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" ``` {{#endtab}} {{#endtabs}} ### SIDs Bir süreç tarafından sahip olunan her SSID'yi kontrol edin.\ Bir ayrıcalık SID'si kullanan süreçleri (ve bazı hizmet SID'si kullanan süreçleri) listelemek ilginç olabilir. {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.getsids.GetSIDs [--pid ] #Get SIDs of processes ./vol.py -f file.dmp windows.getservicesids.GetServiceSIDs #Get the SID of services ``` {{#endtab}} {{#tab name="vol2"}} ```bash 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 ``` {{#endtab}} {{#endtabs}} ### Handle'lar Bir **işlemin bir handle'ı** olduğu (açtığı) diğer dosyalara, anahtarlara, iş parçacıklarına, süreçlere... hangi dosyaların olduğunu bilmek faydalıdır. {{#tabs}} {{#tab name="vol3"}} ```bash vol.py -f file.dmp windows.handles.Handles [--pid ] ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 -f file.dmp handles [--pid=] ``` {{#endtab}} {{#endtabs}} ### DLL'ler {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.dlllist.DllList [--pid ] #List dlls used by each ./vol.py -f file.dmp windows.dumpfiles.DumpFiles --pid #Dump the .exe and dlls of the process in the current directory process ``` {{#endtab}} {{#tab name="vol2"}} ```bash 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 ``` {{#endtab}} {{#endtabs}} ### Süreç başına dizgiler Volatility, bir dizginin hangi işleme ait olduğunu kontrol etmemizi sağlar. {{#tabs}} {{#tab name="vol3"}} ```bash strings file.dmp > /tmp/strings.txt ./vol.py -f /tmp/file.dmp windows.strings.Strings --strings-file /tmp/strings.txt ``` {{#endtab}} {{#tab name="vol2"}} ```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 ``` {{#endtab}} {{#endtabs}} Ayrıca, yarascan modülünü kullanarak bir süreç içinde dizeleri aramayı da sağlar: {{#tabs}} {{#tab name="vol3"}} ```bash ./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://" ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 yarascan -Y "https://" -p 3692,3840,3976,3312,3084,2784 ``` {{#endtab}} {{#endtabs}} ### UserAssist **Windows**, çalıştırdığınız programları **UserAssist anahtarları** adı verilen kayıt defteri özelliği ile takip eder. Bu anahtarlar, her programın kaç kez çalıştırıldığını ve en son ne zaman çalıştırıldığını kaydeder. {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.registry.userassist.UserAssist ``` {{#endtab}} {{#tab name="vol2"}} ``` volatility --profile=Win7SP1x86_23418 -f file.dmp userassist ``` {{#endtab}} {{#endtabs}} ​ ## Hizmetler {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.svcscan.SvcScan #List services ./vol.py -f file.dmp windows.getservicesids.GetServiceSIDs #Get the SID of services ``` {{#endtab}} {{#tab name="vol2"}} ```bash #Get services and binary path volatility --profile=Win7SP1x86_23418 svcscan -f file.dmp #Get name of the services and SID (slow) volatility --profile=Win7SP1x86_23418 getservicesids -f file.dmp ``` {{#endtab}} {{#endtabs}} ## Ağ {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.netscan.NetScan #For network info of linux use volatility2 ``` {{#endtab}} {{#tab name="vol2"}} ```bash 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 ``` {{#endtab}} {{#endtabs}} ## Kayıt hives ### Mevcut hives'ları yazdır {{#tabs}} {{#tab name="vol3"}} ```bash ./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 ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 -f file.dmp hivelist #List roots volatility --profile=Win7SP1x86_23418 -f file.dmp printkey #List roots and get initial subkeys ``` {{#endtab}} {{#endtabs}} ### Bir değer al {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.registry.printkey.PrintKey --key "Software\Microsoft\Windows NT\CurrentVersion" ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 printkey -K "Software\Microsoft\Windows NT\CurrentVersion" -f file.dmp # Get Run binaries registry value volatility -f file.dmp --profile=Win7SP1x86 printkey -o 0x9670e9d0 -K 'Software\Microsoft\Windows\CurrentVersion\Run' ``` {{#endtab}} {{#endtabs}} ### Dump ```bash #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 ``` ## Dosya Sistemi ### Bağlama {{#tabs}} {{#tab name="vol3"}} ```bash #See vol2 ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=SomeLinux -f file.dmp linux_mount volatility --profile=SomeLinux -f file.dmp linux_recover_filesystem #Dump the entire filesystem (if possible) ``` {{#endtab}} {{#endtabs}} ### Tarama/döküm {{#tabs}} {{#tab name="vol3"}} ```bash ./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 ``` {{#endtab}} {{#tab name="vol2"}} ```bash 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 ``` {{#endtab}} {{#endtabs}} ### Ana Dosya Tablosu {{#tabs}} {{#tab name="vol3"}} ```bash # I couldn't find any plugin to extract this information in volatility3 ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 mftparser -f file.dmp ``` {{#endtab}} {{#endtabs}} **NTFS dosya sistemi**, _master file table_ (MFT) olarak bilinen kritik bir bileşen kullanır. Bu tablo, bir hacimdeki her dosya için en az bir giriş içerir ve MFT'nin kendisini de kapsar. Her dosya hakkında **boyut, zaman damgaları, izinler ve gerçek veriler** gibi hayati bilgiler, MFT girişlerinde veya bu girişler tarafından referans verilen MFT dışındaki alanlarda kapsüllenmiştir. Daha fazla bilgi için [resmi belgeleri](https://docs.microsoft.com/en-us/windows/win32/fileio/master-file-table) inceleyebilirsiniz. ### SSL Anahtarları/Sertifikaları {{#tabs}} {{#tab name="vol3"}} ```bash #vol3 allows to search for certificates inside the registry ./vol.py -f file.dmp windows.registry.certificates.Certificates ``` {{#endtab}} {{#tab name="vol2"}} ```bash #vol2 allos you to search and dump certificates from memory #Interesting options for this modules are: --pid, --name, --ssl volatility --profile=Win7SP1x86_23418 dumpcerts --dump-dir=. -f file.dmp ``` {{#endtab}} {{#endtabs}} ## Kötü Amaçlı Yazılım ```bash ./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 ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 -f file.dmp malfind [-D /tmp] #Find hidden and injected code [dump each suspicious section] volatility --profile=Win7SP1x86_23418 -f file.dmp apihooks #Detect API hooks in process and kernel memory volatility --profile=Win7SP1x86_23418 -f file.dmp driverirp #Driver IRP hook detection volatility --profile=Win7SP1x86_23418 -f file.dmp ssdt #Check system call address from unexpected addresses volatility --profile=SomeLinux -f file.dmp linux_check_afinfo volatility --profile=SomeLinux -f file.dmp linux_check_creds volatility --profile=SomeLinux -f file.dmp linux_check_fop volatility --profile=SomeLinux -f file.dmp linux_check_idt volatility --profile=SomeLinux -f file.dmp linux_check_syscall volatility --profile=SomeLinux -f file.dmp linux_check_modules volatility --profile=SomeLinux -f file.dmp linux_check_tty volatility --profile=SomeLinux -f file.dmp linux_keyboard_notifiers #Keyloggers ``` {{#endtab}} {{#endtabs}} ### Yara ile Tarama Tüm yara kötü amaçlı yazılım kurallarını github'dan indirmek ve birleştirmek için bu scripti kullanın: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\ _**rules**_ dizinini oluşturun ve çalıştırın. Bu, kötü amaçlı yazılım için tüm yara kurallarını içeren _**malware_rules.yar**_ adlı bir dosya oluşturacaktır. {{#tabs}} {{#tab name="vol3"}} ```bash 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 ``` {{#endtab}} {{#tab name="vol2"}} ```bash wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py mkdir rules python malware_yara_rules.py volatility --profile=Win7SP1x86_23418 yarascan -y malware_rules.yar -f ch2.dmp | grep "Rule:" | grep -v "Str_Win32" | sort | uniq ``` {{#endtab}} {{#endtabs}} ## MISC ### Dış eklentiler Dış eklentileri kullanmak istiyorsanız, eklentilerle ilgili klasörlerin kullanılan ilk parametre olduğundan emin olun. {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py --plugin-dirs "/tmp/plugins/" [...] ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatilitye --plugins="/tmp/plugins/" [...] ``` {{#endtab}} {{#endtabs}} #### Autoruns [https://github.com/tomchop/volatility-autoruns](https://github.com/tomchop/volatility-autoruns) adresinden indirin. ``` volatility --plugins=volatility-autoruns/ --profile=WinXPSP2x86 -f file.dmp autoruns ``` ### Mutexes {{#tabs}} {{#tab name="vol3"}} ``` ./vol.py -f file.dmp windows.mutantscan.MutantScan ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 mutantscan -f file.dmp volatility --profile=Win7SP1x86_23418 -f file.dmp handles -p -t mutant ``` {{#endtab}} {{#endtabs}} ### Sembolik Bağlantılar {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp windows.symlinkscan.SymlinkScan ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 -f file.dmp symlinkscan ``` {{#endtab}} {{#endtabs}} ### Bash **Bellekten bash geçmişini okumak mümkündür.** Ayrıca _.bash_history_ dosyasını da dökebilirsiniz, ancak bu devre dışı bırakıldı, bu nedenle bu volatility modülünü kullanabileceğiniz için mutlu olacaksınız. {{#tabs}} {{#tab name="vol3"}} ``` ./vol.py -f file.dmp linux.bash.Bash ``` {{#endtab}} {{#tab name="vol2"}} ``` volatility --profile=Win7SP1x86_23418 -f file.dmp linux_bash ``` {{#endtab}} {{#endtabs}} ### Zaman Çizelgesi {{#tabs}} {{#tab name="vol3"}} ```bash ./vol.py -f file.dmp timeLiner.TimeLiner ``` {{#endtab}} {{#tab name="vol2"}} ``` volatility --profile=Win7SP1x86_23418 -f timeliner ``` {{#endtab}} {{#endtabs}} ### Sürücüler ``` ./vol.py -f file.dmp windows.driverscan.DriverScan ``` {{#endtab}} {{#tab name="vol2"}} ```bash volatility --profile=Win7SP1x86_23418 -f file.dmp driverscan ``` {{#endtab}} {{#endtabs}} ### Panoyu al ```bash #Just vol2 volatility --profile=Win7SP1x86_23418 clipboard -f file.dmp ``` ### IE geçmişini al ```bash #Just vol2 volatility --profile=Win7SP1x86_23418 iehistory -f file.dmp ``` ### Not Defteri Metnini Alın ```bash #Just vol2 volatility --profile=Win7SP1x86_23418 notepad -f file.dmp ``` ### Ekran Görüntüsü ```bash #Just vol2 volatility --profile=Win7SP1x86_23418 screenshot -f file.dmp ``` ### Master Boot Record (MBR) ```bash volatility --profile=Win7SP1x86_23418 mbrparser -f file.dmp ``` **Master Boot Record (MBR)**, bir depolama ortamının mantıksal bölümlerini yönetmede kritik bir rol oynar ve bu bölümler farklı [dosya sistemleri](https://en.wikipedia.org/wiki/File_system) ile yapılandırılmıştır. Sadece bölüm düzeni bilgilerini tutmakla kalmaz, aynı zamanda bir önyükleyici olarak işlev gören yürütülebilir kodu da içerir. Bu önyükleyici, işletim sisteminin ikinci aşama yükleme sürecini doğrudan başlatır (bkz. [ikinci aşama önyükleyici](https://en.wikipedia.org/wiki/Second-stage_boot_loader)) veya her bölümün [hacim önyükleme kaydı](https://en.wikipedia.org/wiki/Volume_boot_record) (VBR) ile uyum içinde çalışır. Derinlemesine bilgi için [MBR Wikipedia sayfasına](https://en.wikipedia.org/wiki/Master_boot_record) bakın. ## Referanslar - [https://andreafortuna.org/2017/06/25/volatility-my-own-cheatsheet-part-1-image-identification/](https://andreafortuna.org/2017/06/25/volatility-my-own-cheatsheet-part-1-image-identification/) - [https://scudette.blogspot.com/2012/11/finding-kernel-debugger-block.html](https://scudette.blogspot.com/2012/11/finding-kernel-debugger-block.html) - [https://or10nlabs.tech/cgi-sys/suspendedpage.cgi](https://or10nlabs.tech/cgi-sys/suspendedpage.cgi) - [https://www.aldeid.com/wiki/Windows-userassist-keys](https://www.aldeid.com/wiki/Windows-userassist-keys) ​\* [https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table](https://learn.microsoft.com/en-us/windows/win32/fileio/master-file-table) - [https://answers.microsoft.com/en-us/windows/forum/all/uefi-based-pc-protective-mbr-what-is-it/0fc7b558-d8d4-4a7d-bae2-395455bb19aa](https://answers.microsoft.com/en-us/windows/forum/all/uefi-based-pc-protective-mbr-what-is-it/0fc7b558-d8d4-4a7d-bae2-395455bb19aa) {{#include ../../../banners/hacktricks-training.md}}