volatiliteit
Dit is de vluchtigheid van de opdracht die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
volatiliteit - geavanceerd forensisch geheugenframework
KORTE INHOUD
volatiliteit [optie]
volatiliteit -f [beeld] --profiel=[profiel] [inpluggen]
PRODUCTBESCHRIJVING
Het Volatility Framework is een volledig open verzameling tools voor het extraheren van:
digitale artefacten uit vluchtig geheugen (RAM)-samples. Het is nuttig bij forensische analyse.
De extractietechnieken worden volledig onafhankelijk van het systeem uitgevoerd:
onderzocht, maar bieden ongekend inzicht in de runtime-status van het systeem.
Volatility ondersteunt verschillende versies van MS Windows, Linux en MAC OSX:
MS-Windows:
· 32-bits Windows XP Service Pack 2 en 3
· 32-bits Windows 2003 Server Service Pack 0, 1, 2
· 32-bits Windows Vista Service Pack 0, 1, 2
· 32-bits Windows 2008 Server Service Pack 1, 2 (er is geen SP0)
· 32-bits Windows 7 Service Pack 0, 1
· 32-bits Windows 8, 8.1 en 8.1 Update 1
· 32-bits Windows 10 (eerste ondersteuning)
· 64-bits Windows XP Service Pack 1 en 2 (er is geen SP0)
· 64-bits Windows 2003 Server Service Pack 1 en 2 (er is geen SP0)
· 64-bits Windows Vista Service Pack 0, 1, 2
· 64-bits Windows 2008 Server Service Pack 1 en 2 (er is geen SP0)
· 64-bits Windows 2008 R2 Server Service Pack 0 en 1
· 64-bits Windows 7 Service Pack 0 en 1
· 64-bits Windows 8, 8.1 en 8.1 Update 1
· 64-bits Windows Server 2012 en 2012 R2
· 64-bits Windows 10 (eerste ondersteuning)
Linux:
· 32-bits Linux-kernels 2.6.11 tot 4.2.3
· 64-bits Linux-kernels 2.6.11 tot 4.2.3
· OpenSuSE, Ubuntu, Debian, CentOS, Fedora, Mandriva, enz
Mac OS X:
· 32-bits 10.5.x Leopard (de enige 64-bits 10.5 is Server, die niet wordt ondersteund)
· 32-bits 10.6.x Snow Leopard
· 64-bits 10.6.x Snow Leopard
· 32-bits 10.7.x Lion
· 64-bits 10.7.x Lion
· 64-bits 10.8.x Mountain Lion (er is geen 32-bits versie)
· 64-bits 10.9.x Mavericks (er is geen 32-bits versie)
· 64-bit 10.10.x Yosemite (er is geen 32-bits versie)
· 64-bit 10.11.x El Capitan (er is geen 32-bits versie)
De ondersteunde geheugenformaten zijn:
· Ruw lineair monster (dd)
· Slaapstandbestand
· Crashdumpbestand
· VirtualBox ELF64 kerndump
· Door VMware opgeslagen status- en snapshotbestanden
· EWF-formaat (E01)
· LiME (Linux Memory Extractor) formaat
· Mach-o-bestandsindeling
· QEMU virtuele machine-dumps
· FireWire
· HPAK (FDPro)
De ondersteunde adresruimten (RAM-types) zijn:
· AMD64PagedMemory - Standaard AMD 64-bits adresruimte
· ArmAddressSpace - Adresruimte voor ARM-processors
· FileAddressSpace - Dit is een direct bestand AS
· HPAKAddressSpace - Deze AS ondersteunt het HPAK-formaat
· IA32PagedMemoryPae - Deze klasse implementeert de IA-32 PAE paging-adresruimte.
Het is verantwoordelijk
· IA32PagedMemory - Standaard IA-32 paging-adresruimte
· LimeAddressSpace - Adresruimte voor Lime
· MachOAddressSpace - Adresruimte voor mach-o-bestanden ter ondersteuning van atc-ny-geheugen
lezer
· OSXPmemELF - Deze AS ondersteunt het VirtualBox ELF64 coredump-formaat
· QemuCoreDumpElf - Deze AS ondersteunt het Qemu ELF32- en ELF64 coredump-formaat
· VirtualBoxCoreDumpElf64 - Deze AS ondersteunt het VirtualBox ELF64 coredump-formaat
· VMWareAddressSpace - Deze AS ondersteunt VMware snapshot (VMSS) en opgeslagen status
(VMSS) bestanden
· VMWareMetaAddressSpace - Deze AS ondersteunt het VMEM-formaat met VMSN/VMSS
metadata
· WindowsCrashDumpSpace32 - Deze AS ondersteunt het Windows Crash Dump-formaat
· WindowsCrashDumpSpace64BitMap - Deze AS ondersteunt Windows BitMap Crash Dump
formaat
· WindowsCrashDumpSpace64 - Deze AS ondersteunt het Windows Crash Dump-formaat
· WindowsHiberFileSpace32 - Dit is een slaapadresruimte voor Windows
hibernation-bestanden
Er zijn voorbeeldgeheugenafbeeldingen voor tests op:
https://github.com/volatilityfoundation/volatiliteit/wiki/Geheugenvoorbeelden.
OPTIES
-H, --help
Maak een lijst van alle beschikbare opties en hun standaardwaarden. Standaardwaarden kunnen worden ingesteld in
het configuratiebestand (/etc/volatilityrc).
--conf-file=/root/.volatilityrc
Op gebruikers gebaseerd configuratiebestand.
-NS, --debuggen
Volatiliteit debuggen.
--plugins=PLUG-INS
Extra inpluggen te gebruiken mappen (gescheiden door dubbele punt).
--info Print informatie over alle geregistreerde objecten.
--cache-directory=/root/.cache/volatiliteit
Directory waarin cachebestanden worden opgeslagen.
--cache
Gebruik caching.
--tz=TZ
Stel de tijdzone in voor het weergeven van tijdstempels met pytz (indien geïnstalleerd) of tzset
-f BESTANDSNAAM, --filename=BESTANDSNAAM
Bestandsnaam die moet worden gebruikt bij het openen van een beeld.
--profiel=WinXPSP2x86
Naam van het te laden profiel (gebruik --info om een lijst met ondersteunde profielen te zien).
-l PLAATS, --locatie=LOCATIE
Een URN-locatie van waaruit een adresruimte moet worden geladen.
-w, --schrijven
Schrijfondersteuning inschakelen.
--dtb=DTB
DTB-adres.
--verschuiving=VERSCHUIVING
Mac KASLR shift adres.
--output=tekst
Uitvoer in dit formaat.
--output-bestand=OUTPUT_FILE
Schrijf uitvoer in dit bestand.
-in, --uitgebreid
Uitgebreide informatie.
-g KDBG, --kdbg=KDBG
Geef een specifiek virtueel KDBG-adres op. Voor 64-bits Windows 8 en hoger is dit de
adres van KdCopyDataBlock.
--kracht
Gebruik van verdacht profiel forceren.
-k KPCR, --kpcr=KPCR
Geef een specifiek KPCR-adres op.
--cookie=KOEKJE
Geef het adres van nt!ObHeaderCookie op (alleen geldig voor Windows 10).
PLUGINS EN PROFIELEN
De ondersteunde inpluggen commando's en profielen kunnen worden bekeken als het commando '$
volatiliteit --info'. Merk op dat voor Linux en MAC OSX toegestane plug-ins de 'linux_'
en 'mac_' voorvoegsels. Plug-ins zonder deze voorvoegsels zijn ontworpen voor MS Windows.
Profielen zijn kaarten die door Volatility worden gebruikt om de operationele systemen te begrijpen. De toegestane MS
Windows-profielen worden geleverd door de Volatility.
U moet uw eigen profielen maken voor Linux en MAC OSX. Lees hiervoor op Debian-systemen
het README.Debian-bestand geleverd door volatiliteit-gereedschap pakket.
Op MS Windows, om het type besturingssysteem te bepalen, kunt u het volgende gebruiken:
$ volatiliteit -f beeldinfo
or
$ volatiliteit -f kdbgscan
MILIEU VARIABELEN
Op een GNU/Linux- of OS X-systeem kunnen deze variabelen worden ingesteld:
· VOLATILITY_PROFILE - Specificeert een profiel dat als standaard moet worden gebruikt, waardoor
onnodig een '--profiel' optie.
· VOLATILITY_LOCATION - Specificeert het pad van een beeld. Dus, het Volatility-commando
heeft geen bestandsnaam nodig via '-f' optie.
· VOLATILITY_KDBG - Specificeert een KDBG-adres. Zie EXTRA PROCEDURES voor meer
details.
Overige inpluggen vlaggen kunnen op deze manier worden gebruikt, bijvoorbeeld KPCR, DTB of PLUGINS. Wanneer
variabelen exporteren, zet u gewoon VOLATILITY_ voor de vlagnaam (bijv
VOLATILITEIT_KPCR). Anders blijft de vlagnaam hetzelfde wanneer u deze toevoegt aan de
configuratiebestand.
Als u een pad heeft met een spatie of meer in de naam, moeten spaties worden vervangen door %20
in plaats daarvan (bijv. LOCATION=file:///tmp/my%20image.img).
Voorbeeld:
$ exporteren VOLATILITY_PROFILE=Win7SP0x86
$ export VOLATILITY_LOCATION=bestand:///tmp/mijnafbeelding.img
$ exporteren VOLATILITY_KDBG=0x82944c28
CONFIGURATIE FILES
Configuratiebestanden zijn meestal 'volatilityrc' in de huidige map of
'~/.volatiliteitrc' in de homedirectory van de gebruiker, of op het door de gebruiker opgegeven pad, met behulp van de --conf-
filet optie. Hieronder ziet u een voorbeeld van de bestandsinhoud:
[STANDAARD]
PROFIEL=Win7SP0x86
LOCATION=bestand:///tmp/mijnafbeelding.img
KDBG=0x82944c28
Overige inpluggen vlaggen kunnen op deze manier worden gebruikt, bijvoorbeeld KPCR, DTB of PLUGINS. Wanneer
variabelen exporteren, zet u gewoon VOLATILITY_ voor de vlagnaam (bijv
VOLATILITEIT_KPCR). Anders blijft de vlagnaam hetzelfde wanneer u deze toevoegt aan de
configuratiebestand.
Als u een pad heeft met een spatie of meer in de naam, moeten spaties worden vervangen door %20
in plaats daarvan (bijv. LOCATION=file:///tmp/my%20image.img).
EXTRA PROCEDURES
Een tijdzone instellen
Tijdstempels die uit het geheugen worden gehaald, kunnen in systeem-lokale tijd of in Universal Time zijn
Coördinaten (UTC). Als ze in UTC zijn, kan Volatiliteit worden geïnstrueerd om ze binnen een bepaalde tijd weer te geven
zone naar keuze van de analist. Gebruik een van de standaard tijdzones om een tijdzone te kiezen
namen (zoals America/Sao_Paulo, Europe/London, US/Eastern of de meeste Olson tijdzones) met
de --tz=TIMEZONE vlag.
Volatiliteit probeert pytz te gebruiken indien geïnstalleerd, anders gebruikt het tzset.
Houd er rekening mee dat het opgeven van een tijdzone geen invloed heeft op hoe systeem-lokale tijden worden weergegeven. Indien
u een tijd identificeert waarvan u weet dat deze op UTC is gebaseerd, dient u dit in als een probleem in de probleemtracker.
Standaard zijn de _EPROCESS CreateTime- en ExitTime-tijdstempels in UTC.
De DTB instellen
De DTB (Directory Table Base) is wat Volatility gebruikt om virtuele adressen naar fysieke te vertalen
adressen. Standaard wordt een kernel-DTB gebruikt (van het Idle/System-proces). Als u een wilt gebruiken
DTB van een ander proces bij toegang tot gegevens, geef het adres op aan --dtb=ADDRESS.
Het KDBG-adres instellen (dit is alleen voor Windows) optie)
Volatiliteitsscans voor de '_KDDEBUGGER_DATA64'-structuur met behulp van hardgecodeerde handtekeningen "KDBG" en
een reeks geestelijke controles. Deze handtekeningen zijn niet essentieel voor het functioneren van het besturingssysteem
goed, dus malware kan ze overschrijven in een poging tools af te werpen die wel afhankelijk zijn van de
handtekening. Bovendien kan er in sommige gevallen meer dan één '_KDDEBUGGER_DATA64' zijn (voor
bijvoorbeeld als u een grote OS-update toepast en niet opnieuw opstart), wat verwarring kan veroorzaken en kan leiden tot:
onjuiste proces- en modulelijsten, naast andere problemen. Als je het adres weet
voeg '_KDDEBUGGER_DATA64' toe, je kunt het specificeren met --kdbg=ADDRESS en dit overschrijft de geautomatiseerde
scant. Zie de kdbgscan-plug-in voor meer informatie.
Het KPCR-adres instellen (dit is alleen voor Windows) optie)
Er is één KPCR (Kernel Processor Control Region) voor elke CPU op een systeem. Enige volatiliteit
plug-ins geven informatie per processor weer. Dus als u gegevens voor een specifieke CPU wilt weergeven,
voorbeeld CPU 3 in plaats van CPU 1, u kunt het adres van de KPCR van die CPU doorgeven met --kpcr=ADDRESS.
Zie de kpcrscan-plug-in om de KPCR's voor alle CPU's te vinden. Merk ook op dat vanaf Volatility 2.2,
veel van de plug-ins, zoals idt en gdt, doorlopen automatisch de lijst met KPCR's.
Schrijfondersteuning inschakelen
Schrijfondersteuning in Volatility moet met voorzichtigheid worden gebruikt. Daarom, om het daadwerkelijk in te schakelen, moet u:
typ niet alleen --write op de opdrachtregel, maar u moet een 'wachtwoord' typen als antwoord op een vraag die:
wordt u gevraagd. In de meeste gevallen zult u geen schrijfondersteuning willen gebruiken, omdat dit kan leiden tot:
corruptie of wijziging van gegevens in uw geheugendump. Er zijn echter speciale gevallen die dit maken
functie echt interessant. U kunt bijvoorbeeld een actief systeem van bepaalde malware opschonen door:
schrijven naar RAM via firewire, of u kunt inbreken in een vergrendeld werkstation door bytes te patchen in de
winlogon DLL's.
Extra opgeven inpluggen directories
De plug-inarchitectuur van Volatility kan plug-inbestanden uit meerdere mappen tegelijk laden. In de
Volatiliteit broncode, de meeste plug-ins bevinden zich in volatiliteit/plug-ins. Er is echter nog een
directory (volatiliteit/contrib) die is gereserveerd voor bijdragen van externe ontwikkelaars, of
zwak ondersteunde plug-ins die gewoon niet standaard zijn ingeschakeld. Om toegang te krijgen tot deze plug-ins hoeft u alleen maar
typ --plugins=contrib/plugins op de opdrachtregel. Het stelt u ook in staat om een aparte map te maken
van uw eigen plug-ins die u kunt beheren zonder bestanden in de kern toe te voegen/verwijderen/aan te passen
Volatiliteit mappen.
Opmerkingen:
* Op Debian-systemen bevindt de map contrib/plugins zich op /usr/share/volatility/contrib/plugins.
* Subdirectories worden ook doorlopen zolang er een __init__.py-bestand is (dat leeg kan zijn)
binnen hen.
* De parameter to --plugins kan ook een zip-bestand zijn dat de plug-ins bevat zoals:
as --plugins=mijnplugins.zip. Vanwege de manier waarop plug-ins worden geladen, is de directory met externe plug-ins
of zip-bestand moet worden opgegeven vóór plug-in-specifieke argumenten (inclusief de naam van de
inpluggen). Voorbeeld:
$ volatiliteit --plugins=contrib/plugins -f XPSP3x86.vmem voorbeeld
Een uitvoerformaat kiezen
Standaard gebruiken plug-ins tekstrenderers voor standaarduitvoer. Als u wilt omleiden naar een bestand, moet u
kunt u natuurlijk de omleiding van de console gebruiken (dwz > out.txt) of u kunt --output-file=out.txt gebruiken.
De reden dat u ook --output=FORMAT kunt kiezen, is dat plug-ins ook uitvoer als HTML kunnen weergeven,
JSON, SQL of wat je ook kiest. Er zijn echter geen plug-ins met die alternatieve uitvoerformaten
vooraf geconfigureerd voor gebruik, dus u moet een functie toevoegen met de naam render_html, render_json, render_sql,
respectievelijk naar elke plug-in voordat u --output=HTML gebruikt.
Specifieke opties voor plug-ins
Veel plug-ins accepteren hun eigen argumenten, die onafhankelijk zijn van de algemene opties. Om de ... te zien
lijst met beschikbare opties, typt u zowel de naam van de plug-in als -h/--help op de opdrachtregel.
$ volatiliteit dlllist -h
Debug mode
Als er iets niet gebeurt in Volatility op de verwachte manier, probeer dan de opdracht uit te voeren met -d/--debug.
Hierdoor kunnen foutopsporingsberichten worden afgedrukt naar de standaardfout. Naar meer foutopsporingsniveaus, zoals bij het gebruik van
pdb debugger), voeg -d -d -d toe aan het commando.
Volatiliteit als bibliotheek gebruiken
Hoewel het mogelijk is om Volatility als bibliotheek te gebruiken (er zijn plannen om het in de toekomst beter te ondersteunen)
toekomst). Momenteel kan de volgende voorbeeldcode worden gebruikt om Volatility uit een python-script te importeren:
$ python
>>> importeer volatiliteit.conf als conf
>>> importeer volatility.registry als register
>>> register.PluginImporter()
>>> config = conf.ConfObject()
>>> importeer volatiliteit.commands als commando's
>>> importeer volatiliteit.addrspace als 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"
>>> importeer volatility.plugins.taskmods als taskmods
>>> p = taskmods.PSList(config)
>>> voor proces in p.calculate():
... afdrukproces
Voorbeelden
Om alle beschikbare plug-ins, profielen, scannercontroles en adresruimten te zien:
$ volatiliteit --info
Om een lijst te maken van alle actieve processen gevonden in een MS Windows 8 SP0 beeld:
$ volatiliteit -f win8.raw --profile=Win8SP0x86 pslist
Om een lijst te maken van alle actieve processen gevonden in een MS Windows 8 SP0 beeld, met behulp van een tijdzone:
$ volatiliteit -f win8.raw --profile=Win8SP0x86 pslist --tz=Amerika/Sao_Paulo
Om de kernelbnuffer te tonen van een Linux 3.2.63 beeld:
$ volatiliteit -f mem.dd --profile=Linux_3_2_63_x64 linux_dmesg
OPMERKINGEN
Deze manpage was gebaseerd op enkele tests en verschillende officiële documenten over volatiliteit. Voor
andere informatie en tutorials, zie:
· http://www.volatilityfoundation.org
· https://github.com/volatilityfoundation/volatiliteit/ Wiki
Gebruik online volatiliteit met onworks.net-services