PolarDNS: a new free DNS server for vulnerability research and pentest

Brother

Professional
Will the tool play on the hackers side?

Oryxlabs has developed a new free Python 3.x DNS server for cybersecurity and pentesting research, called PolarDNS. The server allows you to generate fully customizable DNS responses for testing various aspects of the DNS protocol, including server-side DNS resolvers, clients, libraries, DNS parsers and DNS dissectors, and any software that processes DNS information.

PolarDNS supports both UDP and TCP protocols, giving operators full control over the DNS protocol layer. The server can generate non-standard, non-conforming, and RFC-violating DNS responses, including those generated incorrectly.

PolarDNS features include:
  • Creating sequences and loops of CNAME records;
  • Changing DNS Headers;
  • Adding unauthorized entries, which can lead to DNS cache poisoning;
  • Inserting random bytes in responses;
  • Generating incomplete, empty, or null-byte DNS responses;
  • Identify data compression issues in DNS responses (loops, invalid pointers);
  • Changing the size of packets in TCP connections.

The service can be useful for functional testing, checking compliance with RFC requirements (Request for Comments), security research, and vulnerability detection. PolarDNS has the ability to detect various types of vulnerabilities, including Sloth Domain Attack, Phantom Domain Attack, domain blocking, DNS cache poisoning, system resource depletion leading to crashes and Denial of Service (DoS) attacks. The server provides flexible settings for developing and testing new practices, scenarios, features, and Proof of Concept (PoC) features.

To run PolarDNS, run the python command polardns.py By default, the server starts listening on localhost (127.0.0.1), using UDP and TCP ports 53 to process DNS queries. To check the functioning of the server, it is suggested to perform sample requests in UDP and TCP modes. A successful response with the A record and IP address 2.3.4.5 confirms that the server is working correctly.

To install PolarDNS, you need Python version 3.10 or later and the PyYAML module installed. After configuring the polardns.yml configuration file with the domain and IP addresses of the name server, the server is ready for use.
 
Top