quick_scan.sh¶
File:
htb/scripts/quick_scan.sh
#!/bin/bash
if [ -z "$IP" ]; then
echo "Error: IP variable not set. Run: export IP=<target-ip>"
exit 1
fi
# Check for -Pn flag
PN_FLAG=""
if [[ "$@" == *"-Pn"* ]]; then
PN_FLAG="-Pn"
echo "[*] Using -Pn (skip ping)"
fi
if [ "$1" == "--quick" ]; then
echo "[*] Running quick scan on $IP"
nmap -p- --min-rate=1000 -T4 $PN_FLAG $IP -oN quick-$IP.txt
echo "[+] Quick scan complete: quick-$IP.txt"
elif [ "$1" == "--details" ]; then
if [ ! -f "quick-$IP.txt" ]; then
echo "Error: quick-$IP.txt not found. Run --quick first."
exit 1
fi
echo "[*] Extracting ports from quick-$IP.txt"
ports=$(grep -E "/(tcp|udp)" quick-$IP.txt | grep -v "closed" | awk '{print $1}' | cut -d'/' -f1 | paste -sd,)
if [ -z "$ports" ]; then
echo "Error: No open ports found in quick-$IP.txt"
exit 1
fi
echo "[*] Running detailed scan on ports: $ports"
nmap -p $ports -sC -sV $PN_FLAG $IP -oN detailed-$IP.txt
echo "[+] Detailed scan complete: detailed-$IP.txt"
else
echo "Usage: $0 [--quick|--details] [-Pn]"
echo " --quick Fast port scan"
echo " --details Detailed scan on found ports"
echo " -Pn Skip ping (optional)"
exit 1
fi