Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/codingo/interlace
ReconnaissanceScripting & AutomationPenetration TestingUtilities & Frameworks
GitHubcodingo/interlace

Interlace

단일 스레드 명령줄 애플리케이션을 CIDR 및 glob 지원과 함께 빠른 멀티 스레드 애플리케이션으로 쉽게 변환하세요.

저장소 보기
1.3k18811개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Interlace — 단일 스레드 명령줄 애플리케이션을 CIDR 및 glob 지원과 함께 빠른 멀티 스레드 애플리케이션으로 쉽게 변환하세요. | Kitploit

Interlace

단일 스레드 명령줄 애플리케이션을 CIDR 및 글로브 지원과 함께 빠르고 멀티스레드 애플리케이션으로 쉽게 변환합니다.

Python 3.2|3.6 License Twitter Twitter

리뷰 / 사용 방법 가이드

Interlace: 코딩 없이 침투 테스트 및 버그 바운티 워크플로를 쉽게 자동화하고 멀티스레드화하는 도구

목차

  • 설정
  • 사용법 - 플래그
  • 사용 예제
  • 포트 표기법 설명
  • 대상 표기법 설명
  • 멀티스레딩을 지원하지 않는 애플리케이션에 대한 스레딩 지원
  • CIDR 표기법을 지원하지 않는 애플리케이션에 대한 CIDR 표기법
  • 글로브 표기법을 지원하지 않는 애플리케이션에 대한 글로브 표기법
  • 여러 프록시를 지원하지 않는 애플리케이션에 대한 다중 프록시 지원
  • 변수 대체
  • 고급 명령 파일 사용법
  • 고급 사용법: 차단기
  • 고급 사용법: 블록
  • 제외

설정

다음을 사용하여 설치:

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는 효율성을 극대화하기 위해 대상 목록 내 다음 대상의 명령을 시작합니다.

이러한 기능을 사용하면 명령이 순서 없이 실행되는 것을 방지하기 위해 개별 대상에 대한 실행 흐름을 더 직접적으로 제어할 수 있습니다.

차단기(Blocker)

차단기는 현재 활성 호스트에 대해 위의 모든 명령이 완료될 때까지 아래의 모든 항목이 실행되지 않도록 방지합니다. 예를 들어, 다음에서:

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

여기서 차단기를 사용하면 기본 폴더 구조가 생성되기 전에 nmap이 대상에서 실행되는 것을 방지하여 nmap이 예외를 발생시키는 것을 막습니다.

블록(Blocks)

블록은 블록 내의 모든 항목을 순차적으로 실행하도록 강제합니다. 명령 파일당 여러 블록을 사용할 수도 있습니다. 예를 들어, 다음에서:

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가 example.com의 포트 80 및 443에 대해 실행되고 파일이 engagements 폴더에 저장됩니다.

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에서 무작위로 선택된 파일로 대체됩니다.