Mythic
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Що таке Mythic?
Mythic - це відкритий, модульний фреймворк командного управління (C2), призначений для червоних команд. Він дозволяє фахівцям з безпеки керувати та розгортати різні агенти (payloads) на різних операційних системах, включаючи Windows, Linux та macOS. Mythic надає зручний веб-інтерфейс для управління агентами, виконання команд та збору результатів, що робить його потужним інструментом для моделювання реальних атак у контрольованому середовищі.
Встановлення
Щоб встановити Mythic, дотримуйтесь інструкцій на офіційному Mythic repo.
Агенти
Mythic підтримує кілька агентів, які є payloads, що виконують завдання на скомпрометованих системах. Кожен агент може бути налаштований відповідно до конкретних потреб і може працювати на різних операційних системах.
За замовчуванням Mythic не має жодного агента, встановленого. Однак він пропонує кілька відкритих агентів у https://github.com/MythicAgents.
Щоб встановити агента з цього репозиторію, вам просто потрібно виконати:
sudo ./mythic-cli install github https://github.com/MythicAgents/<agent-name>
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell
Ви можете додати нові агенти за допомогою попередньої команди, навіть якщо Mythic вже працює.
C2 Профілі
C2 профілі в Mythic визначають як агенти спілкуються з сервером Mythic. Вони вказують протокол зв'язку, методи шифрування та інші налаштування. Ви можете створювати та керувати C2 профілями через веб-інтерфейс Mythic.
За замовчуванням Mythic встановлюється без профілів, однак, можливо, завантажити деякі профілі з репозиторію https://github.com/MythicC2Profiles, запустивши:
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/<c2-profile>>
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
Apollo Agent
Apollo - це агент Windows, написаний на C# з використанням .NET Framework 4.0, призначений для використання в навчальних програмах SpecterOps.
Встановіть його за допомогою:
./mythic-cli install github https://github.com/MythicAgents/Apollo.git
Цей агент має багато команд, які роблять його дуже схожим на Beacon від Cobalt Strike з деякими додатковими можливостями. Серед них він підтримує:
Загальні дії
cat
: Вивести вміст файлуcd
: Змінити поточний робочий каталогcp
: Скопіювати файл з одного місця в іншеls
: Перелічити файли та каталоги в поточному каталозі або вказаному шляхуpwd
: Вивести поточний робочий каталогps
: Перелічити запущені процеси на цільовій системі (з додатковою інформацією)download
: Завантажити файл з цільової системи на локальний комп'ютерupload
: Завантажити файл з локального комп'ютера на цільову системуreg_query
: Запитати ключі та значення реєстру на цільовій системіreg_write_value
: Записати нове значення в зазначений ключ реєструsleep
: Змінити інтервал сну агента, який визначає, як часто він перевіряє з'єднання з сервером Mythic- І багато інших, використовуйте
help
, щоб побачити повний список доступних команд.
Підвищення привілеїв
getprivs
: Увімкнути якомога більше привілеїв на поточному токені потокуgetsystem
: Відкрити дескриптор до winlogon і дублювати токен, ефективно підвищуючи привілеї до рівня SYSTEMmake_token
: Створити нову сесію входу та застосувати її до агента, що дозволяє видавати себе за іншого користувачаsteal_token
: Вкрасти первинний токен з іншого процесу, що дозволяє агенту видавати себе за користувача цього процесуpth
: Атака Pass-the-Hash, що дозволяє агенту аутентифікуватися як користувач, використовуючи їх NTLM хеш без необхідності в відкритому пароліmimikatz
: Виконати команди Mimikatz для витягування облікових даних, хешів та іншої чутливої інформації з пам'яті або бази даних SAMrev2self
: Повернути токен агента до його первинного токена, ефективно знижуючи привілеї до початкового рівняppid
: Змінити батьківський процес для пост-експлуатаційних завдань, вказавши новий ідентифікатор батьківського процесу, що дозволяє краще контролювати контекст виконання завданьprintspoofer
: Виконати команди PrintSpoofer для обходу заходів безпеки спулера друку, що дозволяє підвищити привілеї або виконати кодdcsync
: Синхронізувати ключі Kerberos користувача з локальним комп'ютером, що дозволяє офлайн-ламати паролі або проводити подальші атакиticket_cache_add
: Додати квиток Kerberos до поточної сесії входу або вказаної, що дозволяє повторно використовувати квиток або видавати себе за когось іншого
Виконання процесів
assembly_inject
: Дозволяє ввести завантажувач .NET в віддалений процесexecute_assembly
: Виконує збірку .NET в контексті агентаexecute_coff
: Виконує COFF файл в пам'яті, що дозволяє виконувати скомпільований код в пам'ятіexecute_pe
: Виконує unmanaged виконуваний файл (PE)inline_assembly
: Виконує збірку .NET в одноразовому AppDomain, що дозволяє тимчасово виконувати код без впливу на основний процес агентаrun
: Виконує двійковий файл на цільовій системі, використовуючи PATH системи для знаходження виконуваного файлуshinject
: Вводить shellcode в віддалений процес, що дозволяє виконувати довільний код в пам'ятіinject
: Вводить shellcode агента в віддалений процес, що дозволяє виконувати код агента в пам'ятіspawn
: Створює нову сесію агента в зазначеному виконуваному файлі, що дозволяє виконувати shellcode в новому процесіspawnto_x64
таspawnto_x86
: Змінює за замовчуванням двійковий файл, що використовується в пост-експлуатаційних завданнях, на вказаний шлях замість використанняrundll32.exe
без параметрів, що є дуже шумним.
Mithic Forge
Це дозволяє завантажувати COFF/BOF файли з Mythic Forge, яка є репозиторієм попередньо скомпільованих вантажів і інструментів, які можуть бути виконані на цільовій системі. З усіма командами, які можуть бути завантажені, буде можливим виконувати загальні дії, виконуючи їх у поточному процесі агента як BOFs (зазвичай більш непомітно).
Почніть їх встановлювати з:
./mythic-cli install github https://github.com/MythicAgents/forge.git
Потім використовуйте forge_collections
, щоб показати модулі COFF/BOF з Mythic Forge, щоб мати можливість вибрати та завантажити їх у пам'ять агента для виконання. За замовчуванням у Apollo додаються наступні 2 колекції:
forge_collections {"collectionName":"SharpCollection"}
forge_collections {"collectionName":"SliverArmory"}
Після завантаження одного модуля він з'явиться у списку як інша команда, наприклад, forge_bof_sa-whoami
або forge_bof_sa-netuser
.
Виконання PowerShell та сценаріїв
powershell_import
: Імпортує новий сценарій PowerShell (.ps1) у кеш агента для подальшого виконанняpowershell
: Виконує команду PowerShell у контексті агента, що дозволяє здійснювати розширене сценарне програмування та автоматизаціюpowerpick
: Впроваджує збірку завантажувача PowerShell у жертвенний процес і виконує команду PowerShell (без ведення журналу PowerShell).psinject
: Виконує PowerShell у вказаному процесі, що дозволяє цілеспрямоване виконання сценаріїв у контексті іншого процесуshell
: Виконує команду оболонки в контексті агента, подібно до виконання команди в cmd.exe
Бічний рух
jump_psexec
: Використовує техніку PsExec для бічного руху до нового хоста, спочатку копіюючи виконуваний файл агента Apollo (apollo.exe) та виконуючи його.jump_wmi
: Використовує техніку WMI для бічного руху до нового хоста, спочатку копіюючи виконуваний файл агента Apollo (apollo.exe) та виконуючи його.wmiexecute
: Виконує команду на локальній або вказаній віддаленій системі за допомогою WMI, з необов'язковими обліковими даними для імперсонації.net_dclist
: Отримує список контролерів домену для вказаного домену, корисно для ідентифікації потенційних цілей для бічного руху.net_localgroup
: Перераховує локальні групи на вказаному комп'ютері, за замовчуванням використовуючи localhost, якщо комп'ютер не вказано.net_localgroup_member
: Отримує членство локальної групи для вказаної групи на локальному або віддаленому комп'ютері, що дозволяє перераховувати користувачів у конкретних групах.net_shares
: Перераховує віддалені спільні ресурси та їх доступність на вказаному комп'ютері, корисно для ідентифікації потенційних цілей для бічного руху.socks
: Увімкнення проксі-сервера, що відповідає стандарту SOCKS 5, у цільовій мережі, що дозволяє тунелювання трафіку через скомпрометований хост. Сумісно з такими інструментами, як proxychains.rpfwd
: Починає прослуховування на вказаному порту на цільовому хості та пересилає трафік через Mythic на віддалений IP-адресу та порт, що дозволяє віддалений доступ до служб у цільовій мережі.listpipes
: Перераховує всі іменовані канали на локальній системі, що може бути корисно для бічного руху або підвищення привілеїв шляхом взаємодії з механізмами IPC.
Різні команди
help
: Відображає детальну інформацію про конкретні команди або загальну інформацію про всі доступні команди в агенті.clear
: Позначає завдання як 'очищені', щоб їх не могли взяти агенти. Ви можете вказатиall
, щоб очистити всі завдання, абоtask Num
, щоб очистити конкретне завдання.
Poseidon Agent
Poseidon - це агент Golang, який компілюється в Linux та macOS виконувані файли.
./mythic-cli install github https://github.com/MythicAgents/Poseidon.git
Коли користувач працює в linux, є кілька цікавих команд:
Загальні дії
cat
: Вивести вміст файлуcd
: Змінити поточний робочий каталогchmod
: Змінити дозволи файлуconfig
: Переглянути поточну конфігурацію та інформацію про хостcp
: Скопіювати файл з одного місця в іншеcurl
: Виконати один веб-запит з необов'язковими заголовками та методомupload
: Завантажити файл на цільdownload
: Завантажити файл з цільової системи на локальний комп'ютер- І багато іншого
Пошук чутливої інформації
triagedirectory
: Знайти цікаві файли в каталозі на хості, такі як чутливі файли або облікові дані.getenv
: Отримати всі поточні змінні середовища.
Бічний рух
ssh
: SSH до хоста, використовуючи призначені облікові дані, і відкрити PTY без запуску ssh.sshauth
: SSH до вказаних хостів, використовуючи призначені облікові дані. Ви також можете використовувати це для виконання конкретної команди на віддалених хостах через SSH або використовувати це для SCP файлів.link_tcp
: Зв'язатися з іншим агентом через TCP, що дозволяє безпосередню комунікацію між агентами.link_webshell
: Зв'язатися з агентом, використовуючи профіль webshell P2P, що дозволяє віддалений доступ до веб-інтерфейсу агента.rpfwd
: Запустити або зупинити зворотне перенаправлення порту, що дозволяє віддалений доступ до служб на цільовій мережі.socks
: Запустити або зупинити SOCKS5 проксі на цільовій мережі, що дозволяє тунелювання трафіку через скомпрометований хост. Сумісний з такими інструментами, як proxychains.portscan
: Сканувати хости на наявність відкритих портів, корисно для виявлення потенційних цілей для бічного руху або подальших атак.
Виконання процесів
shell
: Виконати одну команду оболонки через /bin/sh, що дозволяє безпосереднє виконання команд на цільовій системі.run
: Виконати команду з диска з аргументами, що дозволяє виконання бінарних файлів або скриптів на цільовій системі.pty
: Відкрити інтерактивний PTY, що дозволяє безпосередню взаємодію з оболонкою на цільовій системі.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.