All Projects → ctxis → SnitchDNS

ctxis / SnitchDNS

Licence: MIT license
Database Driven DNS Server with a Web UI

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects
Jinja
831 projects
shell
77523 projects

Projects that are alternatives of or similar to SnitchDNS

DoNotSend
Sending messages by hacking the DNS protocol. See website for demo server usage instructions
Stars: ✭ 93 (-44.97%)
Mutual labels:  dns-server, dns-tunneling
callsign
Small DNS service to support local development. Provides the functionality of cloud-based DNS services on your local machine, allowing automated deployment simulations on the desktop.
Stars: ✭ 42 (-75.15%)
Mutual labels:  twisted, dns-server
prometheus-async
Async helpers for prometheus_client.
Stars: ✭ 136 (-19.53%)
Mutual labels:  twisted
gochinadns
Project archived: I believe Clash has provides a more elegant DNS & proxy solution. So there is no need to maintain this project. Have fun guys! ----- A drop-in replacement for ChinaDNS, with a better code implementation and several bugfixes.
Stars: ✭ 38 (-77.51%)
Mutual labels:  dns-server
mongodb-backup-manager
🌿 A Full-stack MongoDB Backup System.
Stars: ✭ 42 (-75.15%)
Mutual labels:  notifications
tahoe-lafs-public-clouds
tahoe-lafs backend drivers for no-cost cloud providers
Stars: ✭ 25 (-85.21%)
Mutual labels:  twisted
laravel-fcm-notification-channel
No description or website provided.
Stars: ✭ 23 (-86.39%)
Mutual labels:  notifications
DoTH-DNS
Your server doth DNS the safe way if you use DoTH-DNS.
Stars: ✭ 26 (-84.62%)
Mutual labels:  dns-server
24-game
24 point game implemented in Python, just for fun!
Stars: ✭ 16 (-90.53%)
Mutual labels:  twisted
sutanlab.id
☕️ My Personal Homepage & Blog site with NextJS. 🇺🇸 🇮🇩
Stars: ✭ 39 (-76.92%)
Mutual labels:  notifications
ChatApp
Chat app based on Firebase tools.
Stars: ✭ 88 (-47.93%)
Mutual labels:  notifications
mobile-messaging-sdk-ios
Mobile Messaging SDK for iOS
Stars: ✭ 45 (-73.37%)
Mutual labels:  notifications
Cardinal
A Python IRC bot, designed to make adding functionality quick and simple.
Stars: ✭ 92 (-45.56%)
Mutual labels:  twisted
sns-laravel
A library to enable sending and receiving broadcasts to and from SNS topics in Laravel and Lumen.
Stars: ✭ 23 (-86.39%)
Mutual labels:  notifications
Melkweg
Project Melkweg is only a tool testing the network latency between two computers.
Stars: ✭ 18 (-89.35%)
Mutual labels:  twisted
robusta
Open source Kubernetes monitoring, troubleshooting, and automation platform
Stars: ✭ 772 (+356.8%)
Mutual labels:  notifications
aioScrapy
基于asyncio与aiohttp的异步协程爬虫框架 欢迎Star
Stars: ✭ 34 (-79.88%)
Mutual labels:  twisted
notifier
📟 Extensible library for building notifications and sending them via different delivery channels
Stars: ✭ 24 (-85.8%)
Mutual labels:  notifications
vue-dk-toast
Lightweight toast-notification plugin for Vue 3 🍞
Stars: ✭ 23 (-86.39%)
Mutual labels:  notifications
laravel-pipes
Aims making it easier to organize internal handling of incoming webhooks.
Stars: ✭ 21 (-87.57%)
Mutual labels:  notifications

SnitchDNS

SnitchDNS is a database driven DNS Server with a Web UI, written in Python and Twisted, that makes DNS administration easier with all configuration changed applied instantly without restarting any system services.

One of its main features is the logging of all DNS queries allowing the discovery of network traffic endpoints, and it can also be used to implement canary tokens as it supports notifications via e-mail, web push, Slack, and Teams. Red teamers can also use SnitchDNS to monitor phishing domains for sandboxes, integrate with SIEM solutions, restrict responses to specific IP ranges, egress data via a DNS tunnel and catch-all domains, and more.

Dependencies

  • Python 3.6+

Installation

Please make sure you install using git rather than by downloading the repo manually.

Documentation

For general documentation see here

Screenshots

For screenshots see here

Basic Features

  • Database Driven.
    • Changes are reflected immediately on each DNS request.
    • Supported DBMS:
      • SQLite
      • MySQL / MariaDB
      • Postgres
  • DNS Server
    • Support for common DNS Records.
      • A, AAAA, AFSDB, CNAME, DNAME, HINFO, MX, NAPTR, NS, PTR, RP, SOA, SPF, SRV, SSHFP, TSIG, TXT.
    • Catch-All Domains.
      • Ability to match any subdomain (no matter the depth) to a specific parent domain, for instance *.hello.example.com.
    • Unmatched Record Forwarding.
      • Functionality to intercept specific queries (ie only A and CNAME) and forward all other records to a third-party DNS server (ie Google).
    • Regular Expression matching.
  • Tags and Aliases.
  • IP Rules
    • Configure Allow/Block rules per domain.
  • Notifications. Receive a notification when a domain is resolved, via:
    • E-mail
    • Web Push
    • Slack
    • Microsoft Teams
  • User Management
    • Multi-User support
      • Each user is given their own subdomain to use.
    • LDAP/RADIUS Support
    • Two Factor Authentication
    • Password Complexity Management
  • Logging
    • All DNS queries are logged, whether they have been matched or not.
    • CSV Logging for SIEM integration.
  • Swagger 2.0 API
  • Deployment
    • Ansible scripts for Ubuntu 18.04 / 20.04
    • Docker
    • CLI support for zone, record, user, and settings management.
    • CSV Export/Import

Use Cases

SnitchDNS can be used for:

  • A DNS Forwarding Server - Allowing you to monitor all requests via a Web GUI.
  • Red Teams - Implement IP restrictions to block sandboxes, monitor phishing domain resolutions and e-mails, and restrict access to known IP ranges.
  • DNS Tunnel - Log all DNS requests and egress data.
  • Let's Encrypt DNS Challenge, using the API or the CLI interface.
  • Ad-blocking.
  • Canary Tokens.
  • Integrate with SIEM solutions.

For more details on scenarios please see the Use Cases Document

Limitations

  • SnitchDNS currently runs in a single-thread, therefore may not be suitable for environments with hundreds of DNS requests per minute.

Contributing

If you wish to contribute pull requests, feature requests, and bug reports - feel free to raise an issue (especially before you start writing code).

Security

If you identify any security vulnerabilities within SnitchDNS, for the time being please contact me on twitter - @sadreck

Credits

UI

Development

  • Lambros Zannettos | @_C960_ - For his help with writing the Dockerfile.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].