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
Interlace — Transforme facilmente aplicações de linha de comando single-threaded em uma aplicação rápida e multi-threaded com suporte a CIDR e glob. | Kitploit
Ferramentas/GitHubGitHub/codingo/interlace
ReconhecimentoScripting e AutomaçãoTestes de PenetraçãoUtilitários e Frameworks
GitHubcodingo/interlace

Interlace

Transforme facilmente aplicações de linha de comando single-threaded em uma aplicação rápida e multi-threaded com suporte a CIDR e glob.

Ver Repositório
1.3k1881há 11 mesesRevisado 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

Interlace

Transforme facilmente aplicações de linha de comando single-threaded em uma aplicação rápida e multi-threaded com suporte a CIDR e glob.

Python 3.2|3.6 License Twitter Twitter

Análises / Guias

Interlace: Uma Ferramenta para Automatizar e Multi-thread Facilmente seu Fluxo de Pentest & Bug Bounty Sem Nenhuma Codificação

Índice

  • Instalação
  • Uso - Flags
  • Exemplos de Uso
  • Notação de Portas Explicada
  • Notação de Alvos Explicada
  • Suporte a Threading para uma Aplicação que não o suporta
  • Notação CIDR para uma Aplicação que não a suporta
  • Notação GLOB para uma Aplicação que não a suporta
  • Suporte a Múltiplos Proxies para uma Aplicação que não o suporta
  • Substituições de Variáveis
  • Uso Avançado de Arquivo de Comandos
  • Uso Avançado: Blocker
  • Uso Avançado: Blocos
  • Exclusões

Instalação

Instale usando:

root@kitploit:~
$ python3 setup.py install

As dependências serão instaladas e o Interlace será adicionado ao seu caminho como interlace.

Uso

Mais informações sobre portas

ExemploTipo de Notação
80Porta única
1-80Notação de traço, executa um comando para cada porta de 1 a 80
80,443Executa um comando para ambas as portas 80 e 443

Mais informações sobre alvos

Tanto -t quanto -tL serão processados da mesma forma. Você pode passar alvos da mesma forma que faria ao usar o nmap. Isso pode ser feito usando notação CIDR, notação de traço ou uma lista delimitada por vírgulas de alvos. Um único arquivo de lista de alvos também pode usar diferentes tipos de notação por linha.

Alternativamente, você pode passar alvos via STDIN e nem -t nem -tL serão necessários.

Substituições de Variáveis

As seguintes variáveis serão substituídas nos comandos em tempo de execução:

Uso Avançado de Arquivo de Comandos

O Interlace também permite o uso de dois recursos adicionais para controlar o fluxo de execução dentro de um arquivo de comando: _blocker_ e _block:<nome>_. Os Blockers impedem a execução dos comandos listados depois deles até que todos os comandos anteriores tenham sido concluídos, e os blocos podem ser usados para forçar a execução sequencial de comandos listados dentro de um bloco, para um alvo.

Estes são executados em um nível por alvo. Se houver threads disponíveis e um blocker estiver no caminho para o alvo atual, o Interlace iniciará comandos do próximo alvo dentro de uma lista de alvos para maximizar a eficiência.

Usar esses recursos permitirá que você controle o fluxo de execução para alvos individuais de forma mais direta, a fim de evitar que comandos sejam executados fora de ordem.

Blocker

Os Blockers impedem que qualquer coisa abaixo deles seja executada até que todos os comandos acima deles tenham sido concluídos (para o host atualmente ativo). Por exemplo, no seguinte:

root@kitploit:~
mkdir -p _output_/_target_/scans/
_blocker_
nmap _target_ -oA _output_/_target_/scans/_target_-nmap

O uso de um blocker aqui evita que o nmap seja executado em um alvo antes que a estrutura básica de pastas tenha sido criada, evitando que o nmap lance uma exceção.

Blocos

Os Blocos forçam tudo dentro deles a ser executado sequencialmente. Você também pode usar vários blocos por arquivo de comando. Por exemplo, no seguinte:

root@kitploit:~
_block:nmap_
mkdir -p _target_/output/scans/
nmap _target_ -oN _target_/output/scans/_target_-nmap
_block:nmap_
nikto --host _target_

Neste exemplo, o bloco seria executado da mesma forma que antes, mas assumindo que o número de threads seja alto o suficiente, o nikto começaria a ser executado imediatamente, enviando resultados de volta ao terminal (enquanto o nmap e a criação de arquivo ocorreriam em segundo plano).

Exemplos de Uso

Executar Nikto em Múltiplos Sites

Vamos supor que você tenha um arquivo targets.txt com o seguinte conteúdo:

root@kitploit:~
bugcrowd.com
hackerone.com

Você poderia usar o Interlace para executar sobre qualquer número de alvos dentro deste arquivo usando: bash

root@kitploit:~
➜  /tmp interlace -tL ./targets.txt -threads 5 -c "nikto --host _target_ > ./_target_-nikto.txt" -v
=========================================================================
Interlace v1.0	por Michael Skelton (@codingo_) & Sajeeb Lohani (@sml555_)
=========================================================================
[14:33:23] [THREAD] [nikto --host hackerone.com > ./hackerone.com-nikto.txt] Adicionado à Fila 
[14:33:23] [THREAD] [nikto --host bugcrowd.com > ./bugcrowd.com-nikto.txt] Adicionado à Fila 

Isso executaria o Nikto em cada host e salvaria em um arquivo para cada alvo. Observe que no exemplo acima, como estamos usando o operador >, os resultados não serão enviados de volta ao terminal; no entanto, essa é uma funcionalidade desejada, caso contrário, não seríamos capazes de atribuir para qual alvo os resultados do Nikto estavam retornando.

Para aplicações onde você deseja feedback, simplesmente passe os comandos como faria normalmente (ou use tee).

Executar Nikto em Múltiplos Sites e Portas

Usando o exemplo acima, vamos supor que você queira executar varreduras independentes para ambas as portas 80 e 443 para os mesmos alvos. Você então usaria o seguinte:

root@kitploit:~
➜  /tmp interlace -tL ./targets.txt -threads 5 -c "nikto --host _target_:_port_ > ./_target_-_port_-nikto.txt" -p 80,443 -v
=========================================================================
Interlace v1.0	por Michael Skelton (@codingo_) & Sajeeb Lohani (@sml555_)
=========================================================================
[14:33:23] [THREAD] [nikto --host hackerone.com:80 > ./hackerone.com-nikto.txt] Adicionado à Fila 
[14:33:23] [THREAD] [nikto --host bugcrowd.com:80 > ./hackerone.com-nikto.txt] Adicionado à Fila 
[14:33:23] [THREAD] [nikto --host bugcrowd.com:443 > ./bugcrowd.com-nikto.txt] Adicionado à Fila 
[14:33:23] [THREAD] [nikto --host hackerone.com:443 > ./hackerone.com-nikto.txt] Adicionado à Fila 

Executar uma Lista de Comandos contra Hosts Alvo

Frequentemente em testes de penetração, há uma lista de comandos que você deseja executar em quase todos os trabalhos. Supondo que essa lista inclua testssl.sh, nikto e sslscan, você poderia salvar uma lista de comandos com o seguinte conteúdo em um arquivo chamado commands.txt:

root@kitploit:~
nikto --host _target_:_port_ > _output_/_target_-nikto.txt
sslscan _target_:_port_ >  _output_/_target_-sslscan.txt
testssl.sh _target_:_port_ > _output_/_target_-testssl.txt

Se você recebesse um alvo example.com, poderia executar cada um desses comandos contra este alvo usando o seguinte:

root@kitploit:~
interlace -t example.com -o ~/Engagements/example/ -cL ./commands.txt -p 80,443

Isso executaria nikto, sslscan e testssl.sh para ambas as portas 80 e 443 contra example.com e salvaria os arquivos na sua pasta de engajamentos.

Notação CIDR com uma aplicação que não a suporta

O Interlace expande automaticamente a notação CIDR ao iniciar threads (a menos que a flag --no-cidr seja passada). Isso permite que você passe notação CIDR para uma variedade de aplicações:

Para executar uma varredura de host virtual contra cada alvo dentro de 192.168.12.0/24 usando um comando direto, você poderia usar:

root@kitploit:~
interlace -t 192.168.12.0/24 -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Isso apesar do VHostScan não ter suporte embutido para notação CIDR. Como o Interlace expande a notação antes de construir uma fila de threads, o VHostScan, para todos os efeitos, está recebendo apenas uma lista de endereços IP diretos para escanear.

Notação Glob com uma aplicação que não a suporta

O Interlace expande automaticamente intervalos glob ao iniciar threads. Isso permite que você passe intervalos glob para uma variedade de aplicações:

Para executar uma varredura de host virtual contra cada alvo dentro de 192.168.12.* usando um comando direto, você poderia usar:

root@kitploit:~
interlace -t 192.168.12.* -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Novamente, o VHostScan não possui suporte embutido para formato de intervalo glob.

Notação de traço (-) com uma aplicação que não a suporta

O Interlace expande automaticamente intervalos de traço ao iniciar threads. Isso permite que você passe intervalos glob para uma variedade de aplicações:

Para executar uma varredura de host virtual contra cada alvo dentro de 192.168.12.1-15 usando um comando direto, você poderia usar:

root@kitploit:~
interlace -t 192.168.12.1-15 -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Novamente, o VHostScan não possui suporte embutido para formato de intervalo de traço.

Suporte a Threading para uma aplicação que não o suporta

Execute uma varredura de host virtual contra cada host em um arquivo (target-lst.txt), ao mesmo tempo limitando as varreduras a no máximo 50 threads por vez.

Isso poderia ser feito usando um comando direto:

root@kitploit:~
interlace -tL ./target-list.txt -c "vhostscan -t _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Ou, alternativamente, para executar o mesmo comando acima, mas usando um arquivo de comandos:

root@kitploit:~
interlace -cL ./vhosts-commands.txt -tL ./target-list.txt -threads 50 -o ~/scans

Isso pressupõe que o conteúdo do arquivo de comando seja:

root@kitploit:~
vhostscan -t $target -oN _output_/_target_-vhosts.txt

Isso geraria um arquivo para cada alvo na pasta de saída especificada. Você também poderia executar vários comandos simplesmente adicionando-os ao arquivo de comando.

Exclusões

O Interlace exclui automaticamente quaisquer hosts fornecidos quando especificados pelos argumentos -e ou -eL. Esses argumentos também são compatíveis com as notações de intervalo mencionadas acima (CIDR, glob e traço)

Para executar uma varredura de host virtual contra cada alvo no intervalo CIDR 192.168.12.0/24, mas não para os alvos no intervalo 192.168.12.0/26, usando um comando direto, você poderia usar:

root@kitploit:~
interlace -t 192.168.12.0/24 -e 192.168.12.0/26 -c "vhostscan _target_ -oN _output_/_target_-vhosts.txt" -o ~/scans/ -threads 50

Executar Nikto Usando Múltiplos Proxies

Usando o exemplo acima, vamos supor que você queira executar varreduras independentes através de diferentes proxies para os mesmos alvos. Você então usaria o seguinte:

root@kitploit:~
➜  /tmp interlace -tL ./targets.txt -pL ./proxies.txt -threads 5 -c "nikto --host _target_:_port_ -useproxy _proxy_ > ./_target_-_port_-nikto.txt" -p 80,443 -v

Autores e Agradecimentos

Originalmente escrito por Michael Skelton (codingo) e Sajeeb Lohani (sml555) com ajuda de Charelle Collett (@Charcol0x89) para a refatoração de threading e abordagem geral, e Luke Stephens (hakluke) para testes e abordagem.

Contribuições

Contribuições para este projeto são muito bem-vindas. Se você é novo em código aberto e gostaria de alguma ajuda para fazê-lo, sinta-se à vontade para nos contatar no Twitter (@codingo_) / (@sml555_) e ajudaremos no que for possível.

Baixar ferramenta
ArgumentoDescrição
(stdin)Passe listas de alvos de outra aplicação em formato delimitado por vírgulas, notação CIDR ou como um host individual
-tEspecifique um alvo ou nome de domínio em formato delimitado por vírgulas, notação CIDR ou como um host individual
-tLEspecifique uma lista de alvos ou nomes de domínio
-eEspecifique uma lista de alvos a excluir em formato delimitado por vírgulas, notação CIDR ou como um host individual
-eLEspecifique uma lista de alvos a excluir
-threadsEspecifique o número máximo de threads a executar em qualquer momento (PADRÃO:5)
-timeoutEspecifique um valor de timeout em segundos para qualquer thread única (PADRÃO:600)
-cEspecifique um único comando a executar sobre cada alvo ou domínio
-cLEspecifique uma lista de comandos a executar sobre cada alvo ou domínio
-oEspecifique uma variável de pasta de saída que pode ser usada em comandos como _output_
-pEspecifique uma lista de variáveis de porta que podem ser usadas em comandos como _port_. Pode ser uma única porta, uma lista delimitada por vírgulas ou um intervalo usando notação de traço
-pLEspecifique uma lista de proxies
--protoEspecifique protocolos que podem ser usados em comandos como _proto_
-rpEspecifique uma variável de porta real que pode ser usada em comandos como _realport_
-randomEspecifique um diretório de arquivos que podem ser usados aleatoriamente em comandos como _random_
--no-bar / --soberSe definido, a barra de progresso será removida
--no-cidrSe definido, a notação CIDR em um arquivo de alvos não será automaticamente expandida para hosts individuais
--no-colorSe definido, quaisquer cores de primeiro plano ou fundo serão removidas
--silentSe definido, apenas informações importantes serão exibidas e banners e outras informações serão omitidas
-vSe definido, a saída detalhada será exibida no terminal
VariávelSubstituição
_target_Substituída pela lista expandida de alvos contra a qual a thread atual está executando
_cleantarget_Substituída pelo alvo limpo de http:// ou https://
_safe-target_Substituída pelo alvo com automatic quoting para comandos, evitando execução de subcomandos
_host_Funciona da mesma forma que _target_, e pode ser usada de forma intercambiável
_output_Substituída pela variável de pasta de saída do Interlace
_port_Substituída pela variável de porta expandida do Interlace
_realport_Substituída pela variável de porta real do Interlace
_proxy_Substituída pela lista de proxies do Interlace
_random_Substituída pelo arquivo escolhido aleatoriamente do Interlace