Interlace
Easily turn single threaded command line applications into a fast, multi-threaded application with CIDR and glob support.
Install
git clone https://github.com/codingo/Interlace.git
python3 setup.py install
Usage
ARGUMENT | DESCRIPTION |
---|---|
(stdin) | Pipe target lists from another application in comma-delimited format, CIDR notation, or as an individual host |
-t | Specify a target or domain name either in comma-delimited format, CIDR notation, or as an individual host |
-tL | Specify a list of targets or domain names |
-e | Specify a target exclusion either in comma-delimited format, CIDR notation, or as an individual host |
-eL | Specify a list of targets to exclude |
-threads | Specify the maximum number of threads to run at any one time (DEFAULT:5) |
-timeout | Specify a timeout value in seconds for any single thread (DEFAULT:600) |
-c | Specify a single command to execute over each target or domain |
-cL | Specify a list of commands to execute over each target or domain |
-o | Specify an output folder variable that can be used in commands as _output_ |
-p | Specify a list of port variable that can be used in commands as _port_. This can be a single port, a comma delimited list, or use dash notation |
-rp | Specify a real port variable that can be used in commands as _realport_ |
-no-cidr | If set then CIDR notation in a target file will not be automatically be expanded into individual hosts |
-no-color | If set then any foreground or background colours will be stripped out |
-silent | If set then only important information will be displayed and banners and other information will be redacted |
-v | If set then verbose output will be displayed in the terminal |
Further information regarding ports (-p)
EXAMPLE | NOTATION TYPE |
---|---|
80 | Single port |
1-80 | Dash notation, perform a command for each port from 1-80 |
80,443 | Perform a command for both port 80, and port 443 |
Further information regarding targets (-t or -tL)
Both -t and -tL will be processed the same. You can pass targets the same as you would when using nmap. This can be done using CIDR notation, dash notation, or a comma-delimited list of targets. A single target list file can also use different notation types per line.
Alternatively, you can pass targets in via stdin and neither -t or -tL will be required.
Variable Replacements
The following variables will be replaced in commands at runtime:
VARIABLE | REPLACEMENT |
---|---|
_target_ | Replaced with the expanded target list that the current thread is running against |
_host_ | Works the same as _target_, can be used interchangeably |
_output_ | Replaced with the output folder variable from interlace |
_port_ | Replaced with the expanded port variable from interlace |
_realport_ | Replaced with the real port variable from interlace |
Tutorial