Инструменты21 августа 2026 г., 21:46 МСК🤖 Auto

Interlace: Мультипоточность для любых CLI-утилит в Linux

Разработчики представили Interlace — инструмент, превращающий однопоточные консольные утилиты в высокопроизводительные сканеры. Поддержка CIDR, глобусов и гибкое управление потоками ускоряют пентесты без написания кода.

Баннер новости 6264

Суть проблемы и решение

Большинство популярных инструментов для пентестинга и баг-баунти (например, Nikto, Nmap, sslscan) работают в одном потоке. При сканировании сотен или тысяч хостов это создает узкое горлышко. Interlace от разработчиков Michael Skelton (@codingo_) и Sajeeb Lohani (@sml555_) решает эту проблему, выступая оберткой, которая автоматически распараллеливает выполнение любых команд над списком целей. Инструмент написан на Python 3 и устанавливается стандартным методом: python3 setup.py install.

Ключевые возможности и метрики

Interlace не требует переписывания скриптов. Он поддерживает сложные нотации целей и портов, а также переменные подстановки, которые заменяются в runtime. По умолчанию инструмент запускает 5 потоков, но это значение легко настраивается через флаг -threads. Таймаут по умолчанию составляет 600 секунд, что позволяет обрабатывать медленные ответы без зависания всего процесса.

Синтаксис и переменные

Гибкость инструмента обеспечивается системой переменных, которые подставляются в команды. Ниже приведена таблица основных переменных, доступных для использования в аргументах -c или -cL:

Переменная Описание замены
_target_ Расширенный список целей (хост/CIDR)
_cleantarget_ Цель без префиксов http:// или https://
_safe-target_ Цель с экранированием для безопасного запуска в shell
_port_ Расширенный список портов (например, 80, 443)
_output_ Путь к папке вывода, указанной через -o
_proxy_ Список прокси, указанных через -pL

Управление потоками: Blocker и Blocks

Одной из самых мощных функций является контроль порядка выполнения команд на уровне отдельной цели. Это критично для сценариев, где результат одной команды зависит от подготовки, сделанной другой.

  • Blocker: Останавливает выполнение команд, идущих после него, пока не завершатся все команды, идущие до него, для текущего хоста. Например, создание директории перед запуском Nmap.
  • Blocks (именованные блоки): Позволяют группировать команды. Команды внутри блока _block:name_ выполняются последовательно для цели, но другие потоки могут параллельно обрабатывать другие цели или блоки. Это максимизирует использование CPU при сложных рабочих процессах.

Примеры использования

Для сканирования списка хостов из файла targets.txt с использованием 5 потоков и сохранением результатов Nikto в отдельные файлы, команда выглядит так:

interlace -tL ./targets.txt -threads 5 -c "nikto --host _target_ > ./_target_-nikto.txt" -v

Если нужно просканировать несколько портов (80 и 443) для тех же целей, используется переменная _port_:

interlace -tL ./targets.txt -threads 5 -c "nikto --host _target_:_port_ > ./_target_-_port_-nikto.txt" -p 80,443 -v

Инструмент поддерживает ввод целей через STDIN, CIDR-нотацию (автоматическое раскрытие в отдельные IP) и глобусы, что делает его универсальным решением для масштабирования любых однопоточных Linux-утилит.

Источник: Github ↗