Aceasta este volatilitatea comenzii care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
volatilitate - cadru criminalistic avansat de memorie
REZUMAT
volatilitate [opțiune]
volatilitate -f [imagine] --profil=[profil] [conecteaza]
DESCRIERE
Volatility Framework este o colecție complet deschisă de instrumente pentru extragerea
artefacte digitale din mostre de memorie volatilă (RAM). Este util în analiza criminalistică.
Tehnicile de extracție se realizează complet independent de sistemul care este
investigat, dar oferă o vizibilitate fără precedent asupra stării de rulare a sistemului.
Volatility acceptă mai multe versiuni ale MS Windows, Linux și MAC OSX:
MS Windows:
· Windows XP Service Pack 32 și 2 pe 3 de biți
· Windows 32 Server Service Pack 2003, 0, 1 pe 2 de biți
· Windows Vista Service Pack 32, 0, 1 pe 2 de biți
· Windows 32 Server Service Pack 2008, 1 pe 2 de biți (nu există SP0)
· Windows 32 Service Pack 7, 0 pe 1 de biți
· Actualizarea 32 pentru Windows 8, 8.1 și 8.1 pe 1 de biți
· Windows 32 pe 10 de biți (suport inițial)
· Windows XP Service Pack 64 și 1 pe 2 de biți (nu există SP0)
· Windows 64 Server Service Pack 2003 și 1 pe 2 de biți (nu există SP0)
· Windows Vista Service Pack 64, 0, 1 pe 2 de biți
· Windows 64 Server Service Pack 2008 și 1 pe 2 de biți (nu există SP0)
· Windows 64 R2008 Server Service Pack 2 și 0 pe 1 de biți
· Windows 64 Service Pack 7 și 0 pe 1 de biți
· Actualizarea 64 pentru Windows 8, 8.1 și 8.1 pe 1 de biți
· Windows Server 64 și 2012 R2012 pe 2 de biți
· Windows 64 pe 10 de biți (suport inițial)
Linux:
· Nuclee Linux pe 32 de biți de la 2.6.11 la 4.2.3
· Nuclee Linux pe 64 de biți de la 2.6.11 la 4.2.3
· OpenSuSE, Ubuntu, Debian, CentOS, Fedora, Mandriva etc
Mac OS X:
· 32.x Leopard pe 10.5 de biți (singurul 64 pe 10.5 de biți este Server, care nu este acceptat)
· 32 de biți 10.6.x Snow Leopard
· 64 de biți 10.6.x Snow Leopard
· 32 de biți 10.7.x Lion
· 64 de biți 10.7.x Lion
· 64 de biți 10.8.x Mountain Lion (nu există o versiune pe 32 de biți)
· Mavericks 64.x pe 10.9 de biți (nu există o versiune pe 32 de biți)
· 64 de biți 10.10.x Yosemite (nu există o versiune pe 32 de biți)
· 64 de biți 10.11.x El Capitan (nu există o versiune pe 32 de biți)
Formatele de memorie acceptate sunt:
· Probă liniară brută (dd)
· Fișier de hibernare
· Fișier de descărcare în caz de accident
· VirtualBox ELF64 core dump
· Fișierele de stare și instantanee salvate de VMware
· Format EWF (E01)
· Format LiME (Linux Memory Extractor).
· Format de fișier Mach-o
· Dumps de mașină virtuală QEMU
· Firewire
· HPAK (FDPro)
Spațiile de adrese acceptate (tipuri RAM) sunt:
· AMD64PagedMemory - spațiu de adrese standard AMD pe 64 de biți
· ArmAddressSpace - Spațiu de adrese pentru procesoarele ARM
· FileAddressSpace - Acesta este un fișier direct AS
· HPAKAddressSpace - Acest AS acceptă formatul HPAK
· IA32PagedMemoryPae - Această clasă implementează spațiul de adrese de paginare IA-32 PAE.
Este responsabil
· IA32PagedMemory - Spațiu de adrese de paginare standard IA-32
· LimeAddressSpace - Spațiu de adrese pentru Lime
· MachOAddressSpace - Spațiu de adrese pentru fișierele mach-o pentru a accepta memoria atc-ny
cititor
· OSXPmemELF - Acest AS acceptă formatul de coredump VirtualBox ELF64
· QemuCoreDumpElf - Acest AS acceptă formatul de coredump Qemu ELF32 și ELF64
· VirtualBoxCoreDumpElf64 - Acest AS acceptă formatul de coredump VirtualBox ELF64
· VMWareAddressSpace - Acest AS acceptă VMware snapshot (VMSS) și starea salvată
(VMSS).
· VMWareMetaAddressSpace - Acest AS acceptă formatul VMEM cu VMSN/VMSS
metadate
· WindowsCrashDumpSpace32 - Acest AS acceptă formatul Windows Crash Dump
· WindowsCrashDumpSpace64BitMap - Acest AS acceptă Windows BitMap Crash Dump
format
· WindowsCrashDumpSpace64 - Acest AS acceptă formatul Windows Crash Dump
· WindowsHiberFileSpace32 - Acesta este un spațiu de adrese de hibernare pentru Windows
fișiere de hibernare
Există imagini de memorie exemplare pentru teste la
https://github.com/volatilityfoundation/volatilitate/wiki/Memory-Samples.
OPŢIUNI
-h, --Ajutor
Listați toate opțiunile disponibile și valorile lor implicite. Valorile implicite pot fi setate în
fișierul de configurare (/etc/volatilityrc).
--conf-file=/root/.volatilityrc
Fișier de configurare bazat pe utilizator.
-d, --depanare
Depanare Volatilitate.
--plugins=PLUG-URI
Suplimentar conecteaza directoare de utilizat (separate prin două puncte).
--info Tipăriți informații despre toate obiectele înregistrate.
--cache-directory=/root/.cache/volatility
Director în care sunt stocate fișierele cache.
--cache
Utilizați memorarea în cache.
--tz=TZ
Setați fusul orar pentru afișarea marcajelor de timp folosind pytz (dacă este instalat) sau tzset
-f NUME DE FIȘIER, --filename=NUME FIȘIER
Nume de fișier de utilizat la deschiderea unui imagine.
--profile=WinXPSP2x86
Numele profilului de încărcat (utilizați --info pentru a vedea o listă de profiluri acceptate).
-l LOCAȚIE, --location=LOCATION
O locație URN din care să încărcați un spațiu de adresă.
-w, --scrie
Activați suportul de scriere.
--dtb=DTB
Adresa DTB.
--shift=SHIFT
Adresa turei Mac KASLR.
--output=text
Ieșire în acest format.
--output-file=OUTPUT_FILE
Scrieți rezultatul în acest fișier.
-v, --verbos
Informații detaliate.
-g KDBG, --kdbg=KDBG
Specificați o anumită adresă virtuală KDBG. Pentru Windows 64 pe 8 de biți și mai sus, acesta este
adresa KdCopyDataBlock.
--forta
Utilizarea forțată a profilului suspectului.
-k KPCR, --kpcr=KPCR
Specificați o anumită adresă KPCR.
--cookie=COOKIE
Specificați adresa nt!ObHeaderCookie (valid doar pentru Windows 10).
PLUGINS AND PROFILURILE
Sprijinit conecteaza comenzile și profilurile pot fi vizualizate dacă utilizați comanda „$
volatilitate --info'. Rețineți că pluginurile permise pentru Linux și MAC OSX vor avea „linux_”
și prefixele „mac_”. Pluginurile fără aceste prefixe au fost concepute pentru MS Windows.
Profilurile sunt hărți utilizate de Volatility pentru a înțelege sistemele operaționale. MS permis
Profilurile Windows sunt furnizate de Volatility.
Trebuie să vă creați propriile profiluri pentru Linux și MAC OSX. Pentru aceasta, pe sistemele Debian, citiți
fișierul README.Debian furnizat de volatilitate-pachet instrumente.
Pe MS Windows, pentru a determina tipul de sistem de operare, puteți utiliza:
volatilitate $ -f informații despre imagine
or
volatilitate $ -f kdbgscan
MEDIUL VARIABILE
Pe un sistem GNU/Linux sau OS X, aceste variabile pot fi setate:
· VOLATILITY_PROFILE - Specifică un profil care urmează să fie utilizat ca implicit, crearea
inutil un '--profil' opțiune.
· VOLATILITY_LOCATION - Specifică calea unui imagine. Deci, comanda Volatilitate
nu va avea nevoie de un nume de fișier prin „-f' opțiune.
· VOLATILITY_KDBG - Specifică o adresă KDBG. Consultați PROCEDURI SUPLIMENTARE pentru mai multe
Detalii.
Altele conecteaza flag-urile pot fi utilizate în acest fel, de exemplu KPCR, DTB sau PLUGINS. Cand
exportați variabile, pur și simplu prefixați VOLATILITY_ înaintea numelui steagului (de ex
VOLATILITY_KPCR). În caz contrar, numele steagului rămâne același atunci când îl adăugați la
Fișier de configurare.
Dacă aveți o cale cu un spațiu sau mai multe în nume, spațiile ar trebui înlocuite cu %20
în schimb (de ex. LOCATION=file:///tmp/my%20image.img).
Exemplu:
$ export VOLATILITY_PROFILE=Win7SP0x86
$ export VOLATILITY_LOCATION=file:///tmp/myimage.img
$ export VOLATILITY_KDBG=0x82944c28
CONFIGURARE DOSARE
Fișierele de configurare sunt de obicei „volatilityrc” în directorul curent sau
'~/.volatilityrc' în directorul principal al utilizatorului sau la calea specificată de utilizator, folosind --conf-
fişier opțiune. Un exemplu de conținut al fișierului este prezentat mai jos:
[MOD IMPLICIT]
PROFILE=Win7SP0x86
LOCATION=file:///tmp/myimage.img
KDBG=0x82944c28
Altele conecteaza flag-urile pot fi utilizate în acest fel, de exemplu KPCR, DTB sau PLUGINS. Cand
exportați variabile, pur și simplu prefixați VOLATILITY_ înaintea numelui steagului (de ex
VOLATILITY_KPCR). În caz contrar, numele steagului rămâne același atunci când îl adăugați la
Fișier de configurare.
Dacă aveți o cale cu un spațiu sau mai multe în nume, spațiile ar trebui înlocuite cu %20
în schimb (de ex. LOCATION=file:///tmp/my%20image.img).
EXTRA PROCEDURI
Setarea unui fus orar
Marcajele de timp extrase din memorie pot fi fie în ora locală a sistemului, fie în timpul universal
Coordonate (UTC). Dacă sunt în UTC, Volatility poate fi instruit să le afișeze într-un timp
zona la alegerea analistului. Pentru a alege un fus orar, utilizați unul dintre fusul orar standard
nume (cum ar fi America/Sao_Paulo, Europa/Londra, SUA/Eastern sau majoritatea fusurilor orare Olson) cu
steag-ul --tz=TIMEZONE.
Volatility încearcă să folosească pytz dacă este instalat, altfel folosește tzset.
Vă rugăm să rețineți că specificarea unui fus orar nu va afecta modul în care sunt afișate orele locale ale sistemului. Dacă
identificați o oră despre care știți că este bazată pe UTC, vă rugăm să o înregistrați ca problemă în instrumentul de urmărire a problemelor.
În mod implicit, marcajele de timp _EPROCESS CreateTime și ExitTime sunt în UTC.
Setarea DTB
DTB (Directory Table Base) este ceea ce Volatility folosește pentru a traduce adresele virtuale în fizice
adrese. În mod implicit, este utilizat un DTB de nucleu (din procesul Idle/System). Dacă doriți să utilizați un
DTB al unui proces diferit atunci când accesați date, furnizați adresa la --dtb=ADDRESS.
Setarea adresei KDBG (aceasta este doar pentru Windows opțiune)
Scanări de volatilitate pentru structura „_KDDEBUGGER_DATA64” folosind semnături codificate hard „KDBG” și
o serie de verificări de sănătate. Aceste semnături nu sunt esențiale pentru funcționarea sistemului de operare
corect, astfel malware-ul le poate suprascrie în încercarea de a arunca instrumentele care se bazează pe
semnătură. În plus, în unele cazuri pot exista mai multe „_KDDEBUGGER_DATA64” (pentru
exemplu dacă aplicați o actualizare majoră a sistemului de operare și nu reporniți), ceea ce poate provoca confuzie și poate duce la
liste incorecte de procese și module, printre alte probleme. Daca stii adresa
adăugați „_KDDEBUGGER_DATA64”, îl puteți specifica cu --kdbg=ADDRESS și aceasta înlocuiește automat
scanează. Pentru mai multe informații, consultați pluginul kdbgscan.
Setarea adresei KPCR (aceasta este doar pentru Windows opțiune)
Există câte un KPCR (Kernel Processor Control Region) pentru fiecare CPU dintr-un sistem. O oarecare volatilitate
pluginurile afișează informații pe procesor. Astfel, dacă doriți să afișați date pentru un anumit CPU, pt
exemplu CPU 3 în loc de CPU 1, puteți transmite adresa KPCR acelui CPU cu --kpcr=ADDRESS.
Pentru a localiza KPCR-urile pentru toate procesoarele, consultați pluginul kpcrscan. De asemenea, rețineți că începând cu Volatility 2.2,
multe dintre pluginuri, cum ar fi idt și gdt, repetă automat lista de KPCR.
Activarea suportului de scriere
Suportul de scriere în Volatility trebuie folosit cu prudență. Prin urmare, pentru a-l activa efectiv, trebuie
nu numai că tastați --write pe linia de comandă, dar trebuie să introduceți o „parolă” ca răspuns la o întrebare care
vi se va solicita. În cele mai multe cazuri, nu veți dori să utilizați suportul de scriere, deoarece poate duce la
coruperea sau modificarea datelor din depozitul de memorie. Cu toate acestea, există cazuri speciale care fac acest lucru
caracteristică cu adevărat interesantă. De exemplu, puteți curăța un sistem activ de anumite programe malware prin
scrierea în RAM prin firewire sau ați putea pătrunde într-o stație de lucru blocată prin corecțiile de octeți în
DLL-uri winlogon.
Specificarea suplimentară conecteaza directoare
Arhitectura plugin-ului Volatility poate încărca fișiere plugin din mai multe directoare simultan. În
Cod sursă de volatilitate, majoritatea pluginurilor sunt localizate în volatilitate/plugin-uri. Cu toate acestea, mai există și altul
director (volatilitate/contrib) care este rezervat contribuțiilor de la dezvoltatori terți sau
pluginuri slab acceptate care pur și simplu nu sunt activate implicit. Pentru a accesa aceste pluginuri trebuie doar
tastați --plugins=contrib/plugins pe linia de comandă. De asemenea, vă permite să creați un director separat
a propriilor plugin-uri pe care le puteți gestiona fără a fi nevoie să adăugați/eliminați/modificați fișiere din nucleu
Directoare de volatilitate.
note:
* Pe sistemele Debian, directorul contrib/plugins se află la /usr/share/volatility/contrib/plugins.
* Subdirectoarele vor fi, de asemenea, parcurse atâta timp cât există un fișier __init__.py (care poate fi gol)
în interiorul lor.
* Parametrul pentru --plugins poate fi, de asemenea, un fișier zip care conține astfel de pluginuri
ca --plugins=myplugins.zip. Datorită modului în care sunt încărcate pluginurile, directorul de pluginuri externe
sau fișierul zip trebuie specificat înaintea oricăror argumente specifice pluginului (inclusiv numele fișierului
conecteaza). Exemplu:
$ volatilitate --plugins=contrib/plugins -f exemplu XPSP3x86.vmem
Alegerea unui format de ieșire
În mod implicit, pluginurile folosesc redarea textului la ieșirea standard. Dacă doriți să redirecționați către un fișier, dvs
Desigur, puteți folosi redirecționarea consolei (adică > out.txt) sau puteți folosi --output-file=out.txt.
Motivul pentru care puteți alege, de asemenea, --output=FORMAT este pentru a permite pluginurilor să redea și ieșirea ca HTML,
JSON, SQL sau orice alegi. Cu toate acestea, nu există pluginuri cu acele formate alternative de ieșire
pre-configurat pentru utilizare, deci va trebui să adăugați o funcție numită render_html, render_json, render_sql,
respectiv fiecărui plugin înainte de a utiliza --output=HTML.
Opțiuni specifice pentru plugin
Multe pluginuri acceptă argumente proprii, care sunt independente de opțiunile globale. Pentru a vedea
lista de opțiuni disponibile, tastați atât numele pluginului, cât și -h/--help pe linia de comandă.
$ volatilitate dlllist -h
Mod de depanare
Dacă ceva nu se întâmplă în Volatility în modul așteptat, încercați să rulați comanda cu -d/--debug.
Acest lucru va permite tipărirea mesajelor de depanare la eroare standard. La mai multe niveluri de depanare, ca în utilizare
pdb debugger), adăugați -d -d -d la comandă.
Folosind Volatility ca bibliotecă
Deși este posibil să utilizați Volatility ca bibliotecă, (există planuri de a o susține mai bine în
viitor). În prezent, pentru a importa Volatility dintr-un script Python, poate fi folosit următorul exemplu de cod:
$ python
>>> import volatility.conf ca conf
>>> import volatility.registry ca registry
>>> registry.PluginImporter()
>>> config = conf.ConfObject()
>>> import volatility.commands ca comenzi
>>> import volatility.addrspace ca addrspace
>>> registry.register_global_options(config, commands.Command)
>>> registry.register_global_options(config, addrspace.BaseAddressSpace)
>>> config.parse_options()
>>> config.PROFILE="WinXPSP2x86"
>>> config.LOCATION = "file:///media/memory/private/image.dmp"
>>> import volatility.plugins.taskmods ca taskmods
>>> p = taskmods.PSList(config)
>>> pentru proces în p.calculate():
... proces de imprimare
EXEMPLE
Pentru a vedea toate pluginurile, profilurile, verificările scanerelor și spațiile de adrese disponibile:
volatilitate $ --info
Pentru a lista toate procesele active găsite într-un MS Windows 8 SP0 imagine:
$ volatilitate -f win8.raw --profile=Win8SP0x86 pslist
Pentru a lista toate procesele active găsite într-un MS Windows 8 SP0 imagine, folosind un fus orar:
$ volatilitate -f win8.raw --profile=Win8SP0x86 pslist --tz=America/Sao_Paulo
Pentru a afișa kernel-ul bnuffer dintr-un Linux 3.2.63 imagine:
$ volatilitate -f mem.dd --profile=Linux_3_2_63_x64 linux_dmesg
NOTE
Această pagină de manual a fost bazată pe câteva teste și mai multe documente oficiale despre Volatility. Pentru
alte informații și tutoriale, vezi:
· http://www.volatilityfoundation.org
· https://github.com/volatilityfoundation/volatilitate/wiki
Utilizați volatilitatea online folosind serviciile onworks.net