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
revsuit — RevSuit é uma plataforma de conexão reversa flexível e poderosa projetada para receber conexão do host alvo em penetração. | Kitploit
Ferramentas/GitHubGitHub/li4n0/revsuit
Frameworks de Testes de PenetraçãoReconhecimentoAnálise de VulnerabilidadesExploraçãoColeta de InformaçõesSegurança WebTestes de PenetraçãoAnálise de DNS
GitHubli4n0/revsuit

revsuit

RevSuit é uma plataforma de conexão reversa flexível e poderosa projetada para receber conexão do host alvo em penetração.

Ver Repositório
56469há 3 anosRevisado pelo Kitploit

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

RevSuit - Uma Plataforma de Conexão Reversa Flexível e Poderosa

Inglês |简体中文

Visão Geral

RevSuit é uma plataforma de conexão reversa flexível e poderosa projetada para receber conexões do host alvo durante testes de penetração. Atualmente suporta os protocolos HTTP, DNS, RMI, LDAP, MySQL e FTP.

Flexível:

  1. RevSuit pode definir regras flexíveis para capturar diferentes conexões.
  2. Implante e execute via binários sem se preocupar com erros de dependência.

Poderoso:

  1. Permite personalizar a resposta para diferentes conexões através de regras e suporta geração dinâmica de resposta usando variáveis de modelo.
  2. Suporta uma variedade de protocolos e suporta a utilização aprofundada de alguns protocolos, como DNS rebinding, MySQL Load Local Data, JDBC Deserialize Exploit, FTP Passive Mode SSRF, etc.
  3. Suporte nativo para uso com scanners.
  4. Suporte a notificações push para software de escritório popular.
  5. Outros recursos detalhados e bem pensados.

Uso Básico

Instalação e Configuração

Baixe a versão mais recente diretamente ou construa seguindo os passos:

root@kitploit:~
git clone https://github.com/Li4n0/revsuit.git
cd revsuit/frontend && yarn install && yarn build
cd ../ && go build ./cmd/revsuit/revsuit.go

RevSuit irá gerar um arquivo de configuração padrão na primeira execução. Modifique o arquivo de configuração de acordo com suas necessidades e execute novamente. Uma descrição detalhada do arquivo de configuração pode ser encontrada em: Notas de Configuração

Executar

Para confirmar a localização do IP, é necessário usar o banco de dados de localização de IP. QQwry é usado como fonte de dados padrão, você também pode modificar a configuração para usar GeoIP. Se o banco de dados selecionado não estiver disponível no diretório atual ou se o banco de dados estiver desatualizado por mais de uma semana, o RevSuit baixará automaticamente o banco de dados mais recente. Se o download falhar, o campo IpArea será sempre nulo.

root@kitploit:~
$ ./revsuit   
2021/05/16 22:55:10 [ INFO] Downloading qqwry.dat...

    ____            _____       _ __ 
   / __ \___ _   __/ ___/__  __(_) /_
  / /_/ / _ \ | / /\__ \/ / / / / __/
 / _, _/  __/ |/ /___/ / /_/ / / /_  
/_/ |_|\___/|___//____/\__,_/_/\__/    
                                   vBeta0.1
     https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Starting HTTP Server at :80, token:your_token
2021/05/16 22:55:22 [ INFO] Start to listen FTP PASV port at :2020, PasvIP is 10.9.8.7
2021/05/16 22:55:22 [ INFO] Starting FTP Server at :21
2021/05/16 22:55:22 [ INFO] Starting MySQL Server at :3306
2021/05/16 22:55:22 [ INFO] Starting RMI Server at :1099
2021/05/16 22:55:22 [ INFO] Starting DNS Server at :53

Após a execução, você pode visitar o caminho /revsuit/admin/ do Servidor HTTP e inserir o token para acessar o painel de controle.

Criar Regras e Receber Conexão

Tome a criação de regras HTTP como exemplo:

Algumas notas são as seguintes:

  1. O name e flagFormat da regra são únicos.
  2. FlagFormat usa sintaxe de expressão regular, e para diferentes protocolos, os campos correspondidos pelo flagFormat são diferentes; você pode verificar as dicas correspondentes para obter detalhes ao criar regras.
  3. Regras com classificação alta terão efeito primeiro.
  4. Para diferentes regras de protocolo, você pode fazer diferentes respostas personalizadas, e para alguns protocolos, variáveis de modelo podem ser usadas.
  5. Você pode definir o agrupamento nomeado de expressões regulares em flagFormat, e o resultado do agrupamento correspondente também será usado como uma variável de modelo.

Conforme mostrado abaixo, criamos uma regra que usa as variáveis de modelo embutidas e variáveis de modelo personalizadas do protocolo http, e a nomeamos test_create_rule:

img.png

Em seguida, faça uma solicitação que satisfaça a regra e visualize a resposta.

img.png

A solicitação será registrada na plataforma ao mesmo tempo.

img.png

Aviso

Se você deseja ser notificado sobre novas conexões em seu software de escritório, pode configurar o endereço do webhook do software relevante no arquivo de configuração e ativar a chave Notice para a regra correspondente. Atualmente, suporta apenas quatro tipos de software: dingtalk,wechat,lark,slack. (Suporte para Discord e telegram está planejado.)

Importar/Exportar Regras

Se você está migrando plataformas ou limpando dados, pode ser um incômodo recriar regras. É por isso que a plataforma suporta importação e exportação de regras.

O ponto de entrada para esta função está localizado em Settings>RULES.

As regras são armazenadas em formato yaml para importação e exportação, como a seguir:

root@kitploit:~
http:
  - name: test_create_rule
    flag_format: (?P<what>\w+)\?
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "302"
    response_headers:
      Location: ${query.url}
    response_body: ${header.say} ${what}
  - name: other_rule
    flag_format: other
    rank: 1
    push_to_client: false
    notice: true
    response_status_code: "200"
    response_headers: { }
    response_body: Hello Revsuit!
dns:
  ... ...

Uso Avançado

Uso com Scanner

RevSuit foi separado do meu projeto de scanner, portanto seu suporte nativo funciona com scanners.

Da perspectiva do RevSuit, chamamos um scanner de cliente.

Estabelecer Conexão

RevSuit usa Eventos enviados pelo servidor HTTP (SSE) para estabelecer um canal de comunicação unidirecional com o cliente.

A API para o canal é: /revsuit/api/events?message. O cliente primeiro precisa adicionar o cabeçalho Token: your token ao Header, e então acessar a API para estabelecer o canal. Quando a plataforma recebe uma nova conexão, o flag capturado pela regra será passado ao cliente através deste canal. img.png

Aqui está uma demo simples usando a biblioteca sse do Golang como exemplo.

Multi-cliente

Conforme mostrado acima, o RevSuit suporta vários clientes, e cada cliente no estado conectado recebe um push de flag, portanto a varredura distribuída pode ser suportada.

Se você não quer que todos os clientes recebam todos os pushes de flag, pode usar o cabeçalho de solicitação Flag-Filter ao criar uma conexão sse para definir o formato (expressões regulares) do flag que você deseja que aquele cliente receba:

img.png

Fila de armazenamento temporário

RevSuit armazenará flag temporariamente na fila quando não houver conexão de cliente e o enviará quando o cliente conectar, para que você não precise se preocupar em perder a vulnerabilidade devido à desconexão do cliente. (Isso é especialmente útil para descobrir vulnerabilidades acionadas por atraso.)

Usar flagGroup

Em um cenário real de varredura de vulnerabilidades, você pode enviar um grande número de payloads diferentes para um único ponto de vulnerabilidade, e todos podem ser válidos, o que pode resultar na plataforma de backlink recebendo muitas solicitações, mas todas causadas pela mesma vulnerabilidade. Se você não quer que o cliente receba tantos flags para a mesma vulnerabilidade, você pode aproveitar o recurso flagGroup do flagFormat da regra.

FlagGroup é o conteúdo correspondido pelo grupo anônimo no campo flagFormat da regra. A plataforma verificará o conteúdo correspondido no agrupamento, e o flag só é enviado ao cliente quando o conteúdo (flagGroup) é capturado pela primeira vez.

Por exemplo, varredura SSRF.

Primeiramente crie uma regra como a seguinte:

root@kitploit:~
http:
  - name: ssrf
    flag_format: (ssrf[a-z0-9]{6})[0-9]{1,3}
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "200"
    response_headers: { }
    response_body: "Here is a SSRF!"

Suponha que nosso alvo seja https://www.testvuln.com?url=api.com&p=useless, e para SSRF temos 5 payloads. A requisição final enviada pelo scanner pode ser ['https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni1&p=useless','https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni2&p=useless', ... ,'https://www.testvuln.com?url=//revsuit.com/ssrfa98oni5&p=useless'] . Todas podem atacar com sucesso.

No entanto, como o agrupamento anônimo é usado no flagFormat da regra, a plataforma consultará o flagGroup conectado, neste caso ssrfa98oni, e enviará o flag ao cliente apenas em sua primeira aparição, então o cliente receberá apenas um flag: ssrfa98oni1. Isso já prova que o parâmetro url do alvo é vulnerável.

Colocação de múltiplos módulos

Em cenários reais de teste de penetração, certas tarefas podem ser feitas de forma fácil e rápida combinando e combinando vários módulos do RevSuit. O seguinte é um exemplo de um XXE cego em Java Web, mostrando como usar os módulos HTTP e FTP do RevSuit, combinados com variáveis de modelo, para completar rapidamente uma varredura de portas.

Primeiro crie uma regra HTTP para retornar evil.dtd, personalize a resposta para o conteúdo do dtd para que ele se conecte ao serviço FTP do RevSuit, e use variáveis de modelo para passar o Host e a Porta a serem escaneados para o FTP através do usuário e senha do FTP.

create evil.dtd rule

Em seguida, crie uma regra FTP que recebe o Host e a Porta a serem escaneados das variáveis de modelo do usuário e senha, definida como Pasv Address.

create ftp scan rule

Em seguida, use o BurpSuit para lançar a varredura, definindo os parâmetros host e port na URL evil.dtd para definir o alvo da varredura de porta.

xxe

O efeito da execução é o seguinte:

ftp-scan

Isso ocorre porque a conexão FTP será interrompida se o Passive Address não estiver acessível; podemos determinar se a porta está aberta ou não com base em se a conexão sai normalmente. Para este exemplo, detectamos com sucesso que as portas 8005 e 8080 estão abertas.

Mais Usos

Um wiki mais detalhado está sendo preparado; você pode explorar por conta própria até lá.

Feedback, Sugestões e Comunicação

Envie um issue ou entre em contato pelo Weixin: TGk0bjA2Cg==

Agradecimentos

Referência

Este projeto utiliza código dos seguintes projetos notáveis:

  • https://github.com/rmb122/rogue_mysql_server
  • https://github.com/256dpi/newdns
  • https://github.com/EmYiQing/JNDIScan

Especificamente

Agradeço ao meu amigo @E99p1ant por toda a ajuda e conselhos que recebi durante o desenvolvimento deste projeto.

Licença

@Apache License 2.0

Baixar ferramenta