🧠 Memory Forensics Artifacts Map

Карта артефактов в памяти Windows и Linux систем

🪟 Windows
🐧 Linux
⚙️

System Information

  • KDBG (Kernel Debugger Block)
    Содержит версию ОС, список процессов, загруженные модули
  • KPCR (Kernel Processor Control Region)
    Информация о процессоре, текущий поток, IDT
  • System Time
    Системное время на момент дампа памяти
📊

Process Artifacts

  • EPROCESS Structure
    PID, PPID, время создания, путь к исполняемому файлу
  • PEB (Process Environment Block)
    Командная строка, переменные окружения, загруженные DLL
  • VAD (Virtual Address Descriptors)
    Карта памяти процесса, инжектированный код
  • Handles
    Открытые файлы, ключи реестра, мьютексы
🌐

Network Artifacts

  • Network Connections
    TCP/UDP соединения, порты, IP-адреса
  • Socket Objects
    Детальная информация о сетевых сокетах
  • DNS Cache
    Кэшированные DNS записи
🔑

Registry & Security

  • Registry Hives in Memory
    SYSTEM, SOFTWARE, SAM, SECURITY
  • LSA Secrets
    Кэшированные учетные данные домена
  • Tokens
    Токены безопасности процессов
🚗

Drivers & Modules

  • Loaded Drivers
    Список загруженных драйверов и их адреса
  • SSDT (System Service Descriptor Table)
    Таблица системных вызовов, руткит-модификации
  • IRP Hooks
    Перехваченные функции драйверов
🗑️

Malware Indicators

  • Injected Code
    Код в памяти без соответствующего файла на диске
  • Hidden Processes
    Процессы, скрытые через DKOM
  • Hooked Functions
    Inline hooks, IAT hooks
🐧

System Information

  • System.map
    Символы ядра и их адреса
  • Kernel Version
    Версия и сборка ядра Linux
  • Boot Time
    Время загрузки системы
📊

Process Information

  • task_struct
    Основная структура процесса: PID, состояние, приоритет
  • mm_struct
    Карта памяти процесса, VMA
  • files_struct
    Открытые файловые дескрипторы
🌐

Network Information

  • sock Structure
    Информация о сетевых соединениях
  • Netfilter Hooks
    Правила фильтрации пакетов
  • ARP Cache
    Кэш ARP таблицы
📁

File System

  • dentry Cache
    Кэш директорий и файлов
  • inode Cache
    Метаданные файлов в памяти
  • Mount Points
    Точки монтирования файловых систем
🔌

Kernel Modules

  • Loaded Modules
    Список загруженных модулей ядра
  • Hidden Modules
    Модули, скрытые из списков
  • sys_call_table
    Таблица системных вызовов
🛡️

Security

  • Credentials
    UID, GID, capabilities процессов
  • SELinux Context
    Контексты безопасности SELinux
  • Bash History
    История команд в памяти

🔧 Volatility Essential Commands

imageinfo / windows.info
Определение профиля и основной информации о дампе
pslist / pstree
Список процессов и их иерархия
netscan / connections
Сетевые соединения и сокеты
malfind
Поиск инжектированного кода и скрытых процессов
dlllist / ldrmodules
Загруженные DLL и их проверка
cmdline
Командные строки процессов
filescan
Поиск файловых объектов в памяти
dumpfiles
Извлечение файлов из памяти
hashdump
Извлечение хешей паролей
hivelist / printkey
Работа с реестром в памяти
timeliner
Создание временной линии событий
volshell
Интерактивная оболочка для исследования

🗺️ Memory Layout Structure

Kernel Space
Ядро ОС, драйверы устройств, системные таблицы (SSDT, IDT, GDT)
Driver Space
Загруженные драйверы, их код и данные
Process Space
Код программ, загруженные библиотеки, PEB/TEB
Heap
Динамически выделенная память, объекты
Stack
Стек вызовов, локальные переменные, return адреса

💡 Memory Forensics Best Practices

Всегда сначала снимайте дамп памяти - это самые волатильные данные
🔐
Используйте проверенные инструменты для снятия дампа: WinPMEM, DumpIt, FTK Imager
🎯
Создавайте профили Volatility для нестандартных систем заранее
📊
Сравнивайте результаты разных плагинов для обнаружения руткитов
🔍
Обращайте внимание на процессы без родителя и с подозрительными путями
Документируйте временные метки для построения timeline атаки