# Mythic
Що таке 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, що дозволяє безпосередню взаємодію з оболонкою на цільовій системі.