Удалённые операции BOF
Этот репозиторий служит дополнением к нашему ранее выпущенному репозиторию SA. Изначально мы придерживались позиции, что не будем публиковать наши инструменты, модифицирующие другие системы, а будем предоставлять только инструменты сбора информации в готовом к использованию виде.
Со временем мы увидели, что многие другие публичные security-компании выпускают свои наступательные инструменты, и теперь мы считаем уместным выпустить часть наших наступательных инструментов.
В этом репозитории нет ничего особенного: это базовые операции Microsoft Windows в форме BOF. Эти примитивы можно использовать для самых разных операций.
Инъекционные BOF
Мы решили включить инъекционные BOF, которые используем при тестировании обнаружения EDR. Эти BOF предоставляются как есть и не будут поддерживаться (всё, что находится в src/Injection и Injection/*).
Вы можете свободно использовать их, но вопросы (issues), открытые по ним, будут закрыты без рассмотрения.
Доступные команды удалённых операций
| Command | Usage | Notes |
|---|
| adcs_request | adcs_request [CA] [OPT:TEMPLATE] [OPT:SUBJECT] [OPT:ALTNAME] [OPT:INSTALL] [OPT:MACHINE] [OPT:ADD_APP_POLICY] [OPT:DNS] | Запросить сертификат регистрации |
| adcs_request_on_behalf | adcs_request_on_behalf [TEMPLATE] [REQUESTER] [ENROLLMENT_AGENT.pfx] [Download_Name] | Запросить сертификат регистрации от имени другого пользователя |
| adduser | adduser [USERNAME] [PASSWORD] [SERVER] | Добавить указанного пользователя на компьютер |
| addusertogroup | addusertogroup [USERNAME] [GROUPNAME] [SERVER] [DOMAIN] | Добавить указанного пользователя в группу |
| ask_mfa | ask_mfa [NUMBER] | Отображает поддельное диалоговое окно подтверждения Microsoft Authenticator с указанным номером. |
| chromeKey | chromeKey | Расшифровать предоставленный base64-ключ Chrome |
| disableuser | disableuser [USERNAME] [DOMAIN] | Отключить указанную учётную запись пользователя |
| enableuser | enableuser [USERNAME] [DOMAIN] | Включить и разблокировать указанную учётную запись пользователя |
| get_azure_token | get_azure_token [CLIENT ID] [SCOPE] [BROWSER] [OPT:HINT] [OPT:BROWSER PATH] | Пытается завершить OAuth codeflow grant в Azure, используя сохранённые логины |
| get_priv | get_priv [Privledge Name] | Активировать указанную привилегию токена, в основном для пользователей, не работающих с Cobalt Strike |
| ghost_task | ghost_task [HOSTNAME/LOCALHOST] [OPERATION] [TASKANME] [PROGRAM] [ARGUMENT] [USERNAME] [SCHEDULETYPE] [TIME/SECOND] [DAY] | Добавить/удалить ghost-задачу. |
| global_unprotect | global_unprotect | Находит и расшифровывает конфигурационные файлы GlobalProtect, преобразованные из: GlobalUnProtect |
| lastpass | lastpass [NUMBER OF PIDs] [PID],[PID],[PID],[PID] ... | Искать пароли и данные LastPass в памяти Chrome и Brave |
| make_token_cert | make_token_cert [.PFX LOCAL PATH] [OPT:PFX PASSWORD] | Выполняет имперсонацию пользователя, используя altname .pfx-файла |
| office_tokens | office_tokens [PID] | Собирает JWT-токены Office из любого процесса Office |
| procdump |
Участие в разработке
Этот репозиторий предназначен для отдельных Windows-примитивов. То есть, даже если для создания запланированного задания требуется несколько вызовов, это допустимо.
Команда, которая пыталась бы предварительно сгенерировать имплант и выполнять автоматическое перемещение с помощью BOF из этого репозитория, была бы замечательной. Но она не подходит для прямого включения в этот репозиторий.
Требования к коду
- Ваш код должен компилироваться без ошибок при использовании makefile по умолчанию
- Любые новые BOF-определения для разрешения функций должны размещаться в
src/common/bofdefs.h
- Код будет компилироваться вместе с использованием Makefile по умолчанию (один файл
entry.c)
- Код также должен быть совместим с существующим инструментарием (mingw)
- Код должен быть написан на C. Это необходимо для стандартизации и моей личной уверенности при проверке кода.
Чего ожидать участнику
После получения pull request он будет подвергнут углублённому рецензированию кода и тестированию.
После завершения тестирования у нас будет ноль или более раундов запросов на изменения по результатам проверки, пока в коде не останется проблем. После этого он будет принят в репозиторий, и ваше имя пользователя GitHub будет добавлено в наш список благодарностей. Если вы предпочитаете, чтобы вас не добавляли, или хотите использовать другой псевдоним, просто дайте мне знать.
Хотите узнать больше?
Если вы нашли эти файлы beacon object полезными и хотите написать несколько собственных BOF в похожем стиле, мы приглашаем вас ознакомиться с нашим курсом Beacon Object File (BOF) Development.
Курс даёт краткий обзор истории beacon object files, а затем погружается в ряд задач, которые призваны научить вас использовать различные технологии Windows при разработке собственных beacon object files.