Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Medusa — Agente C2 multiplataforma para Mythic com carregamento dinâmico de funções, proxy SOCKS5, operações de arquivos, injeção de shellcode e módulos de pós-exploração para macOS/Windows. | Kitploit
Ferramentas/GitHubGitHub/mythicagents/medusa
Frameworks de Testes de PenetraçãoEscalada de PrivilégiosFrameworks de ExploraçãoMovimento LateralShellcodePós-ExploraçãoComando e ControleRed TeamingFerramenta de Acesso RemotoGeração de ShellcodeDesenvolvimento de Payloads
208524há 1 mêsRevisado pelo Kitploit
GitHub
mythicagents/medusa

Medusa

Agente C2 multiplataforma para Mythic com carregamento dinâmico de funções, proxy SOCKS5, operações de arquivos, injeção de shellcode e módulos de pós-exploração para macOS/Windows.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Logotipo da Medusa

Medusa

Medusa é um agente multiplataforma compatível com Python 3.8 e Python 2.7.

Instalação

Para instalar a Medusa, você precisará ter o Mythic v3 instalado em um computador remoto. Você pode encontrar instruções de instalação do Mythic na página do projeto Mythic.

A partir da raiz de instalação do Mythic, execute o comando:

./mythic-cli install github https://github.com/MythicAgents/Medusa.git

Após a instalação, reinicie o Mythic para compilar um novo agente.

Notas de Configuração do RabbitMQ

O arquivo Payload_Type/medusa/rabbitmq_config.json é um modelo e deve corresponder ao seu ambiente Mythic.

  • Defina rabbitmq_password com o valor do seu RABBITMQ_PASSWORD do Mythic (normalmente do do Mythic).
.env
  • Defina rabbitmq_host com o nome do host/container do RabbitMQ (geralmente mythic_rabbitmq em configurações docker-compose, ou 127.0.0.1 para binds locais).
  • Defina mythic_server_host com o nome do host/container do servidor Mythic (geralmente mythic_server em configurações docker-compose, ou 127.0.0.1 para binds locais).
  • Funcionalidades Notáveis

    • Carregamento/descarregamento dinâmico de funções do agente para limitar a exposição das capacidades do agente em disco.
    • Carregamento de módulos Python na memória para uso em scripts personalizados.
    • Proxy SOCKS5 multiplataforma
    • Leitor de área de transferência do macOS, capturador de tela e análise do banco de dados TCC
    • Navegador de arquivos compatível com upload/download
    • Eval() de código Python dinâmico
    • Compatibilidade com Proxy de Autenticação Básica

    Referência Rápida do Manual de Comandos

    O agente base e os comandos incluídos usam bibliotecas Python nativas, portanto, não precisam de pacotes adicionais para funcionar. Os agentes executarão os comandos em threads, então uploads ou downloads longos não bloquearão o agente principal.

    Comandos Gerais

    ComandoSintaxeDescrição
    catcat caminho/para/arquivoLer e exibir o conteúdo do arquivo.
    cdcd [.. diretório]Alterar diretório de trabalho (.. para subir um nível).
    cpcp origem_arquivo_ou_pasta destino_arquivo_ou_pastaCopiar arquivo ou pasta para o destino.
    cwdcwdExibir diretório de trabalho atual.
    downloaddownload [caminho]Baixar um arquivo do sistema alvo.
    download_bulkdownload_bulk [caminho1] [caminho2] ...Baixar múltiplos arquivos do sistema alvo em uma única tarefa.
    exitexitEncerrar um callback.
    envenvExibir variáveis de ambiente.
    eval_codeeval_code [comandos]Executar código Python e retornar a saída.
    jobkilljobkill [id da tarefa]Enviar sinal de parada para tarefa de longa duração.
    jobsjobsListar tarefas de longa duração, como downloads.
    list_moduleslist_modules [nome_do_módulo]Listar módulos na memória ou a listagem completa de arquivos de um módulo específico.
    loadload comandoCarregar uma nova capacidade em um agente.
    load_moduleload_moduleCarregar um módulo Python compactado (.zip) na memória (adaptado de aqui e aqui).
    load_scriptload_scriptCarregar e executar um script Python através do agente.
    lsls [. caminho]Listar arquivos e pastas em ou use para o diretório atual.

    Comandos macOS

    ComandoSintaxeDescrição
    clipboardclipboardExibir o conteúdo da área de transferência (usa API Objective-C, conforme descrito por Cedric Owens aqui. Apenas macOS, apenas Python 2.7).
    list_appslist_appsListar aplicativos macOS (apenas Python 2.7, apenas macOS).
    list_tcclist_tcc [caminho]Listar entradas no banco de dados TCC do macOS (requer acesso total ao disco e apenas Big Sur por enquanto).
    screenshotscreenshotTirar uma captura de tela (usa API Objective-C, apenas macOS, apenas Python 2.7).
    spawn_jxaspawn_jxaIniciar um processo osascript e enviar conteúdo Javascript para ele.
    vscode_list_recentvscode_list_recent [state_db]Listar arquivos e pastas abertos recentemente com VSCode.
    vscode_open_editsvscode_open_edits [caminho_do_diretório_de_backup]Listar alterações não salvas em arquivos no VSCode.
    vscode_watch_editsvscode_watch_edits [caminho para diretório remoto] [intervalo_de_polling]Monitorar o diretório de backups do VSCode em um intervalo determinado por alterações não salvas.

    Comandos Windows

    ComandoSintaxeDescrição
    shinjectshinjectInjetar shellcode em um PID alvo usando CreateRemoteThread (apenas Windows - adaptado de aqui).
    load_dllload_dll caminho_da_dll export_da_dllCarregar uma DLL do disco e executar uma função exportada (NOTA: Esta DLL deve retornar um valor int ao finalizar; uma DLL criada com msfvenom, por exemplo, matará seu agente ao finalizar).
    list_dllslist_dlls [pid]Ler a memória do processo (PEB) do processo local ou alvo para obter lista de DLLs carregadas (apenas Python 3)
    pspsObter informações limitadas do processo, ex.: PID, nomes de processos, arquitetura e caminhos de binários (apenas Python 3)
    ps_fullps_fullObter informações completas do processo, incluindo PPID, nível de integridade e linha de comando (apenas Python 3)
    killkillEncerrar um processo pelo ID do processo (apenas Python 3)

    Versões Python

    Ambas as versões do agente Medusa usam uma implementação AES256 HMAC escrita com bibliotecas nativas (adaptada de aqui), eliminando a necessidade de dependências adicionais além de uma instalação padrão do Python. Portanto, o agente deve funcionar em hosts Windows, Linux e macOS. Vale mencionar que essa implementação criptográfica introduz alguma sobrecarga ao lidar com arquivos grandes (capturas de tela, downloads, etc.), mas é funcional.

    Comandos Py2 vs Py3

    Dentro do diretório Payload_Type/Medusa/agent_code, você verá arquivos base_agent com sufixos py2 e py3. Da mesma forma, extensões de arquivo semelhantes podem ser vistas para arquivos de funções individuais.

    Eles são lidos pelo script builder.py para primeiro selecionar a versão correta do Python base do agente Medusa. O builder.py então incluirá comandos específicos para a versão escolhida do Python. No caso em que um comando tem apenas a extensão .py, ele será usado por padrão, assumindo que nenhum código alternativo é necessário entre as versões Py2 e Py3.

    Tarefas com Threads

    A Medusa usa threading básico para execução de tarefas. Onde as tarefas são potencialmente de longa duração, elas podem ser implementadas com uma 'verificação de parada' para responder a um sinal da tarefa jobkill. Isso pode ser implementado com um trecho de código semelhante ao mostrado abaixo:

    root@kitploit:~
    if [task for task in self.taskings if task["task_id"] == task_id][0]["stopped"]:
      # Alguma limpeza específica da tarefa
      return "Tarefa interrompida."
    

    Este manipulador pode ser visto implementado nos comandos download, upload, watch_dir e screenshot.

    Além disso, se a tarefa de longa duração deve fornecer saída contínua, a função sendTaskOutputUpdate - incluída no agente base - pode ser usada para atualizar o Mythic antes da conclusão da tarefa. Uma função fictícia que fornece saída contínua e pode ser interrompida com jobkill pode ser vista abaixo.

    root@kitploit:~
    def dummyFunction(self, task_id):
      while(True):
          # Verifica se recebemos um sinal de parada.
          if [task for task in self.taskings if task["task_id"] == task_id][0]["stopped"]: return "Tarefa interrompida."
    
          # Envia saída de volta para o Mythic
          self.sendTaskOutputUpdate(task_id, "Ainda estamos em execução")
    
          time.sleep(10)
    

    Perfis C2 Suportados

    A Medusa atualmente suporta dois perfis C2: http (com e sem criptografia AES256 HMAC) e azure_blob.

    Perfil HTTP

    O perfil HTTP faz callback para o servidor Mythic através do perfil básico, não dinâmico. Requisições GET para tarefas, requisições POST com respostas.

    Agradecimentos

    • Scripts do navegador e código do agente adaptados de @its_a_feature_ e @djhohnstein.
    • MacC2 e este post do blog de Cedric Owens
    • EmPyre e este post do blog de Chris Ross.
    • A magia criptográfica encontrada aqui.
    • Ícone do agente de flaticon.com
    Baixar ferramenta
    [caminho]
    .
    mvmv origem_arquivo_ou_pasta destino_arquivo_ou_pastaMover arquivo ou pasta para o destino.
    pip_freezepip_freezeListar programaticamente os pacotes instalados no sistema.
    ptypty [/bin/bash] / pty self / pty forkAbrir uma sessão PTY interativa. Modos: spawn executa um programa com PTY, self abre um REPL Python no processo com estado do agente ao vivo, fork bifurca o agente em um REPL Python com estado snapshot (apenas Linux/macOS).
    rmrm arquivo_ou_pastaExcluir arquivo ou pasta.
    shellshell [comando]Executar um comando shell que será iniciado usando subprocess.Popen(). Observe que isso aguardará o comando terminar, então tome cuidado para não bloquear seu agente.
    sockssocks start/stop [porta]Iniciar/parar proxy SOCKS5 através do agente Medusa.
    sleepsleep [segundos] [porcentagem de jitter]Definir o intervalo de callback do agente em segundos.
    unloadunload comandoRemover uma capacidade existente de um agente.
    unload_moduleunload_module nome_do_móduloRemover um módulo Python previamente carregado na memória.
    uploaduploadFazer upload de um arquivo para um caminho remoto na máquina.
    watch_dirwatch_dir caminho segundosMonitorar alterações no diretório alvo, verificando alterações em uma taxa especificada.