# Mythic

Що таке Mythic?

Mythic - це модульна, з відкритим вихідним кодом система командного управління (C2), розроблена для червоних команд. Вона дозволяє фахівцям з безпеки керувати та розгортати різні агенти (payloads) на різних операційних системах, включаючи Windows, Linux та macOS. Mythic надає зручний веб-інтерфейс для управління агентами, виконання команд та збору результатів, що робить його потужним інструментом для моделювання реальних атак у контрольованому середовищі.

Встановлення

Щоб встановити Mythic, дотримуйтесь інструкцій на офіційному Mythic repo.

Агенти

Mythic підтримує кілька агентів, які є payloads, що виконують завдання на скомпрометованих системах. Кожен агент може бути налаштований під специфічні потреби та може працювати на різних операційних системах.

За замовчуванням Mythic не має жодного агента, встановленого. Однак він пропонує кілька відкритих агентів на https://github.com/MythicAgents.

Щоб встановити агента з цього репозиторію, вам просто потрібно виконати:

bash
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, запустивши:

bash
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.

Встановіть його за допомогою:

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

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