GhostLink

GhostLink connects two ESP32 devices for remote control while maintaining continuous AP hosting

On this page

GhostLink connects two ESP32 devices over UART so one can host the access point while the other runs attacks. Wire them together, power them on, and they auto-discover and connect; send any GhostESP command from one device to the other, with no manual connection needed in most cases.

Prerequisites

  • Two compatible ESP32 boards.
  • Three wires (TX, RX, GND) to connect them.
  • Both devices flashed with GhostESP firmware.

Wiring

Connect the devices with 3 wires:

  • TX of Device A → RX of Device B (GPIO 6 → GPIO 7 by default, 17 → 16 on base ESP32 models)
  • RX of Device A → TX of Device B (GPIO 7 → GPIO 6 by default, 16 → 17 on base ESP32 models)
  • GND → GND

Both devices need power.

Basic usage

Once wired and powered on, devices automatically find each other:

  • commstatus - Check connection status
  • commsend <command> - Send any command to the other device; for example commsend scanap, commsend attack -d, commsend beaconspam -r, or commsend capture -probe
  • commdisconnect - Disconnect if needed

Changing pins

Default pins are TX: GPIO 6, RX: GPIO 7 (or 17 and 16 on base ESP32 models). To change them, run commsetpins <TX_PIN> <RX_PIN> (for example, commsetpins 4 5).

Pin changes are saved and persist across reboots. You cannot change pins while connected.

Manual connection

If auto-connection fails, run commdiscovery to check discovery status, then commconnect ESP_A1B2C3 to connect to a specific device. Device names are auto-generated based on MAC address (format: ESP_XXXXXX).

On-screen UI

When connected, the GhostLink menu appears. It uses a split-view terminal: local logs on the left, remote responses on the right. Commands sent via the menu automatically open this view.

Troubleshooting

  • Not connecting: Check wiring (TX→RX, RX→TX, GND connected). Make sure both devices are powered. Reboot them simultaneously and wait 30 seconds for discovery. Run commstatus to check.
  • Commands not working: Verify connection with commstatus. Use exact GhostESP command syntax.

Use cases

  • Hidden device control: Hide one ESP32 and control it remotely with full functionality through the web interface.
  • Coordinated attacks: Both devices attack different targets simultaneously.
  • Continuous AP hosting: One device maintains the access point while the other performs intensive operations.

Notes

  • Auto-discovery happens every 3 seconds.
  • Connection uses UART at 115,200 baud by default; Banshee build templates override this to 921,600 baud.
  • The device with the “larger” name becomes master, but commands can be sent from both directions.
  • Auto-reconnect is enabled; the connection will automatically restore if interrupted.
  • BLE Bridge - use one of these wired boards as a Bluetooth proxy to the Android companion app.