Git Product home page Git Product logo

chkdomain's Introduction

chkdomain

Build Status

chkdomain checks if a domain can be resolved by no-filter DNS, or has been blocked by secure/protective DNS, and advertisement/tracker-blocking DNS services. It sends queries to well-known DNS servers and checks the resolution success as a basis for determining if the domain is blocked. The tool also provides links to OSINT, domain threat intelligence, and security services for the domain in question.

The DNS services currently used for sending queries are listed below:

No-filter DNS Secure DNS Ad/Tracker-blocking DNS
AdGuard (94.140.14.140) CleanBrowsing (185.228.168.9) AdGuard (94.140.14.14)
Cloudflare (1.1.1.1) Cloudflare (1.1.1.2) AhaDNS (5.2.75.75)
dns0.eu (193.110.81.254) Comodo (8.26.56.26) CONTROL D (76.76.2.2)
Freenom World (80.80.81.81) CONTROL D (76.76.2.1) dnsforge.de (176.9.93.198)
Gcore (95.85.95.85) dns0.eu (193.110.81.0) OVPN (192.165.9.157)
Google (8.8.8.8) UltraDNS (156.154.70.2) Tiarap (188.166.206.224)
Hinet (168.95.1.1) OpenDNS (208.67.222.222)
UltraDNS (64.6.64.6) Quad101 (101.101.101.101)
OpenDNS (208.67.222.2) Quad9 (9.9.9.9)
Quad9 (9.9.9.10) SafeDNS (195.46.39.39)
Yandex (77.88.8.1) Yandex (77.88.8.2)

After checking the domain, chkdomain provides direct links to the following intelligence services for more information:

If you'd like to build up your own secure DNS, check out the threat-hostlist repository. It contains many different threat-blocking blocklists to help you create a secure DNS service for your home, office, or elsewhere.

Usage

Download the chkdm script and make it executable:

$ wget https://github.com/PeterDaveHello/chkdomain/raw/master/chkdm
$ chmod +x chkdm

Check domain by running chkdm:

$ ./chkdm <domain name>

Additionally, you can put the script in your $PATH, such as /usr/local/bin, to make it executable from anywhere.

Using Custom DNS

For custom DNS checks, create CustomDNS.txt in the script's directory, listing your DNS server IPs. Use # for comments:

127.0.0.1
192.168.1.1       # Local DNS
168.95.192.1      # Hinet DNS

If you wish to use a custom file location, you can specify a custom file using CustomDNSFile variable before executing:

CustomDNSFile="/path/to/your/dnsfile.txt" ./chkdm ipinfo.tw

The script will then include these servers in its checks and provide results.

Screenshot

Screenshot

Demo

asciicast

Dependency

Only a few command-line tools are needed:

  • awk
  • bash
  • dig
  • dirname
  • head
  • nslookup
  • readlink
  • sed
  • sort

Most of the commands (awk, bash, dirname, head, readlink, sed, and sort) come pre-installed on common Linux distributions. To install dig and nslookup, use your package manager (e.g., apt, yum, pacman) to install the dnsutils (Debian/Ubuntu) or bind-utils (RHEL/CentOS, Arch/Manjaro) package.

Notice

Please be aware that domain names with records such as 0.0.0.0 or 127.0.0.1 (e.g., 0.ipinfo.tw or 1.ipinfo.tw) may yield incorrect results when checked with secure DNS and ad-blocking DNS services. The current detection method for blocked domains is relatively simple. We plan to improve this feature in future updates.

Additional Resources

There are also some malicious domains blocking services that don't directly provide DNS services and can't be queried via the HTTP GET method. As a result, we are unable to integrate them or list their corresponding query URLs in the check results. However, since they are provided by leading security companies and offer a web interface that allows you to manually submit a domain to retrieve the related intelligence, they are worth mentioning. The services are listed below:

License

GPL-3.0 (GNU GENERAL PUBLIC LICENSE Version 3)

chkdomain's People

Contributors

peterdavehello avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.