Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
interactsh — Сервер и клиентская библиотека для сбора OOB-взаимодействий | Kitploit
Инструменты/GitHubGitHub/projectdiscovery/interactsh
Анализ уязвимостейСбор информацииВеб-безопасностьТестирование на ПроникновениеАнализ DNS
GitHubprojectdiscovery/interactsh

interactsh

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

Репозиторий
4.5k475254 дней назадПроверено Kitploit
Сайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться


Interactsh

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

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

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


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

Возможности

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

Клиент Interactsh

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

interactsh-client -h

root@kitploit:~
Это отобразит справку по инструменту. Вот все поддерживаемые им параметры.```yaml
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")
   -fl, -file string[]  local file(s) to upload and host on the interactsh server

CONFIG:
   -config string                           flag configuration file (default "$HOME/.config/interactsh-client/config.yaml")
   -auth                                    configure projectdiscovery cloud (pdcp) api key (default true)
   -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) (default 20)
   -cidn, -correlation-id-nonce-length int  length of the correlation id nonce (min 3, default 13) (default 13)
   -sf, -session-file string                store/read from session file
   -kai, -keep-alive-interval value         keep alive interval (default 1m0s)

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
   -asn                   include asn information of remote ip in json 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 JSON Lines format
   -ps, -payload-store               write generated interactsh payload to file
   -psf, -payload-store-file string  store generated interactsh payloads to given file (default "interactsh_payload.txt")
   -fsf, -file-store-file string     store hosted file URLs to given file (requires -file)
   -v                                display verbose interaction

DEBUG:
   -version            show version of the project
   -health-check, -hc  run diagnostic check up

Interactsh CLI Client

Для успешной установки клиента Interactsh Cli требуется go1.20+. Выполните следующую команду, чтобы получить репозиторий -```sh go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest

root@kitploit:~
### Настройка PDCP_API_KEY с помощью CLI-клиента Interactsh
> Получите бесплатный API-ключ, зарегистрировавшись на https://cloud.projectdiscovery.io

Вы можете настроить PDCP_API_KEY двумя способами:
1. Чтобы настроить API-ключ в интерактивном режиме, выполните следующую команду:   ```sh
   ./interactsh-client -auth
  1. Если вы предпочитаете передать API-ключ напрямую, используйте опцию -auth, за которой следует ваш API-ключ: ```sh ./interactsh-client -auth=
    root@kitploit:~

Запуск по умолчанию

Это создаст уникальную полезную нагрузку, которую можно использовать для OOB-тестирования с минимальной информацией о взаимодействии в выводе.```console $ interactsh-client

root@kitploit:~
_       __                       __       __  

()__ / /____ _________ / // /_ / / __ / / _ / / __ '/ / __/ __/ __
/ / / / / /
/ __/ / / /
/ / /
/ /
(
) / / / /// //_/_
// _,/___/_/__// // v0.0.5

root@kitploit:~
    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 HTTPS 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

root@kitploit:~
### Файл сессии

`interactsh-client` с флагом `-sf, -session-file` может использоваться для сохранения/чтения информации о текущей сессии из заданного пользователем файла, что полезно для возобновления той же сессии и опроса взаимодействий даже после остановки или закрытия клиента.```console
$ 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 HTTPS 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) для просмотра всего запроса и ответа, а также файл вывода для последующего анализа.```console $ interactsh-client -v -o interactsh-logs.txt

root@kitploit:~
_       __                       __       __  

()__ / /____ _________ / // /_ / / __ / / _ / / __ '/ / __/ __/ __
/ / / / / /
/ __/ / / /
/ / /
/ /
(
) / / / /// //_/_
// _,/___/_/__// // 1.0.3

root@kitploit:~
projectdiscovery.io

[INF] Listing 1 payload for OOB Testing [INF] c58bduhe008dovpvhvugcfemp9yyyyyyn.oast.pro

[c58bduhe008dovpvhvugcfemp9yyyyyyn] Received HTTPS 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

С помощью флага server interactsh-client можно настроить для подключения к самостоятельно размещённому серверу Interactsh; этот флаг принимает один или несколько серверов, разделённых запятыми.```sh interactsh-client -server hackwithautomation.com

root@kitploit:~
Мы поддерживаем список серверов Interactsh по умолчанию для использования с `interactsh-client`:

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

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

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

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

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

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

root@kitploit:~
![image](https://assets.kitploit.com/production/public/readmes/402/edcb4195cf9606caa69a4b68c89a3be8025052f04d6b65c777249b532fda2758.png)


## Веб-клиент Interactsh

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

Размещённый экземпляр клиента **interactsh-web** доступен по адресу https://app.interactsh.com

<img width="2032" alt="interactsh-web" src="https://assets.kitploit.com/production/public/readmes/402/9cef2252b8b90b021664a337626c9082f68e40f90a051dcafb18b497ceca8040.png">

## Docker-клиент Interactsh

Также предоставляется [Docker-образ](https://hub.docker.com/r/projectdiscovery/interactsh-client) с клиентом interactsh, готовый к запуску и может использоваться следующим образом:```sh
docker run projectdiscovery/interactsh-client:latest

| --no-color | Отключить цветной вывод | | --debug | Включить отладочный вывод | | --verbose | Включить подробный вывод | | --silent | Включить тихий режим | | --version | Показать версию программы и выход | | --help | Показать справочное сообщение и выход |```console $ docker run projectdiscovery/interactsh-client:latest

root@kitploit:~
_       __                       __       __  

()__ / /____ _________ / // /_ / / __ / / _ / / __ '/ / __/ __/ __
/ / / / / /
/ __/ / / /
/ / /
/ /
(
) / / / /// //_/_
// _,/___/_/__// // v1.0.0

root@kitploit:~
    projectdiscovery.io

[INF] Listing 1 payload for OOB Testing [INF] c59e3crp82ke7bcnedq0cfjqdpeyyyyyn.oast.pro

root@kitploit:~
## Оригинальное расширение для Burp Suite

[interactsh-collaborator](https://github.com/wdahlenburg/interactsh-collaborator) — это оригинальное расширение interactsh для Burp Suite, разработанное и поддерживаемое [@wdahlenb](https://twitter.com/wdahlenb)

- Скачайте последний JAR-файл со страницы [releases](https://github.com/wdahlenburg/interactsh-collaborator/releases).
- Откройте Burp Suite &rarr; Extender &rarr; Add &rarr; Java &rarr; Выберите JAR-файл &rarr; Next
- После успешной установки появится новая вкладка с названием **Interactsh**.
- Дополнительную информацию см. в проекте [interactsh-collaborator](https://github.com/wdahlenburg/interactsh-collaborator).

<img width="2032" alt="burp" src="https://assets.kitploit.com/production/public/readmes/402/9f961c02a61a56f18dacc6de581d29ba26153d6f2083df109c98cba57ff7a4f0.png">

## Переработанное расширение для Burp Suite

[interactsh-collaborator-rev](https://github.com/TheArqsz/interactsh-collaborator-rev) — это переработанная версия оригинального расширения interactsh для Burp Suite, разработанная и поддерживаемая [@Arqsz](https://arqsz.net/)

- Скачайте последний JAR-файл со страницы [releases](https://github.com/TheArqsz/interactsh-collaborator-rev/releases).
- Откройте Burp Suite &rarr; Extender &rarr; Add &rarr; Java &rarr; Выберите JAR-файл &rarr; Next
- После успешной установки появится новая вкладка с названием **Interactsh**.
- Дополнительную информацию см. в проекте [interactsh-collaborator-rev](https://github.com/TheArqsz/interactsh-collaborator-rev).

<img width="2032" alt="burp" src="https://raw.githubusercontent.com/TheArqsz/interactsh-collaborator-rev/master/assets/interactsh-extension.png?raw=true">

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

Interactsh можно использовать с ZAP через [дополнение OAST для ZAP](https://www.zaproxy.org/docs/desktop/addons/oast-support/). Благодаря возможностям скриптинга ZAP вы можете создавать мощные правила сканирования out-of-band, использующие функции Interactsh. В качестве примера предоставлен шаблон автономного скрипта (он добавляется автоматически при установке дополнения).

- Установите дополнение OAST из [ZAP Marketplace](https://www.zaproxy.org/addons/).
- Перейдите в Tools &rarr; Options &rarr; OAST и выберите **Interactsh**.
- Настройте [параметры](https://www.zaproxy.org/docs/desktop/addons/oast-support/services/interactsh/options/) для клиента и нажмите «New Payload», чтобы сгенерировать новую полезную нагрузку.
- OOB-взаимодействия появятся во [вкладке OAST](https://www.zaproxy.org/docs/desktop/addons/oast-support/tab/), и вы можете нажать на любое из них, чтобы просмотреть полный запрос и ответ.
- Вы можете установить Interactsh по умолчанию для ActiveScan в меню `Options` > `OAST` > `General`.
- При включении опции `Use Permanent Database` вы можете просматривать взаимодействия, произошедшие после завершения работы ZAP.
- Дополнительную информацию см. в [документации дополнения OAST](https://www.zaproxy.org/docs/desktop/addons/oast-support/).

![zap](https://assets.kitploit.com/production/public/readmes/402/2f01cd4334848c3dde79caa9586f4a2f340f8ac65fc708d39a4afaa4670b43ff.png)
*Interactsh в ZAP*

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

[quickssrf](https://github.com/caido-community/quickssrf) — это расширение для Caido, разработанное и поддерживаемое, которое позволяет использовать Interactsh из прокси Caido.

- Скачайте последний zip-файл со страницы [releases](https://github.com/caido-community/quickssrf/releases/).
- Откройте Caido &rarr; Plugins &rarr; Install Package &rarr; Выберите zip-файл &rarr; Next
- После успешной установки появится новая боковая панель с названием **QuickSSRF**.
- Дополнительную информацию см. в проекте [quickssrf](https://github.com/caido-community/quickssrf).

![caido-image](https://assets.kitploit.com/production/public/readmes/402/3d0fe93ea63cd50294abc5acadad4e4b5d0362610c9147882181dcd7f6dec3f3.png)

-------


# Сервер Interactsh

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

1. Доменное имя с пользовательскими **именами хостов** и **серверами имён**.
2. Базовый droplet, работающий круглосуточно в фоновом режиме.

# Использование```sh
interactsh-server -h

Это отобразит справку по инструменту. Вот все поддерживаемые им параметры.```yaml Usage: ./interactsh-server [flags]

Flags: INPUT: -d, -domain string[] single/multiple configured domain to use for server -i, -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) (default 20) -cidn, -correlation-id-nonce-length int length of the correlation id nonce (min 3, default 13) (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 -hd, -http-directory string directory with files to serve with http server -dhr, -default-http-response string file to serve for all http requests (takes priority over other options) -ds, -disk disk based storage -dsp, -disk-path string disk storage path -ru, -redis-url string redis connection URL (enables shared state for multi-instance deployments) -rp, -redis-prefix string redis key prefix (default "interactsh:") -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 in-process smb agent for NetNTLMv2 hash capture (authenticated) -responder start in-process responder agent (multi-port SMB NetNTLMv2 hash capture, 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

UPLOAD: -upload enable client file upload and hosting - self-hosted servers only (authenticated) -ud, -upload-directory string directory to host uploaded files from - temporary if not specified; interactsh creates and prunes .interactsh-user-uploads inside it -umfs, -upload-max-file-size value maximum size of a single uploaded file (default 1mb) -umf, -upload-max-files int maximum number of uploaded files per session (default 5) -umts, -upload-max-total-size value maximum total size of all uploaded files on the server (default 1gb) -ut, -upload-ttl value maximum lifetime of uploaded files (default 24h0m0s)

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

root@kitploit:~
Мы используем GoDaddy для доменного имени и DigitalOcean droplet для сервера; базового droplet за $5 должно быть достаточно для запуска самостоятельно размещённого сервера Interactsh. Если вы не используете GoDaddy, следуйте процедуре вашего регистратора для создания / обновления записей DNS.

<table>
<td>

## Настройка домена Interactsh

- Перейдите на `https://dcc.godaddy.com/control/portfolio/{{domain}}/settings?subtab=hostnames`
- Add &rarr; Submit `ns1`, `ns2` со значением вашего `SERVER_IP`

<img width="1288" alt="gdd-hostname" src="https://assets.kitploit.com/production/public/readmes/402/efca5443025a0d6d2ac6e8103985dce9bad2be94e68a07a203571b83ebb0449d.png">

- Перейдите на `https://dcc.godaddy.com/control/dnsmanagement?domainName={{domain}}&subtab=nameservers`
- Change Nameservers &rarr; I'll use my own nameservers &rarr; Submit `ns1.INTERACTSH_DOMAIN`, `ns2.INTERACTSH_DOMAIN`

<img width="1288" alt="gdd-ns" src="https://assets.kitploit.com/production/public/readmes/402/f8c7ab74be7598c9431a78f3c0b790d4b91072219e50d1981bc28e651abe8a9a.png">

</td>
</table>

<table>
<td>

## Настройка сервера Interactsh

Установите `interactsh-server` на ваш **VPS**```bash
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-server@latest

Учитывая, что настройка доменного имени завершена, выполните приведённую ниже команду для запуска `interactsh-server````bash interactsh-server -domain INTERACTSH_DOMAIN

root@kitploit:~
Ниже приведён пример успешной установки и работы самостоятельно размещённого сервера:

![interactsh-server](https://assets.kitploit.com/production/public/readmes/402/3330add99f8d3f69d11a812221eedd42de04470b69bcdf9e55c8a23c09fa56ef.png)

Ряд необходимых флагов настраивается автоматически для запуска `interactsh-server` с настройками по умолчанию. Например, флаги `ip` и `listen-ip` устанавливаются в публичный IP-адрес системы, когда это возможно.

</td>
</table>

## Запуск Interactsh Server```console
$ 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 Server с несколькими доменами

Несколько доменных имён можно указать так же, как описано выше, чтобы запустить один и тот же сервер interactsh на нескольких настроенных доменах.```console $ interactsh-server -d oast.pro,oast.me

root@kitploit:~
_       __                       __       __

()__ / /____ _________ / // /_ / / __ / / _ / / __ '/ / __/ __/ __
/ / / / / /
/ __/ / / /
/ / /
/ /
(
) / / / /// //_/_
// _,/___/_/__// // 1.0.5

root@kitploit:~
            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

root@kitploit:~
## Interactsh Server с IPv4 и IPv6

Interactsh server поддерживает как IPv4, так и IPv6 адреса. Вы можете указать несколько IP-адресов с помощью флага `-ip`, и сервер будет отвечать соответствующими записями A (IPv4) или AAAA (IPv6) в DNS-ответах.```console
$ 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-записи в зависимости от типа запроса.

Когда выбранный сервер не публикует записи AAAA, клиент выводит предупреждение, чтобы взаимодействия от источников, использующих только IPv6, не были незаметно пропущены и ошибочно приняты за отсутствие уязвимости.

Примечание:

При запуске сервера interactsh на облачных виртуальных машинах, таких как Amazon EC2, Google Cloud Platform (GCP), необходимо обновить правила безопасности, чтобы разрешить "весь трафик" для входящих подключений.

interactsh-server поддерживает дополнительные полезные возможности, которые не включены по умолчанию и предназначены для использования только на самостоятельно размещённых серверах.

Interactsh Server за обратным прокси

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 для перенаправления трафика будет выглядеть следующим образом:```conf

http/https

http { server { listen 443 ssl; server_name mysite.com; ssl_certificate /etc/nginx/interactsh.pem; ssl_certificate_key /etc/nginx/interactsh.key;

root@kitploit:~
  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; } }

root@kitploit:~
**Настроенные домены**```console
$ 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.```bash interactsh-server -d hackwithautomation.com -http-index banner.html

root@kitploit:~
`{DOMAIN}` также поддерживается в индексном файле для замены на доменное имя сервера.

![image](https://assets.kitploit.com/production/public/readmes/402/3664a8d73ec14308c8e1bf2b33a4f545e0dc51cf99dd9370d64b4a31f453dea4.png)


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

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

Чтобы использовать эту функцию, можно применить флаг `-http-directory`, который принимает каталог в качестве входных данных, и файлы раздаются по пути `/s/`.```bash
interactsh-server -d hackwithautomation.com -http-directory ./paylods

image

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

Там, где -http-directory размещает предоставленные оператором файлы глобально, -upload позволяет клиенту размещать файлы в привязке к его собственному correlation ID. Это нацелено на out-of-band уязвимости второй стадии — XXE с внешним DTD, включения XSLT, подготовку JNDI — где цель должна загрузить файл полезной нагрузки до того, как сработает callback. Каждая загрузка фиксируется как взаимодействие, поэтому вторая стадия видна в выводе клиента.

[!WARNING] -upload предназначен только для самостоятельно размещённых серверов. Включение его на публичном экземпляре превращает его в анонимный файловый хостинг на домене с действительным wildcard-сертификатом, что является магнитом для размещения вредоносного ПО, а блок-листы действуют на регистрируемый домен — один злоупотребляющий образец затрагивает каждого пользователя этого домена. По умолчанию он отключён и при включении подразумевает аутентификацию.

Запустите сервер с включёнными загрузками:```bash interactsh-server -d hackwithautomation.com -upload -ftp

root@kitploit:~
Затем направьте на него клиент с одним или несколькими файлами:```bash
interactsh-client -s https://hackwithautomation.com -t <token> -file evil.dtd
  • --no-verify — пропустить проверку TLS-сертификата (небезопасно)
  • --timeout — таймаут запроса в секундах (по умолчанию: 10)
  • --retries — количество повторных попыток при неудачных запросах (по умолчанию: 3)
  • --proxy — прокси-URL для HTTP-запросов
  • --user-agent — строка User-Agent для HTTP-запросов
  • --headers — дополнительные HTTP-заголовки в формате Key: Value
  • --cookies — cookies для HTTP-запросов в формате name=value
  • --follow-redirects — следовать перенаправлениям HTTP
  • --max-redirects — максимальное количество перенаправлений (по умолчанию: 5)
  • --output — путь к выходному файлу для результатов
  • --format — формат вывода (json, csv, table)
  • --verbose — включить подробное логирование
  • --quiet — подавить весь вывод, кроме результатов
  • --debug — включить отладочный вывод
  • --config — путь к файлу конфигурации
  • --version — показать версию и выйти
  • --help — показать справку и выйти

Примеры

root@kitploit:~
# Базовое сканирование
python3 main.py -u https://example.com

# Сканирование со списком URL
python3 main.py -f urls.txt

# Сканирование с пользовательскими заголовками
python3 main.py -u https://example.com -H "Authorization: Bearer token"

# Сканирование с прокси
python3 main.py -u https://example.com --proxy http://127.0.0.1:8080

# Сканирование с выводом в JSON
python3 main.py -u https://example.com --format json --output results.json

# Сканирование с подробным логированием
python3 main.py -u https://example.com --verbose

# Сканирование с несколькими потоками
python3 main.py -u https://example.com -t 20

# Сканирование с задержкой между запросами
python3 main.py -u https://example.com --delay 1

# Сканирование с таймаутом
python3 main.py -u https://example.com --timeout 30

# Сканирование с повторными попытками
python3 main.py -u https://example.com --retries 5

Вывод

Инструмент поддерживает несколько форматов вывода:

  • table — удобочитаемая таблица (по умолчанию)
  • json — структурированный вывод JSON
  • csv — значения, разделённые запятыми

Пример вывода JSON:

root@kitploit:~
{
  "target": "https://example.com",
  "timestamp": "2024-01-01T00:00:00Z",
  "results": [
    {
      "url": "https://example.com",
      "status": 200,
      "length": 1234,
      "type": "text/html"
    }
  ]
}

Конфигурация

Инструмент поддерживает файл конфигурации в формате YAML:

root@kitploit:~
target: https://example.com
threads: 10
timeout: 30
retries: 3
proxy: http://127.0.0.1:8080
headers:
  User-Agent: "Mozilla/5.0"
  Authorization: "Bearer token"

Лицензия

Этот проект лицензирован под лицензией MIT — подробности см. в файле LICENSE.

Отказ от ответственности

Этот инструмент предназначен только для образовательных целей и тестирования на проникновение с разрешения. Авторы не несут ответственности за любое неправомерное использование или ущерб, причинённый этим программным обеспечением. Всегда получайте надлежащее разрешение перед тестированием любой системы.

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

  • ProjectDiscovery — за вдохновение
  • OWASP — за рекомендации по тестированию безопасности
  • Все участники и тестировщики

Контакты

  • GitHub: https://github.com/example/tool
  • Twitter: @example
  • Email: [email protected]

Сделано с ❤️ для сообщества безопасности```console [INF] Listing 1 payload for OOB Testing [INF] c6rj61aciaeutn2ae680cndmnioyyyyyn.hackwithautomation.com [INF] Hosting 1 file(s) for OOB Testing [INF] https://c6rj61aciaeutn2ae680xk4tqy8pqhwmi.hackwithautomation.com/f/evil.dtd [INF] ftp://c6rj61aciaeutn2ae680xk4tqy8pqhwmi.hackwithautomation.com/.interactsh-user-uploads/c6rj61aciaeutn2ae680/evil.dtd

root@kitploit:~
Файлы отдаются по HTTP(S), а также по FTP(S), когда включён `-ftp`. Ответы всегда имеют
`Content-Type: application/octet-stream` с `Content-Disposition: attachment`, поэтому сервер никогда
не отображает предоставленный клиентом HTML или SVG на своём домене; потребители DTD, XSLT и JNDI игнорируют тип содержимого,
так что для предполагаемого использования это ничего не стоит.

Когда цель забирает файл, этот запрос поступает в клиент как любое другое взаимодействие — в этом и
суть: это доказательство того, что первая стадия полезной нагрузки действительно выполнилась. Тело ответа
заменяется дайджестом, чтобы большая полезная нагрузка не копировалась обратно в поток взаимодействий при каждом
запросе:```console
[c6rj61aciaeutn2ae680xk4tqy8pqhwmi] Received HTTP interaction from 203.0.113.7 at 2026-08-05 15:47:19
------------
HTTP Request
------------

GET /f/evil.dtd HTTP/1.1
Host: c6rj61aciaeutn2ae680xk4tqy8pqhwmi.hackwithautomation.com
Accept: */*
User-Agent: curl/8.18.0



-------------
HTTP Response
-------------

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="evil.dtd"
Content-Length: 144

[body elided: 144 of 144 bytes of uploaded file "evil.dtd", sha256 0c1b960b076cdff8666f1f302dddd8f3ff0e6ed4b6c09002fbe6d1cdbb5d68f8]

Два счётчика — это «доставлено из размещённых»: условный запрос, получивший ответ 304, записывает 0 из 144, а запрос с диапазоном записывает байты, которые диапазон фактически перенёс, поэтому запись не может заявить о доставке, которой не было.

Какой бы callback второй стадии ни вызвал payload, он приходит как дополнительное взаимодействие с тем же correlation ID, поэтому обе стадии попадают в один клиент.

Клиент, которому предложено разместить файлы на сервере, запущенном без -upload, сообщает об этом и останавливается, вместо того чтобы молча продолжать без payload:```console $ interactsh-client -s https://hackwithautomation.com -t -file evil.dtd [FTL] Server https://hackwithautomation.com does not accept file uploads; it must be started with -upload

root@kitploit:~
Отказ сервера назван, потому что клиент регистрируется только на одном из серверов в `-s`. Когда
указано несколько, также сообщается, как был сделан выбор, поскольку результат может отличаться между запусками:```console
$ interactsh-client -s https://a.example,https://b.example -t <token> -file evil.dtd
[FTL] Server https://a.example does not accept file uploads; it must be started with -upload (chosen at random from the 2 servers in -s, so this may differ between runs; pass a single server with -file)

Параметры на стороне сервера:

ФлагПо умолчаниюОписание
-uploadвыкл.включить загрузку и хостинг файлов клиента
-ud, -upload-directoryвременный каталогкаталог для хостинга загруженных файлов; interactsh владеет .interactsh-user-uploads внутри него
-umfs, -upload-max-file-size1mbмаксимальный размер одного файла
-umf, -upload-max-files5максимальное количество файлов на сессию
-umts, -upload-max-total-size1gbмаксимальный суммарный объём в байтах по всем сессиям
-ut, -upload-ttl24hмаксимальное время жизни загруженных файлов

Файлы удаляются, когда клиент снимает регистрацию, когда его сессия покидает кэш, и в любом случае по истечении -upload-ttl с момента последней загрузки для этой сессии.

Что стоит знать перед включением:

  • Размещённые файлы может прочитать любой, кто узнает correlation ID. Этот ID намеренно утекает к цели — он появляется в каждом DNS-запросе, который делает резолвер цели, а значит, в её DNS-логах, её WAF и агрегаторах passive-DNS. Цель может загрузить ваш payload, чтобы отпечатать ваш инструментарий, и эта загрузка появится в вашем потоке взаимодействий. Не загружайте ничего, что вам было бы неприятно, если это прочитает цель.
  • Загрузки аутентифицируются с помощью correlation ID и секретного ключа сессии, поэтому только клиент, владеющий сессией, может прикреплять к ней файлы.
  • Клиент загружает на тот единственный сервер, на котором он зарегистрировался. Если -s перечисляет несколько, файлы размещаются только на выбранном; именно его URL-адреса payload выводятся. Передавайте один сервер с -file: клиент выбирает один случайным образом из -s и не может учесть поддержку загрузки, поскольку узнаёт о ней только после регистрации — поэтому список, смешивающий серверы с поддержкой загрузки и без неё, даёт случайные сбои.
  • -upload нельзя комбинировать с -redis-url. Размещённые байты записываются в локальную файловую систему одного экземпляра, поэтому при бэкенде хранилища, общего для нескольких экземпляров, другие экземпляры объявляли бы файлы, которых у них нет. Сервер отказывается запускаться с такой комбинацией: ```console $ interactsh-server -d hackwithautomation.com -upload -redis-url redis://127.0.0.1:6379/0 [FTL] -upload cannot be used with -redis-url: hosted files are stored on a single instance's local filesystem
    root@kitploit:~
  • Загрузки отказываются передаваться по открытому HTTP на удалённый сервер, поскольку запрос несёт в себе как файл, так и секретный ключ сессии. Используйте URL сервера с https://.
  • Каталог загрузок по умолчанию — временный каталог, который во многих дистрибутивах Linux размещается в памяти. Явно задайте -upload-directory при реальном развёртывании.
  • Interactsh создаёт и очищает один каталог внутри корня загрузок. Размещённые файлы располагаются как <root>/.interactsh-user-uploads/<correlation-id>/<filename>, и всё, что находится под .interactsh-user-uploads, удаляется по завершении сессии, по истечении -upload-ttl и при запуске — метаданные загрузок хранятся только в памяти, поэтому ничего там не переживает перезапуск. Остальная часть корня никогда не затрагивается, что и делает безопасным указание -upload-directory на каталог, который вы уже используете, или его совместное использование с -ftp-dir.
  • При -ftp без -ftp-dir корень FTP устанавливается в корень загрузок, чтобы размещённые файлы были доступны по FTP без дополнительной настройки. Если вы задаёте оба флага, они должны указывать на один и тот же каталог, иначе FTP не увидит загрузки: сервер сообщает о несоответствии при запуске и перестаёт предлагать клиентам URL ftp://, так что хостинг деградирует до HTTP-only вместо выдачи FTP-URL, которые никуда не ведут. Каталог загрузок скрыт из листингов FTP — LIST / показывает ваш собственный контент, но не .interactsh-user-uploads, и этот каталог отказывается перечислять своё содержимое, поэтому анонимный клиент не может перечислить correlation ID, для которых в данный момент есть размещённые файлы. RETR по известному пути работает, на что и опирается URL полезной нагрузки.

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

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

Поддерживаются следующие имена параметров запроса — body, header, status и delay. Можно указать несколько параметров header для установки нескольких заголовков.

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

root@kitploit:~
> **Примечание**:

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

## Wildcard Interaction

Чтобы включить `wildcard` взаимодействие для настроенного домена Interactsh, можно использовать флаг `wildcard` с неявной защитой аутентификации через флаг `auth`, если флаг `token` опущен.```console
$ 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:```console $ export INTERACTSH_MAX_SHARED_INTERACTIONS=50000 $ interactsh-server -domain hackwithautomation.com -wildcard

root@kitploit:~
## Взаимодействие с LDAP

По умолчанию сервер Interactsh поддерживает взаимодействие с LDAP для полезной нагрузки, включённой в [поисковый запрос](https://ldapwiki.com/wiki/LDAP%20Query%20Examples), дополнительно для полного логирования можно использовать флаг `ldap`.```console
$ 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.```console $ interactsh-server -d hackwithautomation.com -cidl 4 -cidn 6

root@kitploit:~
_       __                       __       __  

()__ / /____ _________ / // /_ / / __ / / _ / / __ '/ / __/ __/ __
/ / / / / /
/ __/ / / /
/ / /
/ /
(
) / / / /// //_/_
// _,/___/_/__// // v1.0.2

root@kitploit:~
    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

root@kitploit:~
**Примечание:** Важно и обязательно использовать одинаковую длину с обеих сторон (**клиент** и **сервер**), иначе корреляция не будет работать.```console
$ 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-сертификат

По умолчанию сервер interactsh использует библиотеку certmagic для автоматического создания wildcard-сертификатов для запрошенного домена. Чтобы использовать собственный SSL-сертификат с самостоятельно размещённым сервером interactsh, можно применить флаги cert и privkey для указания необходимых файлов сертификата.

Примечание: Для использования всех возможностей протокола SSL обязателен wildcard-сертификат.```console $ interactsh-server -d hackwithautomation.com -cert hackwithautomation.com.crt -privkey hackwithautomation.com.key

root@kitploit:~
_       __                       __       __  

()__ / /____ _________ / // /_ / / __ / / _ / / __ '/ / __/ __/ __
/ / / / / /
/ __/ / / /
/ / /
/ /
(
) / / / /// //_/_
// _,/___/_/__// // v1.0.2

root@kitploit:~
    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

root@kitploit:~
## Поддерживаемые протоколы

### FTP

Поддержка FTP может быть включена с помощью флага `-ftp` и рекомендуется только для самостоятельно размещённых экземпляров. FTP-агент имитирует полнофункциональный FTP-серверный агент с аутентификацией, которая фиксирует данные аутентификации при каждой файловой операции. По умолчанию агент прослушивает открытый текстовый FTP на порту 21 (это можно изменить с помощью флага `-ftp-port`) и TLS FTP на порту 990 (это можно изменить с помощью флага `-ftps-port`) и отображает в режиме только для чтения содержимое временного каталога ОС по умолчанию (настраивается с помощью опции `-ftp-dir`). FTP-движок использует пользовательский сертификат и закрытый ключ, если они предоставлены, или извлекает сертификат и закрытый ключ из первого домена acme, если он предоставлен.
Пример запуска демона FTP и захвата взаимодействия при входе:```console
$ 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 включает внутрипроцессный сервер захвата хешей SMB2 NetNTLMv2 (только для самостоятельно размещённых экземпляров). Он реализован на чистом Go поверх goimpacket и прослушивает порт 445, если не изменён флагом -smb-port. Зависимости от Python, impacket или docker не требуются.

Захваченные хеши сохраняются как взаимодействия smb в стандартном формате hashcat NetNTLMv2 (-m 5600):``` USER::DOMAIN:serverChallenge:NTProofStr:NTLMv2Blob

root@kitploit:~
Пример включения сервера samba:```console
$ sudo interactsh-server -smb -skip-acme -debug -domain localhost

Responder

Флаг -responder включает сервер захвата хешей NTLMv2, эквивалентный Responder, также основанный на goimpacket. Он привязывается к TCP-портам, поддерживающим SMB (139 и значение -smb-port, по умолчанию 445), и сохраняет любую захваченную аутентификацию как взаимодействие responder в том же формате hashcat NetNTLMv2, описанном выше. Зависимости от docker или Python не требуются.```bash sudo interactsh-server -responder -d localhost

root@kitploit:~
> Примечание: устаревшие широковещательные отравители LLMNR / NBT-NS / MDNS, поставляемые с проектом Python Responder, **не** включены. Это техники на стороне LAN, выходящие за рамки сервера OOB-обратных вызовов, доступного через публичный интернет, и они не являются частью библиотеки goimpacket.

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

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

[Примеры](https://github.com/projectdiscovery/interactsh/blob/main/examples) используют клиентскую библиотеку interactsh для получения внешних взаимодействий по сгенерированному URL путём выполнения http-запроса к этому URL, а также для размещения файла в рамках той же сессии для проверки на втором этапе.

Размещение файлов — это опциональная возможность сервера, поэтому потребитель библиотеки ведёт переговоры, а не делает предположений: `Capabilities()` сообщает, что сервер объявил при регистрации, `UploadFiles` возвращает `ErrUploadUnsupported`, когда сервер не может размещать файлы, и `ErrUploadNotAdvertised`, когда он предшествует этой функции, а `FileURL`/`FTPFileURL` составляют URL-адреса, которые должна запросить цель. Публичные серверы `oast.*` не предлагают хостинг, поэтому пример пропускает его, а не завершается с ошибкой.

### Nuclei - OAST

Сканер уязвимостей [Nuclei](https://github.com/projectdiscovery/nuclei) использует **Interactsh** для автоматической генерации полезной нагрузки и обнаружения уязвимостей безопасности на основе out-of-band взаимодействий.

См. блог об интеграции [Nuclei + Interactsh](https://blog.projectdiscovery.io/nuclei-interactsh-integration/) и [руководство](https://nuclei.projectdiscovery.io/templating-guide/interactsh/) для получения дополнительной информации.

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

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

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

- [AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)
- [Alibaba](https://www.alibabacloud.com/blog/alibaba-cloud-ecs-metadata-user-data-and-dynamic-data_594351)

Пример:

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

-----

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

Interactsh вдохновлён [Burp Collaborator](https://portswigger.net/burp/documentation/collaborator).

### Лицензия

Interactsh распространяется под [лицензией MIT](https://github.com/projectdiscovery/interactsh/blob/master/LICENSE.md) и создан с 🖤 командой [projectdiscovery](https://projectdiscovery.io).
Скачать инструмент