Mythic Documentation
Version 3.3
Version 3.3
  • Mythic
  • Operators
  • Installation
    • Connecting
    • A note about containers
    • Offline Installation
    • Updating Mythic
  • Internal Documentation
  • Quick Usage
  • Operational Pieces
    • MITRE ATT&CK
    • Operations
    • Browser Scripts
    • Active Callbacks
    • Files
    • Search
    • File Browser
    • Socks Proxy
    • Credentials
    • Comments
    • Tags
    • Expanded Callbacks
    • Screenshots
    • Event Feed
    • Understanding Commands
      • Basic Information
      • Parameters
      • MITRE ATT&CK in Commands
    • Payload Types
      • Containers
    • C2 Profiles
      • C2 Server Utilities
      • Egress vs P2P
      • HTTP
      • dynamicHTTP
      • Save Parameters
    • API Tokens
  • Message Flow
    • Building Payloads
    • Agent Sends Message
    • File Upload Mythic->Agent
    • File Download Agent->Mythic
    • P2P Messages
    • Operator Submits Tasking
  • Database Schema
  • Reporting
    • Artifacts
    • MITRE ATT&CK
    • Reports
  • Scripting
  • Presentations / Webinars
  • Common Errors
  • MythicTips
  • Customizing
    • Customizing Public Agent
    • Hooking Features
      • Actions
      • Linking Agents
        • P2P Connections
      • Process Browser
      • Artifacts
      • Credentials
      • File Downloads (Agent -> Mythic)
      • File Uploads (Mythic -> Agent)
      • Screenshots
      • Add / Remove Commands
      • Keylog
      • File Browser
      • Tokens
      • Alerts
      • SOCKS
      • RPFWD
      • Interactive Tasking
      • Task Status
      • OnContainerStart
    • 1. Payload Type Development
      • 2. Payload Type Definition
        • Container Syncing
        • Turning a VM into a Container
      • 3. Adding Commands
        • Commands
      • 4. Create Tasking & Comms Format
        • Agent Messages
          • 1. Agent Message Format
          • 2. Checkin
          • 3. Get Tasking
          • 4. Submitting Responses
          • 5. SOCKS
          • 6. Reverse Port Forward
          • 7. Peer-to-peer messages
          • 8. Interactive Tasking
      • 5. MythicRPC
      • 6. Browser Scripting
      • 7. Dynamic Parameter Values
      • 8. Sub-tasking / Task Callbacks
      • 9. OPSEC Checking
      • 10. Translation Containers
      • 11. Process Response
      • 12 TypedArray Parse Function
      • 13. SOCKS
      • 14. Reverse PortFwd
      • 15. Interactive Tasking
    • 2. C2 Development
      • Docker & Server Config
        • 1. Docker Containers
        • 2. Configuration Files
        • 3. OPSEC Checks
        • 4. Configuration Checks
        • 5. Sample Message
        • 6. File Hosting
        • 7. Redirect Rules
        • 8. Get IOC
        • 9. Push C2
    • 3. Consuming Containers
      • Webhooks
      • Logging
      • Eventing
        • Operator Context (run_as)
        • Workflow Triggers
        • Steps
      • Auth
    • 4. Extending Agent Commands
    • Mythic UI Development
  • Common Questions and Answers
    • FAQ / Troubleshooting Tips
    • Change Log
    • Tip of the Week
  • Updating
    • Mythic 2.1 -> 2.2 Updates
      • Agents 2.1.* -> 2.2.8
        • MythicRPC
    • Mythic 2.2 -> 2.3 Updates
      • Agents 2.2 -> 2.3
    • Mythic 2.3 -> 3.0 Updates
      • Agents 2.3 -> 3.0
    • Mythic 3.2->3.3 Updates
Powered by GitBook
On this page
  • Mythic UI
  • Modifying the Mythic UI
  • Building the Mythic UI
  • Modifying permissions with GraphQL/Hasura

Was this helpful?

Export as PDF
  1. Customizing

Mythic UI Development

Mythic UI

The current Mythic UI is split into two parts:

  1. Normally, when using mythic, Mythic/mythic-react-docker and the mythic_react container serves a compiled version of the React UI.

  2. For development, the Mythic/MythicReactUI folder holds the source code that gets built.

Modifying the Mythic UI

To load up the source code for active development, set the Mythic/.env variable mythic_react_debug to true and then run sudo ./mythic-cli build mythic_react. This will tear down the current mythic_react container and re-build it with nodejs.

At this point, any changes you make to the source code in Mythic/MythicReactUI will trigger automatic re-builds on the UI for easy development.

Building the Mythic UI

When you're done with all of your changes, run sudo ./mythic-cli build_ui and Mythic will automatically build the UI and place it in the mythic-react-docker folder. At this point, if you set the mythic_react_debug back to false and run ./mythic-cli build mythic_react, you'll see the UI exactly as somebody else would with a fresh install of Mythic.

Modifying permissions with GraphQL/Hasura

If you modify any of the permissions, create new actions, or make any modifications at all in Hasura's GraphQL, then you need to make sure those get saved off. There's not a great way to do this yet, but for now the following steps will save them when done from the Mythic directory:

docker exec -it mythic_graphql /bin/bash
hasura-cli init
[enter some random name here, let's say Bob]
cd Bob
cp /metadata/config.yml .
hasura-cli metadata export
cd metadata
cp * -R /metadata

The above steps export the metadata and puts it back into the mounted /metadata directory for Hasura.

Previous4. Extending Agent CommandsNextFAQ / Troubleshooting Tips

Was this helpful?