Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
WhacAMole — Анализ оперативной памяти в реальном времени для обнаружения IOCs вредоносного ПО в процессах, модулях, дескрипторах, токенах, потоках, .NET сборках, адресном пространстве памяти и переменных окружения. Выполняет дамп, обнаружение и дизассемблирование хуков, шелл-кода, областей памяти, модулей и процессов. | Kitploit
Инструменты/GitHubGitHub/ignacioj/whacamole
Управление индикаторами компрометации (IOC)Динамический анализ (песочница)Криминалистика памятиОбратная инженерияШелл-кодОтладчикиФорензикаАнализ вредоносных программЦифровая криминалистикаАнализ Бинарных ФайловРазведка угрозРеагирование на Инциденты
4541 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
GitHubignacioj/whacamole

WhacAMole

Репозиторий

Описание

Анализ оперативной памяти в реальном времени для обнаружения IOCs вредоносного ПО в процессах, модулях, дескрипторах, токенах, потоках, .NET сборках, адресном пространстве памяти и переменных окружения. Выполняет дамп, обнаружение и дизассемблирование хуков, шелл-кода, областей памяти, модулей и процессов.

Поделиться

WhacAMole

WAM_logo

WhacAMole — это программа, которая комплексно анализирует процессы в памяти, обнаруживая и сигнализируя об аномалиях, связанных с вредоносным ПО, а также представляет и сохраняет в файлах всю соответствующую информацию для проверки, корреляции или анализа, а также дампит области памяти, процессы и подозрительные модули. Для этого он анализирует не только аномалии областей памяти процессов и загружаемых ими модулей, но и детально исследует всё используемое процессом пространство памяти. В настоящее время WhacAMole способен выявлять 67 предупреждений, связанных с вредоносным поведением или которые могут быть вызваны только вредоносным ПО. Он отображает более 70 свойств процессов, памяти и модулей, сравнивая многие их атрибуты, считанные из памяти, с теми, что присутствуют в соответствующем файле на диске, частично дизассемблирует подозрительные области памяти и частично дизассемблирует экспортированные функции, измененные в памяти, чтобы аналитики могли проводить собственные расследования.

Modificación de función por malware

В отличие от других подобных программ, он предоставляет аналитикам всю соответствующую информацию о процессах, помечая характеристики, связанные с вредоносным ПО, различными предупреждениями, чтобы они могли провести собственный анализ или найти другие признаки существования вредоносных процессов. Предупреждения классифицируются по степени опасности и количеству процессов, в которых проявляется одно и то же поведение, по шестибалльной шкале, отображаемой в HTML-документе с цветовой шкалой, где 6 (черный цвет) указывает на более высокую вероятность того, что обнаруженная характеристика вызвана вредоносным ПО, а 1 (серый цвет) — на то, что, хотя поведение и аномально, такое же поведение наблюдалось во многих системных процессах:

Color codes

Для облегчения работы аналитиков информация выводится на экран, в HTML-файл с панелью навигации по проанализированным процессам и в CSV-текстовые файлы. На боковой панели HTML-документа отображается дерево процессов с цветом, соответствующим самому высокому обнаруженному в них предупреждению, с гиперссылкой на его местоположение в документе, и с синим цветом PID, если это 32-битный процесс, или зеленым, если это .NET-процесс. Процессы, для которых включена Control Flow Guard (CFG), отображаются курсивом.

Tree1

Информация об удаленных сеансах RDP отображается в начале информации о процессе:

RDP

Сетевая активность отображается двумя способами: если обнаружено TCP-соединение, оно отображается символом земного шара, а если обнаружен подключенный сокет, он отображается символом пустого шара. Добавлен символ (белый кружок) для процессов с библиотеками навигации HTTP в памяти: wininet.dll и winhttp.dll.

TreeTCPSocket

Детали сети:

TCPDetail

Подключенный сокет:

socketDetail

Существует специальный символ (ключ), когда обнаружена активность, похожая на Mimikatz.

socketDetail

В нижней части панели навигации HTML-документа отображаются все предупреждения с их цветом и PID процессов, в которых они были обнаружены, в виде гиперссылки на позицию документа, где показан процесс.

Detections

Если процессы с предупреждением не обнаружены, их имя отображается на белом фоне.

На главной панели отображаются все процессы с их информацией в сворачиваемых разделах, которые по умолчанию скрыты. Все предупреждения всегда видны.

socketDetail

Сохраненные области памяти подвергаются XOR с ключом 0x0E, чтобы антивирусы не удалили их.

Анализировать, сравнивать и представлять информацию из:

1. Процессы:

  • Имя процесса.
  • Размер файла.
  • PID процесса.
  • PPID процесса.
  • TCP и UDP сетевые соединения.
  • Сообщает, отображается ли процесс в четырех списках PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList и LdrpHashTable.
  • Сообщает, виден ли процесс в памяти (VAD).
  • Информация о Rich Header.
  • Экспортированные функции, считанные из памяти и из файла.
  • Импортированные функции.
  • Модули отложенного импорта.
  • Защита памяти, выделенной под модуль процесса.
  • Тип памяти.
  • Точка входа процесса, считанная из памяти.
  • Точка входа процесса, считанная из файла.
  • Адрес памяти процесса.
  • Разделы PE, считанные из памяти и из файла. Оба отображаются только в случае различий.
  • Размер секции данных PE.
  • Характеристики исполняемого файла (DLLCharacteristics).
  • Основной номер версии образа (MajorImageVersion).
  • Оригинальная и вычисленная контрольные суммы.
  • Из ресурса VERSIONINFO, считанного из памяти и из файла, отображаются значения: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • ID сеанса процесса, полученный от Local Security Authority (LSA).
  • ID сеанса, видимый из процесса.
  • Локально-уникальный идентификатор (LUID) сеанса входа.
  • Локально-уникальный идентификатор (LUID) сеанса входа процесса, из которого он происходит.
  • Целостность токена.
  • Тип токена.
  • Тип входа.
  • Используемый пакет аутентификации.
  • Пользователь и домен.
  • Идентификатор безопасности (SID) пользователя.
  • Членство в группе локальных администраторов.
  • Командная строка процесса.
  • Путь к файлу процесса. Отображает FullName из VAD и PEB, если они различаются.
  • Текущий рабочий каталог (CWD) процесса.
  • Формат PE: x86/x64.
  • Тип целевой машины (Target Machine).
  • Дата и время создания процесса.
  • Время, прошедшее с момента запуска системы до создания процесса.
  • Подпись PE.
  • Адрес файла базы данных программы (.pdb), считанный из памяти и из файла.
  • Дата и время, полученные из IMAGE_FILE_HEADER, считанного из памяти и из файла.
  • Дата и время, полученные из IMAGE_DEBUG_DIRECTORY, считанного из памяти и из файла.
  • Дата и время, полученные из IMAGE_EXPORT_DIRECTORY, считанного из памяти и из файла.

• Предупреждения:

root@kitploit:~
[Admin Privs]
[Alternate credentials]
[Alternate network credentials]
[Delphi 4 – Delphi 2006]
[Entry Point]
[LogonType]
[Managed code but no Assemblies detected - .NET ETW disabled]
[Mismatching Path]
[Name of the module hidden in memory]
[NTLM Authentication]
[PE anomalies]
[PEB ImageBaseAddress forgery]
[Possible .NET in memory loaded as Assembly.Load(byte[])]
[Process checkSum is 0]
[Process checkSum mismatch]
[Process Ghosting]
[Process Hollowing]
[Process Memory region hash mismatch]
[Process Memory region Protection value modified]
[Process Memory region WX]
[Process Name != Internal Name]
[PROCESS NOT SIGNED]
[Process Private memory region]
[Process Unknown executable memory region]
[Section Table]
[Shared memory subversion]
[SizeOfInitializedData is 0]
[SUSPENDED PROCESS]
[Suspicious Commandline]
[Suspicious Environment Variable]
[TimeDateStamp Inequality]
[Transaction detected: TxF/TxR]
[Unmanaged process/managed code execution detected]
[Unusual CWD]

Processes

2. Модули:

  • Имя модуля.
  • Размер файла.
  • Путь к файлу. Отображает FullName из VAD и PEB, если они различаются.
  • Сообщает, отображается ли процесс в четырех списках PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList и LdrpHashTable.
  • Сообщает, виден ли процесс в памяти (VAD).
root@kitploit:~
What you would expect to see in a normal module is LMIVH:
L = InLoadOrderModuleList(PEB).
M = InMemoryOrderModuleList (PEB).
I = InInitializationOrderModuleList (PEB).
V = Detected in the virtual memory of the process.
H = Detected in the PEB hash list.

If it has been unlinked from the three PEB linked lists you would see:
    ---VH

If the module is loaded manually by the malware it would not appear in any of the PEB lists but it could be detected by scanning the memory,
so It would appear as:
    −−−V−

With the DLL Hollowing with Moat technique (see https://github.com/forrest-orr/artifacts-kit for a POC) the result would be:
    -----
  • Информация о Rich Header.
  • Экспортированные функции, считанные из памяти и из файла.
  • Защита памяти, выделенной под модуль.
  • Тип памяти.
  • Точка входа процесса, считанная из памяти.
  • Точка входа процесса, считанная из файла.
  • Адрес памяти процесса.
  • Разделы PE, считанные из памяти и из файла. Оба отображаются только в случае различий.
  • Размер секции данных PE.
  • Характеристики исполняемого файла (DLLCharacteristics).
  • Основной номер версии образа (MajorImageVersion).
  • Оригинальная и вычисленная контрольные суммы.
  • Формат PE: x86/x64.
  • Тип целевой машины (Target Machine).
  • Дата и время загрузки модуля в память.
  • Из ресурса VERSIONINFO, считанного из памяти и из файла, отображаются значения: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • Подпись PE.
  • Адрес файла базы данных программы (.pdb), считанный из памяти и из файла.
  • Дата и время, полученные из IMAGE_FILE_HEADER, считанного из памяти и из файла.
  • Дата и время, полученные из IMAGE_DEBUG_DIRECTORY, считанного из памяти и из файла.
  • Дата и время, полученные из IMAGE_EXPORT_DIRECTORY, считанного из памяти и из файла.
  • Дата и время, полученные из IMAGE_RESOURCE_DIRECTORY, считанного из памяти и из файла.
  • SHA1 хеш файла.
  • Информация о том, является ли он исполняемым файлом .NET и версия CLR.

• Предупреждения:

root@kitploit:~
[Abnormal PE Header]
[Delphi 4 – Delphi 2006]
[DLL Hiding]
[DLL Hollowing]
[Mismatching Path]
[Module checkSum is 0]
[Module checkSum mismatch]
[Module Name != OriginalFileName]
[MODULE NOT SIGNED]
[Module PE anomalies]
[Module SizeOfInitializedData is 0]
[Module TimeDateStamp Inequality]
[Name of the module hidden in memory]
[Phantom DLL Hollowing TxF]
[Private memory region]
[Section Table]
[Signed PE NOT MEM_IMAGE]
[Unsigned PE NOT MEM_IMAGE]
[Unusual module]

Modules

3. Дескрипторы: Отображаются все дескрипторы процесса типов File, Key, Mutant, Process, Thread, Token и Section. В зависимости от типа дескриптора отображается следующая информация:

Файл: Полный адрес файла.

Handle File

NamedPipe: Клиентский процесс, серверный процесс, предоставленный доступ, адрес объекта в ядре.

Named pipe

Ключ: Полный адрес ключа, к которому осуществляется доступ.

Handle Key

Mutant: Имя мьютекса.

Mutant

Процесс: ID процесса, имя процесса, предоставленный доступ, адрес объекта в ядре.

Handle Process

Поток: Имя процесса, ID процесса, ID потока, предоставленный доступ, адрес объекта в ядре.

Handle Thread

Токен: Идентификатор безопасности (SID) пользователя, пользователь и домен, локально-уникальный идентификатор (LUID) сеанса входа, тип токена.

Handle Token

Section: имя объекта, ID дескриптора, адрес памяти, размер, свойства выделения памяти, точка входа модуля (если применимо), разрешенный доступ, адрес объекта в ядре.

Handle Section

• Предупреждения:

root@kitploit:~
[Handle-Section Phantom DLL Hollowing TxF]
[Handle-Section Suspicious: Injection]
[Pipe Handle to another process]
[Process Handle to another process]
[ShadowMove Lateral Movement]

4. Токены: В потоках, где обнаружен токен, отображается следующее:

  • ID потока.
  • Состояние потока.
  • Пользователь и домен.
  • Локально-уникальный идентификатор (LUID) сеанса входа.
  • Локально-уникальный идентификатор (LUID) сеанса входа, из которого он произошел.
  • Тип токена.
  • Целостность токена.

• Предупреждения:

root@kitploit:~
[Thread with TOKEN]

Tokens

5. Потоки:

  • ID потока.
  • Адрес запуска потока.
  • Полный адрес модуля.
  • Состояние.
  • Стек вызовов.

• Предупреждения:

root@kitploit:~
[Thread-Memory NOT MEM_IMAGE]
[Thread-Possible Ekko technique]
[Thread-Possible Foliage technique]
[Thread-Unknown module in Stack]

Threads

6. Сборки .NET

  • Домены приложений.
  • Полный адрес файла.

• Предупреждения:

root@kitploit:~
[.NET Assembly w/o ILPath]

NET

7. Адресное пространство памяти. Отображает для всех областей памяти процесса значения:

  • Адрес памяти.
  • Защита.
  • Состояние.
  • Тип.
  • Имя файла, считанное из VAD.
  • Размер области.
  • Базовый адрес, к которому относится выделение.
  • Начальная защита выделения памяти.

• Предупреждения:

root@kitploit:~
[Executable memory region not MEM_IMAGE]
[Hidden PE]
[Lagos Island Method]
[Mapped Image]
[Memory region hash]
[Memory region Protection value modified]
[Memory region WX]
[Memory/File values mismatch]
[Moat detected]
[MZ/PE Not Present]
[Shellcode]
[Unknown executable memory region]

Memory

Memory

Скачать инструмент
  • Дата и время, полученные из IMAGE_RESOURCE_DIRECTORY, считанного из памяти и из файла.
  • SHA1 хеш файла.
  • Информация о том, является ли он исполняемым файлом .NET и версия CLR.
  • Информация о том, обнаружена ли NTFS или транзакционная запись (TxF/TxR) в процессе.
  • Поиск подозрительных переменных окружения.
  • Проверка состояния потоков.
  • Получение запущенных задач в системе, связанных с каждым процессом.