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

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

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

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

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

Категории

Все категории
Loading categories
sharem — SHAREM — это фреймворк для анализа шеллкода, способный эмулировать более 45 000 WinAPI и практически все системные вызовы Windows. Он также содержит собственный кастомный дизассемблер со множеством инновационных функций, таких как возможность отображать деобфусцированное дизассемблирование закодированного шеллкода или интегрировать данные эмуляции для улучшения дизассемблирования. | Kitploit
Инструменты/GitHubGitHub/bw3ll/sharem
Динамический анализ (песочница)Обратная инженерияШелл-кодОтладчикиФаззингАнализ вредоносных программАнализ Бинарных ФайловБезопасность ИИ
GitHubbw3ll/sharem

sharem

Репозиторий
491685 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Описание

SHAREM — это фреймворк для анализа шеллкода, способный эмулировать более 45 000 WinAPI и практически все системные вызовы Windows. Он также содержит собственный кастомный дизассемблер со множеством инновационных функций, таких как возможность отображать деобфусцированное дизассемблирование закодированного шеллкода или интегрировать данные эмуляции для улучшения дизассемблирования.

Поделиться

SHAREM

Добро пожаловать в SHAREM!

SHAREM был представлен на DEFCON 31 в докладе «Game-Changing Advances in Windows Shellcode Analysis» и на Black Hat USA Arsenal. Компаньон-плагин для Ghidra был выпущен (отдельно) компанией Trellix, любезно предоставленный Максом Керстеном. Таким образом, вы можете расширить возможности SHAREM на Ghidra, если захотите.

SHAREM предназначен быть главным инструментом для работы с Windows-шеллкодами, с поддержкой эмуляции более 45 000 WinAPI, практически всех пользовательских режимов системных вызовов Windows, и SHAREM предоставляет множество новых функций. SHAREM содержит эмулятор, дизассемблер, вневременную отладку, деобфускацию методом грубой силы и многие другие возможности. Эмулятор SHAREM также может отображать полные структуры (или даже структуры внутри структур) и позволяет закодированному шеллкоду деобфусцировать себя. SHAREM записывает вывод всех проанализированных WinAPI и системных вызовов Windows, а также разбивает каждый из них на множество категорий и подкатегорий. Полное покрытие кода SHAREM также позволяет обнаруживать недостижимую функциональность.

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

Мы создали SHAREM Wiki, которая содержит некоторую обучающую информацию по использованию SHAREM, хотя значительные части и функции в настоящее время не задокументированы. SHAREM разрабатывался в течение двух лет с участием нескольких человек. Дизассемблер SHAREM значительно точнее, чем ведущие дизассемблеры. Кроме того, SHAREM может интегрировать данные эмуляции в дизассемблер, что позволяет получить почти безупречное дизассемблирование.

Пожалуйста, имейте в виду, что SHAREM только что выпущен, поэтому документация здесь немного скудная. Мы обновим GitHub дополнительной информацией в ближайшие недели.

Если вы новичок в SHAREM, можете посмотреть краткое демонстрационное видео, демонстрирующее некоторые его возможности. Нажмите на изображение, чтобы посмотреть демо: Watch the video

Последние обновления

Март 2026: SHAREM загружает до 61 DLL при запуске, но с последним обновлением теперь может поддерживать 369 DLL и 45538 уникальных WinAPI. Кроме того, DLL загружаются по мере необходимости. Внутренние функции Windows (такие как списки модулей, flinks, blinks и т.д.) будут автоматически обновляться, если потребуется загрузить дополнительные DLL, например через LoadLibraryA. Было сделано множество других обновлений для улучшения функциональности. Внесены изменения, помогающие решить некоторые проблемы с установкой, о которых мне сообщали.

22 марта 2026: Логика выхода из циклов была доработана с большей нюансировкой. Многое было переписано и перетестировано. Мы не рекомендуем обычно изменять значение по умолчанию в файле config.cfg, если вы решите использовать эту функцию.

2024/2025: SHAREM опционально может использовать ИИ для анализа результатов с ключом OpenAI (предоставляется пользователем). Обратите внимание, что SHAREM был создан до недавних достижений в области ИИ, и его использование ИИ происходит только после завершения первоначального анализа SHAREM. Эта опциональная функция позволяет ему изучать найденное и применять это к фреймворку MITRE ATT&CK и многому другому.

Инструкции по установке

Windows

SHAREM устанавливается как локальный пакет Python, чтобы мы имели к нему доступ в других проектах. Это позволяет импортировать части SHAREM. Таким образом, он должен быть установлен как пакет. Примечание: до меня дошли слухи о некоторых проблемах с установкой. Последние изменения, надеюсь, исправят эту проблему.

  1. Для установки sharem требуется Git. Его можно установить с https://git-scm.com/download/win. После установки перезагрузите компьютер и продолжите установку SHAREM. Git необходим для автоматизации установки Windows SSDeep. Вы также можете сделать это вручную и изменить .bat, чтобы исключить SSDeep, если сделаете это сами. Ручная установка избавляет от необходимости использовать Git. Примечание: для Windows мы переходим на форк SSDeep в учетной записи Bw3ll, который исправляет некоторые проблемы с установкой предыдущей версии. Эта версия и предыдущая были обертками для SSDeep.

  2. Запустите .bat файл. Он вызовет файл setup.py. В зависимости от того, как вы вызываете Python, вам может понадобиться вызвать альтернативный .bat файл или даже слегка изменить его, если вы используете что-то нестандартное.

  3. Выполните py -m pip list или python3 -m pip list, чтобы убедиться, что SHAREM установлен локально как пакет. Он должен быть установлен как пакет, чтобы работать. Что делать, если вы его НЕ видите? Тогда он НЕ установлен как пакет, и SHAREM НЕ будет работать. Убедитесь, что вы используете .bat файл(ы) и делаете это в командной строке Windows из каталога installers. Если это не сработало, поищите любые сообщения об ошибках. Если они есть, попробуйте их исправить. Вы можете попробовать несколько раз. Если это все еще не работает, откройте issue и постарайтесь включить всю эту информацию, чтобы мы могли разобраться, что не так. Обычно это не требуется, но иногда может понадобиться. Если вы однажды удалили его и решили установить снова, возможно, вам потребуется снова запустить скрипт установки. Как только вы увидите sharem в выводе команды py -m pip list, вы узнаете, что он правильно установлен как локальный пакет.

После установки SHAREM, при первом запуске шеллкода вы должны находиться в папке sharem_cli. Например, находясь в этом каталоге, вы можете выполнить py main.py -r32 shellcode.bin. Нет шеллкода? Ничего страшного, вы можете найти несколько образцов в репозитории shellcode samples, который я размещаю отдельно.

Примечание: При первой попытке эмулировать шеллкод в Windows, он попытается собрать и «раздуть» DLL Windows. Этот процесс начинается автоматически при первой попытке эмулировать шеллкод. Он скопирует их, переместив скопированные (а затем «раздутые») DLL в каталог SHAREM. Есть дополнительные шаги, но весь этот первоначальный процесс может занять несколько минут или даже 10-15 минут, если процессор очень старый. После завершения вам не придется делать это снова. Это необходимо сделать отдельно как для 32-, так и для 64-битного шеллкода. Вы можете перейти в sharem/sharem/sharem/sharem/DLLs/x86 — и вы должны увидеть, как DLL медленно появляются. Они берутся из ОС, модифицируются для эмуляции того, что ОС может с ними сделать, и сохраняются в этот каталог. Их будет чуть больше 60. Если вы видите около этого количества DLL и новые DLL больше не сохраняются, это означает, что процесс, вероятно, завис. Просто нажмите Enter еще раз. Если это не помогло, просто перезапустите и попробуйте эмулировать снова. После сохранения DLL вам не нужно будет делать это снова; только первый раз может потребовать ожидания в зависимости от скорости процессора. Вы должны увидеть результаты эмуляции по завершении, например перечисление различных WinAPI или системных вызовов Windows.

Если файл заканчивается на .txt, будет считаться, что шеллкод представлен в виде ASCII-представления HEX (а не чистого шестнадцатеричного кода), и он будет интерпретирован соответствующим образом. Это работает с чем-то найденным в Интернете. Если вы используете ASCII-представление шестнадцатеричного кода, имя файла должно заканчиваться на .txt — это обязательное требование.

Linux

  1. chmod +x linux_installer.sh — разрешить выполнение установщика
  2. sudo ./linux_installer.sh — запустить установщик
  3. Добавить файлы DLL

Вам нужно будет добавить файлы DLL Windows. Мы пока не предоставляем их отдельной загрузки для пользователей Linux. На данный момент пользователям нужно будет собрать их, установив SHAREM через Windows. (Примечание: эти DLL должны быть «раздуты» с помощью SHAREM. DLL нельзя использовать, если они не «раздуты». Большинство, хотя, возможно, не все, не будет работать, если они не «раздуты» должным образом.) Позже, возможно, мы предоставим их отдельной загрузкой в ближайшие недели. Но пока пользователь может следовать инструкциям для Windows, чтобы сгенерировать их и перенести на Linux, разместив в sharem\sharem\sharem\DLLs\x64 и sharem\sharem\sharem\DLLs\x86. Также потребуются файлы foundDLLAddresses32.json и FoundDLLAddresses64.json, которые должны быть помещены в sharem\sharem\sharem .

OpenAI

В 2024 году в SHAREM добавлена поддержка OpenAI, чтобы мы могли использовать ИИ для автоматизации некоторых задач анализа. Это можно активировать через A в главном меню — «leverage AI». Для этого у вас должен быть ключ OpenAI, и вы должны поместить его в файл config.cfg, который находится в sharem/sharem/sharem/sharem/config.cfg. Кроме того, вы должны сначала эмулировать шеллкод, прежде чем сможете использовать ИИ. В настоящее время это единственный способ использования ИИ — он не работает в безголовом режиме — но если кому-то это нужно, пожалуйста, откройте issue, и я добавлю такую поддержку как дополнительную опцию, которую можно будет выбрать через config. Если вы уже установили SHAREM и получили обновленную версию, вы можете просто вручную установить OpenAI, например pip install openai. Я добавил его в требования для файла setup.py, который активируется при запуске исходных скриптов установки.

Скрипт для Ghidra

Отличный скрипт для Ghidra от Макса Керстена, показанный на Black Hat и DEFCON в августе 2023 года, можно найти здесь: https://github.com/advanced-threat-research/GhidraScripts/blob/main/Sharem.java Некоторые инструкции Макса находятся здесь: https://github.com/advanced-threat-research/GhidraScripts/ Этот плагин для Ghidra предоставлен компанией Trellix! Для его использования все равно требуется SHAREM. Он принимает JSON-вывод, созданный SHAREM, и преобразует его в формат, полезный для Ghidra. Подробнее о самом Максе можно узнать на https://maxkersten.nl/.

Документация

Документация доступна в SHAREM Wiki, которая содержит некоторую обучающую информацию по использованию SHAREM, хотя значительные части и функции в настоящее время не задокументированы.

Обновления

  • 29 сентября 2022: Мы сделали очень небольшое обновление setup.py, касающееся numpy, которое может повлиять на некоторых пользователей с последней версией Python.
  • 25 ноября 2022: Давно назревшее: мы внесли некоторые изменения для поддержки стиля системных вызовов ShellWasp. Хотя ранее мы реализовали поддержку системных вызовов, стиль ShellWasp не работал — только жестко заданные SSN (значения системных вызовов). OSMajorVersion, OSMinorVersion и OSBuild были инициализированы для 32- и 64-битных версий. Версия ОС, указанная пользователем в конфигурации или через интерфейс, теперь будет отражаться внутренне — например, выбор Windows 10 20H2 приведет к заполнению правильных значений, что позволит работать технике ShellWasp, как показано в этом примере вывода. На данный момент поддерживаются только Windows 7, 10 и 11 для эмуляции техники ShellWasp.
  • 29 ноября 2022: Добавлена поддержка эмуляции для новых сборок ОС — 22H2 для Windows 10 и 11. Это актуально только для эмуляции системных вызовов Windows. Множество мелких исправлений ошибок и улучшений качества жизни. Улучшено различие функций для случаев, когда SHAREM используется для шеллкода (его основное назначение) и для анализа PE-файлов.
  • 1 декабря 2022: Изменено местоположение по умолчанию для вывода bin/ASCII — перемещено в logs. Добавлена возможность вывода деобфусцированных bin/ASCII с помощью этой команды. Деобфусцированный ASCII был добавлен в logs — также казалось, что ASCII bin отсутствовал в logs — это исправлено.
  • 29 декабря 2022: Я добавил опциональную вневременную отладку для стека. Ранее вневременная отладка захватывала только выполненные инструкции и значения регистров до и после. Теперь мы можем видеть +/- 0xA0 от ESP. К сожалению, это немного медленно. Эта функция должна быть включена отдельно. Кроме того, я обнаружил некоторые ошибки, которые приводили к неверным результатам при выходе из циклов, что в некоторых случаях могло привести к преждевременному завершению эмуляции. Я исправил это. Также я добавил вывод SHAREM при выходе из циклов, указывающий, куда он переходит после выхода из цикла.
  • 4 января 2023: Я значительно переработал полное покрытие кода, улучшив его производительность. Я также открыл несколько опциональных функций, которые могут быть настроены опытными пользователями в каждом конкретном случае через интерфейс или конфигурационный файл. Больше информации на странице вики о полном покрытии кода.
  • 5 января 2023: Добавлено сочетание клавиш для подменю полного покрытия кода из меню эмулятора. Для тех, кто уже скачал вчерашнее обновление, сочетание клавиш — буква «o».

Скриншоты

SHAREM — это очень мощный фреймворк с многочисленными возможностями, некоторые из которых хорошо документированы, а некоторые — нет. В этом разделе будут показаны некоторые из этих возможностей.

SHAREM может взять закодированный шеллкод и деобфусцировать его с помощью эмуляции. Он не только захватывает всю информацию о WinAPI или системных вызовах, но, если вы решите просмотреть его в дизассемблере, он покажет вам декодированную форму шеллкода:

image

SHAREM не только может перечислять 12 000+ функций WinAPI, но также может делать это практически со всеми пользовательскими системными вызовами Windows. Кроме того, для некоторых он отображает информацию о структурах. Для тех, кто работает с реестром, он извлекает информацию о реестре и добавляет ее в наш диспетчер реестра:

image

SHAREM также имеет возможность загружать файлы через UrldownloadToFileA, если они существуют. Они загружаются в память эмулятора — не сохраняются на диск. В случае успеха будет захвачен хэш. Также существует ограниченная псевдо-файловая система, поэтому вы можете видеть корреляции, например, файл загружается как одно, а переименовывается в другое. Если необходимая загрузка недоступна, она просто будет смоделирована как успешная загрузка. Живая загрузка — это опция, которую можно включить или отключить в конфигурации.

image

Соавторы и участники

Доктор Брэмвелл Бризендайн, Остин Бэбкок, Джейк Хинс, Шелби ВанденХук, Саша Уокер, Эван Рид, Дилан Парк, Кейд Брост, Джеймс Тейт Форселла, Уильям Локте, Хантер Мерфи и Тарек Абдельмоталеб.

Благодарность

Это исследование и некоторые соавторы были поддержаны грантом NSA H98230-20-1-0326.

Скачать инструмент
  • 16 января 2023: Добавлены три новых поля в файлы JSON дизассемблирования. Это обновление НЕ нужно тем, кто не использует эти JSON, что является нестандартным способом использования SHAREM.
  • 3 августа 2023: Добавлено примерно 5000–6000 API из примерно 30 дополнительных DLL. Другие улучшения в поддержку этого.
  • 2024/2025: SHAREM опционально может использовать ИИ для анализа результатов с ключом OpenAI (предоставляется пользователем). Обратите внимание, что SHAREM был создан до недавних достижений в области ИИ, и его использование ИИ происходит только после завершения первоначального анализа SHAREM. Эта опциональная функция позволяет ему изучать найденное и применять это к фреймворку MITRE ATT&CK и многому другому.
  • Март 2026: SHAREM загружает до 61 DLL при запуске, но с последним обновлением теперь может поддерживать 369 DLL и 45538 уникальных WinAPI. Было сделано множество других обновлений для улучшения функциональности. Внесены изменения, помогающие решить некоторые проблемы с установкой, о которых мне сообщали.
  • 22 марта 2026: Логика выхода из циклов была доработана с большей нюансировкой.