Giter VIP home page Giter VIP logo

interactsh's Introduction


Interactsh

An OOB interaction gathering server and client library

FeaturesUsageInteractsh ClientInteractsh ServerInteractsh IntegrationJoin Discord


Interactsh is an open-source tool for detecting out-of-band interactions. It is a tool designed to detect vulnerabilities that cause external interactions.

Features

  • DNS/HTTP(S)/SMTP(S)/LDAP Interaction
  • CLI / Web / Burp / ZAP / Docker client
  • AES encryption with zero logging
  • Automatic ACME based Wildcard TLS w/ Auto Renewal
  • DNS Entries for Cloud Metadata service
  • Dynamic HTTP Response control
  • Self-Hosted Interactsh Server
  • Multiple domain support (self-hosted)
  • NTLM/SMB/FTP/RESPONDER Listener (self-hosted)
  • Wildcard / Protected Interactions (self-hosted)
  • Customizable Index / File hosting (self-hosted)
  • Customizable Payload Length (self-hosted)
  • Custom SSL Certificate (self-hosted)

Interactsh Client

Usage

interactsh-client -h

This will display help for the tool. Here are all the switches it supports.

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 (default 20)
   -cidn, -correlation-id-nonce-length int  length of the correlation id nonce (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

Interactsh CLI Client

Interactsh Cli client requires go1.20+ to install successfully. Run the following command to get the repo -

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

Default Run

This will generate a unique payload that can be used for OOB testing with minimal interaction information in the output.

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

Session File

interactsh-client with -sf, -session-file flag can be used store/read the current session information from user defined file which is useful to resume the same session to poll the interactions even after the client gets stopped or closed.

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

Verbose Mode

Running the interactsh-client in verbose mode (v) to see the whole request and response, along with an output file to analyze afterwards.

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>

Using Self-Hosted server

Using the server flag, interactsh-client can be configured to connect with a self-hosted Interactsh server, this flag accepts single or multiple server separated by comma.

interactsh-client -server hackwithautomation.com

We maintain a list of default Interactsh servers to use with interactsh-client:

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

Default servers are subject to change/rotate/down at any time, thus we recommend using a self-hosted interactsh server if you are experiencing issues with the default server.

Using Protected Self-Hosted server

Using the token flag, interactsh-client can connect to a self-hosted Interactsh server that is protected with authentication.

interactsh-client -server hackwithautomation.com -token XXX

Using with Notify

If you are away from your terminal, you may use notify to send a real-time interaction notification to any supported platform.

interactsh-client | notify

image

Interactsh Web Client

Interactsh-web is a free and open-source web client that displays Interactsh interactions in a well-managed dashboard in your browser. It uses the browser's local storage to store and display all incoming interactions. By default, the web client is configured to use interact.sh as default interactsh server, and supports other self-hosted public/authencaited interactsh servers as well.

A hosted instance of interactsh-web client is available at https://app.interactsh.com

interactsh-web

Interactsh Docker Client

A Docker image is also provided with interactsh client that is ready to run and can be used in the following way:

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 Extension

interactsh-collaborator is Burp Suite extension developed and maintained by @wdahlenb

  • Download latest JAR file from releases page.
  • Open Burp Suite → Extender → Add → Java → Select JAR file → Next
  • New tab named Interactsh will be appeared upon successful installation.
  • See the interactsh-collaborator project for more info.

burp

OWASP ZAP Add-On

Interactsh can be used with OWASP ZAP via the OAST add-on for ZAP. With ZAP's scripting capabilities, you can create powerful out-of-band scan rules that leverage Interactsh's features. A standalone script template has been provided as an example (it is added automatically when you install the add-on).

  • Install the OAST add-on from the ZAP Marketplace.
  • Go to Tools → Options → OAST and select Interactsh.
  • Configure the options for the client and click on "New Payload" to generate a new payload.
  • OOB interactions will appear in the OAST Tab and you can click on any of them to view the full request and response.
  • You can set Interactsh as the default for ActiveScan in the Options > OAST > General menu.
  • When checking the Use Permanent Database option, you can review interactions that occurred after ZAP was terminated.
  • See the OAST add-on documentation for more info.

zap Interactsh in ZAP

Options > OAST > General Options > OAST > General


Interactsh Server

Interactsh server runs multiple services and captures all the incoming requests. To host an instance of interactsh-server, you are required to setup:

  1. Domain name with custom host names and nameservers.
  2. Basic droplet running 24/7 in the background.

Usage

interactsh-server -h

This will display help for the tool. Here are all the switches it supports.

Usage:
  ./interactsh-server [flags]

Flags:
INPUT:
   -d, -domain string[]                     single/multiple configured domain to use for server
   -ip string                               public ip address to use for interactsh server
   -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
   -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 (default 20)
   -cidn, -correlation-id-nonce-length int  length of the correlation id nonce (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:
   -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
   -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)
   -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

We are using GoDaddy for domain name and DigitalOcean droplet for the server, a basic $5 droplet should be sufficient to run self-hosted Interactsh server. If you are not using GoDaddy, follow your registrar's process for creating / updating DNS entries.

Configuring Interactsh domain

  • Navigate to https://dcc.godaddy.com/manage/{{domain}}/dns/hosts
  • Advanced Features → Host names → Add → Submit ns1, ns2 with your SERVER_IP as value
gdd-hostname
  • Navigate to https://dns.godaddy.com/{{domain}}/nameservers
  • I'll use my own nameservers → Submit ns1.INTERACTSH_DOMAIN, ns2.INTERACTSH_DOMAIN
gdd-ns

Configuring Interactsh server

Install interactsh-server on your VPS

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

Considering domain name setup is completed, run the below command to run interactsh-server

interactsh-server -domain INTERACTSH_DOMAIN

Following is an example of a successful installation and operation of a self-hosted server:

interactsh-server

A number of needed flags are configured automatically to run interactsh-server with default settings. For example, ip and listen-ip flags set with the Public IP address of the system when possible.

Running Interactsh Server

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 with Multiple Domain

Multiple domain names can be given in the same way as above to run the same interactsh server across multiple configured domains.

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

Note:

While running interactsh server on Cloud VM's like Amazon EC2, Google Cloud Platform (GCP), it is required to update the security rules to allow "all traffic" for inbound connections.

There are more useful capabilities supported by interactsh-server that are not enabled by default and are intended to be used only by self-hosted servers.

Interactsh Server behind a reverse proxy

interactsh-server might require custom ports for services if the default ones are already busy. If this is the case but still default ports are required as part of the payload, it's possible to configure interactsh-server behind a reverse proxy, by port-forwarding HTTP/TCP/UDP based services via http/stream proxy directive (proxy_pass).

Nginx

Assuming that interactsh-server essential services run on the following ports:

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

The nginx configuration file to forward the traffic would look like the following one:

# 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;
   }
}

Configured Domains

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

Custom Server Index

Index page for http server can be customized while running custom interactsh server using -http-index flag.

interactsh-server -d hackwithautomation.com -http-index banner.html

{DOMAIN} placeholder is also supported in index file to replace with server domain name.

image

Static File Hosting

Interactsh http server optionally enables file hosting to help in security testing. This capability can be used with a self-hosted server to serve files for common payloads for XSS, XXE, RCE and other attacks.

To use this feature, -http-directory flag can be used which accepts diretory as input and files are served under /s/ directory.

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

image

Dynamic HTTP Response

Interactsh http server optionally enables responding with dynamic HTTP response by using query parameters. This feature can be enabled by using -dr or -dynamic-resp flag.

The following query parameter names are supported - body, header, status and delay. Multiple header parameters can be specified to set multiple headers.

  • body (response body)
  • header (response header)
  • status (response status code)
  • delay (response time)
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

Note:

  • Dynamic HTTP Response feature is disabled as default.
  • By design, this feature lets anyone run client-side code / redirects using your interactsh domain / server
  • Using this option with an isolated domain is recommended to avoid security impact on associated root/subdomains.

Wildcard Interaction

To enable wildcard interaction for configured Interactsh domain wildcard flag can be used with implicit authentication protection via the auth flag if the token flag is omitted.

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

LDAP Interaction

As default, Interactsh server support LDAP interaction for the payload included in search query, additionally ldap flag can be used for complete logging.

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

Custom Payload Length

The length of the interactsh payload is 33 by default, consisting of 20 (unique correlation-id) + 13 (nonce token), which can be customized using the cidl and cidn flags to make shorter when required with self-hosted interacsh server.

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

Note: It is important and required to use same length on both side (client and server), otherwise co-relation will not work.

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

Custom SSL Certificate

The certmagic library is used by default by interactsh server to produce wildcard certificates for requested domain in an automatic way. To use your own SSL certificate with self-hosted interactsh server, cert and privkey flag can be used to provider required certificate files.

Note: To utilize all of the functionality of the SSL protocol, a wildcard certificate is mandatory.

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

Supported Protocols

FTP

FTP support can be enabled with the -ftp flag and is recommended for self-hosted instances only. The FTP agent simulates a fully-functional FTP server agent with authentication that captures authentications with every file operation. By default, the agent listens on port 21 (this can be changed with the -ftp-port flag) and lists in read-only mode the content of the OS default temporary directory (customizable with the -ftp-dir option). Example of starting the FTP daemon and capturing a login interaction:

$ 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"}

External Supported Protocols

SMB

The -smb flag enables the Samba protocol (only for self-hosted instances). The samba protocol uses impacket smbserver class to simulate a samba daemon share listening on port 445 unless changed by the -smb-port flag. When enabled, interactsh executes under the hoods the script smb_server.py. Hence Python3 and impacket dependencies are required. Example of enabling the samba server:

$ sudo interactsh-server -smb -skip-acme -debug -domain localhost

Responder

Responder is wrapped in a docker container exposing various service ports via docker port forwarding. The interactions are retrieved by monitoring the shared log file Responder-Session.log in the temp folder. To use it on a self-hosted instance, it's necessary first to build the docker container and tag it as interactsh(docker daemon must be configured correctly and with port forwarding capabilities):

docker build . -t interactsh

Then run the service with:

$ sudo interactsh-server -responder -d localhost

On default settings, the daemon listens on the following ports:

  • UDP: 137, 138, 1434
  • TCP: 21 (might collide with FTP daemon if used), 110, 135, 139, 389, 445, 1433, 3141, 3128

Interactsh Integration

Use as library

The examples uses interactsh client library to get external interactions for a generated URL by making a http request to the URL.

Nuclei - OAST

Nuclei vulnerability scanner utilize Interactsh for automated payload generation and detection of out of band based security vulnerabilities.

See Nuclei + Interactsh Integration blog and guide document for more information.

Cloud Metadata

Interactsh server supports DNS records for cloud metadata services, which is useful for testing SSRF-related vulnerabilities.

Currently supported metadata services:

Example:

  • aws.interact.sh points to 169.254.169.254
  • alibaba.interact.sh points to 100.100.100.200

Acknowledgement

Interactsh is inspired from Burp Collaborator.

License

Interactsh is distributed under MIT License and made with 🖤 by the projectdiscovery team.

interactsh's People

Contributors

74616e696d avatar av-io avatar bisstocuz avatar bl13pbl03p avatar ccf5maj37 avatar dependabot[bot] avatar derekkddj avatar dogancanbakir avatar edoardottt avatar ehsandeep avatar fincham avatar forgedhallpass avatar hahwul avatar iamnoooob avatar ice3man543 avatar kalidor avatar maikthulhu avatar mzack9999 avatar ndrong avatar ounissi-zakaria avatar parrasajad avatar ramanareddy0m avatar random-robbie avatar ricekot avatar serizao avatar shubhamrasal avatar sullo avatar tarunkoyalwar avatar testwill avatar zt2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

interactsh's Issues

[Feature] Filter regular output with http-only/dns-only new flags

@Mzack9999 we may also filter regular output with this feature.

For example with interactsh-client -http-only or -dns-only

Current behavior:-

[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received DNS interaction (A) from 103.195.200.42 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received DNS interaction (A) from 172.253.226.98 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received DNS interaction (A) from 103.195.200.42 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received DNS interaction (A) from 172.217.34.131 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received HTTP interaction from 103.22.142.125 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received HTTP interaction from 103.22.142.125 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received HTTP interaction from 103.22.142.125 at 2021-07-20 11:44:24

After support:-

[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received HTTP interaction from 103.22.142.125 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received HTTP interaction from 103.22.142.125 at 2021-07-20 11:44:23
[c3rbe3pe0084ii3p82sgcd5mqryyyyyyn] Received HTTP interaction from 103.22.142.125 at 2021-07-20 11:44:24

Originally posted by @ehsandeep in #40 (comment)

Allow use of base domain (or custom sub-domain) for self-hosted servers

Hello and thank you for this awesome tool, it will surely come in handy during our testing.

The current behavior of interactsh is to create a randomized subdomain like c282n3l3djgbti5v595gcnenzdoyyyyyn.domain.tld, which is fine and all, however, we have a pretty nice 4 x 2 domain and we feel that smaller payloads are the best, so could you allow the use of the base domain and/or customized sub-domains for self-hosted servers in addition to the randomized subdomains?

Edited to ask for customized sub-domains option as well. 👍🏻

Bots

Block bots, if we use notify and bots crawl it, it will be noisy notifs.

[Feature] Printing the full Hostname

I see that you have implemented the burp collaborator feature of wildcard mapping to the source collaborator address.

Example : ..interact.sh -> .interact.sh

That's great feature . But it would be great if you print this whole ..interact.sh on the terminal whenever a query triggered without verbose flag. Because verbose flag print many unwanted information (in case of DNS queries).

Example:

if we ping anything.<UNIQUE-ID>.interact.sh
And the interactsh client shows ( without verbose flag)
[<UNIQUE-ID>] Recieved DNS interaction (A) from <ORIGIN-IP> at <TIMESTAMP>

So the anything is omitted , which is sometimes important during Bug Bounties.

FTP Support

An FTP listener would be interesting to include in Interactsh.

It would be valuable to log the authentication that an FTP client uses along with the commands they ran. It would be helpful to see the files the external client attempted to read or upload.

FTP is supported by default in Java applications where an attacker has control over a URL object. It comes up in XXE OOB testing as well.

[Feature] Burp suite extension for interactsh client

Maybe it is not very necessary, but if it would be something interesting, a client for burpsuite (community), it is necessary to take into account that it would be an extra maintenance, no wonder they reject the idea. but still I comment

interactsh server crash

This is not completed but limited available logs.

net/http.(*conn).readRequest(0xc03c1d72c0, 0x921bf8, 0xc03c80ad80, 0x0, 0x0, 0x0)
        /snap/go/7954/src/net/http/server.go:966 +0x19d
net/http.(*conn).serve(0xc03c1d72c0, 0x921ca0, 0xc03c80ad80)
        /snap/go/7954/src/net/http/server.go:1858 +0x705
created by net/http.(*Server).Serve
        /snap/go/7954/src/net/http/server.go:2993 +0x39b

goroutine 197138914 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7f922ad4b4f0, 0x72, 0xffffffffffffffff)
        /snap/go/7954/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc09119b318, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /snap/go/7954/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /snap/go/7954/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc09119b300, 0xc08affa000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /snap/go/7954/src/internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc09119b300, 0xc08affa000, 0x1000, 0x1000, 0xc0083f8400, 0xc05a07d668, 0x89adb9)
        /snap/go/7954/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0bff81610, 0xc08affa000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /snap/go/7954/src/net/net.go:183 +0x91
net/http.(*connReader).Read(0xc09170f470, 0xc08affa000, 0x1000, 0x1000, 0x4b6956, 0xc09215d08b, 0xb)
        /snap/go/7954/src/net/http/server.go:780 +0x1b9
bufio.(*Reader).fill(0xc08afe7aa0)
        /snap/go/7954/src/bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc08afe7aa0, 0xc03828f80a, 0x764367, 0xc08ac8f080, 0xb1e2ae, 0x2, 0x2)
        /snap/go/7954/src/bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc08afe7aa0, 0x203024, 0x203024, 0x0, 0x0, 0xc03828fa78, 0x764dc5)
        /snap/go/7954/src/bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc0923b0870, 0xc0922c9200, 0xc03828f9e8, 0x4dc773, 0xc09119b300, 0x43a77c)
        /snap/go/7954/src/net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
        /snap/go/7954/src/net/textproto/reader.go:38
net/http.readRequest(0xc08afe7aa0, 0x0, 0xc0922c9200, 0x0, 0x0)
        /snap/go/7954/src/net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc0917ac140, 0x921bf8, 0xc0910ff980, 0x0, 0x0, 0x0)
        /snap/go/7954/src/net/http/server.go:966 +0x19d
net/http.(*conn).serve(0xc0917ac140, 0x921ca0, 0xc0910ff980)
        /snap/go/7954/src/net/http/server.go:1858 +0x705
created by net/http.(*Server).Serve
        /snap/go/7954/src/net/http/server.go:2993 +0x39b

[feature] Success criteria for self hosted for interactsh-server

Hey all,

I may be simply looking in the wrong place but there seems to be little guidance on what needs to be in place for the interactsh-server to succeed

for example:
./interactsh-server -domain yoink.domain -hostmaster jc@doain -ip 44.44.44.4xx -debug

following the guide will tell me '[ERR] Could not serve dns on port 53: listen udp 0.0.0.0:53: bind: address already in use'
and 021/07/16 10:40:30 Creating new order for domains: [*.yoink.domain yoink.domain]
2021/07/16 10:40:30 Order created: https://acme-v02.api.letsencrypt.org/acme/order/000000/00000000
2021/07/16 10:40:30 Fetching authorization: https://acme-v02.api.letsencrypt.org/acme/authz-v3/000000000
2021/07/16 10:40:30 Fetched authorization: yoink.domain
2021/07/16 10:40:40 Updating challenge for authorization yoink.domain: https://acme-v02.api.letsencrypt.org/acme/chall-v3/0000000000/8z7VSF
[FTL] Could not generate certs for auto TLS

but disabling systemd-resolved only tells me only 'Could not generate certs for auto TLS' assuming i cant resolve it anymore :)

so, any pointers to what i'm not getting in regards to why this is failing ? and to the title, might that be a good common document for all ?

Thanks!

Linux yoinker 5.4.0-73-generic projectdiscovery/nuclei#82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Interact.sh UI

  • Generating new intractable payload

    • Default to generate 1 link
    • User can request many as per need.
  • User controlled poll time settings.

    • We can define default poll time.
  • Multi tab support to manage / track / view multiple payloads at same time.

  • Filters for displaying DNS / HTTP / SMTP Interaction in default view.

  • Fields (same as burp only for inspiration)

    • Time (Interaction time)
    • Type (Interaction type)
    • Payload (Interact Payload)
    • Comment
  • Fields per interaction type

    • DNS

      • Interaction Information / description
      • RAW DNS query
    • HTTP

      • Interaction Information / description
      • Request dump
      • Response dump
    • SMTP

      • Interaction Information / description
      • SMTP Interaction dump
    • Misc Features

      • Search (Search between all interactions)
      • Copy (Request/Response)
      • Download (Request/Response)
      • Decode (HTML/URL)

Listen on ports other than standard ports for http, dns, etc.

Hello I am trying to use interactsh and I need the server to listen on ports other than the default 53, 443, etc due to a reverse proxy in front of the server. I looked at the source code and see there's a string concat with :53 for dns, so it appears it's not possible to make this part dynamic. Could you please add the ability to listen on different ports other than the default? Thanks.

Could not create client

running interactsh-client without any options is triggering the below error.
Version : 0.0.2
OS: OSX

$interactsh-client

    _       __                       __       __
   (_)___  / /____  _________ ______/ /______/ /_
  / / __ \/ __/ _ \/ ___/ __ '/ ___/ __/ ___/ __ \
 / / / / / /_/  __/ /  / /_/ / /__/ /_(__  ) / / /
/_/_/ /_/\__/\___/_/   \__,_/\___/\__/____/_/ /_/ v0.0.2

		projectdiscovery.io

[FTL] Could not create client: could not make register request: POST https://interact.sh/register giving up after 6 attempts: Post "https://interact.sh/register": dial tcp: lookup interact.sh: no such host

Access an old generated payload link ?

I hosted your interactsh-server on a a droplet. Everything is working like a charm. But I have a question:
Can I use an old generated payload link ? access its http/dns/smtp requests within the server using the client side (interactsh-client ? please ?

Allow customization and persistence of default text for self-hosted servers

Hello and thank you for this awesome tool, it will surely come in handy during our testing.

Could you make the default text more easily customizable and persistent between updates for those of using self-hosted servers? Currently it includes a line that says If you find communications or exchanges with the Interact.sh server in your logs, it is possible that someone has been testing your applications using our hosted service, app.interact.sh.

Maybe it should detect the base domain being used by the server and display that instead?

Interactsh server - fatal error: runtime: out of memory

Interactsh server version:- 0.0.6

2021/10/09 22:47:15 TLS certificates are not expiring, continue!
2021/10/09 22:47:15 Listening on DNS, SMTP and HTTP ports
fatal error: runtime: out of memory

runtime stack:
runtime.throw(0xf6974e, 0x16)
	/snap/go/8408/src/runtime/panic.go:1117 +0x72
runtime.sysMap(0xc0d0000000, 0x4000000, 0x161bdb0)
	/snap/go/8408/src/runtime/mem_linux.go:169 +0xc6
runtime.(*mheap).sysAlloc(0x16029a0, 0x400000, 0x7fffffffffff, 0x7ff7077fdd98)
	/snap/go/8408/src/runtime/malloc.go:729 +0x1e5
runtime.(*mheap).grow(0x16029a0, 0x1, 0x0)
	/snap/go/8408/src/runtime/mheap.go:1346 +0x85
runtime.(*mheap).allocSpan(0x16029a0, 0x1, 0x1100, 0x1ff)
	/snap/go/8408/src/runtime/mheap.go:1173 +0x609
runtime.(*mheap).alloc.func1()
	/snap/go/8408/src/runtime/mheap.go:910 +0x59
runtime.systemstack(0xc000314900)
	/snap/go/8408/src/runtime/asm_amd64.s:379 +0x66
runtime.mstart()
	/snap/go/8408/src/runtime/proc.go:1246

Complete crash trace - interact-crash.txt

[Feature] Widcard interactsh-client url like burpcollaborator

Hello team,
Just a suggestion , if you can make the collab url as wildcard (i.e. *..interact.sh resolve to .interact.sh), just same as the burp collaborator do.

If that can be done , that would be greatful.

And thanks for your awesome Tools.

Add ability to restrict access to self-hosted servers

Hello, currently there is no protection against allowing anyone to connect to a self-hosted hosted if they know the URL. Please add some sort of authentication mechanism so that servers aren't abused. Maybe something like this?

$ interactsh-server -auth "$(uuid-gen)"
$ interactsh-client -auth "generated-uuid" -url https://domain.tld

Thank you.

DNS rebinding

As Interactsh is about OOB interaction supporting DNS it would be nice to have a DNS rebinding by the same occasion.

This mean having a way to get resolvable resource records with any given contents for assisting in detection and exploitation of SSRF-related vulnerabilities.

I have fetched a list of DNS rebinding tools but most are hard to setup, featureless and unmaintained. The most interesting project to understand all major features is 1u.ms (source), their website describe well all possibilities.

Right now Interactsh is similar to most HTTP request collector and inspector tools but lacks of DNS rebinding.

image

What I said for DNS could also be meaningful for HTTP, being able choose the body or headers served by the server.

[DEV] could not get extra interactions after registration

HTTP/2 400 Bad Request
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Origin: http://localhost:3000
Content-Type: text/plain; charset=utf-8
Content-Length: 456
Date: Sat, 11 Sep 2021 09:21:33 GMT

{"error":"could not get extra interactions: could not get id from cache"}
{"data":[],"extra":null,"aes_key":"XXX"}

[Feature] SMB Listener

Sometimes I use Responder just to collect incoming hashes from AD/Windows integrated apps
it's not a big inconvenience for me to just configure it to listen from my private hosted interactsh-server, but it would be a nice to have a built in listener to register/capture/note those events dont you think ?

[issue] Broken dependency smtpd

Describe the bug
Project depends on github.com/prologic/smtpd, but https://github.com/prologic/smtpd results in a 404, repo seems gone.
Error occurred when trying to open the Nuclei source in GoLand on a pristine machine.

Version
Nuclei: Trunk of master (currently at 84244b5)
Interactsh: Seems to be present in trunk, too

Screenshot of the error or bug

go list -modfile=nuclei/v2/go.mod -m -json -mod=mod all #gosetup
go: github.com/projectdiscovery/[email protected] requires
	github.com/prologic/[email protected]: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in ~/go/pkg/mod/cache/vcs/65b3100cfa8e2061b6047e41aaceb4a1e850f70977a718cfde5bd0e009bb0722: exit status 128

DNS interaction does not often work

``Hello team , thanks for all the great things you do . I do have an issue with the interact client where dns request are not logged . http works fine but when ever the request is a dns request only, nothing works
nslookup blahblahblah.c4l7u968kh02ipm31b50jntiyyozltipn.interact.sh does not work at all .

[feature] Output only for HTTP requests/responses

Sometimes I receive too many DNS requests from targets. I will like to be able to only retrieve HTTP requests in verbose output.

#output all requests/responses
interactsh-client -v
#output only http requests/responses
interactsh-client -v -http-only
#output only dns requests/responses
interactsh-client -v -dns-only

Domain name update for default interactsh server

It has been reported several times that the current domain is used by interactsh server - interact.sh - is not resolved by a few VPS providers, preventing such systems from using interactsh client and Nuclei integration.

The default interactsh server will now be located at https://interactsh.com The old server (interact.sh) will remain available.

Digitalocean droplets are blocked (?)

Hi,

It seems like DO droplets are blocked or something. Check out the image. the same issue when I tried a different droplet (different IP).

WindowsTerminal_76fuVnzfDr

Also, thank you all for the AMAZING tools you make! <3

Installation Failed

┌──(root💀milani)-[~]
└─# go get -v github.com/projectdiscovery/interactsh/cmd/interactsh-client                                   127 ⨯

github.com/pierrec/lz4 (download)
cannot find package "github.com/pierrec/lz4/v4" in any of:
        /usr/lib/go-1.15/src/github.com/pierrec/lz4/v4 (from $GOROOT)
        /root/go/src/github.com/pierrec/lz4/v4 (from $GOPATH)

https://github.com/pierrec/lz4/v4

Not able to run the interactsh-server

When I run the command interactsh-server -domain mydomain.com -hostmaster [email protected] -ip [VPS IP]. The following output is given without any errors:

2021/05/01 08:45:17 Creating new order for domains: [*.mydomain.com mydomain.com]
2021/05/01 08:45:17 Order created: https://acme-v02.api.letsencrypt.org/acme/order/121967319/9409571122
2021/05/01 08:45:17 Fetching authorization: https://acme-v02.api.letsencrypt.org/acme/authz-v3/12762297545
2021/05/01 08:45:17 Fetched authorization: mydomain.com
2021/05/01 08:45:27 Updating challenge for authorization mydomain.com: https://acme-v02.api.letsencrypt.org/acme/chall-v3/12762297545/FkqiUg

But the server is not giving A records when queried. I already had a letsencrypt cert but even after I deleted the cert nothing changed the same output is given

Interactsh server enhancement

  • Added default value for hostmaster flag as admin@domain
  • Added verbose error upon failures
  • Added origin-url flag for dynamic ACAO used for web interactsh client

Add subdomains which resolve to cloud metadata addresses

Add 2 subdomains which resolve to various cloud provider metadata IPs.

For general cloud services, one should resolve to: 169.254.169.254
For Alibaba, one should resolve to: 100.100.100.200

Once created, the metadata-*yaml templates can be updated to use them.

[DEV] Uniform response content type

  • Using application/json instead of text/plain on successful response.
  • Adding response msg upon successful registration at /register endpoint
HTTP/2 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Origin: *
Content-Length: 0
Date: Sat, 11 Sep 2021 09:50:37 GMT

{"message":"registration successful"}

[Feature] Support for displaying http content on interact.sh client

Right now on sending an http request to the interact.sh url we simply get the following response:

Recieved HTTP interactionfrom <ip> at <time>

it would be helpful if we could see the contents of the get/post content of the http request like in https://webhook.site/

Ex:
Request at target
GET customSubdomain.<interactshsubdomin>.interact.sh/someData

or

POST customSubdomain.<interactshsubdomin>.interact.sh
{
value: SomeData
}

interactsh-client logs display SomeData or the whole json file

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.