Skip to content

Instantly share code, notes, and snippets.

@priyanshus
Last active December 26, 2023 10:12
Show Gist options
  • Save priyanshus/8f9710f48a98c2bfe92860e78258e5a0 to your computer and use it in GitHub Desktop.
Save priyanshus/8f9710f48a98c2bfe92860e78258e5a0 to your computer and use it in GitHub Desktop.
NMAP scan for a list of subdomains
#!/bin/bash
#Performs port scan using nmap
print_usage() {
cat << _EOF_
Utility to scan open ports. Can be used to scan ports for a domain or a list of domains specified in a file.
Example Usage:
-h, --help Show brief help
-d, --domain Domain name or ip to scan
-f, --file Spefify a file containing domains/IPs to scan
_EOF_
}
scan_port() {
domain=$1
echo "Scanning ports for $1...."
nmap -sT -T4 $domain | sed '/^\(Nmap scan\|PORT\|[0-9]\)/!d' | tee -a $port_scan_result_file
}
create_port_scan_result_file() {
port_scan_result_file=port-scan-`date "+%Y-%m-%d-%H:%M:%S"`.txt
touch $port_scan_result_file
}
while getopts "f:d:" opt; do
case "$opt" in
d) domain=$OPTARG ;;
f) file=$OPTARG ;;
*) print_usage; exit 1 ;;
esac
done
if [ ! -n "$domain" ] && [ ! -f "$file" ]; then
echo "Option -d $domain or -f $file missing or designates to wrong entry" >&2
exit 1
fi
scan_port_flow() {
if [ -n "$domain" ]; then
create_port_scan_result_file
scan_port $domain
echo "Scan result:$port_scan_result_file"
fi
if [ -n "$file" ]; then
create_port_scan_result_file
for domain in $(cat $file)
do
scan_port $domain
done
echo "Scan result: $port_scan_result_file"
fi
}
scan_port_flow
@bootyhunt3r
Copy link

I have one request , can you integrate something with masscan , cuz masscan is faster so if you can it would be really good.

@Shristisen
Copy link

Thank you so much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment