Voltar para o Blog
Ravage Framework: Versão 1.2 lançada!
Pentest22 de fevereiro de 2025

Ravage Framework: Versão 1.2 lançada!

Confira as principais mudanças e as novas funções da nova versão disponível do Ravage Framework..

Vinicius Pereira

Head of Offensive Security

RavageC2

Há alguns meses lançamos nossa ferramenta de comando e controle, o RavageC2, com foco principal em máquinas Windows, utilizando como base python e powershell.

Essa ferramenta tem como objetivo auxiliar profissionais de segurança ofensiva a atuar em ambientes muito seguros, onde há forte implementação de sistemas EDR e forte presença de blue team fazendo análises constantes no ambiente. Para esses cenários, o RavageC2 é extremamente útil.

A ferramenta em si foi criada de forma privada, sendo inicialmente um projeto interno da XPSec Security, mas decidimos publicar em nosso github para ajudar a comunidade.

Versão 1.2

Recentemente publicamos a versão estável da ferramenta, sendo a 1.2 e trouxemos diversas novidades que estamos empolgados em compartilhar... quando realizamos um ataque usando a ferramenta em um cliente, percebemos que em ambientes locais funcionava muito bem, a interface fluia com poucas máquinas comprometidas, mas quando você tinha o dashboard cheio de máquinas comprometidas isso virava um caos... decidimos realizar diversos ajustes na interface web para facilitar o uso principalmente quando há o comprometimento de diversas máquinas ao mesmo tempo.

Interface Gráfica

RavageC2 dashboard

Agora você tem filtros, os modals da interface se encaixam melhor, você consegue realizar o redimensionamento entre a visualização das máquinas e a tela de interação, nada é fixo como era antes!

Uma das principais mudanças que adicionamos também foi a adição de filtros, você consegue filtrar por informações da máquina, domínio, estado da máquina (online/offline/all), agrupar por domínio. Isso ajuda muito quando você lida com +20 máquinas de diversas empresas/domínios diferentes.

Não podia deixar de comentar também que agora a interface está no estilo Dracula Theme, achamos mais bonito assim e as cores combinam mais com o estilo escuro.

Listener

Se você já usou a versão anterior, provavelmente se lembra que o listener era feito por meio do arquivo profile.yaml, então se você quisesse criar um novo listener era necessário editar esse arquivo e reiniciar o servidor, em operações reais isso era extremamente inviável já que nem sempre você terá facilidade em acessar o SSH do servidor que o RavageC2 está sendo executado.

Para facilitar e evitar problemas, removemos essa limitação, agora diretamente pelo dashboard você consegue gerenciar seus listeners, tanto a criação quando a remoção.

Listeners

Não há mais necessidade de reiniciar o servidor, não há mais necessidade de editar o arquivo de profile. Tudo fica gerenciável pelo painel web, como deve ser!

Agent Generator

Para gerar agents agora você pode simplesmente escolher qual listener quer usar, sem estar restrito a apenas 1 como era na antiga versão, veja o exemplo abaixo:

Agent generator

Dessa forma você consegue gerenciar melhor seus agents, distribuindo-os para portas específicas dos listeners sem as limitações que o profile.yaml gerava.

Histórico de Comandos e Fila de Execução

Outro ponto importante que não havia nas versões anteriores era um histórico de comandos, era realmente preocupante quando você executava um comando e outro em seguida, mas não conseguia ver o resultado do comando anterior... parecia muito uma shell simples e extremamente limitada. Resolvemos isso de duas formas:

1 - Adicionamos o histórico de comandos, onde vocẽ pode usar a seta para cima do seu reclado para voltar comandos anteriores e visualizar o histórico. 2 - Adicionamos fila de execução, agora quando você envia dois ou mais comandos, o agent executará todos sequencialmente sem substituir nenhum, isso nos permitiu adicionar navegação de arquivos diretamente no dashboard sem depender de módulos externos.

Histórico de comandos e fila Navegação de arquivos

Profile.yaml

Também não poderia deixar de falar sobre o novo formato do profile.yaml, como comentei, agora você não precisa mais criar listeners diretamente nesse arquivo, você pode criar perfis de tráfego maleáveis onde, esses perfis irão simular o comportamento de sites e ferramentas reais, tanto a requisição quanto resposta.

Ao criar um listener, você consegue escolher qual perfil quer usar, não se limitando a somente um. Veja um exemplo abaixo onde o agent irá simular requisições para o microsoft teams e o c2 irá responder como se fosse o teams:

  - id: "teams"
    description: "Simulate Microsoft Teams"
    http:
      user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
      uris:
        - "/api/chatsvc/amer/v1/users/ME/conversations/notes/messages"
        - "/OneCollector/1.0/?cors=true&content-type=application/x-json-stream&content-encoding=gzip"
      request_headers:
        - "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        - "Accept-Language: en-US,en;q=0.5"
        - "Referer: https://teams.cloud.microsoft/"
        - "Client-Version: 1DS-Web-JS-4.2.1"
      response_headers:
        - "content-type: application/json"
        - "server: Microsoft-HTTPAPI/2.0"
        - "x-content-type-options: nosniff"

Você pode criar quantos perfis quiser dentro do profile.yaml e usá-los no listener, durante sua geração.

Conclusão

Essa ferramenta realmente é muito importante para nós, obviamente está em seu estágio inicial e não estamos competindo com outras ferramentas do mercado, como Havoc e CobaltStrike, estamos criando algo confiável, algo simples e que tente passar despercebido por sistemas de defesas.

Você pode conferir tudo aqui: https://github.com/XPSec-Security/Ravage

Em breve, iremos fazer uma nova pubicação explicando totalmente o funcionamento do profile.yaml e detalhando o traffic profile. Até logo!

Compartilhar