
C2-независимая коллекция BOF, сгруппированная по фазам цепочки атак. Спроектирована компактной и модульной, обеспечивая быстрое выполнение и автоматизацию.
# Adrenaline BOF Kit <img src="https://raw.githubusercontent.com/atomiczsec/Adrenaline/main/Assets/ADRENALINE.jpg" width="100%"> *Независимая от C2 коллекция Beacon Object Files (BOF) для red team и наступательных операций по безопасности. BOF организованы по фазам цепочки атак и разработаны как небольшие, модульные и удобные для автоматизации инструменты для разведки, перечисления и пост-эксплуатационных рабочих процессов.* <div align='center'> ## Содержание (таксономия MITRE) [Collection](#collection) [Community](#community) [Credential Access](#credential-access) [Discovery](#discovery) [Execution](#execution) </div> ## Collection | **BOF** | **Назначение** | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **[ai_surface](https://github.com/atomiczsec/adrenaline/blob/main/collection/ai_surface)** | Картирует инструменты ИИ на конечных точках разработчиков Windows и выделяет их артефакты конфигурации, которые могут раскрывать определения серверов, команды, аргументы и встроенные учётные данные. | | **[clipboard_grab](https://github.com/atomiczsec/adrenaline/blob/main/collection/clipboard_grab)** | Извлекает текстовые данные из буфера обмена Windows с помощью Win32 API и возвращает содержимое в callback. Авторство исходного кода: [@rvrsh3ll](https://github.com/rvrsh3ll/BOF_Collection) | | **[ide_extension_surface](https://github.com/atomiczsec/adrenaline/blob/main/collection/ide_extension_surface)** | Перечисляет манифесты расширений VS Code, Cursor, Windsurf, Zed, Insiders, OSS, а также серверных/удалённых расширений из корневых каталогов профилей пользователей и обобщает идентичность расширений, события активации и сигналы возможностей. | | **[powershell_history](https://github.com/atomiczsec/adrenaline/blob/main/collection/powershell_history)** | Собирает артефакты истории PowerShell из стандартных расположений PSReadLine и транскриптов. Полезно для поиска учётных данных или инфраструктуры. | | **[window_handles_enum](https://github.com/atomiczsec/adrenaline/blob/main/collection/window_handles_enum)** | Перечисляет дескрипторы окон во всех системных процессах и использует легитимный дескриптор окна для доступа к буферу обмена. | ## Community | **BOF** | **Назначение** | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **[notepad_grab](https://github.com/atomiczsec/adrenaline/blob/main/community/notepad_grab)** | Извлекает и возвращает обычный текст непосредственно из открытых окон Блокнота путём чтения памяти, позволяя операторам восстанавливать несохранённые заметки или заметки в памяти. Полезно для сбора данных с живых конечных точек. Исходный источник: [NoteThief](https://github.com/trainr3kt/NoteThief) | | **[schtask_enum](https://github.com/atomiczsec/adrenaline/blob/main/community/schtask_enum)** | Перечисляет запланированные задачи в системах Windows с помощью COM-интерфейса планировщика задач. Предоставляет сводку задач, включая их состояние, расписание и конфигурацию, не перегружая beacon XML-данными. Исходный источник: [TrustedSec CS-Situational-Awareness-BOF](https://github.com/trustedsec/CS-Situational-Awareness-BOF) | | **[net_use](https://github.com/atomiczsec/adrenaline/blob/main/community/net_use)** | Добавление, вывод списка или удаление сетевых дисков через MPR (модернизировано для корректного управления памятью, избегая сбоев). Исходный источник: [TrustedSec CS-Situational-Awareness-BOF](https://github.com/trustedsec/CS-Situational-Awareness-BOF) | | **[session_view](https://github.com/atomiczsec/adrenaline/blob/main/community/session_view)** | Перечисляет сеансы служб терминалов Windows, отображая идентификаторы сеансов, имена пользователей, домены, состояния подключения и LUID сеансов. Исходный источник: [SessionView](https://github.com/lsecqt/SessionView) от lsecqt | ## Credential Access | **BOF** | **Назначение** | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **[certstore_loot](https://github.com/atomiczsec/adrenaline/blob/main/credential_access/certstore_loot)** | Перечисляет локальные хранилища сертификатов для поиска сертификатов с экспортируемыми закрытыми ключами и предоставляет путь для их экспорта. | | **[cicd_credential_hunt](https://github.com/atomiczsec/adrenaline/blob/main/credential_access/cicd_credential_hunt)** | Находит распространённые артефакты учётных данных CI/CD, облачных и разработческих сред в текущем профиле пользователя Windows (GitHub/GitLab CLI, AWS/GCP, kube/Terraform, менеджеры пакетов, Git, SSH). По умолчанию сообщает путь и размер; опциональный `-verbose` для ограниченного предпросмотра содержимого. `.gitconfig` и `.ssh/config` классифицируются как конфигурация, а не как артефакты учётных данных. | | **[cloud_metadata_check](https://github.com/atomiczsec/adrenaline/blob/main/credential_access/cloud_metadata_check)** | Проверяет локальные службы метаданных облака для AWS, Azure и GCP из текущего процесса, сообщая об идентичности провайдера, контексте экземпляра и ограниченных фрагментах учётных данных при доступности. | | **[process_tokens_list](https://github.com/atomiczsec/adrenaline/blob/main/credential_access/process_tokens_list)** | Перечисляет доступные токены из запущенных процессов, показывая контекст пользователя, тип токена (primary/impersonation) и уровень олицетворения. Поддерживает опциональную фильтрацию по PID или имени процесса. SeDebugPrivilege отключена по умолчанию для OPSEC. | ## Discovery | **BOF** | **Назначение** | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **[amsi_etw_detect](https://github.com/atomiczsec/adrenaline/blob/main/discovery/amsi_etw_detect)** | Проверяет наличие AMSI и ETW в текущем процессе путём обнаружения загруженных DLL и экспортов, связанных с ETW. Полезно для выбора целей с меньшей активностью безопасности при широком применении. | | **[app_count](https://github.com/atomiczsec/adrenaline/blob/main/discovery/app_count)** | Подсчитывает количество установленных приложений через реестр, удаляет дубликаты и выводит результат. При применении к большому числу beacon позволяет делать выводы об устройстве на основе различий в количестве приложений. | | **[applocker_policy](https://github.com/atomiczsec/adrenaline/blob/main/discovery/applocker_policy)** | Перечисляет конфигурации политики AppLocker, коллекции правил и режимы принудительного применения путём сканирования соответствующих ключей реестра. | | **[asr_status](https://github.com/atomiczsec/adrenaline/blob/main/discovery/asr_status)** | Перечисляет правила Windows Defender Attack Surface Reduction (ASR) из расположений реестра для определения того, какие правила ASR настроены, их состояние принудительного применения (Block/Audit/Warn/Disabled) и источник политики (Intune/MDM vs Group Policy). | | **[bitlocker_status](https://github.com/atomiczsec/adrenaline/blob/main/discovery/bitlocker_status)** | Перечисляет статус шифрования BitLocker, конфигурации политик и расположения резервных копий ключей восстановления путём сканирования ключей реестра. | | **[mdm_policy_artifacts](https://github.com/atomiczsec/adrenaline/blob/main/discovery/mdm_policy_artifacts)** | Использует модель оценки для определения статуса регистрации MDM в системах Windows путём оценки индикаторов, включая состояние присоединения, запланированные задачи, конфигурацию политик и артефакты регистрации. | | **[netjoin_query](https://github.com/atomiczsec/adrenaline/blob/main/discovery/netjoin_query)** | Запрашивает информацию о присоединении к домену Windows и сведения о рабочей станции, определяя, присоединена ли система к домену или находится в рабочей группе. | | **[power_state](https://github.com/atomiczsec/adrenaline/blob/main/discovery/power_state)** | Определяет форм-фактор хоста как Laptop, Desktop, Tablet, Server, Embedded или Unknown с использованием данных шасси SMBIOS и резервного механизма определения состояния питания. | | **[proxy_enum](https://github.com/atomiczsec/adrenaline/blob/main/discovery/proxy_enum)** | Перечисляет состояние конфигурации прокси Windows в WinINET, WinHTTP, ключах политик, переменных окружения, индикаторах WPAD, настройках Chrome и значениях .NET `defaultProxy`. | | **[tray_scout](https://github.com/atomiczsec/adrenaline/blob/main/discovery/tray_scout)** | Сообщает исполняемый файл хоста панели задач и перечисляет всплывающие подсказки значков уведомлений системного трея с опциональными полными путями к изображениям для хоста и процесса-владельца каждого значка. | | **[user_idle](https://github.com/atomiczsec/adrenaline/blob/main/discovery/user_idle)** | Получает время бездействия пользователя с момента последнего ввода и использование ресурсов GUI (дескрипторы GDI/USER) в текущем процессе для анализа таймингов. | | **[wallpaper_enum](https://github.com/atomiczsec/adrenaline/blob/main/discovery/wallpaper_enum)** | Перечисляет путь к текущим обоям рабочего стола для каждого подключённого монитора с использованием современного COM-интерфейса IDesktopWallpaper. Централизованные обои иногда находятся на внутренних SMB-ресурсах или серверах образов, раскрывая сетевые пути, доверия доменов и принудительное применение политик без обращения к диску или сети. | | **[wef_detect](https://github.com/atomiczsec/adrenaline/blob/main/discovery/wef_detect)** | Обнаруживает конфигурацию Windows Event Forwarding (WEF), что указывает на централизованное ведение журналов. При обнаружении указывает, что события безопасности пересылаются на центральный сервер. | | **[wevt_channel_enum](https://github.com/atomiczsec/adrenaline/blob/main/discovery/wevt_channel_enum)** | Перечисляет локальные каналы журнала событий Windows с опциональным фильтром подстроки без учёта регистра, ограниченным выводом и опциональными подробными метаданными доступа и публикации. | | **[window_list](https://github.com/atomiczsec/adrenaline/blob/main/discovery/window_list)** | Перечисляет заголовки всех видимых окон на рабочем столе текущего пользователя, опционально включая идентификаторы процессов (PID). | | **[wsc_status](https://github.com/atomiczsec/adrenaline/blob/main/discovery/wsc_status)** | Запрашивает статус работоспособности Центра безопасности Windows, включая антивирус, брандмауэр, антишпионское ПО, службу WSC, автоматическое обновление, настройки интернета и контроль учётных записей пользователей. | | **[win_version](https://github.com/atomiczsec/adrenaline/blob/main/discovery/win_version)** | Этот BOF запрашивает реестр и системные API для предоставления краткого, но подробного обзора установки Windows. | ## Execution | **BOF** | **Назначение** | |--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------| | **[com_probe](https://github.com/atomiczsec/adrenaline/blob/main/execution/com_probe)** | Проверяет, может ли COM-объект быть создан из заданного CLSID. | | **[event_log_manage](https://github.com/atomiczsec/adrenaline/blob/main/execution/event_log_manage)** | Проверяет каналы журнала событий, управляет классическими журналами и источниками, принадлежащими BOF, записывает текстовые или бинарные события через зарегистрированные источники и очищает каналы с опциональным резервным копированием. | | **[firewall_rule](https://github.com/atomiczsec/adrenaline/blob/main/execution/firewall_rule)** | Добавляет, удаляет или запрашивает правила брандмауэра Windows через COM API (`INetFwPolicy2`) без запуска `netsh.exe` или `cmd.exe`. Полезно для перемещения внутри сетей. | | **[port_scan](https://github.com/atomiczsec/adrenaline/blob/main/execution/port_scan)** | Сканирует один IPv4-хост на открытые TCP и/или UDP порты через Winsock с ограниченными списками портов, настраиваемыми таймаутами и кратким выводом открытых портов. | | **[service_control](https://github.com/atomiczsec/adrenaline/blob/main/execution/service_control)** | Управляет локальными службами Windows через SCM: запрос (ограниченный список или отдельная служба), создание, запуск, остановка, удаление и настройка действий при сбое. Для изменений обычно требуются повышенные права. | | **[wevt_logon_enum](https://github.com/atomiczsec/adrenaline/blob/main/execution/wevt_logon_enum)** | Перечисляет недавние события входа в систему (успешные/неудачные) из журнала безопасности (идентификаторы событий 4624, 4625, 4672) через API wevtapi и выводит имя/IP удалённой рабочей станции, а также имя целевого пользователя. | --- <h3 align="center">Свяжитесь со мной:</h3> <p align="center"> <a href="https://github.com/atomiczsec" target="_blank"><img src="https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/github.svg" height="30" width="40" /></a> <a href="https://instagram.com/atomiczsec" target="_blank"><img src="https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/instagram.svg" height="30" width="40" /></a> <a href="https://x.com/atomiczsec" target="_blank"><img src="https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/twitter.svg" height="30" width="40" /></a> <a href="https://medium.com/@atomiczsec" target="_blank"><img src="https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/medium.svg" height="30" width="40" /></a> <a href="https://youtube.com/@atomiczsec" target="_blank"><img src="https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/youtube.svg" height="30" width="40" /></a> </p> --- **ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:** Создатели и участники этого репозитория не несут ответственности за любые потери, ущерб или последствия, возникшие в результате использования информации или кода, содержащихся в этом репозитории. Используя этот репозиторий, вы подтверждаете и принимаете полную ответственность за свои действия. Используйте на свой страх и риск.