Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/codingo/interlace
侦察脚本与自动化渗透测试实用工具与框架
GitHubcodingo/interlace

Interlace

轻松将单线程命令行应用程序转变为支持CIDR和glob的快速多线程应用程序。

查看仓库
1.3k18830年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Interlace

轻松将单线程命令行应用程序转换为支持CIDR和通配符的快速多线程应用程序。

Python 3.2|3.6 License Twitter Twitter

评测/使用指南

Interlace: 无需编码即可轻松自动化和多线程渗透测试及漏洞赏金工作流的工具

目录

  • 安装
  • 用法 - 参数
  • 使用示例
  • 端口标记说明
  • 目标标记说明
  • 为不支持线程的应用程序添加线程支持
  • 为不支持CIDR表示法的应用程序添加CIDR支持
  • 为不支持通配符表示法的应用程序添加GLOB支持
  • 为不支持多代理的应用程序添加多代理支持
  • 变量替换
  • 高级命令文件用法
  • 高级用法:拦截器
  • 高级用法:块
  • 排除

安装

使用以下命令安装:

root@kitploit:~
$ python3 setup.py install

依赖项将自动安装,并且Interlace将被添加到您的路径中,作为 interlace 命令。

用法

端口标记说明

示例标记类型
80单个端口
1-80连字符表示法,对从1到80的每个端口执行一次命令
80,443对端口80和端口443都执行一次命令

目标标记说明

-t 和 -tL 的处理方式相同。您可以像使用nmap时那样传递目标。可以使用CIDR表示法、连字符表示法或逗号分隔的目标列表。单个目标列表文件可以在不同行使用不同的表示法类型。

或者,您可以通过STDIN传递目标,此时不需要使用 -t 或 -tL。

变量替换

以下变量在运行时将在命令中被替换:

高级命令文件用法

Interlace 还支持两个额外的功能来控制命令文件内的执行流程:_blocker_ 和 _block:<name>_。拦截器可防止其之后列出的命令执行,直到其之前的所有命令完成;而块可用于强制对某个目标按顺序执行块内列出的命令。

这些功能在每个目标级别上运行。如果可用线程并且当前目标存在拦截器,Interlace 将开始处理目标列表中的下一个目标,以最大化效率。

使用这些功能可以更直接地控制单个目标的执行流程,防止命令乱序执行。

拦截器

拦截器会阻止其下方的任何命令执行,直到其上方的所有命令完成(针对当前活动的主机)。例如,在以下命令文件中:

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

此处使用拦截器可防止在基础文件夹结构创建完成之前运行 nmap,从而避免 nmap 抛出异常。

块

块强制其中的所有命令按顺序执行。您还可以在每个命令文件中使用多个块。例如:

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

在此示例中,块的运行方式与之前相同,但如果线程数足够高,nikto 将立即开始运行,并将结果返回终端(而 nmap 和文件创建在后台进行)。

使用示例

在多个站点上运行 Nikto

假设您有一个文件 targets.txt,内容如下:

root@kitploit:~
bugcrowd.com
hackerone.com

您可以使用 Interlace 对该文件中的任意数量的目标运行扫描,命令如下:

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

这会针对每个主机运行 Nikto,并将结果保存到相应的文件中。注意,在上面的示例中,由于我们使用了 > 运算符,结果不会反馈到终端;但这是期望的功能,否则我们无法区分 Nikto 的结果属于哪个目标。

对于需要实时反馈的应用程序,请像平常一样传递命令(或使用 tee)。

在多个站点和端口上运行 Nikto

使用上面的示例,假设您希望对同一目标在端口 80 和 443 上分别进行独立扫描。您可以使用以下命令:

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	by Michael Skelton (@codingo_) & Sajeeb Lohani (@sml555_)
=========================================================================
[14:33:23] [THREAD] [nikto --host hackerone.com:80 > ./hackerone.com-nikto.txt] Added to Queue 
[14:33:23] [THREAD] [nikto --host bugcrowd.com:80 > ./hackerone.com-nikto.txt] Added to Queue 
[14:33:23] [THREAD] [nikto --host bugcrowd.com:443 > ./bugcrowd.com-nikto.txt] Added to Queue 
[14:33:23] [THREAD] [nikto --host hackerone.com:443 > ./hackerone.com-nikto.txt] Added to Queue 

对目标主机运行命令列表

在渗透测试中,经常有一组命令需要在几乎每次任务中运行。假设该列表包含 testssl.sh、nikto 和 sslscan,您可以将以下内容保存到名为 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

如果给定一个目标 example.com,您可以使用以下命令对目标运行这些命令:

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

这将针对 example.com 的端口 80 和 443 分别运行 nikto、sslscan 和 testssl.sh,并将文件保存到您的工程文件夹中。

为不支持CIDR表示法的应用程序添加CIDR支持

Interlace 在启动线程时自动扩展CIDR表示法(除非传递了 --no-cidr 标志)。这使得您可以向各种应用程序传递CIDR表示法:

要针对 192.168.12.0/24 中的所有目标运行虚拟主机扫描,可以使用直接命令:

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

尽管 VHostScan 本身没有内置CIDR表示法支持,但 Interlace 会在构建线程队列之前扩展表示法,因此 VHostScan 实际上只接收到一个直接IP地址列表进行扫描。

为不支持通配符表示法的应用程序添加Glob支持

Interlace 在启动线程时自动扩展通配符范围。这使得您可以向各种应用程序传递通配符范围:

要针对 192.168.12.* 中的所有目标运行虚拟主机扫描,可以使用直接命令:

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

同样,VHostScan 没有内置通配符范围格式支持。

为不支持连字符表示法的应用程序添加Dash支持

Interlace 在启动线程时自动扩展连字符范围。这使得您可以向各种应用程序传递连字符范围:

要针对 192.168.12.1-15 中的所有目标运行虚拟主机扫描,可以使用直接命令:

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

同样,VHostScan 没有内置连字符范围格式支持。

为不支持线程的应用程序添加线程支持

对文件(target-list.txt)中的每个主机运行虚拟主机扫描,同时限制任何时刻最多50个线程。

可以使用直接命令:

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

或者,使用命令文件运行相同的命令:

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

这假定命令文件的内容为:

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

这将在指定的输出文件夹中为每个目标生成一个文件。您还可以通过在命令文件中添加更多命令来运行多个命令。

排除

Interlace 自动排除通过 -e 或 -eL 参数指定的任何主机。这些参数也兼容上述范围表示法(CIDR、通配符和连字符)。

要针对CIDR范围 192.168.12.0/24 中的所有目标运行虚拟主机扫描,但排除范围 192.168.12.0/26 中的目标,可以使用直接命令:

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

使用多个代理运行 Nikto

使用上面的示例,假设您希望对同一目标通过不同的代理进行独立扫描。您可以使用以下命令:

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

作者与感谢

最初由 Michael Skelton (codingo) 和 Sajeeb Lohani (sml555) 编写,感谢 Charelle Collett (@Charcol0x89) 在线程重构和整体方法上的帮助,以及 Luke Stephens (hakluke) 在测试和方法上的帮助。

贡献

欢迎对本项目的贡献。如果您是开源新手并需要帮助,请随时通过 Twitter (@codingo_) / (@sml555_) 联系我们,我们将尽力协助。

下载工具
参数描述
(stdin)通过管道从另一个应用程序传入目标列表,格式为逗号分隔、CIDR表示法或单个主机
-t指定一个目标或域名,格式为逗号分隔、CIDR表示法或单个主机
-tL指定一个目标或域名列表文件
-e指定要排除的目标列表,格式为逗号分隔、CIDR表示法或单个主机
-eL指定要排除的目标列表文件
-threads指定任意时刻最大运行线程数(默认值:5)
-timeout指定单个线程的超时时间(秒)(默认值:600)
-c指定要在每个目标或域名上执行的单条命令
-cL指定要在每个目标或域名上执行的命令列表文件
-o指定一个输出文件夹变量,可在命令中用作 _output_
-p指定一个端口变量列表,可在命令中用作 _port_。可以是单个端口、逗号分隔列表或使用连字符表示的范围
-pL指定代理列表文件
--proto指定协议,可在命令中用作 _proto_
-rp指定一个真实端口变量,可在命令中用作 _realport_
-random指定一个文件目录,其中的文件可随机用于命令,变量为 _random_
--no-bar / --sober设置后,进度条将不显示
--no-cidr设置后,目标文件中的CIDR表示法将不会自动扩展为单个主机
--no-color设置后,将去除所有前景色或背景色
--silent设置后,仅显示重要信息,横幅和其他信息将被隐藏
-v设置后,终端将显示详细输出
变量替换内容
_target_替换为当前线程正在处理的扩展后的目标列表
_cleantarget_替换为去除 http:// 或 https:// 后的目标
_safe-target_替换为自动对命令进行引用的目标,防止子命令执行
_host_与 _target_ 功能相同,可互换使用
_output_替换为 Interlace 中的输出文件夹变量
_port_替换为 Interlace 中的扩展端口变量
_realport_替换为 Interlace 中的真实端口变量
_proxy_替换为 Interlace 中的代理列表
_random_替换为 Interlace 中随机选择的文件