User Tools

Site Tools


volatility3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
volatility3 [2025/02/21 09:20] kresimirvolatility3 [2025/12/01 11:40] (current) – external edit 127.0.0.1
Line 3: Line 3:
 ===Uvod=== ===Uvod===
  
-Na Hackultet Wiki je dostupan dokument koji objašnjava područje problematike za koje se alat Volatility koristi, primjene i upute korištenja alata Volatility3. Dokument je dostupan na linku:  +ovom članku je objašnjeno korištenje forenzičkog alata za analizu memorije "Volatility 3".
-<file> +
-https://www.cert.hr/wp-content/uploads/2018/03/alat_volatility.pdf. +
-</file> +
-poglavlju uvod je objašnjena problematika i  područje primjene alata, te se preporučuje čitanje tog poglavlja prije nastavka  proučavanja ovog dokumenta. Ostatak spomenutog dokumenta objašnjava korištenje alata Volatility verzije 2, dok će ovaj dokument opisivati korištenje alata Volatility verzije 3.  +
-Nakon što je čitatelj upoznat s pojmovima radne memorije, slike radne memorije i forenzičke analize slike radne memorije, te pristupu i ciljevima postupka analize radne memorije, može se nastaviti s upoznavanjem razlike između verzija Volatiliy alata 2 i 3, te korištenja alata Volatility verzije 3. +
- +
-===Razlike između Volatility verzije 2 i verzije 3=== +
-  +
-Dok je verzija 2 alata Volatility pisana u zastarjelom Pythonu 2, verzija 3 je pisana u Pythonu 3. Osim implicitnih unaprijeđena koje ova promjena donosi, verzija 3 ima još mnogo drugih poboljšanja u odnosu na stariju verziju. Prednost starije verzije je što je duže u upotrebi, pa zato je poznatija i ima razrađeniju dokumentaciju te određena proširenja i module stvorene od same zajednice korisnika alata, koje možda još nisu prilagođene i napisane za noviju verziju. +
- +
-Volatility 3 je dizajniran korištenjem modularnog pristupa za razliku od Volatility 2 koji je bio dizajniran korištenjem „monolitnog“ pristupa. Radi ove činjenice, promjene koda i pisanje novih modula je puno jednostavnije, te zato Volatility 3 ima određene dostupe modula i funkcionalnosti koje nisu prisutne u starijoj verziji, iako postoje funkcionalnosti i moduli iz verzije 2 koji nisu još prisutne u verziji 3. Zato su obje verzija alata i dalje relevantne, te je u određenim slučajevima primjenjivija starija ili novija verzija. +
- +
-Također neke funkcionalnosti koje su prisutne u obje verzije alata, su puno brže, preciznije i praktičnije u verziji alata 3, kao što je funkcionalnost identifikacije korištenog operacijskog sustava u slici radne memorije koja se analizira. +
-Dok je u verziji 2 pristup analizi slike bio prvo identifikacija korištenog operacijskog sustava kako bi se odabrao odgovarajući profil, te naknadno definiranje odgovarajućeg profila pri pokretanju naredbi u daljnjoj analizi slike, ovaj proces je puno praktičniji u verziji 3. Verzija 3 uopće ne koristi profile, nego dinamički sama identificira sve potrebne karakteristike koje su prije bile specificirane profilom pri korištenju neke funkcionalnosti. Zato prvi korak identifikacije odgovarajućeg profila alatom verzije 2 uopće nije potreban kada se koristi alat verzije 3. +
-Tako na primjer, naredba za pregled i analizu mrežnih podataka „netstat“ u verziji 2 je: +
- +
-<file> +
-vol.py -f “/path/to/file” ‑‑profile <profile> netscan +
-</file> +
- +
-Dok je u verziji 3 naredba : +
- +
-<file> +
-vol.py -f “/path/to/file” windows.netscan +
-</file> +
- +
-Drugi argument u naredbi verzije 2, koji specificira točan profil pri analizi slike je nepotreban u ekvivalentnoj naredbi verzije 3, jer alat sam dinamički identificira sve potrebne informacije. Ovo vrijedi i za ostale naredbe +
- +
  
 ===Instalacija=== ===Instalacija===
  
-Prije instalacije i korištenja alata potrebno je imati instalirati Python 3. Instalacija i korištenje alata je vrlo slično na Windows i Linux operacijskom sustavu, pogotovo pri korištenju preporučenog načina instalacije. U primjerima će se koristiti Linux operacijski sustav.+Prije instalacije i korištenja alata potrebno je imati instaliran Python 3. Instalacija i korištenje alata je vrlo slično na operacijskim sustavima Windows i Linux, pogotovo pri korištenju preporučenog načina instalacije. U primjerima će se koristiti operacijski sustav Linux.
  
 Alat se može jednostavno instalirati kao Python 3 paket s PyPi registra. Pregled paketa je dostupan na linku: Alat se može jednostavno instalirati kao Python 3 paket s PyPi registra. Pregled paketa je dostupan na linku:
Line 42: Line 13:
 <file> <file>
 https://pypi.org/project/volatility3/ https://pypi.org/project/volatility3/
-</file> 
- 
-Da bi se koristila najnovija development verzija alata, potrebno je preuzeti projekt s GitHuba i izgraditi ga. GitHub projekt je dostupan ovdje zajedno sa uputstvima za preuzimanje i gradnju. 
- 
-<file> 
-https://github.com/volatilityfoundation/volatility3 
 </file> </file>
  
Line 56: Line 21:
 </file> </file>
  
-Nakon čega, ako je alat uspješno instaliran, može se u pokrenuti u shelluZa provjeru uspješne instalacije, može se u shellu pokrenuti naredba +Kako bi se provjerilo je li instalacija bila uspješna, može se u naredbanoj liniji (englShell) pokrenuti naredba:
  
 <file> <file>
Line 62: Line 27:
 </file> </file>
  
-Koja bi trebala ispisati kratka uputstva i dostupne opcije za pokretanje alata. +koja bi trebala ispisati kratka uputstva i dostupne opcije za pokretanje alata.
- +
-===Korištenje alata=== +
- +
-U prethodno spomenutom dokumentu koji  opisuje korištenje Volatilty2 alata (spomenut u uvodnom poglavlju), postoji poglavlje „Korištenje alata Volatility za analizu slike memorije“.  +
-Unutar ovog poglavlja su dobro opisane naredbe alata Volatility2 te njihove upotrebe. Jedina značajna razlika je da s alatom Volatility3 više nije uz svaku naredbu potrebno definirati profil, kao npr.  +
- +
-<file> +
-volatility -f win7dump.elf --profile=Win7SP1x86_23418 pslist +
-</file> +
- +
-Nego alat sam detektira profil, kao što je već objašnjeno.  Pošto profil nije definiran, koji bi prije odredio točnu verziju Windowsa koji se koristi, za neke naredbe je potrebno samo definirati da je operacijski sustav Windows, no ne i koji profil. Tako su na primjer neke razlike naredbi između alata Volatility 2 i Volatilit3: +
- +
-  pslist -> windows.pslist  +
-  clipboard -> windows.clipboard +
-  iehistory -> windows.iehistory +
-  … +
-   +
-Također umjesto prve riječi volatility, koristi se „vol“. +
- +
-Ekvivalent naredbe  +
- +
-<file> +
-volatility -f win7dump.elf --profile=Win7SP1x86_23418 pslist +
-</file> +
- +
-Iz Volatility2 bi u Volatility3 bila: +
- +
-<file> +
-vol -f win7dump.elf windows.pslist +
-</file> +
- +
-Ove sve promjene nije važno znati napamet, jer se sve mogu pronaći unutar dokumentacije i korištenjem help naredbe: „vol -h“. Volatility3 naredbe su vrlo slične Volatility2 naredbama, ali su jednostavnije i praktičnije za korištenje. +
- +
- +
- +
  
-===PRIMJER -Zadatak s Hacknite platforme –  Memorija===+===PRIMJER - Zadatak s Hacknite platforme –  Memorija===
  
 <file> <file>
-Damir je otvorio slastičarnu i iako mu je posao na početku dobro išao, konkurencija se nekako dočepala njegovog tajnog recepta za čokoladnu tortu. +Damir je otvorio slastičarnu iiako mu je posao na početku dobro išao, konkurencija se nekako domogla 
-Damir sumnja da je njegov poslužitelj bio inficiran. Damir je napravio presliku memorije njegovog poslužitelja, možeš li otkriti IP adresu i port servera s kojim je malware komunicirao? +njegovog tajnog recepta za čokoladnu tortu. 
-Flag je kombinacija IP adrese i porta s kojom malware komunicira bez točaka. Primjerice ako malware komunicira s IP adresom 192.168.5.1 na portu 1111 flag bi bio CTF2023[192168511111]+Damir sumnja da je njegov poslužitelj bio inficiran. Damir je napravio presliku memorije svog poslužitelja
 +Možeš li otkriti IP adresu i port servera s kojim je malware komunicirao? 
 +Flag je kombinacija IP adrese i porta s kojom malware komunicirabez točaka. Primjerice ako malware komunicira  
 +s IP adresom 192.168.5.1 na portu 1111 flag bi bio CTF2023[192168511111]
 https://cumulus.carnet.hr/index.php/s/8Es9xjTSrXPQTQd https://cumulus.carnet.hr/index.php/s/8Es9xjTSrXPQTQd
 </file> </file>
Line 111: Line 43:
 Uz zadatak je dostupna i slika memorije na linku https://cumulus.carnet.hr/index.php/s/8Es9xjTSrXPQTQd. Uz zadatak je dostupna i slika memorije na linku https://cumulus.carnet.hr/index.php/s/8Es9xjTSrXPQTQd.
  
-Nakon preuzimanja slike memorije preko linka, kompresirana datoteka se može raspakirati i proces analize može biti započet. +Nakon preuzimanja slike memorije preko linka, komprimirana datoteka se može raspakirati i proces analize može biti započet. 
-U tekstu zadatka je naznačeno da je poslužitelj bio inficiran malwareom i da bi se riješio zadatak, potrebno je pronaći IP i port s kojime malware komunicira. Za ovu namjenu idealan je malfind modul, koji se koristi za pronalazak malicioznih procesa u slici memorije.+U tekstu zadatka je naznačeno da je poslužitelj bio inficiran malwareom i da bi se riješio zadatak, potrebno je pronaći IP i port s kojim malware komunicira. Za ovu namjenu idealan je malfind modul, koji se koristi za pronalazak malicioznih procesa u slici memorije.
 Pokretanje naredbe je: Pokretanje naredbe je:
  
Line 123: Line 55:
 {{volatility3:slika1.png}} {{volatility3:slika1.png}}
  
-Na slici je prikazan MsMpEng.exe, jedan od sumnjivih procesa pronađen pokretanjem naredbe, među kojima su i drugi procesi kao što je  SearchApp.exe, smartscreen.exe, OneDrive.exe i powershell.exe. Među prikazanim procesima mogu biti prisutni i „false positivi“, procesi koji zapravo nisu maliciozni, ali su označeni kao sumnjivi. Zato je bitno u postupku danje analize sumnjivih procesa, odrediti redoslijed najprioritetnijih i najvjerojatnijih procesa, koji će se prvi podvrgnuti postupku daljnje analize. Od spomenutih procesa, powershell je među prvim procesima na koji treba obratiti pažnju, jer je poznato da malware često koristi powershell za ostvarivanje raznih ciljeva, što je opisano u dokumentu „Malware tehnike.  +Na slici je prikazan MsMpEng.exe, jedan od sumnjivih procesa pronađen pokretanjem naredbe, među kojima su i drugi procesi kao što je  SearchApp.exe, smartscreen.exe, OneDrive.exe i powershell.exe. Među prikazanim procesima mogu biti prisutni i „false positivi“, procesi koji zapravo nisu maliciozni, ali su označeni kao sumnjivi. Zato je bitno u postupku daljnje analize sumnjivih procesa, odrediti redoslijed najvjerojatnijih procesa, koji prve treba analizirati. Od spomenutih procesa, powershell je među prvim procesima na koji treba obratiti pažnju, jer je poznato da malware često koristi powershell za ostvarivanje raznih ciljeva, što je opisano u članku [[malware_tehnike|Malware tehnike]].  
-Powershell proces prikazan u rezultatima izvršene naredbe ima PID (Process ID) 6800, što je prikazano na slici 2., te se sada može vršiti daljnja analiza nad powershell procesom s PID vrijednošću 6800.+Powershell proces prikazan u rezultatima izvršene naredbe ima PID (Process ID) 6800, što je prikazano na slici 2., te se sada može dalje analizirati proces "powershells PID vrijednošću 6800.
  
 {{volatility3:slika2.png}} {{volatility3:slika2.png}}
  
-Slijedeći modul koji je vrlo koristan za analizu je modul „cmdline“ koji prikazuje naredbe izvršene u ljuskama. Kako bi se pronašle naredbe koje je izvršavao powershell proces s PID vrijednošću 6800, može se pokrenuti naredba+Slijedeći modul koji je vrlo koristan za analizu je modul „cmdline“ koji prikazuje naredbe izvršene u ljuskama. Kako bi se pronašle naredbe koje je izvršavao proces 6800, može se pokrenuti naredba:
  
 <file> <file>
Line 138: Line 70:
 {{volatility3:slika3.png}} {{volatility3:slika3.png}}
  
-Pokretanjem ove naredbe pronađena je izvršena naredba sumnjivog procesa, koja se treba dalje analizirati. Može se uočiti da je payload pokrenute naredbe u formatu Base64, koji se treba dekodirati u format „UTF-16LE“, format koji powershell koristi. +Pronađena je izvršena naredba sumnjivog procesa, koju treba dalje analizirati. Može se uočiti da je payload pokrenute naredbe u formatu Base64, koji se treba dekodirati u format „UTF-16LE“, format koji koristi powershell
-To se može napraviti korištenjem CyberChefa ili bash naredbama+To se može napraviti korištenjem CyberChefa ili bash naredbama:
  
 <file> <file>
Line 145: Line 77:
 </file> </file>
  
-Nakon čega se dekodirani payload može pročitati naredbom+Nakon čega se dekodirani payload može pročitati naredbom:
  
 <file> <file>
Line 167: Line 99:
 </file> </file>
  
-Te nakon čitanja čitanja dekodiranog payloada iz datoteke decoded2.txt naredbom+te nakon čitanja čitanja dekodiranog payloada iz datoteke decoded2.txt naredbom:
  
 <file> <file>
Line 173: Line 105:
 </file> </file>
  
-Bit će prikazana IP adresa i port koji malware koristi, što je prikazano na slici 5.+bit će prikazana IP adresa i port koji malware koristi, što je prikazano na slici 5.
  
  
 {{volatility3:slika5.png}} {{volatility3:slika5.png}}
  
-===PRIMJER -Zadatak s Hacknite platforme –  Kriminalni sistemac 2===+===PRIMJER - Zadatak s Hacknite platforme –  Kriminalni sistemac 2===
  
 <file> <file>
-Uhvaćen je i drugi sistem administrator kriminalnog marketa. Istraživači su napravili forenzičku sliku memorije njegovog računala. Kao i u prošli put, postoji keepass file koji žele otključati. Možeš li im pomoći?+Uhvaćen je i drugi sistem administrator kriminalnog marketa. Istraživači su napravili forenzičku sliku  
 +memorije njegovog računala. Kao i u prošli put, postoji keepass file koji žele otključati. Možeš li im pomoći?
 https://cumulus.carnet.hr/index.php/s/6dXmt4gaA5SP5xT https://cumulus.carnet.hr/index.php/s/6dXmt4gaA5SP5xT
 Napomena: zabranjeno je napadati cumulus.carnet.hr Napomena: zabranjeno je napadati cumulus.carnet.hr
Line 189: Line 122:
  
 Preuzimanjem i raspakiravanjem datoteke, dobivaju se datoteke „sistemac2.dmp“ i „sistemac2.kdbx“.  Preuzimanjem i raspakiravanjem datoteke, dobivaju se datoteke „sistemac2.dmp“ i „sistemac2.kdbx“. 
-Kdbx je ekstenzija datoteke „KeePass“ programa za pohranu lozinki. Lozinke pohranjene u .kdbx datoteci su obično enkriptirane i za dekripciju je potreban glavni ključ .kdbx datoteke.+Kdbx je ekstenzija datoteke „KeePass“programa za pohranu lozinki. Lozinke pohranjene u .kdbx datoteci su obično enkriptirane i za dekripciju je potreban glavni ključ .kdbx datoteke.
 Ovo se može provjeriti učitavanjem sistemac2.kdbx datoteke u online keepass preglednik, kao na primjer KeeWeb na linku: Ovo se može provjeriti učitavanjem sistemac2.kdbx datoteke u online keepass preglednik, kao na primjer KeeWeb na linku:
  
Line 203: Line 136:
 Ovo će biti smjernica pri analizi sistemac2.dmp slike memorije. Ovo će biti smjernica pri analizi sistemac2.dmp slike memorije.
  
-Nakon pozicioniranja u direktorij gdje se nalazi i slika memorije, pokretanjem naredbe +Nakon pozicioniranja u direktorij gdje se nalazi i slika memorije, pokretanjem naredbe:
  
 <file> <file>
Line 209: Line 142:
 </file> </file>
  
-Može se vidjeti da je operacijski sustav slike Windows i osnovne informacije o operacijskom sustavu (Slika 7).+može se vidjeti da je operacijski sustav slike Windows i osnovne informacije o operacijskom sustavu (Slika 7).
  
 {{volatility3:slika7.png}} {{volatility3:slika7.png}}
  
-Da je ova naredba vratila prazan ispis ili poruke greške, sljedeći korak bi bio pokrenuti ekvivalentnu naredbu za slike memorije Linux operacijskih sustav, kako bi se utvrdilo koristi li se Linux i osnovne informacije o operacijskom sustavu.  +Da je ova naredba vratila prazan ispis ili poruke greške, sljedeći korak bi bio pokrenuti ekvivalentnu naredbu za slike memorije Linux operacijskih sustava, kako bi se utvrdilo koristi li se Linux i osnovne informacije o operacijskom sustavu.  
  
-Sljedeća naredba koja se može pokrenuti je +Sljedeća naredba koja se može pokrenuti je:
  
 <file> <file>
Line 221: Line 154:
 </file> </file>
  
-Kako bi se prikazala lista aktivnih procesa u trenutku stvaranje slike memorije.+Kako bi se prikazala lista aktivnih procesa u trenutku stvaranja slike memorije.
 Ova naredba prikazuje da je jedan od aktivnih procesa bio KeePass.exe s pridruženim identifikatorom procesa (eng. PID – Process Identifier) 6012 (Slika 8.) Ova naredba prikazuje da je jedan od aktivnih procesa bio KeePass.exe s pridruženim identifikatorom procesa (eng. PID – Process Identifier) 6012 (Slika 8.)
  
Line 234: Line 167:
 </file> </file>
  
-Može se preuzeti pokretanjem naredbe +Može se preuzeti pokretanjem naredbe:
  
 <file> <file>
Line 240: Line 173:
 </file> </file>
  
-Unutar istog direktorija kao što je i slika memorije, kako bi se olakšala upotreba dodatka.+unutar istog direktorija kao što je i slika memorije, kako bi se olakšala upotreba dodatka.
 Nakon što su dodatci preuzeti, zadržavanjem iste pozicije, stablo poddirektorija bi trebalo izgledati ovako (naredba tree ./): Nakon što su dodatci preuzeti, zadržavanjem iste pozicije, stablo poddirektorija bi trebalo izgledati ovako (naredba tree ./):
  
volatility3.1740129647.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki