Инструмент обнаружения out-of-band взаимодействий от Project Discovery. Предоставляет уникальные URL/DNS/SMTP/FTP коллбэк-эндпойнты. Используется для детектирования: SSRF, blind XSS, blind SQLi, XXE, Log4Shell (DNS callback). Поддерживает self-hosted сервер.
go install github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest interactsh-client -v # Получить коллбэк-домен и проверить SSRF: curl http://<your-id>.oast.fun
Возможности • Использование • Клиент Interactsh • Сервер Interactsh • Интеграция Interactsh • Присоединяйтесь к Discord
Interactsh — это инструмент с открытым исходным кодом для обнаружения взаимодействий вне полосы (out-of-band). Он предназначен для обнаружения уязвимостей, которые вызывают внешние взаимодействия.
interactsh-client -h
Это отобразит справку по инструменту. Вот все поддерживаемые переключатели.
Usage:
./interactsh-client [flags]
Flags:
INPUT:
-s, -server string interactsh server(s) to use (default "oast.pro,oast.live,oast.site,oast.online,oast.fun,oast.me")
CONFIG:
-config string flag configuration file (default "$HOME/.config/interactsh-client/config.yaml")
-n, -number int number of interactsh payload to generate (default 1)
-t, -token string authentication token to connect protected interactsh server
-pi, -poll-interval int poll interval in seconds to pull interaction data (default 5)
-nf, -no-http-fallback disable http fallback registration
-cidl, -correlation-id-length int length of the correlation id preamble (min 3, default 20)
-cidn, -correlation-id-nonce-length int length of the correlation id nonce (min 3, default 13)
-sf, -session-file string store/read from session file
FILTER:
-m, -match string[] match interaction based on the specified pattern
-f, -filter string[] filter interaction based on the specified pattern
-dns-only display only dns interaction in CLI output
-http-only display only http interaction in CLI output
-smtp-only display only smtp interactions in CLI output
UPDATE:
-up, -update update interactsh-client to latest version
-duc, -disable-update-check disable automatic interactsh-client update check
OUTPUT:
-o string output file to write interaction data
-json write output in JSONL(ines) format
-ps, -payload-store enable storing generated interactsh payload to file
-psf, -payload-store-file string store generated interactsh payloads to given file (default "interactsh_payload.txt")
-v display verbose interaction
DEBUG:
-version show version of the project
-health-check, -hc run diagnostic check up
Для успешной установки CLI-клиента Interactsh требуется go1.20+. Выполните следующую команду для получения репозитория -
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest
Получите бесплатный API-ключ, зарегистрировавшись по адресу https://cloud.projectdiscovery.io
Вы можете настроить свой PDCP_API_KEY двумя способами:
1. Чтобы настроить API-ключ интерактивно, выполните следующую команду:
sh
./interactsh-client -auth
2. Если вы предпочитаете передать API-ключ напрямую, используйте опцию -auth, за которой следует ваш API-ключ:
```sh
./interactsh-client -auth=
````
Это сгенерирует уникальную полезную нагрузку, которую можно использовать для OOB-тестирования с минимальной информацией о взаимодействии в выводе.
$ interactsh-client
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v0.0.5
projectdiscovery.io
[INF] Listing 1 payload for OOB Testing
[INF] c23b2la0kl1krjcrdj10cndmnioyyyyyn.oast.pro
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (A) from 172.253.226.100 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (AAAA) from 32.3.34.129 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received HTTP interaction from 43.22.22.50 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (MX) from 43.3.192.3 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (TXT) from 74.32.183.135 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received SMTP interaction from 32.85.166.50 at 2021-26-26 12:26
interactsh-client с флагом -sf, -session-file можно использовать для сохранения/чтения текущей информации о сессии из пользовательского файла, что полезно для возобновления той же сессии для опроса взаимодействий, даже после остановки или закрытия клиента.
$ interactsh-client -sf interact.session
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ 1.0.3
projectdiscovery.io
[INF] Listing 1 payload for OOB Testing
[INF] c23b2la0kl1krjcrdj10cndmnioyyyyyn.oast.pro
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (A) from 172.253.226.100 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (AAAA) from 32.3.34.129 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received HTTP interaction from 43.22.22.50 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (MX) from 43.3.192.3 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received DNS interaction (TXT) from 74.32.183.135 at 2021-26-26 12:26
[c23b2la0kl1krjcrdj10cndmnioyyyyyn] Received SMTP interaction from 32.85.166.50 at 2021-26-26 12:26
Запуск interactsh-client в подробном режиме (v) для отображения всего запроса и ответа, а также выходного файла для последующего анализа.
$ interactsh-client -v -o interactsh-logs.txt
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ 1.0.3
projectdiscovery.io
[INF] Listing 1 payload for OOB Testing
[INF] c58bduhe008dovpvhvugcfemp9yyyyyyn.oast.pro
[c58bduhe008dovpvhvugcfemp9yyyyyyn] Received HTTP interaction from 103.22.142.211 at 2021-09-26 18:08:07
------------
HTTP Request
------------
GET /favicon.ico HTTP/2.0
Host: c58bduhe008dovpvhvugcfemp9yyyyyyn.oast.pro
Referer: https://c58bduhe008dovpvhvugcfemp9yyyyyyn.oast.pro
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36
-------------
HTTP Response
-------------
HTTP/1.1 200 OK
Connection: close
Content-Type: text/html; charset=utf-8
Server: oast.pro
<html><head></head><body>nyyyyyy9pmefcguvhvpvod800ehudb85c</body></html>
Используя флаг server, interactsh-client можно настроить для подключения к самостоятельно размещенному серверу Interactsh. Этот флаг принимает один или несколько серверов, разделенных запятыми.
interactsh-client -server hackwithautomation.com
Мы поддерживаем список серверов Interactsh по умолчанию для использования с interactsh-client:
Серверы по умолчанию могут быть изменены/заменены/остановлены в любое время, поэтому мы рекомендуем использовать самостоятельно размещенный сервер interactsh, если вы испытываете проблемы с сервером по умолчанию.
Используя флаг token, interactsh-client может подключиться к самостоятельно размещенному серверу Interactsh, защищенному аутентификацией.
interactsh-client -server hackwithautomation.com -token XXX
Если вы находитесь вдали от терминала, вы можете использовать notify для отправки уведомлений о взаимодействиях в реальном времени на любую поддерживаемую платформу.
interactsh-client | notify

Interactsh-web — это бесплатный веб-клиент с открытым исходным кодом, который отображает взаимодействия Interactsh в хорошо управляемой панели в вашем браузере. Он использует локальное хранилище браузера для хранения и отображения всех входящих взаимодействий. По умолчанию веб-клиент настроен на использование oast.fun в качестве сервера interactsh по умолчанию и также поддерживает другие самостоятельно размещенные публичные/аутентифицированные серверы interactsh.
Хостинговый экземпляр веб-клиента interactsh-web доступен по адресу https://app.interactsh.com

Для клиента Interactsh также предоставляется Docker-образ, готовый к запуску, который можно использовать следующим образом:
docker run projectdiscovery/interactsh-client:latest
$ docker run projectdiscovery/interactsh-client:latest
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v1.0.0
projectdiscovery.io
[INF] Listing 1 payload for OOB Testing
[INF] c59e3crp82ke7bcnedq0cfjqdpeyyyyyn.oast.pro
interactsh-collaborator — это оригинальное расширение для Burp Suite для работы с interactsh, разработанное и поддерживаемое @wdahlenb

interactsh-collaborator-rev — это переработанная версия оригинального расширения Burp Suite для interactsh, разработанная и поддерживаемая @Arqsz

Interactsh можно использовать с ZAP через дополнение OAST для ZAP. С помощью скриптовых возможностей ZAP вы можете создавать мощные правила сканирования вне полосы, использующие возможности Interactsh. В качестве примера предоставлен автономный скриптовый шаблон (он автоматически добавляется при установке дополнения).
Options > OAST > General.Use Permanent Database вы можете просматривать взаимодействия, которые произошли после завершения работы ZAP.
Interactsh в ZAP
quickssrf — это расширение для Caido, разработанное и поддерживаемое, которое позволяет использовать Interactsh изнутри прокси Caido.
Сервер Interactsh запускает несколько служб и перехватывает все входящие запросы. Для размещения экземпляра interactsh-server необходимо настроить:
interactsh-server -h
Это покажет справку по инструменту. Вот все доступные параметры.
Usage:
./interactsh-server [flags]
Flags:
INPUT:
-d, -domain string[] single/multiple configured domain to use for server
-ip string[] public ip address(es) to use for interactsh server (comma-separated,supports both IPv4 & IPv6)
-lip, -listen-ip string public ip address to listen on (default "0.0.0.0")
-e, -eviction int number of days to persist interaction data in memory (default 30)
-ne, -no-eviction disable periodic data eviction from memory
-es, -eviction-strategy string eviction strategy for interactions (sliding, fixed) (default "sliding")
-a, -auth enable authentication to server using random generated token
-t, -token string enable authentication to server using given token
-acao-url string origin url to send in acao header to use web-client) (default "*")
-sa, -skip-acme skip acme registration (certificate checks/handshake + TLS protocols will be disabled)
-se, -scan-everywhere scan canary token everywhere
-cidl, -correlation-id-length int length of the correlation id preamble (min 3, default 20)
-cidn, -correlation-id-nonce-length int length of the correlation id nonce (min 3, default 13)
-cert string custom certificate path
-privkey string custom private key path
-oih, -origin-ip-header string HTTP header containing origin ip (interactsh behind a reverse proxy)
CONFIG:
-r, -resolvers string[] list of resolvers to use (file or comma separated)
-config string flag configuration file (default "$HOME/.config/interactsh-server/config.yaml")
-dr, -dynamic-resp enable setting up arbitrary response data
-cr, -custom-records string custom dns records YAML file for DNS server
-hi, -http-index string custom index file for http server
-dhr, -default-http-response string file to serve for all http requests (takes priority over other options)
-hd, -http-directory string directory with files to serve with http server
-ds, -disk disk based storage
-dsp, -disk-path string disk storage path
-csh, -server-header string custom value of Server header in response
-dv, -disable-version disable publishing interactsh version in response header
UPDATE:
-up, -update update interactsh-server to latest version
-duc, -disable-update-check disable automatic interactsh-server update check
SERVICES:
-dns-port int port to use for dns service (default 53)
-http-port int port to use for http service (default 80)
-https-port int port to use for https service (default 443)
-smtp-port int port to use for smtp service (default 25)
-smtps-port int port to use for smtps service (default 587)
-smtp-autotls-port int port to use for smtps autotls service (default 465)
-ldap-port int port to use for ldap service (default 389)
-ldap enable ldap server with full logging (authenticated)
-wc, -wildcard enable wildcard interaction for interactsh domain (authenticated)
-smb start smb agent - impacket and python 3 must be installed (authenticated)
-responder start responder agent - docker must be installed (authenticated)
-ftp start ftp agent (authenticated)
-smb-port int port to use for smb service (default 445)
-ftp-port int port to use for ftp service (default 21)
-ftps-port int port to use for ftps service (default 990)
-ftp-dir string ftp directory - temporary if not specified
DEBUG:
-version show version of the project
-debug start interactsh server in debug mode
-ep, -enable-pprof enable pprof debugging server
-health-check, -hc run diagnostic check up
-metrics enable metrics endpoint
-v, -verbose display verbose interaction
Мы используем GoDaddy для доменного имени и DigitalOcean droplet для сервера. Базового дроплета за $5 должно быть достаточно для запуска собственного сервера Interactsh. Если вы не используете GoDaddy, следуйте процессу вашего регистратора для создания/обновления записей DNS.
## Настройка домена Interactsh
- Перейдите к `https://dcc.godaddy.com/control/portfolio/{{domain}}/settings?subtab=hostnames`
- Добавьте → Отправьте `ns1`, `ns2` с вашим `SERVER_IP` в качестве значения.
- Перейдите к `https://dcc.godaddy.com/control/dnsmanagement?domainName={{domain}}&subtab=nameservers`
- Изменить серверы имён → Я буду использовать свои серверы имён → Отправьте `ns1.INTERACTSH_DOMAIN`, `ns2.INTERACTSH_DOMAIN`
|
## Настройка сервера Interactsh
Установите `interactsh-server` на вашем **VPS**
При условии, что настройка доменного имени **завершена**, выполните следующую команду для запуска `interactsh-server`
Ниже приведен пример успешной установки и работы самостоятельного сервера:

Ряд необходимых флагов настраивается автоматически для запуска `interactsh-server` со стандартными настройками. Например, флаги `ip` и `listen-ip` устанавливаются с публичным IP-адресом системы, когда это возможно.
|
$ interactsh-server -domain interact.sh
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v1.0.0
projectdiscovery.io
[INF] Listening with the following services:
[HTTPS] Listening on TCP 46.101.25.250:443
[HTTP] Listening on TCP 46.101.25.250:80
[SMTPS] Listening on TCP 46.101.25.250:587
[LDAP] Listening on TCP 46.101.25.250:389
[SMTP] Listening on TCP 46.101.25.250:25
[DNS] Listening on TCP 46.101.25.250:53
[DNS] Listening on UDP 46.101.25.250:53
Несколько доменных имён можно указать так же, как и выше, для запуска того же сервера interactsh на нескольких настроенных доменах.
$ interactsh-server -d oast.pro,oast.me
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ 1.0.5
projectdiscovery.io
[INF] Loading existing SSL Certificate for: [*.oast.pro, oast.pro]
[INF] Loading existing SSL Certificate for: [*.oast.me, oast.me]
[INF] Listening with the following services:
[HTTPS] Listening on TCP 46.101.25.250:443
[HTTP] Listening on TCP 46.101.25.250:80
[SMTPS] Listening on TCP 46.101.25.250:587
[LDAP] Listening on TCP 46.101.25.250:389
[SMTP] Listening on TCP 46.101.25.250:25
[DNS] Listening on TCP 46.101.25.250:53
[DNS] Listening on UDP 46.101.25.250:53
Сервер Interactsh поддерживает адреса как IPv4, так и IPv6. Вы можете указать несколько IP-адресов с помощью флага -ip, и сервер будет отвечать соответствующими записями A (IPv4) или AAAA (IPv6) в DNS-ответах.
$ interactsh-server -d oast.pro -ip 192.0.2.1,2001:db8::1
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ 1.0.5
projectdiscovery.io
[INF] Configured IP addresses: 192.0.2.1, 2001:db8::1
[INF] Listening with the following services:
[HTTPS] Listening on TCP 46.101.25.250:443
[HTTP] Listening on TCP 46.101.25.250:80
[SMTPS] Listening on TCP 46.101.25.250:587
[LDAP] Listening on TCP 46.101.25.250:389
[SMTP] Listening on TCP 46.101.25.250:25
[DNS] Listening on TCP 46.101.25.250:53
[DNS] Listening on UDP 46.101.25.250:53
Сервер автоматически определяет и классифицирует IPv4 и IPv6 адреса, возвращая соответствующие DNS-записи в зависимости от типа запроса.
| **Примечание:** При запуске сервера interactsh на **облачных ВМ** (Cloud VM), таких как Amazon EC2, Google Cloud Platform (GCP), необходимо обновить правила безопасности, чтобы разрешить **«весь трафик»** для входящих соединений. |
Сервер interactsh-server поддерживает множество других полезных функций, которые не включены по умолчанию и предназначены для использования только на собственных серверах.
Для interactsh-server могут потребоваться пользовательские порты для служб, если стандартные уже заняты. Если это так, но стандартные порты всё ещё требуются как часть полезной нагрузки, можно настроить interactsh-server за обратным прокси, пробросив порты HTTP/TCP/UDP-служб через директиву прокси http/stream (proxy_pass).
Предполагая, что основные службы interactsh-server работают на следующих портах:
Конфигурационный файл nginx для перенаправления трафика будет выглядеть следующим образом:
# http/https
http {
server {
listen 443 ssl;
server_name mysite.com;
ssl_certificate /etc/nginx/interactsh.pem;
ssl_certificate_key /etc/nginx/interactsh.key;
location / {
proxy_pass https://interachsh.mysite.com:80/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
stream {
# smtp
server {
listen 25;
proxy_pass interachsh.mysite.com:8025;
}
# dns
server {
listen 53;
proxy_pass interachsh.mysite.com:8053;
}
server {
listen 53 udp;
proxy_pass interachsh.mysite.com:8053;
}
}
Настроенные домены
$ interactsh-server -d oast.pro,oast.me
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ 1.0.5
projectdiscovery.io
[INF] Loading existing SSL Certificate for: [*.oast.pro, oast.pro]
[INF] Loading existing SSL Certificate for: [*.oast.me, oast.me]
[INF] Listening with the following services:
[HTTPS] Listening on TCP 46.101.25.250:443
[HTTP] Listening on TCP 46.101.25.250:80
[SMTPS] Listening on TCP 46.101.25.250:587
[LDAP] Listening on TCP 46.101.25.250:389
[SMTP] Listening on TCP 46.101.25.250:25
[DNS] Listening on TCP 46.101.25.250:53
[DNS] Listening on UDP 46.101.25.250:53
Страницу индекса для HTTP-сервера можно настроить при запуске пользовательского сервера interactsh с помощью флага -http-index.
interactsh-server -d hackwithautomation.com -http-index banner.html
В файле индекса также поддерживается плейсхолдер {DOMAIN}, который заменяется доменным именем сервера.

HTTP-сервер Interactsh опционально включает хостинг файлов для помощи в тестировании безопасности. Эта функция может использоваться с собственным сервером для предоставления файлов для стандартных полезных нагрузок атак XSS, XXE, RCE и других.
Для использования этой функции может быть использован флаг -http-directory, который принимает директорию в качестве входных данных, и файлы обслуживаются в каталоге /s/.
interactsh-server -d hackwithautomation.com -http-directory ./paylods

HTTP-сервер Interactsh опционально включает возможность отвечать динамическим HTTP-ответом, используя параметры запроса. Эта функция может быть включена с помощью флага -dr или -dynamic-resp.
Поддерживаются следующие имена параметров запроса - body (тело), header (заголовок), status (статус) и delay (задержка). Несколько параметров header могут быть указаны для установки нескольких заголовков.
$ curl -i 'https://hackwithautomation.com/x?status=307&body=this+is+example+body&delay=1&header=header1:value1&header=header1:value12'
HTTP/2 307
header1: value1
header1: value12
server: hackwithautomation.com
x-interactsh-version: 1.0.7
content-type: text/plain; charset=utf-8
content-length: 20
date: Tue, 13 Sep 2022 12:31:05 GMT
this is example body
Примечание:
Для включения wildcard-взаимодействия для настроенного домена Interactsh может быть использован флаг wildcard с неявной аутентификацией через флаг auth, если флаг token опущен.
$ interactsh-server -domain hackwithautomation.com -wildcard
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v1.0.0
projectdiscovery.io
[INF] Client Token: 699c55544ce1604c63edb769e51190acaad1f239589a35671ccabd664385cfc7
[INF] Listening with the following services:
[HTTPS] Listening on TCP 157.230.223.165:443
[HTTP] Listening on TCP 157.230.223.165:80
[SMTPS] Listening on TCP 157.230.223.165:587
[LDAP] Listening on TCP 157.230.223.165:389
[SMTP] Listening on TCP 157.230.223.165:25
[DNS] Listening on TCP 157.230.223.165:53
[DNS] Listening on UDP 157.230.223.165:53
В wildcard-режиме каждый подключенный клиент независимо получает все взаимодействия для общего домена. Сервер поддерживает буфер последних взаимодействий, чтобы несколько клиентов могли опрашивать его без потери данных. По умолчанию буфер хранит до 10 000 взаимодействий на общий ключ. Это можно настроить с помощью переменной окружения INTERACTSH_MAX_SHARED_INTERACTIONS:
$ export INTERACTSH_MAX_SHARED_INTERACTIONS=50000
$ interactsh-server -domain hackwithautomation.com -wildcard
По умолчанию сервер Interactsh поддерживает LDAP-взаимодействие для полезной нагрузки, включенной в поисковый запрос, дополнительно может быть использован флаг ldap для полного логирования.
$ interactsh-server -domain hackwithautomation.com -sa -ldap
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v1.0.0
projectdiscovery.io
[INF] Client Token: deb58fc151e6f0e53d448be3eb14cd7a11590d8950d142b9cd1abac3c2e3e7bc
[INF] Listening with the following services:
[DNS] Listening on UDP 157.230.223.165:53
[LDAP] Listening on TCP 157.230.223.165:389
[HTTP] Listening on TCP 157.230.223.165:80
[SMTP] Listening on TCP 157.230.223.165:25
[DNS] Listening on TCP 157.230.223.165:53
Длина полезной нагрузки interactsh по умолчанию составляет 33 символа, состоящие из 20 (уникальный correlation-id) + 13 (nonce-токен), что можно настроить с помощью флагов cidl и cidn для укорачивания при необходимости на собственном сервере interactsh.
$ interactsh-server -d hackwithautomation.com -cidl 4 -cidn 6
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v1.0.2
projectdiscovery.io
[INF] Loading existing SSL Certificate for: [*.hackwithautomation.com, hackwithautomation.com]
[INF] Listening with the following services:
[HTTPS] Listening on TCP 157.230.223.165:443
[SMTPS] Listening on TCP 157.230.223.165:587
[DNS] Listening on UDP 157.230.223.165:53
[HTTP] Listening on TCP 157.230.223.165:80
[LDAP] Listening on TCP 157.230.223.165:389
[SMTP] Listening on TCP 157.230.223.165:25
[DNS] Listening on TCP 157.230.223.165:53
Важно: Необходимо использовать одинаковую длину на обеих сторонах (клиенте и сервере), иначе корреляция не будет работать.
$ interactsh-client -s hackwithautomation.com -cidl 4 -cidn 6
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v1.0.2
projectdiscovery.io
[INF] Listing 1 payload for OOB Testing
[INF] c8rf4e8xm4.hackwithautomation.com
Библиотека certmagic используется по умолчанию сервером interactsh для автоматического создания wildcard-сертификатов для запрошенного домена. Чтобы использовать свой собственный SSL-сертификат с собственным сервером interactsh, могут быть использованы флаги cert и privkey для предоставления необходимых файлов сертификата.
Важно: Для использования всех возможностей SSL-протокола требуется wildcard-сертификат.
$ interactsh-server -d hackwithautomation.com -cert hackwithautomation.com.crt -privkey hackwithautomation.com.key
_ __ __ __
(_)___ / /____ _________ ______/ /______/ /_
/ / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
/ / / / / /_/ __/ / / /_/ / /__/ /_(__ ) / / /
/_/_/ /_/\__/\___/_/ \__,_/\___/\__/____/_/ /_/ v1.0.2
projectdiscovery.io
[INF] Listening with the following services:
[HTTPS] Listening on TCP 157.230.223.165:443
[SMTP] Listening on TCP 157.230.223.165:25
[HTTP] Listening on TCP 157.230.223.165:80
[LDAP] Listening on TCP 157.230.223.165:389
[DNS] Listening on TCP 157.230.223.165:53
[SMTPS] Listening on TCP 157.230.223.165:587
[DNS] Listening on UDP 157.230.223.165:53
Поддержка FTP может быть включена с помощью флага -ftp и рекомендуется только для собственных экземпляров. FTP-агент имитирует полнофункциональный серверный агент FTP с аутентификацией, перехватывающий аутентификации при каждой файловой операции. По умолчанию агент слушает чистый текстовый FTP на порту 21 (это может быть изменено флагом -ftp-port) и TLS FTP на порту 990 (это может быть изменено флагом -ftps-port) и в режиме только для чтения перечисляет содержимое временного каталога ОС по умолчанию (настраивается с помощью опции -ftp-dir). FTP-движок использует пользовательский сертификат и закрытый ключ, если они предоставлены, или извлекает сертификат и закрытый ключ из первого домена ACME, если он предоставлен.
Пример запуска FTP-демона и перехвата взаимодействия при входе:
$ sudo go run . -ftp -skip-acme -debug -domain localhost
...
[INF] Outbound IP: 192.168.1.16
[INF] Client Token: 6dc07e4a76c3d5e58e4bea13ce073dc403499b128c62397aff7b934a6e4822e3
[INF] Listening with the following services:
[DNS] Listening on TCP 192.168.1.16:53
[SMTP] Listening on TCP 192.168.1.16:25
[HTTP] Listening on TCP 192.168.1.16:80
[FTP] Listening on TCP 192.168.1.16:21
[DNS] Listening on UDP 192.168.1.16:53
[LDAP] Listening on TCP 192.168.1.16:389
[DBG] FTP Interaction:
{"protocol":"ftp","unique-id":"","full-id":"","raw-request":"USER test\ntest logging in","remote-address":"127.0.0.1:51564","timestamp":"2022-09-29T00:49:42.212323+02:00"}
Флаг -smb включает протокол Samba (только для собственных экземпляров). Протокол Samba использует класс impacket smbserver для имитации общей папки демона Samba, слушающего на порту 445, если не изменено флагом -smb-port. При включении interactsh выполняет скрипт smb_server.py. Следовательно, требуются Python3 и зависимости impacket.
Пример включения сервера Samba:
$ sudo interactsh-server -smb -skip-acme -debug -domain localhost
Responder обёрнут в Docker-контейнер, который предоставляет доступ к различным служебным портам через перенаправление портов Docker. Взаимодействия извлекаются путём мониторинга общего файла журнала Responder-Session.log во временной папке. Чтобы использовать его на самостоятельно развернутом экземпляре, необходимо сначала собрать Docker-контейнер и пометить его как interactsh (демон Docker должен быть правильно настроен и иметь возможности перенаправления портов):
docker build . -t interactsh
Запустите службу командой:
sudo interactsh-server -responder -d localhost
По умолчанию демон слушает следующие порты:
Примеры используют клиентскую библиотеку interactsh для получения внешних взаимодействий для сгенерированного URL-адреса путём выполнения HTTP-запроса к этому URL.
Сканер уязвимостей Nuclei использует Interactsh для автоматической генерации полезных нагрузок и обнаружения уязвимостей, основанных на внебандовых взаимодействиях (out-of-band).
Для получения дополнительной информации ознакомьтесь с блогом об интеграции Nuclei + Interactsh и руководством.
Сервер Interactsh поддерживает DNS-записи для служб метаданных облака, что полезно для тестирования уязвимостей, связанных с SSRF (подделкой межсайтовых запросов).
В настоящее время поддерживаются следующие сервисы метаданных:
Пример:
Interactsh вдохновлён проектом Burp Collaborator.
Interactsh распространяется по лицензии MIT и создан с 🖤 командой projectdiscovery.