Đây là sự biến động của lệnh có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
biến động - khung pháp y bộ nhớ nâng cao
SYNOPSIS
biến động [tùy chọn]
biến động -f [hình ảnh] --Hồ sơ= [hồ sơ] [Plugin]
MÔ TẢ
Khung biến động là một bộ sưu tập các công cụ hoàn toàn mở để khai thác
hiện vật kỹ thuật số từ các mẫu bộ nhớ dễ bay hơi (RAM). Nó rất hữu ích trong phân tích pháp y.
Các kỹ thuật khai thác được thực hiện hoàn toàn độc lập với hệ thống
đã điều tra nhưng cung cấp khả năng hiển thị chưa từng có về trạng thái thời gian chạy của hệ thống.
Tính thay đổi hỗ trợ một số phiên bản của MS Windows, Linux và MAC OSX:
Hệ điều hành Windows:
· Windows XP Gói dịch vụ 32 và 2 3-bit
· Gói dịch vụ máy chủ Windows 32 2003-bit 0, 1, 2
· Gói dịch vụ Windows Vista 32-bit 0, 1, 2
· 32-bit Windows 2008 Server Service Pack 1, 2 (không có SP0)
· Gói dịch vụ Windows 32 7-bit 0, 1
· 32-bit Windows 8, 8.1 và 8.1 Cập nhật 1
· Windows 32 10-bit (hỗ trợ ban đầu)
· Windows XP Gói Dịch vụ 64 và 1 2-bit (không có SP0)
· 64-bit Windows 2003 Server Service Pack 1 và 2 (không có SP0)
· Gói dịch vụ Windows Vista 64-bit 0, 1, 2
· 64-bit Windows 2008 Server Service Pack 1 và 2 (không có SP0)
· 64-bit Windows 2008 R2 Server Service Pack 0 và 1
· 64-bit Windows 7 Service Pack 0 và 1
· 64-bit Windows 8, 8.1 và 8.1 Cập nhật 1
· Windows Server 64 và 2012 R2012 2-bit
· Windows 64 10-bit (hỗ trợ ban đầu)
Linux:
· Nhân Linux 32-bit 2.6.11 đến 4.2.3
· Nhân Linux 64-bit 2.6.11 đến 4.2.3
· OpenSuSE, Ubuntu, Debian, CentOS, Fedora, Mandriva, v.v.
Mac OS X:
· 32-bit 10.5.x Leopard (64-bit 10.5 duy nhất là Máy chủ, không được hỗ trợ)
· Báo tuyết 32-bit 10.6.x
· Báo tuyết 64-bit 10.6.x
· Sư tử 32-bit 10.7.x
· Sư tử 64-bit 10.7.x
· Mountain Lion 64-bit 10.8.x (không có phiên bản 32-bit)
· Mavericks 64.x 10.9-bit (không có phiên bản 32-bit)
· 64-bit 10.10.x Yosemite (không có phiên bản 32-bit)
· 64-bit 10.11.x El Capitan (không có phiên bản 32-bit)
Các định dạng bộ nhớ được hỗ trợ là:
· Mẫu tuyến tính thô (dd)
· Tập tin ngủ đông
· Tệp kết xuất sự cố
· Kết xuất lõi VirtualBox ELF64
· Trạng thái lưu VMware và các tệp ảnh chụp nhanh
· Định dạng EWF (E01)
· Định dạng LiME (Linux Memory Extractor)
· Định dạng tệp Mach-o
· Máy ảo QEMU kết xuất
· dây lửa
· HPAK (FDPro)
Các không gian địa chỉ được hỗ trợ (loại RAM) là:
· AMD64PagedMemory - Không gian địa chỉ AMD 64-bit tiêu chuẩn
· ArmAddressSpace - Không gian địa chỉ cho bộ xử lý ARM
· FileAddressSpace - Đây là một tệp trực tiếp AS
· HPAKAddressSpace - AS này hỗ trợ định dạng HPAK
· IA32PagedMemoryPae - Lớp này thực hiện không gian địa chỉ phân trang IA-32 PAE.
Nó có trách nhiệm
· IA32PagedMemory - Không gian địa chỉ phân trang tiêu chuẩn IA-32
· LimeAddressSpace - Không gian địa chỉ cho Lime
· MachOAddressSpace - Không gian địa chỉ cho các tệp mach-o để hỗ trợ bộ nhớ atc-ny
đọc
· OSXPmemELF - AS này hỗ trợ định dạng coredump VirtualBox ELF64
· QemuCoreDumpElf - AS này hỗ trợ định dạng coredump Qemu ELF32 và ELF64
· VirtualBoxCoreDumpElf64 - AS này hỗ trợ định dạng coredump VirtualBox ELF64
· VMWareAddressSpace - AS này hỗ trợ VMware snapshot (VMSS) và trạng thái đã lưu
(VMSS) tệp
· VMWareMetaAddressSpace - AS này hỗ trợ định dạng VMEM với VMSN / VMSS
siêu dữ liệu
· WindowsCrashDumpSpace32 - AS này hỗ trợ định dạng Crash Dump của windows
· WindowsCrashDumpSpace64BitMap - AS này hỗ trợ Windows BitMap Crash Dump
định dạng
· WindowsCrashDumpSpace64 - AS này hỗ trợ định dạng Crash Dump của windows
· WindowsHiberFileSpace32 - Đây là không gian địa chỉ ngủ đông cho windows
tập tin ngủ đông
Có các hình ảnh bộ nhớ mẫu cho các bài kiểm tra tại
https://github.com/volatilityfoundation/biến động/ wiki / Memory-Mẫu.
LỰA CHỌN
-NS, --Cứu giúp
Liệt kê tất cả các tùy chọn có sẵn và giá trị mặc định của chúng. Giá trị mặc định có thể được đặt trong
tệp cấu hình (/ etc / volualityrc).
--conf-file = / root / .volabilityrc
Tệp cấu hình dựa trên người dùng.
-NS, --gỡ lỗi
Sự biến động gỡ lỗi.
--plugins = PLUGINS
thêm vào Plugin thư mục sử dụng (phân cách bằng dấu hai chấm).
--thông tin In thông tin về tất cả các đối tượng đã đăng ký.
--cache-directory = / root / .cache / biến động
Thư mục nơi lưu trữ các tệp bộ đệm.
--bộ nhớ đệm
Sử dụng bộ nhớ đệm.
--tz = TZ
Đặt múi giờ để hiển thị dấu thời gian bằng pytz (nếu được cài đặt) hoặc tzset
-f TÊN TỆP, --filename = FILENAME
Tên tệp để sử dụng khi mở một hình ảnh.
--profile = WinXPSP2x86
Tên của cấu hình cần tải (sử dụng --thông tin để xem danh sách các cấu hình được hỗ trợ).
-l VỊ TRÍ, --location = LOCATION
Vị trí URN để tải vùng địa chỉ.
-w, --viết
Bật hỗ trợ ghi.
--dtb = DTB
Địa chỉ DTB.
--shift = SHIFT
Mac KASLR thay đổi địa chỉ.
--output = văn bản
Đầu ra ở định dạng này.
--output-file = OUTPUT_FILE
Ghi đầu ra trong tệp này.
-v, --dài dòng
Thông tin chi tiết.
-g KDBG, --kdbg = KDBG
Chỉ định một địa chỉ ảo KDBG cụ thể. Đối với Windows 64 8-bit trở lên, đây là
địa chỉ của KdCopyDataBlock.
--lực lượng
Lực lượng sử dụng hồ sơ tình nghi.
-k KPCR, --kpcr = KPCR
Chỉ định một địa chỉ KPCR cụ thể.
--cookie = COOKIE
Chỉ định địa chỉ của nt! ObHeaderCookie (chỉ dành cho Windows 10).
PLUGINS VÀ HỒ SƠ
Được hỗ trợ Plugin các lệnh và cấu hình có thể được xem nếu sử dụng lệnh '$
biến động --thông tin'. Lưu ý rằng các plugin cho phép Linux và MAC OSX sẽ có 'linux_'
và tiền tố 'mac_'. Các plugin không có tiền tố này được thiết kế cho MS Windows.
Hồ sơ là bản đồ được sử dụng bởi Biến động để hiểu các hệ thống hoạt động. MS được phép
Các cấu hình Windows được cung cấp bởi Biến động.
Bạn phải tạo cấu hình của riêng mình cho Linux và MAC OSX. Đối với điều này, trên hệ thống Debian, hãy đọc
tệp README.Debian được cung cấp bởi biến động- gói công cụ.
Trên MS Windows, để xác định loại hệ điều hành, bạn có thể sử dụng:
$ biến động -f imageinfo
or
$ biến động -f kdbgscan
MÔI TRƯỜNG BIẾN
Trên hệ thống GNU / Linux hoặc OS X, các biến này có thể được đặt:
· VOLATILITY_PROFILE - Chỉ định một cấu hình được sử dụng làm mặc định, làm cho
không cần thiết một '--Hồ sơ' tùy chọn.
· VOLATILITY_LOCATION - Chỉ định đường dẫn của một hình ảnh. Vì vậy, lệnh Biến động
sẽ không cần tên tệp qua '-f' tùy chọn.
· VOLATILITY_KDBG - Chỉ định địa chỉ KDBG. Xem THỦ TỤC CHI TIẾT để biết thêm
chi tiết.
Nền tảng khác Plugin cờ có thể được sử dụng theo cách này, ví dụ như KPCR, DTB hoặc PLUGINS. Khi nào
xuất biến, chỉ cần đặt tiền tố VOLATILITY_ trước tên cờ (ví dụ:
VOLATILITY_KPCR). Nếu không, tên cờ vẫn giữ nguyên khi thêm nó vào
tập tin cấu hình.
Nếu bạn có một đường dẫn với khoảng trắng trở lên trong tên, thì khoảng trắng phải được thay thế bằng% 20
thay vào đó (ví dụ: LOCATION = file: ///tmp/my%20image.img).
Ví dụ:
$ export VOLATILITY_PROFILE = Win7SP0x86
$ export VOLATILITY_LOCATION = file: ///tmp/myimage.img
$ xuất VOLATILITY_KDBG = 0x82944c28
CẤU HÌNH CÁC TẬP TIN
Các tệp cấu hình thường là 'volualityrc' trong thư mục hiện tại hoặc
'~ / .volabilityrc'trong thư mục chính của người dùng hoặc tại đường dẫn do người dùng chỉ định, sử dụng --conf-
hồ sơ tùy chọn. Dưới đây là một ví dụ về nội dung tệp:
[MẶC ĐỊNH]
PROFILE = Win7SP0x86
LOCATION = file: ///tmp/myimage.img
KDBG = 0x82944c28
Nền tảng khác Plugin cờ có thể được sử dụng theo cách này, ví dụ như KPCR, DTB hoặc PLUGINS. Khi nào
xuất biến, chỉ cần đặt tiền tố VOLATILITY_ trước tên cờ (ví dụ:
VOLATILITY_KPCR). Nếu không, tên cờ vẫn giữ nguyên khi thêm nó vào
tập tin cấu hình.
Nếu bạn có một đường dẫn với khoảng trắng trở lên trong tên, thì khoảng trắng phải được thay thế bằng% 20
thay vào đó (ví dụ: LOCATION = file: ///tmp/my%20image.img).
EXTRA QUY TRÌNH
Đặt múi giờ
Dấu thời gian được trích xuất từ bộ nhớ có thể theo giờ địa phương hệ thống hoặc theo Giờ quốc tế
Tọa độ (UTC). Nếu chúng đang ở UTC, có thể hướng dẫn cho bạn thấy sự biến động để hiển thị chúng trong một khoảng thời gian
khu vực mà nhà phân tích lựa chọn. Để chọn múi giờ, hãy sử dụng một trong các múi giờ chuẩn
tên (chẳng hạn như Châu Mỹ / Sao_Paulo, Châu Âu / Luân Đôn, Hoa Kỳ / Miền Đông hoặc hầu hết các múi giờ Olson) với
cờ --tz = TIMEZONE.
Tính thay đổi cố gắng sử dụng pytz nếu được cài đặt, nếu không nó sẽ sử dụng tzset.
Xin lưu ý rằng việc chỉ định múi giờ sẽ không ảnh hưởng đến cách hiển thị giờ địa phương của hệ thống. Nếu như
bạn xác định thời gian mà bạn biết là dựa trên UTC, vui lòng gửi nó dưới dạng một vấn đề trong trình theo dõi vấn đề.
Theo mặc định, dấu thời gian _EPROCESS CreateTime và ExitTime ở UTC.
Đặt DTB
DTB (Cơ sở bảng thư mục) là thứ mà Volatile sử dụng để dịch các địa chỉ ảo sang địa chỉ vật lý
các địa chỉ. Theo mặc định, một DTB nhân được sử dụng (từ quy trình Chờ / Hệ thống). Nếu bạn muốn sử dụng một
DTB của quy trình khác nhau khi truy cập dữ liệu, hãy cung cấp địa chỉ cho --dtb = ADDRESS.
Đặt địa chỉ KDBG (đây là địa chỉ chỉ dành cho Windows tùy chọn)
Sự biến động quét cấu trúc '_KDDEBUGGER_DATA64' bằng cách sử dụng chữ ký được mã hóa cứng "KDBG" và
một loạt các kiểm tra sự tỉnh táo. Những chữ ký này không quan trọng đối với hệ điều hành hoạt động
đúng cách, do đó phần mềm độc hại có thể ghi đè lên chúng để cố gắng loại bỏ các công cụ dựa vào
Chữ ký. Ngoài ra, trong một số trường hợp, có thể có nhiều hơn một '_KDDEBUGGER_DATA64' (đối với
ví dụ nếu bạn áp dụng một bản cập nhật hệ điều hành lớn và không khởi động lại), điều này có thể gây nhầm lẫn và dẫn đến
danh sách quy trình và mô-đun không chính xác, trong số các vấn đề khác. Nếu bạn biết địa chỉ
thêm '_KDDEBUGGER_DATA64', bạn có thể chỉ định nó bằng --kdbg = ADDRESS và điều này sẽ ghi đè tự động
quét. Để biết thêm thông tin, hãy xem plugin kdbgscan.
Đặt địa chỉ KPCR (đây là chỉ dành cho Windows tùy chọn)
Có một KPCR (Vùng điều khiển bộ xử lý nhân) cho mỗi CPU trên hệ thống. Một số biến động
plugin hiển thị thông tin về mỗi bộ xử lý. Vì vậy, nếu bạn muốn hiển thị dữ liệu cho một CPU cụ thể, hãy
ví dụ CPU 3 thay vì CPU 1, bạn có thể chuyển địa chỉ của KPCR của CPU đó với --kpcr = ADDRESS.
Để định vị KPCR cho tất cả các CPU, hãy xem plugin kpcrscan. Cũng lưu ý rằng bắt đầu trong Biến động 2.2,
nhiều plugin như idt và gdt tự động lặp lại qua danh sách KPCR.
Bật hỗ trợ ghi
Ghi hỗ trợ trong Biến động nên được sử dụng một cách thận trọng. Do đó, để thực sự kích hoạt nó, bạn phải
không chỉ gõ --write trên dòng lệnh mà bạn phải nhập 'mật khẩu' để trả lời câu hỏi
bạn sẽ được nhắc với. Trong hầu hết các trường hợp, bạn sẽ không muốn sử dụng hỗ trợ viết vì nó có thể dẫn đến
tham nhũng hoặc sửa đổi dữ liệu trong kết xuất bộ nhớ của bạn. Tuy nhiên, vẫn tồn tại những trường hợp đặc biệt khiến điều này
tính năng thực sự thú vị. Ví dụ: bạn có thể làm sạch một hệ thống trực tiếp của một số phần mềm độc hại nhất định bằng cách
ghi vào RAM qua firewire hoặc bạn có thể đột nhập vào một máy trạm bị khóa bằng cách vá các byte trong
winlogon DLL.
Chỉ định bổ sung Plugin thư mục
Kiến trúc plugin của Volatile có thể tải các tệp plugin từ nhiều thư mục cùng một lúc. bên trong
Mã nguồn biến động, hầu hết các plugin đều nằm trong các phần bổ trợ / plugin biến động. Tuy nhiên, có một
thư mục (biến động / đóng góp) được dành riêng cho các đóng góp từ các nhà phát triển bên thứ ba, hoặc
các plugin được hỗ trợ yếu mà chỉ đơn giản là không được bật theo mặc định. Để truy cập các plugin này, bạn chỉ cần
gõ --plugins = Contrib / plugins trên dòng lệnh. Nó cũng cho phép bạn tạo một thư mục riêng
trong số các plugin của riêng bạn mà bạn có thể quản lý mà không cần phải thêm / xóa / sửa đổi các tệp trong lõi
Các thư mục biến động.
Ghi chú:
* Trên hệ thống Debian, thư mục Contrib / plugins có tại / usr / share / voluality / Contrib / plugins.
* Các thư mục con cũng sẽ được duyệt miễn là có tệp __init__.py (tệp này có thể trống)
trong họ.
* Tham số đến --plugins cũng có thể là một tệp zip chứa các plugin như
dưới dạng --plugins = myplugins.zip. Do cách các plugin được tải, thư mục plugin bên ngoài
hoặc tệp zip phải được chỉ định trước bất kỳ đối số dành riêng cho plugin nào (bao gồm cả tên của
cắm vào). Thí dụ:
Ví dụ về $ biến động --plugins = Contrib / plugins -f XPSP3x86.vmem
Chọn định dạng đầu ra
Theo mặc định, các plugin sử dụng trình kết xuất văn bản cho đầu ra tiêu chuẩn. Nếu bạn muốn chuyển hướng đến một tệp, bạn
tất nhiên có thể sử dụng chuyển hướng của bảng điều khiển (tức là> out.txt) hoặc bạn có thể sử dụng --output-file = out.txt.
Lý do bạn cũng có thể chọn --output = FORMAT là để cho phép các plugin cũng hiển thị đầu ra dưới dạng HTML,
JSON, SQL hoặc bất cứ thứ gì bạn chọn. Tuy nhiên, không có plugin nào với các định dạng đầu ra thay thế đó
được định cấu hình trước để sử dụng, vì vậy bạn sẽ cần thêm một hàm có tên là render_html, render_json, render_sql,
tương ứng với từng plugin trước khi sử dụng --output = HTML.
Các tùy chọn cụ thể của plugin
Nhiều plugin chấp nhận các đối số của riêng chúng, độc lập với các tùy chọn chung. Để xem
danh sách các tùy chọn có sẵn, nhập cả tên plugin và -h / - trợ giúp trên dòng lệnh.
dlllist $ biến động -h
Chế độ kiểm tra sửa lỗi
Nếu điều gì đó không xảy ra trong Biến động theo cách mong đợi, hãy thử chạy lệnh với -d / - gỡ lỗi.
Điều này sẽ cho phép in thông báo gỡ lỗi thành lỗi chuẩn. Để có nhiều cấp độ gỡ lỗi hơn, như trong việc sử dụng
trình gỡ lỗi pdb), thêm -d -d -d vào lệnh.
Sử dụng Biến động làm thư viện
Mặc dù có thể sử dụng Biến động làm thư viện, (có những kế hoạch để hỗ trợ nó tốt hơn trong
Tương lai). Hiện tại, để nhập Biến động từ tập lệnh python, mã ví dụ sau có thể được sử dụng:
$trăn
>>> nhập biến động.conf dưới dạng conf
>>> nhập khẩu biến động. đăng ký làm sổ đăng ký
>>> registry.PluginImporter ()
>>> config = conf.ConfObject ()
>>> nhập các lệnh biến động dưới dạng lệnh
>>> nhập không gian biến động.addrspace làm vùng thêm
>>> registry.register_global_options (cấu hình, các lệnh.Command)
>>> registry.register_global_options (config, addrspace.BaseAddressSpace)
>>> config.parse_options ()
>>> config.PROFILE = "WinXPSP2x86"
>>> config.LOCATION = "file: ///media/memory/private/image.dmp"
>>> nhập biến động.plugins.taskmods dưới dạng taskmods
>>> p = taskmods.PSList (config)
>>> cho quá trình trong p.calculate ():
... quá trình in
VÍ DỤ
Để xem tất cả các plugin, cấu hình, kiểm tra máy quét và không gian địa chỉ có sẵn:
$ biến động --info
Để liệt kê tất cả các quy trình đang hoạt động được tìm thấy trong MS Windows 8 SP0 hình ảnh:
$ biến động -f win8.raw --profile = Win8SP0x86 pslist
Để liệt kê tất cả các quy trình đang hoạt động được tìm thấy trong MS Windows 8 SP0 hình ảnh, sử dụng múi giờ:
$ biến động -f win8.raw --profile = Win8SP0x86 pslist --tz = America / Sao_Paulo
Để hiển thị bnuffer kernel từ Linux 3.2.63 hình ảnh:
$ biến động -f mem.dd --profile = Linux_3_2_63_x64 linux_dmesg
GHI CHÚ
Trang này dựa trên một số thử nghiệm và một số tài liệu chính thức về Biến động. Vì
thông tin và hướng dẫn khác, xem:
· http://www.volatilityfoundation.org
· Https://github.com/volposefoundation/biến động/ wiki
Sử dụng sự biến động trực tuyến bằng cách sử dụng các dịch vụ onworks.net