Callbacks

Some problems only show when the server reaches out on its own: it fetches a URL you gave it, looks up a host name, or sends mail. Callbacks hand out a unique host for each test and list every DNS lookup, HTTP request or mail that later reaches it, next to the test it came from.

Callbacks is a tool from the Market (under Tools) that comes switched on, so the Callbacks tab is in the sidebar from the start. Remove it in the Market to hide the tab; it stays off until you install it again.

Set up#

Callbacks use interactsh, the open-source callback tool by ProjectDiscovery (MIT license). The first time you open the Callbacks tab, press Download interactsh (about 10 MB). Plonix fetches the client from its GitHub release, checks it against the release's published SHA-256 checksums, and keeps it in the tools folder of your Plonix data. Nothing else is installed. From a terminal, plonix callbacks install does the same.

Install it yourself#

If you prefer to build the client, open or install it yourself in the Callbacks tab, or run this in Terminal:

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

On Windows, install Go with winget install GoLang.Go, then run the go install part in a new terminal. Plonix finds the client in ~/go/bin or on your PATH; press Check again once it is built. A client Plonix downloaded is used first.

Using a host#

  1. Press Start listening. Nothing listens until you do, and Plonix talks only to the callback server: the public servers, or your own with a token (Server…).
  2. New host hands out a host. Give it a name so you remember which test it belongs to.
  3. Put it in a request. On the Bench, Insert callback host puts one where the cursor is.
  4. Every interaction that reaches the host is listed with its time, sender and raw request.

From an interaction, Find the request shows the captured request that carried the host, and + Finding writes it up with both as evidence. Find in traffic searches for a host everywhere it was sent.

Plonix keeps each project's callback session, so hosts handed out earlier keep working after a restart.

From the terminal#

plonix callbacks                   # is the client installed, is the listener on
plonix callbacks install           # download interactsh-client
plonix callbacks start             # start listening
plonix callbacks payload -l ssrf   # make a host for a test and print it
plonix callbacks list --json       # callbacks received, newest first
plonix callbacks stop

This page is docs/callbacks.md in the Plonix repository. Spotted something wrong? Suggest a change.