Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
X64dbg | 42,092 | 6 days ago | 570 | other | C++ | |||||
An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis. | ||||||||||
Trivy | 19,521 | 58 | 15 hours ago | 205 | November 06, 2023 | 219 | apache-2.0 | Go | ||
Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more | ||||||||||
Gitleaks | 14,257 | 25 | 4 days ago | 74 | November 17, 2023 | 146 | mit | Go | ||
Protect and discover secrets using Gitleaks 🔑 | ||||||||||
Personal Security Checklist | 12,928 | a day ago | 27 | other | ||||||
🔒 A compiled checklist of 300+ tips for protecting digital security and privacy in 2023 | ||||||||||
Trufflehog | 12,799 | 6 | 6 | 10 hours ago | 42 | April 28, 2021 | 194 | agpl-3.0 | Go | |
Find and verify credentials | ||||||||||
Zaproxy | 11,481 | 3 | 4 | 4 days ago | 11 | October 12, 2023 | 748 | apache-2.0 | Java | |
The ZAP core project | ||||||||||
Rustscan | 11,194 | 1 | 3 months ago | 18 | November 07, 2022 | 128 | gpl-3.0 | Rust | ||
🤖 The Modern Port Scanner 🤖 | ||||||||||
Vuls | 10,397 | 5 days ago | 162 | November 20, 2023 | 79 | gpl-3.0 | Go | |||
Agent-less vulnerability scanner for Linux, FreeBSD, Container, WordPress, Programming language libraries, Network devices | ||||||||||
Scapy | 9,553 | 814 | 202 | a day ago | 25 | December 25, 2022 | 142 | gpl-2.0 | Python | |
Scapy: the Python-based interactive packet manipulation program & library. Supports Python 2 & Python 3. | ||||||||||
Fail2ban | 9,215 | 6 days ago | 1 | August 14, 2018 | 241 | other | Python | |||
Daemon to ban hosts that cause multiple authentication errors |
This script will try to find:
This script (ab)uses DNS history records. This script will search for old DNS A records and check if the server replies for that domain. It also outputs a confidence level, based on the similarity in HTML response of the possible origin server and the firewall.
The script also fetches the IP's of subdomains because my own experience learned me that subdomain IP's sometimes point to the origin of the main domain.
Use the script like this:
bash bypass-firewalls-by-DNS-history.sh -d example.com
-d --domain
: domain to bypass-o --outputfile
: output file with IP's-l --listsubdomains
: list with subdomains for extra coverage-a --checkall
: Check all subdomains for a WAF bypassjq
is needed to parse output to gather automatically subdomains.
Install with apt install jq
.
To illustrate what we define as WAF bypass, look at the scheme below.
A normal visitor connects to a Website. The initial request is a DNS request to ask the IP of the website, so the browser of the client knows where to send the HTTP request to. For sites behind cloudflare or some other public WAF, the reply contains an IP address of the WAF itself. Your HTTP traffic flows basically through the WAF to the origin web server. The WAF blocks malicious requests and protects against (D)DoS attacks. However, if an attacker knows the IP of the origin webserver and the origin webserver accepts HTTP traffic from the entire internet, the attacker can perform a WAF bypass: let the HTTP traffic go directly to the origin webserver instead of passing through the WAF.
This script tries to find that origin IP, so you can connect directly to the origin webserver. Attacks like SQL injections or SSRF's are not filtered and can be successfully, in contrary when there is a WAF in between which stops these kind of attacks.
When you find a bypass, you have two options:
/etc/hosts
(Linux/Mac) or c:\Windows\System32\Drivers\etc\hosts
(Windows). Add an entry like this: 80.40.10.22 vincentcox.com
.From this moment, your HTTP traffic goes directly to the origin webserver. You can perform a penetration test as usual, without your requests being blocked by the WAF.
This script is handy for:
The following services are used:
Why in Bash and not in Python?
It started out as a few CURL one-liners, became a bash script, extended the code more and more, and the regret of not using Python extended accordingly.
I find more subdomains with my tools?
I know. I cannot expect everyone to install all these DNS brute-force and enumeration tools. In addition, I don't know beforehand in which folder these tools are placed or under which alias these tools are called. You can still provide your own list with -l
so you can feed output of these subdomain tools into this tool. Expected input is a full subdomain on each line.
|
WAF bypass
Web Application Firewall bypass
DNS History
find direct/origin IP website