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

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

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