volatility3
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| volatility3 [2025/02/21 09:20] – kresimir | volatility3 [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: | + | U ovom članku je objašnjeno korištenje forenzičkog alata za analizu memorije "Volatility 3". |
| - | < | + | |
| - | https:// | + | |
| - | </ | + | |
| - | U poglavlju uvod je objašnjena problematika i područje primjene alata, te se preporučuje čitanje tog poglavlja prije nastavka | + | |
| - | 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 | + | |
| - | + | ||
| - | ===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 | + | |
| - | + | ||
| - | 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, | + | |
| - | + | ||
| - | 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: | + | |
| - | + | ||
| - | < | + | |
| - | vol.py -f “/ | + | |
| - | </ | + | |
| - | + | ||
| - | Dok je u verziji 3 naredba : | + | |
| - | + | ||
| - | < | + | |
| - | vol.py -f “/ | + | |
| - | </ | + | |
| - | + | ||
| - | 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 | + | Prije instalacije i korištenja alata potrebno je imati instaliran |
| 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: | ||
| < | < | ||
| https:// | https:// | ||
| - | </ | ||
| - | |||
| - | 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. | ||
| - | |||
| - | < | ||
| - | https:// | ||
| </ | </ | ||
| Line 56: | Line 21: | ||
| </ | </ | ||
| - | Nakon čega, ako je alat uspješno instaliran, može se u pokrenuti u shellu. Za provjeru uspješne instalacije, | + | Kako bi se provjerilo |
| < | < | ||
| Line 62: | Line 27: | ||
| </ | </ | ||
| - | 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. | + | |
| - | + | ||
| - | < | + | |
| - | volatility -f win7dump.elf --profile=Win7SP1x86_23418 pslist | + | |
| - | </ | + | |
| - | + | ||
| - | Nego alat sam detektira profil, kao što je već objašnjeno. | + | |
| - | + | ||
| - | pslist -> windows.pslist | + | |
| - | clipboard -> windows.clipboard | + | |
| - | iehistory -> windows.iehistory | + | |
| - | … | + | |
| - | + | ||
| - | Također umjesto prve riječi volatility, koristi se „vol“. | + | |
| - | + | ||
| - | Ekvivalent naredbe | + | |
| - | + | ||
| - | < | + | |
| - | volatility -f win7dump.elf --profile=Win7SP1x86_23418 pslist | + | |
| - | </ | + | |
| - | + | ||
| - | Iz Volatility2 bi u Volatility3 bila: | + | |
| - | + | ||
| - | < | + | |
| - | vol -f win7dump.elf windows.pslist | + | |
| - | </ | + | |
| - | + | ||
| - | 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=== |
| < | < | ||
| - | Damir je otvorio slastičarnu i iako mu je posao na početku dobro išao, konkurencija se nekako | + | Damir je otvorio slastičarnu i, iako mu je posao na početku dobro išao, konkurencija se nekako |
| - | Damir sumnja da je njegov poslužitelj bio inficiran. Damir je napravio presliku memorije | + | 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 |
| + | Možeš li otkriti IP adresu i port servera s kojim je malware komunicirao? | ||
| + | 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] | ||
| https:// | https:// | ||
| </ | </ | ||
| Line 111: | Line 43: | ||
| Uz zadatak je dostupna i slika memorije na linku https:// | Uz zadatak je dostupna i slika memorije na linku https:// | ||
| - | Nakon preuzimanja slike memorije preko linka, | + | Nakon preuzimanja slike memorije preko linka, |
| - | 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 | + | 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: | {{volatility3: | ||
| - | Na slici je prikazan MsMpEng.exe, | + | Na slici je prikazan MsMpEng.exe, |
| - | 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 | + | 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 "powershell" |
| {{volatility3: | {{volatility3: | ||
| - | 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 | + | 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: |
| < | < | ||
| Line 138: | Line 70: | ||
| {{volatility3: | {{volatility3: | ||
| - | Pokretanjem ove naredbe pronađena je izvršena naredba sumnjivog procesa, | + | Pronađena je izvršena naredba sumnjivog procesa, |
| - | To se može napraviti korištenjem CyberChefa ili bash naredbama | + | To se može napraviti korištenjem CyberChefa ili bash naredbama: |
| < | < | ||
| Line 145: | Line 77: | ||
| </ | </ | ||
| - | Nakon čega se dekodirani payload može pročitati naredbom | + | Nakon čega se dekodirani payload može pročitati naredbom: |
| < | < | ||
| Line 167: | Line 99: | ||
| </ | </ | ||
| - | Te nakon čitanja čitanja dekodiranog payloada iz datoteke decoded2.txt naredbom | + | te nakon čitanja čitanja dekodiranog payloada iz datoteke decoded2.txt naredbom: |
| < | < | ||
| Line 173: | Line 105: | ||
| </ | </ | ||
| - | 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: | {{volatility3: | ||
| - | ===PRIMJER -Zadatak s Hacknite platforme – Kriminalni sistemac 2=== | + | ===PRIMJER - Zadatak s Hacknite platforme – Kriminalni sistemac 2=== |
| < | < | ||
| - | 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:// | https:// | ||
| 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: |
| < | < | ||
| Line 209: | Line 142: | ||
| </ | </ | ||
| - | 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: | {{volatility3: | ||
| - | Da je ova naredba vratila prazan ispis ili poruke greške, sljedeći korak bi bio pokrenuti ekvivalentnu naredbu za slike memorije Linux operacijskih | + | Da je ova naredba vratila prazan ispis ili poruke greške, sljedeći korak bi bio pokrenuti ekvivalentnu naredbu za slike memorije Linux operacijskih |
| - | Sljedeća naredba koja se može pokrenuti je | + | Sljedeća naredba koja se može pokrenuti je: |
| < | < | ||
| Line 221: | Line 154: | ||
| </ | </ | ||
| - | Kako bi se prikazala lista aktivnih procesa u trenutku | + | Kako bi se prikazala lista aktivnih procesa u trenutku |
| 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: | ||
| </ | </ | ||
| - | Može se preuzeti pokretanjem naredbe | + | Može se preuzeti pokretanjem naredbe: |
| < | < | ||
| Line 240: | Line 173: | ||
| </ | </ | ||
| - | Unutar | + | unutar |
| 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)