A HTTP tarpit written in Go designed to maximize bot misery through very slowly feeding them an infinite stream of fake secrets.
xml
, json
, yaml
, hcl
, toml
, csv
, ini
, and sql
are all supported.http
and ftp
are supported out of the box. Each with a tailored implementation. More protocols are planned.Go pot is distributed as a standalone go binary or docker image. You can download the latest release from the releases page. Docker images are available on the ghcr.io registry.
In order to run an example instance of go-pot using docker, you can use the following command:
docker run -p 8080:8080 --rm ghcr.io/ryanolee/go-pot:latest start --host=0.0.0.0 --port=8080
See the examples
directory for more examples of how to run go-pot in various configurations.
In order to run go-pot as a standalone binary, you can download the latest release from the releases page and run it with the following command:
./go-pot start
Then visit http://localhost:8080
in your browser to see the go-pot in action. ( Visiting http://localhost:8080/somthing.xml
, http://localhost:8080/someething.sql
ect.. will start generating data in the respective format)
Please refer to the examples folder for examples of how go pot can be used.
Configuration for go-pot follows the following order of precedence (From lowest to highest):
--config-file
flag or using the GOPOT__CONFIG_FILE
environment variable. An example reference configuration file can be found in the examples/config/reference.yml file.go-pot --help
to see a list of available flags.GOPOT__
and deliminated with ""'s for further keys. For instance server.host
can be overridden with `GOPOTSERVER__HOST`. Go pot can be deployed in a variety of ways. See the cdk directory for an example of how to deploy go-pot using the AWS CDK on ECS Fargate for which it has native clustering support.
Contributions are welcome! Please see the CONTRIBUTING.md file for more information on how to contribute.
See the internal INTERNALS.md file for more information on how go-pot works.
Go pot was originally inspired by the Reverse slow loris project by Nick Huber
The go pot logo created by @_iroshi
and is licensed under the CC0 license.
ssh
, sql
, smtp
and more. Anything that can be stalled will be stalled and must be stalled!(Originally the subject of a talk for Birmingham go)