Accessing Responder
Navigate to LAYER2 → Responder in the sidebar. The panel provides interface selection, start/stop controls, live output streaming, a config editor, and a view of captured credentials.Starting Responder
Select a network interface
Choose the interface Responder should listen on (e.g.
eth0, tun0). This is passed directly as the -I flag.Enter your sudo password
Responder must run as root. Enter your sudo password in the shared sudo modal when prompted.
Click Start
The UI calls
POST /api/responder/start, which builds the command, launches the process in the background, logs the session to scan history, and registers the PID in the RESPONDER_PROCESSES global dict.Start request
options array accepts additional Responder flags (e.g. -w, -F) as individual strings.
Stopping Responder
Click Stop in the UI, or call the stop endpoint directly. The backend runssudo pkill -f 'responder.*<interface>' to terminate the process and its children, then marks the scan as completed in the scan history table.
Live output streaming
Output is written torecon/responder_<timestamp>.txt and read incrementally:
| Field | Description |
|---|---|
content | New bytes read since offset |
file_size | Current file size in bytes |
offset to file_size on each poll, fetching only new content. If the file does not yet exist (process just started), content is an empty string and file_size is 0.
Checking process status
RESPONDER_PROCESSES dict (keyed by PID) is the authoritative in-memory state. Each entry stores the process handle, output file path, interface, start time, and scan ID.
Credential capture
A backgroundmonitor_responder_output task watches the output file and calls parse_responder_credentials on each new chunk. The parser strips ANSI escape codes and applies regex patterns for each supported protocol.
Captured credential types:
| Protocol | Credential type | Storage |
|---|---|---|
| HTTP, SMB, LDAP, MSSQL, SMTP, WinRM | NTLMv2 hash | hash column |
| HTTP, SMB, LDAP, WinRM | Basic auth | password column |
| HTTP | Digest | hash column |
| FTP | Cleartext | password column |
| SMTP | LOGIN, CRAM-MD5 | password / hash |
| LDAP | Simple bind | password column |
| MSSQL | SQL Auth, NetNTLMv2 | password / hash |
credentials table with source = 'responder'. Duplicates are checked before insertion so the same hash is never stored twice. The client IP (extracted from Client: lines in Responder output) is stored in the ip column when available.
Viewing captured credentials
responder, and automatically populate the saved credentials dropdown in authenticated scan modals.
Responder .conf editor
The UI includes a full editor for the Responder configuration file, organized into three tabs: Services, Settings, and Advanced.Reading the config
; or #) and blank lines are skipped. Each key = value pair is returned under its section name.
Saving the config
Edits are written back viaPOST /api/responder/config. Because the config file is owned by root, the backend writes to a temporary file and uses sudo cp to move it into place.
Changes to the config take effect on the next Responder start. If Responder is already running, stop and restart it after saving the config.
Output file
Each session writes to a timestamped file in therecon/ directory:
Use with relay attacks
Responder is commonly run alongsidentlmrelayx to relay captured authentication to other hosts. The standard workflow:
Disable SMB and HTTP in Responder config
When relaying, set
SMB = Off and HTTP = Off in the Responder config so ntlmrelayx can bind to those ports instead. Use the config editor to make this change before starting.Start ntlmrelayx externally
Run ntlmrelayx from a terminal against your relay targets. Hosts with SMB signing disabled are the primary relay targets — use NETWORK → SMB Signing Check to identify them.
Start Responder
Start Responder from the UI. It poisons name resolution; authentication attempts are redirected to ntlmrelayx rather than Responder’s own SMB/HTTP listeners.