Interactsh

Reconnaissance v1.3.1 · 10.03.2026 активный

Инструмент обнаружения out-of-band взаимодействий от Project Discovery. Предоставляет уникальные URL/DNS/SMTP/FTP коллбэк-эндпойнты. Используется для детектирования: SSRF, blind XSS, blind SQLi, XXE, Log4Shell (DNS callback). Поддерживает self-hosted сервер.

v1.3.1
10.03.2026 current
Добавлен 13.07.2026 · Обновлён 13.07.2026 · Reconnaissance
Установка
go install github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest
interactsh-client -v
# Получить коллбэк-домен и проверить SSRF:
curl http://<your-id>.oast.fun
переведено ИИ


Interactsh

Сервер и клиентская библиотека для сбора OOB-взаимодействий

ВозможностиИспользованиеКлиент InteractshСервер InteractshИнтеграция InteractshПрисоединяйтесь к Discord


Interactsh — это инструмент с открытым исходным кодом для обнаружения взаимодействий вне полосы (out-of-band). Он предназначен для обнаружения уязвимостей, которые вызывают внешние взаимодействия.

Возможности

  • DNS/HTTP(S)/SMTP(S)/LDAP взаимодействие
  • Поддержка IPv4 и IPv6
  • CLI / Веб / Burp / ZAP / Docker клиенты
  • Шифрование AES с нулевым логированием
  • Автоматический Wildcard TLS на основе ACME с автообновлением
  • DNS-записи для службы метаданных облачных сервисов
  • Динамическое управление HTTP-ответами
  • Самостоятельно размещенный сервер Interactsh
  • Поддержка нескольких доменов (самостоятельно размещенный)
  • Слушатель NTLM/SMB/FTP(S)/RESPONDER (самостоятельно размещенный)
  • Wildcard / Защищенные взаимодействия (самостоятельно размещенный)
  • Настраиваемый индекс / хостинг файлов (самостоятельно размещенный)
  • Настраиваемая длина полезной нагрузки (самостоятельно размещенный)
  • Пользовательский SSL-сертификат (самостоятельно размещенный)

Клиент Interactsh

Использование

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

Для успешной установки CLI-клиента Interactsh требуется go1.20+. Выполните следующую команду для получения репозитория -

go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest

Настройка PDCP_API_KEY для CLI-клиента Interactsh

Получите бесплатный 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:

  • oast.pro
  • oast.live
  • oast.site
  • oast.online
  • oast.fun
  • oast.me

Серверы по умолчанию могут быть изменены/заменены/остановлены в любое время, поэтому мы рекомендуем использовать самостоятельно размещенный сервер interactsh, если вы испытываете проблемы с сервером по умолчанию.

Использование защищенного самостоятельно размещённого сервера

Используя флаг token, interactsh-client может подключиться к самостоятельно размещенному серверу Interactsh, защищенному аутентификацией.

interactsh-client -server hackwithautomation.com -token XXX

Использование с Notify

Если вы находитесь вдали от терминала, вы можете использовать notify для отправки уведомлений о взаимодействиях в реальном времени на любую поддерживаемую платформу.

interactsh-client | notify

image

Веб-клиент Interactsh

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

Хостинговый экземпляр веб-клиента interactsh-web доступен по адресу https://app.interactsh.com

interactsh-web

Docker клиент Interactsh

Для клиента 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

Расширение для Burp Suite (оригинальное)

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

  • Скачайте последний JAR-файл со страницы releases.
  • Откройте Burp Suite → Extender → Add → Java → Выберите JAR-файл → Next
  • Новая вкладка с названием Interactsh появится после успешной установки.
  • Дополнительную информацию смотрите в проекте interactsh-collaborator.

burp

Расширение для Burp Suite (переработанное)

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

  • Скачайте последний JAR-файл со страницы releases.
  • Откройте Burp Suite → Extender → Add → Java → Выберите JAR-файл → Next
  • Новая вкладка с названием Interactsh появится после успешной установки.
  • Дополнительную информацию смотрите в проекте interactsh-collaborator-rev.

burp

Дополнение для ZAP

Interactsh можно использовать с ZAP через дополнение OAST для ZAP. С помощью скриптовых возможностей ZAP вы можете создавать мощные правила сканирования вне полосы, использующие возможности Interactsh. В качестве примера предоставлен автономный скриптовый шаблон (он автоматически добавляется при установке дополнения).

  • Установите дополнение OAST из ZAP Marketplace.
  • Перейдите в Tools → Options → OAST и выберите Interactsh.
  • Настройте параметры клиента и нажмите "New Payload" для генерации новой полезной нагрузки.
  • OOB взаимодействия будут отображаться на вкладке OAST, и вы можете нажать на любое из них для просмотра полного запроса и ответа.
  • Вы можете установить Interactsh как стандартный для ActiveScan в меню Options > OAST > General.
  • При включении опции Use Permanent Database вы можете просматривать взаимодействия, которые произошли после завершения работы ZAP.
  • Дополнительную информацию смотрите в документации дополнения OAST.

zap Interactsh в ZAP

Расширение для Caido

quickssrf — это расширение для Caido, разработанное и поддерживаемое, которое позволяет использовать Interactsh изнутри прокси Caido.

  • Скачайте последний zip-файл со страницы releases.
  • Откройте Caido → Plugins → Install Package → Выберите zip-файл → Next
  • Новая боковая панель с названием QuickSSRF появится после успешной установки.
  • Дополнительную информацию смотрите в проекте quickssrf. caido-image

Сервер Interactsh

Сервер Interactsh запускает несколько служб и перехватывает все входящие запросы. Для размещения экземпляра interactsh-server необходимо настроить:

  1. Доменное имя с пользовательскими именами хостов и серверами имён.
  2. Базовый дроплет (droplet), работающий 24/7 в фоновом режиме.

Использование

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` в качестве значения. gdd-hostname - Перейдите к `https://dcc.godaddy.com/control/dnsmanagement?domainName={{domain}}&subtab=nameservers` - Изменить серверы имён → Я буду использовать свои серверы имён → Отправьте `ns1.INTERACTSH_DOMAIN`, `ns2.INTERACTSH_DOMAIN` gdd-ns
## Настройка сервера Interactsh Установите `interactsh-server` на вашем **VPS**
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-server@latest
При условии, что настройка доменного имени **завершена**, выполните следующую команду для запуска `interactsh-server`
interactsh-server -domain INTERACTSH_DOMAIN
Ниже приведен пример успешной установки и работы самостоятельного сервера: ![interactsh-server](https://user-images.githubusercontent.com/8293321/150676089-b5638c19-33a3-426a-987c-3ac6fa227012.png) Ряд необходимых флагов настраивается автоматически для запуска `interactsh-server` со стандартными настройками. Например, флаги `ip` и `listen-ip` устанавливаются с публичным IP-адресом системы, когда это возможно.

Запуск сервера Interactsh

$ 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 на нескольких настроенных доменах.

$ 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

Сервер 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 за обратным прокси

Для interactsh-server могут потребоваться пользовательские порты для служб, если стандартные уже заняты. Если это так, но стандартные порты всё ещё требуются как часть полезной нагрузки, можно настроить interactsh-server за обратным прокси, пробросив порты HTTP/TCP/UDP-служб через директиву прокси http/stream (proxy_pass).

Nginx

Предполагая, что основные службы interactsh-server работают на следующих портах:

  • HTTP: 8080/TCP
  • HTTPS: 8440/TCP
  • SMTP: 8025/TCP
  • DNS: 8053/UDP
  • DNS: 8053/TCP

Конфигурационный файл 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}, который заменяется доменным именем сервера.

image

Хостинг статических файлов

HTTP-сервер Interactsh опционально включает хостинг файлов для помощи в тестировании безопасности. Эта функция может использоваться с собственным сервером для предоставления файлов для стандартных полезных нагрузок атак XSS, XXE, RCE и других.

Для использования этой функции может быть использован флаг -http-directory, который принимает директорию в качестве входных данных, и файлы обслуживаются в каталоге /s/.

interactsh-server -d hackwithautomation.com -http-directory ./paylods

image

Динамический HTTP-ответ

HTTP-сервер Interactsh опционально включает возможность отвечать динамическим HTTP-ответом, используя параметры запроса. Эта функция может быть включена с помощью флага -dr или -dynamic-resp.

Поддерживаются следующие имена параметров запроса - body (тело), header (заголовок), status (статус) и delay (задержка). Несколько параметров header могут быть указаны для установки нескольких заголовков.

  • body (тело ответа)
  • header (заголовок ответа)
  • status (код статуса ответа)
  • delay (время ответа)
$ 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

Примечание:

  • Функция динамического HTTP-ответа отключена по умолчанию.
  • По замыслу эта функция позволяет любому запускать клиентский код / перенаправления, используя ваш домен / сервер interactsh.
  • Рекомендуется использовать эту опцию с изолированным доменом, чтобы избежать влияния на безопасность связанных корневых/поддоменов.

Wildcard-взаимодействие

Для включения 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

LDAP-взаимодействие

По умолчанию сервер 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

Пользовательский SSL-сертификат

Библиотека 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 с аутентификацией, перехватывающий аутентификации при каждой файловой операции. По умолчанию агент слушает чистый текстовый 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

Флаг -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

Responder обёрнут в Docker-контейнер, который предоставляет доступ к различным служебным портам через перенаправление портов Docker. Взаимодействия извлекаются путём мониторинга общего файла журнала Responder-Session.log во временной папке. Чтобы использовать его на самостоятельно развернутом экземпляре, необходимо сначала собрать Docker-контейнер и пометить его как interactsh (демон Docker должен быть правильно настроен и иметь возможности перенаправления портов):

docker build . -t interactsh

Запустите службу командой:

sudo interactsh-server -responder -d localhost

По умолчанию демон слушает следующие порты:

  • UDP: 137, 138, 1434
  • TCP: 21 (может конфликтовать с FTP-демоном при его использовании), 110, 135, 139, 389, 445, 1433, 3141, 3128

Интеграция с Interactsh

Использование как библиотека

Примеры используют клиентскую библиотеку interactsh для получения внешних взаимодействий для сгенерированного URL-адреса путём выполнения HTTP-запроса к этому URL.

Nuclei - OAST

Сканер уязвимостей Nuclei использует Interactsh для автоматической генерации полезных нагрузок и обнаружения уязвимостей, основанных на внебандовых взаимодействиях (out-of-band).

Для получения дополнительной информации ознакомьтесь с блогом об интеграции Nuclei + Interactsh и руководством.

Метаданные облака

Сервер Interactsh поддерживает DNS-записи для служб метаданных облака, что полезно для тестирования уязвимостей, связанных с SSRF (подделкой межсайтовых запросов).

В настоящее время поддерживаются следующие сервисы метаданных:

Пример:

  • aws.oast.fun указывает на 169.254.169.254
  • alibaba.oast.fun указывает на 100.100.100.200

Благодарности

Interactsh вдохновлён проектом Burp Collaborator.

Лицензия

Interactsh распространяется по лицензии MIT и создан с 🖤 командой projectdiscovery.

Комментарии
Войдите, чтобы оставить комментарий