All Projects → jekil → Udpot

jekil / Udpot

Licence: gpl-3.0
Simple UDP honeypot script

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Udpot

Chameleon
Customizable honeypots for monitoring network traffic, bots activities and username\password credentials (DNS, HTTP Proxy, HTTP, HTTPS, SSH, POP3, IMAP, STMP, RDP, VNC, SMB, SOCKS5, Redis, TELNET, Postgres and MySQL)
Stars: ✭ 230 (+557.14%)
Mutual labels:  dns, honeypot
Wait4x
Wait4X is a cli tool to wait for everything! It can be wait for a port to open or enter to rquested state.
Stars: ✭ 30 (-14.29%)
Mutual labels:  dns
Dreamcatcher
DNS Monitoring Suite
Stars: ✭ 19 (-45.71%)
Mutual labels:  dns
Sooty
The SOC Analysts all-in-one CLI tool to automate and speed up workflow.
Stars: ✭ 867 (+2377.14%)
Mutual labels:  dns
Czds
simple golang API and programs to interact with czds.icann.org
Stars: ✭ 26 (-25.71%)
Mutual labels:  dns
Fastdns
fastDNS is an authoritative only, high performance, simple and open source name server based on DPDK and NSD server
Stars: ✭ 12 (-65.71%)
Mutual labels:  dns
Whour
Tool for information gathering, IPReverse, AdminFInder, DNS, WHOIS, SQLi Scanner with google.
Stars: ✭ 18 (-48.57%)
Mutual labels:  dns
Hev Socks5 Server
A simple, lightweight socks5 server for Unix (Linux/BSD/macOS)
Stars: ✭ 33 (-5.71%)
Mutual labels:  dns
Learn dns
[ Domain Name to I/O ] Development DNS & Security Data Transportation & Pentesting with SCA and Steganography.
Stars: ✭ 29 (-17.14%)
Mutual labels:  dns
Invisible captcha
🍯 Unobtrusive and flexible spam protection for Rails apps
Stars: ✭ 851 (+2331.43%)
Mutual labels:  honeypot
Conpot
ICS/SCADA honeypot
Stars: ✭ 853 (+2337.14%)
Mutual labels:  honeypot
Honeytrap
Advanced Honeypot framework.
Stars: ✭ 938 (+2580%)
Mutual labels:  honeypot
Bash Toolkit
Este proyecto esá destinado a ayudar a los sysadmin
Stars: ✭ 13 (-62.86%)
Mutual labels:  dns
Pihole config
My personal configuration for pihole
Stars: ✭ 23 (-34.29%)
Mutual labels:  dns
Dns Lots Of Lookups
dnslol is a command line tool for performing lots of DNS lookups.
Stars: ✭ 30 (-14.29%)
Mutual labels:  dns
Floating Elephants
Docker containers for Hadoop.
Stars: ✭ 19 (-45.71%)
Mutual labels:  dns
V3n0m Scanner
Popular Pentesting scanner in Python3.6 for SQLi/XSS/LFI/RFI and other Vulns
Stars: ✭ 847 (+2320%)
Mutual labels:  dns
Malware Samples
A collection of malware samples caught by several honeypots i manage
Stars: ✭ 863 (+2365.71%)
Mutual labels:  honeypot
Dnssecjava
A DNSSEC validating stub resolver for Java.
Stars: ✭ 33 (-5.71%)
Mutual labels:  dns
Satellite
Satellite: Measuring The Internet's Stars
Stars: ✭ 30 (-14.29%)
Mutual labels:  dns

Build Status Twitter Follow

dns.py

The idea behind this script is to provide a DNS honeypot which logs all requests to a SQLite database and with a configurable interactivity level.

It can be configured to resolve only a number of DNS requests to seems like an open resolver to an attacker, after that it acts as a sinkhole.

For each request coming from a source IP only a custom number of requests (default 3) are really resolved (sending back a DNS reply) before working as a sinkhole; after a configurable timeout (default 1 day), it can restart the loop.

Docker

A docker image is available on DockerHub. Run it with:

docker run --name udpot -p 5053:5053/udp -p 5053:5053/tcp -d jekil/udpot

It will run UDPot on port 5053 UDP and TCP, if you want to use it on another port you can bind it with docker or redirect it with iptables (explained below).

Variables

  • DNS_SERVER: host for DNS resolution

Volumes

  • data: where SQLite database is stored

Requirements

The script is developed for Python 3 and the following libraries are required:

  • twisted
  • sqlalchemy

You can install them with (you need python-dev package to compile them):

pip install -r requirements.txt

Usage

You can print the option list using the help -h option:

$ python dns.py -h
usage: dns.py [-h] [-p DNS_PORT] [-c REQ_COUNT] [-t REQ_TIMEOUT] [-s] [-v]
                server

positional arguments:
  server                DNS server IP address

optional arguments:
  -h, --help            show this help message and exit
  -p DNS_PORT, --dns-port DNS_PORT
                        DNS honeypot port
  -c REQ_COUNT, --req-count REQ_COUNT
                        how many request to resolve
  -t REQ_TIMEOUT, --req-timeout REQ_TIMEOUT
                        timeout to re-start resolving requests
  -s, --sql             database connection string
  -v, --verbose         print each request

You can run the DNS honeypot with the following command, you have to add the IP of the DNS server you use to resolve the first bunch of queries to seems like an open resolver (in this example we use 8.8.8.8):

$ python dns.py 8.8.8.8

Now your DNS honeypot is listening on both port 5053 UDP and TCP. If you want to bind it to port 53 you have to:

  • run it as root and use option -p which is really not recommended
  • add an iptables rule to redirect traffic from port 53 to port 5053

Example iptables rules to redirect traffic:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 53 -j REDIRECT --to-ports 5053
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j REDIRECT --to-ports 5053

Some other arguments are optional:

  • -p is used to bind DNS honeypot service on a given port
  • -c how many requests should be resolved (sending a DNS reply) like a real open resolver
  • -t timeout to re-start resolving requests (sending a DNS reply) like a real open resolver
  • -s choose a SQL database (default SQLite)
  • -v verbose logging (prints each request)
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].