showcase.mp4
Note
I'm migrating the agent communication from DNS to TCP because there is really no reason to use DNS since the reverse shell connection goes over plain TCP anyway, see this PR
- Easy to install
- Simple web interface
- Agent communication over DNS
- Receive TCP reverse shells
- Linux & Windows support
- Self deletion because why not
You can easily install ezcat with docker:
docker run --rm --network host \
-e PASSWORD=securepassword \
ghcr.io/ngn13/ezcat
Configuration is handled with environment variables, here are all the options:
PASSWORD
: Used to change the login password, by default it'sezcat
, and for security, you should definitely change itSHELLIP
: By default ezcat will try to detect your interface IP address (giving priority to tunnel interfaces). If you want set this IP address to something else by default, you can use theSHELLIP
environment variableDISABLE_MEGAMIND
: When set to1
, it disables the "no shells?" megamind meme that's displayed on the dashboard if you don't have any active shellsHTTP_PORT
: Used to change the port that the API server will listen on, default is 5566AGENT_PORT
: Used to change the agent communication port, default is 1053API_URL
: Used to change the API URL for the front-end applicationDATA_DIR
: Directory that the server will use to store stage builds, default is./data
STATIC_DIR
: Used to change the front-end application (static) directory, it's pre-set in the Dockerfile, you don't need to worry about it unless you are working on somethingPAYLOAD_DIR
: Specifies the directory that contains the payloads, it's pre-set in the Dockerfile, just like theSTATIC_DIR
option, don't worry about itDEBUG
: When set to1
, it enables debug output for the server and the stage builds
To build ezcat, install a recent version go. Then download and extract the latest release.
- To build the server, install a recent version of go, change directory into the
server/
directory and run:
go build
- To build the front-end application, install a recent version of node and npm change directory into the
app/
directory and run:
npm i
npm run build
To build different payloads during runtime, you will need GNU coreutils
and bash
, build-essential
tools and optionally mingw
for windows builds. After installing these tools, you can run the server/
binary with the desired configuration.