Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Interlace — シングルスレッドのコマンドラインアプリケーションを、CIDR と glob 対応の高速なマルチスレッドアプリケーションに簡単に変換できます。 | Kitploit
ツール/GitHubGitHub/codingo/interlace
偵察スクリプトと自動化ペネトレーションテストユーティリティとフレームワーク
GitHubcodingo/interlace

Interlace

シングルスレッドのコマンドラインアプリケーションを、CIDR と glob 対応の高速なマルチスレッドアプリケーションに簡単に変換できます。

リポジトリを見る
1.3k18811ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Interlace

単一スレッドのコマンドラインアプリケーションを、CIDRやグロブ対応の高速なマルチスレッドアプリケーションに簡単に変換します。

Python 3.2|3.6 License Twitter Twitter

レビュー / 使い方ガイド

Interlace: コードを一切書かずにペネトレーションテストやバグバウンティのワークフローを自動化・マルチスレッド化するツール

目次

  • セットアップ
  • 使い方 - フラグ
  • 使用例
  • ポート表記の説明
  • ターゲット表記の説明
  • スレッド非対応アプリケーションへのスレッド対応
  • CIDR表記をサポートしないアプリケーションでのCIDR表記
  • GLOB表記をサポートしないアプリケーションでのGLOB表記
  • 複数プロキシ対応アプリケーションでの複数プロキシ実行
  • 変数置換
  • 高度なコマンドファイルの使い方
  • 高度な使い方: ブロッカー
  • 高度な使い方: ブロック
  • 除外

セットアップ

以下のコマンドでインストール:

root@kitploit:~
$ python3 setup.py install

依存関係がインストールされ、Interlace が interlace として PATH に追加されます。

使い方

ポートに関する補足情報

例表記の種類
80単一ポート
1-80ダッシュ表記、1から80までの各ポートに対してコマンド実行
80,443ポート80とポート443の両方に対してコマンド実行

ターゲットに関する補足情報

-t と -tL はどちらも同じように処理されます。nmap を使用するときと同じようにターゲットを渡すことができます。CIDR表記、ダッシュ表記、またはカンマ区切りのターゲットリストが使用可能です。1つのターゲットリストファイル内で、行ごとに異なる表記タイプを使用することもできます。

あるいは、STDIN 経由でターゲットを渡すこともでき、その場合は -t や -tL は不要です。

変数置換

実行時に以下の変数がコマンド内で置き換えられます:

高度なコマンドファイルの使い方

Interlace はコマンドファイル内の実行フローを制御するための2つの追加機能も提供します: _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 を使用して、このファイル内の任意の数のターゲットに対して以下のように実行できます: bash

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

これにより、nikto, sslscan, testssl.sh が example.com のポート80と443の両方に対して実行され、ファイルがエンゲージメントフォルダに保存されます。

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アドレスのリストのみを受け取ります。

グロブ表記をサポートしないアプリケーションでのグロブ表記

Interlace はスレッド起動時に自動的にグロブ範囲を展開します。これにより、さまざまなアプリケーションにグロブ範囲を渡すことができます:

192.168.12.* 内のすべてのターゲットに対して、直接コマンドを使用してバーチャルホストスキャンを実行するには:

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

繰り返しますが、VHostScan にはグロブ範囲形式の組み込みサポートはありません。

ダッシュ (-) 表記をサポートしないアプリケーションでのダッシュ表記

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 からランダムに選択されたファイルで置き換えられる