Skip to content

Instantly share code, notes, and snippets.

@shorefall
Created April 30, 2024 11:59
Show Gist options
  • Save shorefall/feac44bd80be826cf218a9c5997350a6 to your computer and use it in GitHub Desktop.
Save shorefall/feac44bd80be826cf218a9c5997350a6 to your computer and use it in GitHub Desktop.
PD Nuclei domain chain
#!/bin/bash
# Function to check if directory exists
create_directory_if_not_exist() {
if [ ! -d "$1" ]; then
mkdir -p "$1"
fi
}
BASE_DIR="${HOME}/Project/ext_active"
create_directory_if_not_exist "${BASE_DIR}"
# Read and process domain input
read -p "Enter domain name(s) (comma-separated): " input_domains
IFS=',' read -ra ADDR <<< "$input_domains"
# Define web ports for Naabu
PORTS="8080,10000,20000,2222,7080,9009,7443,2087,2096,8443,4100,2082,2083,2086,9999,2052,9001,9002,7000,7001,8082,8084,8085,8010,9000,2078,2080,2079,2053,2095,4000,5280,8888,9443,5800,631,8000,8008,8087,84,85,86,88,10125,9003,7071,8383,7547,3434,10443,8089,3004,81,4567,7081,82,444,1935,3000,9998,4433,4431,4443,83,90,8001,8099,80,300,443,591,593,832,981,1010,1311,2480,3128,3333,4243,4711,4712,4993,5000,5104,5108,6543,7396,7474,8014,8042,8069,8081,8088,8090,8091,8118,8123,8172,8222,8243,8280,8281,8333,8500,8834,8880,8983,9043,9060,9080,9090,9091,9200,9800,9981,12443,16080,18091,18092,20720,28017"
# Loop through each domain
for domain in "${ADDR[@]}"; do
trimmed_domain=$(echo $domain | xargs) # Trim whitespace
domain_folder="${BASE_DIR}/${trimmed_domain}"
create_directory_if_not_exist "${domain_folder}"
# Run Subfinder
subfinder -d "${trimmed_domain}" -all -o "${domain_folder}/${trimmed_domain}.lst"
# Run Naabu
naabu -list "${domain_folder}/${trimmed_domain}.lst" -silent -o "${domain_folder}/${trimmed_domain}-ports.txt" -p $PORTS
# Run Nuclei
nuclei -l "${domain_folder}/${trimmed_domain}-ports.txt" -config ~/nuclei-templates/config/pentest.yml -o "${domain_folder}/${trimmed_domain}-nuclei.txt"
done
echo "Pentesting automation complete."
# Description of Nuclei Checks
echo "Running PD web killchain with the following nuclei tags:"
echo "Types Included: HTTP, TCP, JavaScript, DNS, SSL"
echo "Tags Excluded: DoS, Fuzz, OSINT"
echo "Results located in ~/Project/ext_active/example.ltd"
for domain in "${ADDR[@]}"; do
trimmed_domain=$(echo $domain | xargs)
nuclei_results_file="${domain_folder}/${trimmed_domain}-nuclei.txt"
echo "Nuclei findings for ${trimmed_domain} - low, medium, high, critical:"
grep -E 'low|medium|high|critical' "${nuclei_results_file}"
echo "----------------------------------------------------"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment