RootedCONस्पेन में सबसे प्रासंगिक साइबर सुरक्षा कार्यक्रम है और यूरोप में सबसे महत्वपूर्ण में से एक है। तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उबालता हुआ बैठक बिंदु है।
pythonautoVolatility.py-fMEMFILE-dOUT_DIRECTORY-e/home/user/tools/volatility/vol.py# It will use the most important plugins (could use a lot of space depending on the size of the memory)
Volatility के पास प्लगइन्स के लिए दो मुख्य दृष्टिकोण हैं, जो कभी-कभी उनके नामों में परिलक्षित होते हैं। “list” प्लगइन्स Windows Kernel संरचनाओं के माध्यम से नेविगेट करने की कोशिश करेंगे ताकि प्रक्रियाओं जैसी जानकारी प्राप्त की जा सके (मेमोरी में _EPROCESS संरचनाओं की लिंक की गई सूची को खोजें और चलाएं), OS हैंडल (हैंडल तालिका को खोजें और सूचीबद्ध करें, पाए गए किसी भी पॉइंटर को डेरिफरेंस करें, आदि)। वे अधिक या कम Windows API की तरह व्यवहार करते हैं यदि अनुरोध किया जाए, उदाहरण के लिए, प्रक्रियाओं की सूची बनाने के लिए।
इससे “list” प्लगइन्स काफी तेज़ हो जाते हैं, लेकिन मैलवेयर द्वारा हेरफेर के लिए Windows API के समान ही संवेदनशील होते हैं। उदाहरण के लिए, यदि मैलवेयर DKOM का उपयोग करके _EPROCESS लिंक की गई सूची से एक प्रक्रिया को अनलिंक करता है, तो यह टास्क मैनेजर में नहीं दिखेगी और न ही pslist में।
दूसरी ओर, “scan” प्लगइन्स एक दृष्टिकोण अपनाएंगे जो मेमोरी को उन चीजों के लिए काटने के समान होगा जो विशेष संरचनाओं के रूप में डेरिफरेंस किए जाने पर समझ में आ सकती हैं। उदाहरण के लिए, psscan मेमोरी को पढ़ेगा और इससे _EPROCESS ऑब्जेक्ट बनाने की कोशिश करेगा (यह पूल-टैग स्कैनिंग का उपयोग करता है, जो 4-बाइट स्ट्रिंग्स की खोज कर रहा है जो किसी रुचि की संरचना की उपस्थिति को इंगित करती हैं)। इसका लाभ यह है कि यह उन प्रक्रियाओं को खोज सकता है जो समाप्त हो गई हैं, और यहां तक कि यदि मैलवेयर _EPROCESS लिंक की गई सूची के साथ छेड़छाड़ करता है, तो प्लगइन अभी भी मेमोरी में संरचना को खोज लेगा (क्योंकि इसके लिए प्रक्रिया को चलाने के लिए अभी भी मौजूद होना आवश्यक है)। नुकसान यह है कि “scan” प्लगइन्स “list” प्लगइन्स की तुलना में थोड़े धीमे होते हैं, और कभी-कभी गलत सकारात्मक परिणाम दे सकते हैं (एक प्रक्रिया जो बहुत पहले समाप्त हो गई और जिसकी संरचना के कुछ हिस्से अन्य संचालन द्वारा ओवरराइट हो गए)।
जैसा कि README के अंदर समझाया गया है, आपको उस OS की सिंबॉल टेबल को volatility3/volatility/symbols के अंदर रखना होगा जिसे आप समर्थन करना चाहते हैं।
विभिन्न ऑपरेटिंग सिस्टम के लिए सिंबॉल टेबल पैक डाउनलोड के लिए उपलब्ध हैं:
यदि आप एक नया प्रोफ़ाइल जिसे आपने डाउनलोड किया है (उदाहरण के लिए एक लिनक्स प्रोफ़ाइल) का उपयोग करना चाहते हैं, तो आपको कहीं निम्नलिखित फ़ोल्डर संरचना बनानी होगी: plugins/overlays/linux और इस फ़ोल्डर के अंदर प्रोफ़ाइल वाला ज़िप फ़ाइल डालनी होगी। फिर, प्रोफ़ाइलों की संख्या प्राप्त करने के लिए:
पिछले भाग में आप देख सकते हैं कि प्रोफाइल का नाम LinuxCentOS7_3_10_0-123_el7_x86_64_profilex64 है, और आप इसका उपयोग कुछ इस तरह करने के लिए कर सकते हैं:
यहां से: जहाँ imageinfo केवल प्रोफ़ाइल सुझाव प्रदान करता है, kdbgscan सही प्रोफ़ाइल और सही KDBG पते की सकारात्मक पहचान के लिए डिज़ाइन किया गया है (यदि कई हों)। यह प्लगइन Volatility प्रोफाइल से जुड़े KDBGHeader हस्ताक्षरों के लिए स्कैन करता है और झूठे सकारात्मक को कम करने के लिए सैनीटी चेक लागू करता है। आउटपुट की विस्तारता और किए जा सकने वाले सैनीटी चेक की संख्या इस पर निर्भर करती है कि क्या Volatility एक DTB ढूंढ सकता है, इसलिए यदि आप पहले से सही प्रोफ़ाइल जानते हैं (या यदि आपके पास imageinfo से प्रोफ़ाइल सुझाव है), तो सुनिश्चित करें कि आप इसका उपयोग करें।
हमेशा kdbgscan द्वारा पाए गए प्रक्रियाओं की संख्या पर नज़र रखें। कभी-कभी imageinfo और kdbgscan एक से अधिक उपयुक्त प्रोफ़ाइल पा सकते हैं लेकिन केवल मान्य एक में कुछ प्रक्रिया संबंधित होगी (यह इसलिए है क्योंकि प्रक्रियाओं को निकालने के लिए सही KDBG पते की आवश्यकता होती है)
कर्नेल डिबगर ब्लॉक, जिसे KDBG के नाम से जाना जाता है, वोलाटिलिटी और विभिन्न डिबगर्स द्वारा किए गए फोरेंसिक कार्यों के लिए महत्वपूर्ण है। इसे KdDebuggerDataBlock के रूप में पहचाना जाता है और यह प्रकार _KDDEBUGGER_DATA64 का है, इसमें आवश्यक संदर्भ जैसे PsActiveProcessHead शामिल हैं। यह विशेष संदर्भ प्रक्रिया सूची के सिर की ओर इशारा करता है, जिससे सभी प्रक्रियाओं की सूची बनाना संभव होता है, जो गहन मेमोरी विश्लेषण के लिए मौलिक है।
OS Information
#vol3 has a plugin to give OS information (note that imageinfo from vol2 will give you OS info)./vol.py-ffile.dmpwindows.info.Info
The plugin banners.Banners का उपयोग vol3 में लिनक्स बैनर्स को डंप में खोजने के लिए किया जा सकता है।
./vol.py-ffile.dmpwindows.hashdump.Hashdump#Grab common windows hashes (SAM+SYSTEM)./vol.py-ffile.dmpwindows.cachedump.Cachedump#Grab domain cache hashes inside the registry./vol.py-ffile.dmpwindows.lsadump.Lsadump#Grab lsa secrets
volatility--profile=Win7SP1x86_23418hashdump-ffile.dmp#Grab common windows hashes (SAM+SYSTEM)volatility--profile=Win7SP1x86_23418cachedump-ffile.dmp#Grab domain cache hashes inside the registryvolatility--profile=Win7SP1x86_23418lsadump-ffile.dmp#Grab lsa secrets
मेमोरी डंप
एक प्रक्रिया का मेमोरी डंप वर्तमान स्थिति का सब कुछ निकालेगा। procdump मॉड्यूल केवल कोड को निकालेगा।
RootedCONस्पेन में सबसे प्रासंगिक साइबर सुरक्षा कार्यक्रम है और यूरोप में सबसे महत्वपूर्ण में से एक है। तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उबालता हुआ बैठक बिंदु है।
संदिग्ध प्रक्रियाओं (नाम द्वारा) या अप्रत्याशित बाल प्रक्रियाओं (उदाहरण के लिए, iexplorer.exe का एक बाल cmd.exe) को खोजने की कोशिश करें।
छिपी हुई प्रक्रियाओं की पहचान करने के लिए pslist के परिणाम की psscan के साथ तुलना करना दिलचस्प हो सकता है।
python3vol.py-ffile.dmpwindows.pstree.PsTree# Get processes tree (not hidden)python3vol.py-ffile.dmpwindows.pslist.PsList# Get process list (EPROCESS)python3vol.py-ffile.dmpwindows.psscan.PsScan# Get hidden process list(malware)
volatility--profile=PROFILEpstree-ffile.dmp# Get process tree (not hidden)volatility--profile=PROFILEpslist-ffile.dmp# Get process list (EPROCESS)volatility--profile=PROFILEpsscan-ffile.dmp# Get hidden process list(malware)volatility--profile=PROFILEpsxview-ffile.dmp# Get hidden process list
डंप प्रोसेस
./vol.py-ffile.dmpwindows.dumpfiles.DumpFiles--pid<pid>#Dump the .exe and dlls of the process in the current directory
python3vol.py-ffile.dmpwindows.cmdline.CmdLine#Display process command-line arguments
volatility--profile=PROFILEcmdline-ffile.dmp#Display process command-line argumentsvolatility--profile=PROFILEconsoles-ffile.dmp#command history by scanning for _CONSOLE_INFORMATION
cmd.exe में निष्पादित कमांड conhost.exe (या Windows 7 से पहले के सिस्टम पर csrss.exe) द्वारा प्रबंधित होते हैं। इसका मतलब है कि यदि cmd.exe को एक हमलावर द्वारा समाप्त कर दिया जाता है इससे पहले कि एक मेमोरी डंप प्राप्त किया जाए, तो भी conhost.exe की मेमोरी से सत्र का कमांड इतिहास पुनर्प्राप्त करना संभव है। ऐसा करने के लिए, यदि कंसोल के मॉड्यूल में असामान्य गतिविधि का पता लगाया जाता है, तो संबंधित conhost.exe प्रक्रिया की मेमोरी को डंप किया जाना चाहिए। फिर, इस डंप के भीतर strings की खोज करके, सत्र में उपयोग की गई कमांड लाइनों को संभावित रूप से निकाला जा सकता है।
Environment
प्रत्येक चल रही प्रक्रिया के env वेरिएबल प्राप्त करें। कुछ दिलचस्प मान हो सकते हैं।
python3vol.py-ffile.dmpwindows.envars.Envars [--pid <pid>]#Display process environment variables
volatility--profile=PROFILEenvars-ffile.dmp [--pid <pid>]#Display process environment variablesvolatility--profile=PROFILE-ffile.dmplinux_psenv [-p <pid>]#Get env of process. runlevel var means the runlevel where the proc is initated
टोकन विशेषाधिकार
अप्रत्याशित सेवाओं में विशेषाधिकार टोकन के लिए जांचें।
कुछ विशेषाधिकार प्राप्त टोकन का उपयोग करने वाली प्रक्रियाओं की सूची बनाना दिलचस्प हो सकता है।
#Get enabled privileges of some processespython3vol.py-ffile.dmpwindows.privileges.Privs [--pid <pid>]#Get all processes with interesting privilegespython3vol.py-ffile.dmpwindows.privileges.Privs|grep"SeImpersonatePrivilege\|SeAssignPrimaryPrivilege\|SeTcbPrivilege\|SeBackupPrivilege\|SeRestorePrivilege\|SeCreateTokenPrivilege\|SeLoadDriverPrivilege\|SeTakeOwnershipPrivilege\|SeDebugPrivilege"
#Get enabled privileges of some processesvolatility--profile=Win7SP1x86_23418privs--pid=3152-ffile.dmp|grepEnabled#Get all processes with interesting privilegesvolatility--profile=Win7SP1x86_23418privs-ffile.dmp|grep"SeImpersonatePrivilege\|SeAssignPrimaryPrivilege\|SeTcbPrivilege\|SeBackupPrivilege\|SeRestorePrivilege\|SeCreateTokenPrivilege\|SeLoadDriverPrivilege\|SeTakeOwnershipPrivilege\|SeDebugPrivilege"
SIDs
प्रक्रिया द्वारा स्वामित्व वाले प्रत्येक SSID की जांच करें।
यह उन प्रक्रियाओं की सूची बनाना दिलचस्प हो सकता है जो एक विशेषाधिकार SIDs का उपयोग कर रही हैं (और उन प्रक्रियाओं का जो कुछ सेवा SIDs का उपयोग कर रही हैं)।
./vol.py-ffile.dmpwindows.getsids.GetSIDs [--pid <pid>]#Get SIDs of processes./vol.py-ffile.dmpwindows.getservicesids.GetServiceSIDs#Get the SID of services
volatility--profile=Win7SP1x86_23418getsids-ffile.dmp#Get the SID owned by each processvolatility--profile=Win7SP1x86_23418getservicesids-ffile.dmp#Get the SID of each service
हैंडल
जानना उपयोगी है कि प्रक्रिया के पास किस अन्य फ़ाइलों, कुंजियों, थ्रेड्स, प्रक्रियाओं... के लिए हैंडल है (खुला हुआ है)
./vol.py-ffile.dmpwindows.dlllist.DllList [--pid <pid>]#List dlls used by each./vol.py-ffile.dmpwindows.dumpfiles.DumpFiles--pid<pid>#Dump the .exe and dlls of the process in the current directory process
volatility--profile=Win7SP1x86_23418dlllist--pid=3152-ffile.dmp#Get dlls of a procvolatility--profile=Win7SP1x86_23418dlldump--pid=3152--dump-dir=.-ffile.dmp#Dump dlls of a proc
प्रक्रियाओं के अनुसार स्ट्रिंग्स
Volatility हमें यह जांचने की अनुमति देता है कि एक स्ट्रिंग किस प्रक्रिया से संबंधित है।
Windows उन प्रोग्रामों का ट्रैक रखता है जिन्हें आप चलाते हैं, एक फीचर के माध्यम से जो रजिस्ट्री में UserAssist keys कहलाता है। ये कीज़ रिकॉर्ड करती हैं कि प्रत्येक प्रोग्राम कितनी बार चलाया गया है और इसे आखिरी बार कब चलाया गया था।
RootedCONस्पेन में सबसे प्रासंगिक साइबरसुरक्षा कार्यक्रम है और यूरोप में सबसे महत्वपूर्ण में से एक है। तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबरसुरक्षा पेशेवरों के लिए एक उष्णकटिबंधीय बैठक स्थल है।
./vol.py-ffile.dmpwindows.svcscan.SvcScan#List services./vol.py-ffile.dmpwindows.getservicesids.GetServiceSIDs#Get the SID of services
#Get services and binary pathvolatility--profile=Win7SP1x86_23418svcscan-ffile.dmp#Get name of the services and SID (slow)volatility--profile=Win7SP1x86_23418getservicesids-ffile.dmp
नेटवर्क
./vol.py-ffile.dmpwindows.netscan.NetScan#For network info of linux use volatility2
volatility--profile=Win7SP1x86_23418netscan-ffile.dmpvolatility--profile=Win7SP1x86_23418connections-ffile.dmp#XPand2003onlyvolatility--profile=Win7SP1x86_23418connscan-ffile.dmp#TCPconnectionsvolatility--profile=Win7SP1x86_23418sockscan-ffile.dmp#Opensocketsvolatility--profile=Win7SP1x86_23418sockets-ffile.dmp#Scannerfortcpsocketobjectsvolatility--profile=SomeLinux-ffile.dmplinux_ifconfigvolatility--profile=SomeLinux-ffile.dmplinux_netstatvolatility--profile=SomeLinux-ffile.dmplinux_netfiltervolatility--profile=SomeLinux-ffile.dmplinux_arp#ARP tablevolatility--profile=SomeLinux-ffile.dmplinux_list_raw#Processes using promiscuous raw sockets (comm between processes)volatility--profile=SomeLinux-ffile.dmplinux_route_cache
रजिस्ट्री हाइव
उपलब्ध हाइव प्रिंट करें
./vol.py-ffile.dmpwindows.registry.hivelist.HiveList#List roots./vol.py-ffile.dmpwindows.registry.printkey.PrintKey#List roots and get initial subkeys
volatility--profile=Win7SP1x86_23418-ffile.dmphivelist#List rootsvolatility--profile=Win7SP1x86_23418-ffile.dmpprintkey#List roots and get initial subkeys
volatility--profile=Win7SP1x86_23418printkey-K"Software\Microsoft\Windows NT\CurrentVersion"-ffile.dmp# Get Run binaries registry valuevolatility-ffile.dmp--profile=Win7SP1x86printkey-o0x9670e9d0-K'Software\Microsoft\Windows\CurrentVersion\Run'
डंप
#Dump a hivevolatility--profile=Win7SP1x86_23418hivedump-o0x9aad6148-ffile.dmp#Offset extracted by hivelist#Dump all hivesvolatility--profile=Win7SP1x86_23418hivedump-ffile.dmp
फ़ाइल प्रणाली
माउंट
#See vol2
volatility--profile=SomeLinux-ffile.dmplinux_mountvolatility--profile=SomeLinux-ffile.dmplinux_recover_filesystem#Dump the entire filesystem (if possible)
स्कैन/डंप
./vol.py-ffile.dmpwindows.filescan.FileScan#Scan for files inside the dump./vol.py-ffile.dmpwindows.dumpfiles.DumpFiles--physaddr<0xAAAAA>#Offset from previous command
volatility--profile=Win7SP1x86_23418filescan-ffile.dmp#Scan for files inside the dumpvolatility--profile=Win7SP1x86_23418dumpfiles-n--dump-dir=/tmp-ffile.dmp#Dump all filesvolatility--profile=Win7SP1x86_23418dumpfiles-n--dump-dir=/tmp-Q0x000000007dcaa620-ffile.dmpvolatility--profile=SomeLinux-ffile.dmplinux_enumerate_filesvolatility--profile=SomeLinux-ffile.dmplinux_find_file-F/path/to/filevolatility--profile=SomeLinux-ffile.dmplinux_find_file-i0xINODENUMBER-O/path/to/dump/file
मास्टर फ़ाइल तालिका
# I couldn't find any plugin to extract this information in volatility3
NTFS फ़ाइल प्रणाली एक महत्वपूर्ण घटक का उपयोग करती है जिसे मास्टर फ़ाइल तालिका (MFT) के रूप में जाना जाता है। इस तालिका में एक वॉल्यूम पर हर फ़ाइल के लिए कम से कम एक प्रविष्टि शामिल होती है, जिसमें MFT स्वयं भी शामिल है। प्रत्येक फ़ाइल के बारे में महत्वपूर्ण विवरण, जैसे आकार, टाइमस्टैम्प, अनुमतियाँ, और वास्तविक डेटा, MFT प्रविष्टियों के भीतर या MFT के बाहरी क्षेत्रों में संलग्न होते हैं, लेकिन इन प्रविष्टियों द्वारा संदर्भित होते हैं। अधिक विवरण आधिकारिक दस्तावेज़ में पाया जा सकता है।
SSL कुंजी/प्रमाणपत्र
#vol3 allows to search for certificates inside the registry./vol.py-ffile.dmpwindows.registry.certificates.Certificates
#vol2 allos you to search and dump certificates from memory#Interesting options for this modules are: --pid, --name, --sslvolatility--profile=Win7SP1x86_23418dumpcerts--dump-dir=.-ffile.dmp
मैलवेयर
./vol.py-ffile.dmpwindows.malfind.Malfind [--dump] #Find hidden and injected code, [dump each suspicious section]#Malfind will search for suspicious structures related to malware./vol.py-ffile.dmpwindows.driverirp.DriverIrp#Driver IRP hook detection./vol.py-ffile.dmpwindows.ssdt.SSDT#Check system call address from unexpected addresses./vol.py-ffile.dmplinux.check_afinfo.Check_afinfo#Verifies the operation function pointers of network protocols./vol.py-ffile.dmplinux.check_creds.Check_creds#Checks if any processes are sharing credential structures./vol.py-ffile.dmplinux.check_idt.Check_idt#Checks if the IDT has been altered./vol.py-ffile.dmplinux.check_syscall.Check_syscall#Check system call table for hooks./vol.py-ffile.dmplinux.check_modules.Check_modules#Compares module list to sysfs info, if available./vol.py-ffile.dmplinux.tty_check.tty_check#Checks tty devices for hooks
volatility--profile=Win7SP1x86_23418-ffile.dmpmalfind [-D /tmp]#Find hidden and injected code [dump each suspicious section]volatility--profile=Win7SP1x86_23418-ffile.dmpapihooks#Detect API hooks in process and kernel memoryvolatility--profile=Win7SP1x86_23418-ffile.dmpdriverirp#Driver IRP hook detectionvolatility--profile=Win7SP1x86_23418-ffile.dmpssdt#Check system call address from unexpected addressesvolatility--profile=SomeLinux-ffile.dmplinux_check_afinfovolatility--profile=SomeLinux-ffile.dmplinux_check_credsvolatility--profile=SomeLinux-ffile.dmplinux_check_fopvolatility--profile=SomeLinux-ffile.dmplinux_check_idtvolatility--profile=SomeLinux-ffile.dmplinux_check_syscallvolatility--profile=SomeLinux-ffile.dmplinux_check_modulesvolatility--profile=SomeLinux-ffile.dmplinux_check_ttyvolatility--profile=SomeLinux-ffile.dmplinux_keyboard_notifiers#Keyloggers
yara के साथ स्कैनिंग
इस स्क्रिप्ट का उपयोग करें सभी yara मैलवेयर नियमों को github से डाउनलोड और मर्ज करने के लिए: https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9rules निर्देशिका बनाएं और इसे निष्पादित करें। यह malware_rules.yar नामक एक फ़ाइल बनाएगा जिसमें मैलवेयर के लिए सभी yara नियम शामिल हैं।
यह संभव है कि मेमोरी से बैश इतिहास पढ़ा जाए। आप .bash_history फ़ाइल को भी डंप कर सकते हैं, लेकिन यह अक्षम था, आप खुश होंगे कि आप इस वोलाटिलिटी मॉड्यूल का उपयोग कर सकते हैं।
The Master Boot Record (MBR) एक महत्वपूर्ण भूमिका निभाता है जो एक स्टोरेज माध्यम के तार्किक विभाजन का प्रबंधन करता है, जो विभिन्न फाइल सिस्टम के साथ संरचित होते हैं। यह न केवल विभाजन लेआउट जानकारी रखता है बल्कि इसमें निष्पादन योग्य कोड भी होता है जो एक बूट लोडर के रूप में कार्य करता है। यह बूट लोडर या तो सीधे OS के दूसरे चरण के लोडिंग प्रक्रिया को प्रारंभ करता है (देखें second-stage boot loader) या प्रत्येक विभाजन के वॉल्यूम बूट रिकॉर्ड (VBR) के साथ सामंजस्य में काम करता है। गहन ज्ञान के लिए, MBR Wikipedia पृष्ठ देखें।
RootedCONस्पेन में सबसे प्रासंगिक साइबर सुरक्षा कार्यक्रम है और यूरोप में सबसे महत्वपूर्ण में से एक है। तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उष्णकटिबंधीय बैठक बिंदु है।