Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/codingo/interlace
РазведкаСкриптинг и автоматизацияТестирование на ПроникновениеУтилиты и фреймворки
GitHubcodingo/interlace

Interlace

Легко превращайте однопоточные приложения командной строки в быстрое многопоточное приложение с поддержкой CIDR и glob.

Репозиторий
1.3k18811 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Interlace — Легко превращайте однопоточные приложения командной строки в быстрое многопоточное приложение с поддержкой CIDR и glob. | Kitploit

Interlace

Легко превращайте однопоточные консольные приложения в быстрые многопоточные с поддержкой CIDR и glob.

Python 3.2|3.6 License Twitter Twitter

Обзоры / Руководства

Interlace: Инструмент для легкой автоматизации и многопоточности вашего процесса пентеста и баг-баунти без написания кода

Содержание

  • Установка
  • Использование - Флаги
  • Примеры использования
  • Пояснение нотации портов
  • Пояснение нотации целей
  • Поддержка многопоточности для приложения, которое её не поддерживает
  • Нотация CIDR для приложения, которое её не поддерживает
  • Нотация GLOB для приложения, которое её не поддерживает
  • Поддержка нескольких прокси для приложения, которое её не поддерживает
  • Замена переменных
  • Расширенное использование файлов команд
  • Расширенное использование: Блокировщик
  • Расширенное использование: Блоки
  • Исключения

Установка

Установка с помощью:

root@kitploit:~
$ python3 setup.py install

Затем будут установлены зависимости, и Interlace будет добавлен в ваш PATH как 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

Это запустит nikto, sslscan и testssl.sh для портов 80 и 443 на example.com и сохранит файлы в вашу папку проектов.

Нотация 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 автоматически разворачивает диапазоны glob при запуске потоков. Это позволяет передавать диапазоны glob в различные приложения:

Чтобы запустить сканирование виртуальных хостов на всех целях в диапазоне 192.168.12.* с помощью прямой команды, вы можете использовать:

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

Опять же, VHostScan не имеет встроенной поддержки диапазонов glob.

Дефисная нотация (-) для приложения, которое её не поддерживает

Interlace автоматически разворачивает дефисные диапазоны при запуске потоков. Это позволяет передавать диапазоны glob в различные приложения:

Чтобы запустить сканирование виртуальных хостов на всех целях в диапазоне 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-lst.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, glob и дефисная)

Чтобы запустить сканирование виртуальных хостов для всех целей в диапазоне 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

Авторы и благодарности

Первоначально написано Майклом Скелтоном (codingo) и Саджибом Лохани (sml555) с помощью Чарелл Коллетт (@Charcol0x89) за рефакторинг потоков и общий подход, а также Люка Стивенса (hakluke) за тестирование и подход.

Вклад

Вклад в этот проект очень приветствуется. Если вы новичок в open source и хотели бы получить помощь, не стесняйтесь обращаться к нам в 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