# Mythic ## Що таке Mythic? Mythic - це модульна, з відкритим вихідним кодом система командного управління (C2), розроблена для червоних команд. Вона дозволяє фахівцям з безпеки керувати та розгортати різні агенти (payloads) на різних операційних системах, включаючи Windows, Linux та macOS. Mythic надає зручний веб-інтерфейс для управління агентами, виконання команд та збору результатів, що робить його потужним інструментом для моделювання реальних атак у контрольованому середовищі. ### Встановлення Щоб встановити Mythic, дотримуйтесь інструкцій на офіційному **[Mythic repo](https://github.com/its-a-feature/Mythic)**. ### Агенти Mythic підтримує кілька агентів, які є **payloads, що виконують завдання на скомпрометованих системах**. Кожен агент може бути налаштований під специфічні потреби та може працювати на різних операційних системах. За замовчуванням Mythic не має жодного агента, встановленого. Однак він пропонує кілька відкритих агентів на [**https://github.com/MythicAgents**](https://github.com/MythicAgents). Щоб встановити агента з цього репозиторію, вам просто потрібно виконати: ```bash sudo ./mythic-cli install github https://github.com/MythicAgents/ sudo ./mythic-cli install github https://github.com/MythicAgents/apfell ``` Ви можете додати нові агенти за допомогою попередньої команди, навіть якщо Mythic вже працює. ### C2 Профілі C2 профілі в Mythic визначають **як агенти спілкуються з сервером Mythic**. Вони вказують протокол зв'язку, методи шифрування та інші налаштування. Ви можете створювати та керувати C2 профілями через веб-інтерфейс Mythic. За замовчуванням Mythic встановлюється без профілів, однак, можливо, завантажити деякі профілі з репозиторію [**https://github.com/MythicC2Profiles**](https://github.com/MythicC2Profiles), запустивши: ```bash sudo ./mythic-cli install github https://github.com/MythicC2Profiles/> sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http ``` ## [Apollo Agent](https://github.com/MythicAgents/Apollo) Apollo - це агент Windows, написаний на C# з використанням .NET Framework 4.0, призначений для використання в навчальних програмах SpecterOps. Встановіть його за допомогою: ```bash ./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 і дублювати токен, ефективно підвищуючи привілеї до рівня SYSTEM - `make_token`: Створити нову сесію входу та застосувати її до агента, що дозволяє видавати себе за іншого користувача - `steal_token`: Вкрасти первинний токен з іншого процесу, що дозволяє агенту видавати себе за користувача цього процесу - `pth`: Атака Pass-the-Hash, що дозволяє агенту аутентифікуватися як користувач, використовуючи їх NTLM хеш без необхідності в відкритому паролі - `mimikatz`: Виконати команди Mimikatz для витягування облікових даних, хешів та іншої чутливої інформації з пам'яті або бази даних SAM - `rev2self`: Повернути токен агента до його первинного токена, ефективно знижуючи привілеї до початкового рівня - `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 (зазвичай більш непомітно). Почніть їх встановлювати з: ```bash ./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](https://github.com/MythicAgents/Poseidon) Poseidon - це агент на Golang, який компілюється в **Linux та macOS** виконувані файли. ```bash ./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, що дозволяє безпосередню взаємодію з оболонкою на цільовій системі.