A set of programmable servers (currently HTTP/HTTPS and DNS) which allow configurable and scriptable responses to network requests.
Example uses:
- Use as a local DNS server to intercept and modify IoT device traffic.
- Use as an internet based DNS authority server to test 3rd party websites for SSRF, blind XSS and other vulnerabilities.
Features:
- Simple regex replacements and responses.
- Apply middlewares to all or matching requests (HTTP, SSL and DNS).
- Changes to, or the addition of new configuration files does not require a restart of the server.
Default configuration includes examples for DNS Rebinding attacks (files/routes/30_dnsrebind.json and files/scripts/dnsrebind/dnsrebind.py), slack alerting middleware (files/scripts/slack_alert_middleware/) and responding to ACMEv2 dns-01 challenges (files/routes/10_letsencrypt.json).
In order to start ReServ with the default configuration simply use the following command:
$ python3 reserv.py
See the Getting Started guide for setting up TLS, DNS glue records and more.