YARF is a Bash script that automates recon for web app pentests. It integrates various tools to streamline tasks like root domain and subdomain enumeration, bruteforcing, endpoint discovery, service scanning, tech stack fingerprinting, and vulnerability scanning, organizing the output in a clean directory structure.
- Automated Directory Setup 📂: Creates a structured directory for storing recon data.
- Root Domain Enumeration 🌐: Leverages Whois and ASN data via
Amass
. - Subdomain Enumeration 🔍: Uses tools like
Amass
andSubfinder
. - Spidering 🕸️: Crawls targets with
Gospider
,Hakrawler
, andKatana
. - Dirbusting 💥: Uses
Feroxbuster
with customizable wordlists. - Shodan Querying 🛰️: Queries Shodan without an API key using
smap-scanner
. - Service Scanning 🔌: Performs comprehensive scans with
nmap
. - Tech Stack Fingerprinting : Utilizes
WAFW00F
,Webanalyze
, andWhatWeb
. - Vulnerability Scanning 🚨: Scans for vulnerabilities with
Nikto
andNuclei
.
Ensure the following tools are installed and available in your $PATH
:
dig
amass
🌍subfinder
🔍gospider
🕷️hakrawler
🧭katana
🗡️feroxbuster
💥smap-scanner
🛰️nmap
🎯nikto
🚨nuclei
⚛️wafw00f
🐶webanalyze
🕵️whatweb
🔎
By default, YARF uses the following wordlist for Feroxbuster
:
/usr/share/seclists/Discovery/Web-Content/common.txt
. You can specify a custom wordlist using the -wordlist
flag. 🗂️
Run the script with the following arguments:
./yarf.sh -org <organization_name> -d <domain> [-ip <ip_range>] [-wordlist <path>]
-org
: (Required) Organization name to find related root domains. 🏢-d
: (Required) Target domain for reconnaissance. 🌐-ip
: (Optional) IP range for scanning. 🔌-wordlist
: (Optional) Custom wordlist forFeroxbuster
. 📜
./yarf.sh -org ExampleCorp -d example.com -ip 192.168.1.0/24 -wordlist /path/to/custom-wordlist.txt
All results are stored under a directory named YARF/<organization_name>_pentest
in the user’s home directory. The structure includes:
00_domain_and_subdomain_enumeration
🌍: Results of domain and subdomain enumeration.01_spidering_and_brute_forcing_endpoints
🕸️: Crawling and brute-forcing results.02_server_side_scans
🔌: Results of server-side scans.03_tech_stack_fingerprinting_and_vuln_scans
: Tech stack fingerprinting and vulnerability scanning results.04_vuln_validation_and_exploitation
⚔️: Reserved for manual validation and exploitation.
Contributions, bug reports, and feature requests are welcome! Feel free to open an issue or submit a pull request. 🙌
This project is licensed under the GPL3 License. See the LICENSE
file for details. ⚖️
YARF is intended for authorized penetration testing and security assessments. Use responsibly and ensure compliance with local laws and regulations. Unauthorized use is illegal and unethical. 🛑