changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > infra > home / annotate .stash/scripts/port-scan.sh

changeset 48: 953c5127546a
parent: stash/scripts/port-scan.sh@45f3b1bc3cd7
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 19 Jun 2024 19:27:14 +0000
permissions: -rwxr-xr-x
description: stash -> .stash
6
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 #!/bin/bash
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 #Performs port scan using nmap
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 print_usage() {
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 cat << _EOF_
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
         Utility to scan open ports. Can be used to scan ports for a domain or a list of domains specified in a file.
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
         Example Usage:
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
                 -h, --help              Show brief help
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
                 -d, --domain            Domain name or ip to scan
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
                 -f, --file              Spefify a file containing domains/IPs to scan
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 _EOF_
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 }
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 scan_port() {
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
         domain=$1
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
         echo "Scanning ports for $1...."
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
         nmap -sT -T4 $domain | sed '/^\(Nmap scan\|PORT\|[0-9]\)/!d' | tee -a $port_scan_result_file
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 }
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
 create_port_scan_result_file() {
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
         port_scan_result_file="/tmp/port-scan-`date "+%Y-%m-%d-%H:%M:%S"`.txt"
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 	touch $port_scan_result_file
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 }
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
 while getopts "f:d:" opt; do
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
         case "$opt" in
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
                 d) domain=$OPTARG    ;;
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
                 f) file=$OPTARG      ;;
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
                 *) print_usage; exit 1 ;;
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
         esac
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 done
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
 if [ ! -n "$domain" ] && [ ! -f "$file" ]; then
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
         echo "Option -d $domain or -f $file missing or designates to wrong entry" >&2
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
         exit 1
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 fi
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 scan_port_flow() {
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
 if [ -n "$domain" ]; then
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 	create_port_scan_result_file
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
 	scan_port $domain
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 	echo "Scan result:$port_scan_result_file"
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
 fi
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
 
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 if [ -n "$file" ]; then
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 	create_port_scan_result_file
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 	for domain in $(cat $file)
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 	do
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 		scan_port $domain
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 	done
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
 	echo "Scan result: $port_scan_result_file"
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
 fi
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 }
45f3b1bc3cd7 added scripts
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 scan_port_flow