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

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

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

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

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

Категории

Все категории
Loading categories
TrollDump — Внедряет x64 управляемые DLL в GUI-процессы через SetWindowsHook, с модульным раннером полезной нагрузки на C# и POC дампа LSASS для red-team/наступательного тестирования Windows. | Kitploit
Инструменты/GitHubGitHub/cybersectroll/trolldump
Повышение привилегийПост-эксплуатацияRed TeamingРазработка Полезной Нагрузки
GitHubcybersectroll/trolldump

TrollDump

Внедряет x64 управляемые DLL в GUI-процессы через SetWindowsHook, с модульным раннером полезной нагрузки на C# и POC дампа LSASS для red-team/наступательного тестирования Windows.

Репозиторий
8482 лет назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

TrollDump

  • Внедряет управляемую DLL x64 в управляемый/неуправляемый процесс x64 (процесс должен иметь GUI, так как мы получаем его дескриптор окна) с помощью setwindowshook
  • Здесь, в качестве троллинга, мы внедряемся в скрытое окно taskmgr, чтобы сделать дамп lsass незаметно (см. раздел Test Case ниже)
  • DLL инжектора и внедряемая DLL — это одна и та же DLL, поэтому дополнительная DLL не требуется
  • Уровень целостности целевого процесса должен быть таким же или более низким, чем у процесса инжектора

Благодарности (обновление/переписывание проекта)

Оригинальный проект: https://github.com/enkomio/ManagedInjector

  • портировал код для внедрения в 64-битные двоичные файлы ---> оригинальный проект позволяет внедрение DLL только в 32-битные двоичные файлы
  • удалил логику IPC, так как она была излишней
  • создал шаблонный код для запуска вашей полезной нагрузки напрямую в функции RunOnRemoteProcess() вместо прежнего запутанного способа
  • проект по-прежнему использует DLLExport, чтобы получить .NET DLL, экспортирующую функции
    • Обратите внимание: это не зависимость проекта, а скорее постобработка. DLLExport изменит вашу итоговую .NET DLL, чтобы экспортировать функцию.
    • Можно вручную выполнить экспорт функции, если хотите: https://blog.xpnsec.com/rundll32-your-dotnet/

Компиляция

  • Скачайте проект и скомпилируйте решение как X64, Release
  • Внешние зависимости не требуются

Использование

root@kitploit:~
> Requires High Integrity depending on use case
> [System.Reflection.Assembly]::LoadFrom("C:\Users\public\TrollDump.dll")
> [TrollDump.ForFun]::Main("C:\windows\system32\taskmgr.exe")
  • В этой POC мы делаем дамп lsass; вы можете запускать любую "логику экспортируемой функции DLL", изменив функцию RunOnRemoteProcess() и перекомпилировав.
  • Как уже упоминалось ранее, код служит шаблоном для внедрения DLL; то, что вы решите делать после, удобно писать на управляемом коде c#.

Тестовый пример

  • Win 2019 build 17763.737 с последними заплатками windefender
    • оба: внедрение DLL + дамп lsass
  • Другие антивирусы (не названы)
    • внедрение DLL работает нормально
    • очевидно, работает ли дамп lsass, зависит от того, разрешает ли антивирус taskmgr выполнять дамп lsass
  • Не тестировалось ни на каких EDR -> думаю, внедрение DLL всё равно должно работать на отдельных EDR

OPSEC

  • DLL должна находиться на диске, поэтому должна быть обфусцирована
  • DLL следует использовать только для внедрения; фактическая полезная нагрузка никогда не должна быть встроена в DLL и должна загружаться рефлексивно
  • Очевидно, внедрение CLR в неуправляемый процесс подозрительно, но что поделать!
  • setwindowshook, хотя и классическая техника, чаще всего ассоциируется с кейлогингом, а не с нашим случаем использования
  • Можно проявить много творчества с любым GUI-процессом, в который вы хотите внедриться (если вы работаете как system, можно внедряться и в dwm.exe)

Пожелания - Проект был сделан за выходные, и у меня нет времени/желания заниматься следующим:

  • Внедрение в процесс без GUI
    • в настоящее время для setwindowshook используется WH_CALLWNDPROC; вы можете изменить его, чтобы использовать WH_GETMESSAGE, но целевой процесс должен выполнять цикл обработки сообщений (GetMessage())
    • если вы сможете найти бинарник без GUI, реализующий цикл сообщений (я подозреваю, что вряд ли), то вы сможете внедряться и в бинарники без GUI
    • для GUI-процессов обычно выполняется GetMessage()
  • Полностью рефлексивное внедрение и отсутствие необходимости сбрасывать на диск
    • Судя по setwindowshook, похоже, DLL должна быть на диске?
    • я пытался использовать делегаты c#, чтобы передать указатель на функцию для выполнения вместо экспортированной функции DLL, и это не сработало (это классическая техника кейлоггера на c# для локального процесса, но мы делаем удалённый процесс)
    • можете попробовать, включив другие техники; думаю, это осуществимо
  • Taskmgr будет автоматически запускаться с High Integrity, даже если наш текущий процесс имеет Medium (так что технически, если внедрить в него DLL, это обход UAC)
    • Внедрение, судя по возвращаемым результатам WIN API, работает нормально
      • хотя sendMessage() завершается успешно, сообщение молча отбрасывается. Объяснение здесь: https://stackoverflow.com/questions/40122964/cross-process-postmessage-uipi-restrictions-and-uiaccess-true
    • Однако taskmgr не вызывает экспортированную функцию

Отказ от ответственности

Следует использовать только в образовательных целях!

Скачать инструмент