Files
CoM-c2itall/modules/attack-box/files/port_scan_automation.sh
T
Operator 0799bfbae8 Initial public portfolio release
Sanitized version of red team infrastructure automation platform.
Operational content (implant pipelines, lures, credential capture)
replaced with documented stubs. Architecture and infrastructure
automation code intact.
2026-06-23 16:12:14 -04:00

154 lines
4.9 KiB
Bash
Executable File

#!/bin/bash
# Automated Port Scanning Script for Attack Box
# Usage: ./port_scan_automation.sh <target> [quick|full|stealth]
set -e
if [ $# -eq 0 ]; then
echo "Usage: $0 <target> [quick|full|stealth]"
echo "Example: $0 192.168.1.1 full"
echo " $0 example.com quick"
exit 1
fi
TARGET="$1"
SCAN_TYPE="${2:-quick}"
WORKSPACE="/root/operator/scans/nmap/$TARGET"
DATE=$(date +%Y%m%d_%H%M%S)
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${GREEN}[+] Starting port scan for: $TARGET${NC}"
echo -e "${BLUE}[*] Scan type: $SCAN_TYPE${NC}"
# Create workspace
mkdir -p "$WORKSPACE"
cd "$WORKSPACE"
# Create log file
LOG_FILE="portscan_$DATE.log"
echo "Port scan started at $(date)" > "$LOG_FILE"
# Function to log and execute
log_and_run() {
echo -e "${YELLOW}[*] $1${NC}"
echo "[$(date)] $1" >> "$LOG_FILE"
eval "$2" 2>&1 | tee -a "$LOG_FILE"
}
case $SCAN_TYPE in
"quick")
echo -e "${GREEN}[+] Quick Port Scan (Top 1000 ports)${NC}"
log_and_run "Nmap quick scan" "nmap -T4 -F $TARGET -oA nmap_quick_$DATE"
log_and_run "Rustscan quick" "rustscan -a $TARGET --ulimit 5000 -- -A"
;;
"full")
echo -e "${GREEN}[+] Full Port Scan (All 65535 ports)${NC}"
log_and_run "Nmap SYN scan all ports" "nmap -sS -T4 -p- $TARGET -oA nmap_syn_all_$DATE"
log_and_run "Nmap service detection on open ports" "nmap -sV -sC -T4 $TARGET -oA nmap_services_$DATE"
log_and_run "Nmap UDP scan top ports" "nmap -sU --top-ports 1000 $TARGET -oA nmap_udp_$DATE"
log_and_run "Masscan all ports" "masscan -p1-65535 $TARGET --rate=1000 -e tun0 2>/dev/null || echo 'Masscan failed - check interface'"
;;
"stealth")
echo -e "${GREEN}[+] Stealth Port Scan${NC}"
log_and_run "Nmap stealth SYN scan" "nmap -sS -T2 -f --source-port 53 $TARGET -oA nmap_stealth_$DATE"
log_and_run "Nmap decoy scan" "nmap -D RND:10 -T2 $TARGET -oA nmap_decoy_$DATE"
;;
*)
echo -e "${RED}[-] Invalid scan type. Use: quick, full, or stealth${NC}"
exit 1
;;
esac
# Additional enumeration for common services
echo -e "${GREEN}[+] Service-specific enumeration${NC}"
# Check for common vulnerabilities
log_and_run "Nmap vulnerability scripts" "nmap --script vuln $TARGET -oA nmap_vulns_$DATE"
# Extract open ports for further enumeration
if [ -f "nmap_*.gnmap" ]; then
OPEN_PORTS=$(grep "open" nmap_*.gnmap | grep -oP '\d+/open' | cut -d'/' -f1 | sort -n | uniq | tr '\n' ',')
echo -e "${BLUE}[*] Open ports found: $OPEN_PORTS${NC}"
# Service-specific scans
if echo "$OPEN_PORTS" | grep -q "21"; then
log_and_run "FTP enumeration" "nmap --script ftp-* -p 21 $TARGET"
fi
if echo "$OPEN_PORTS" | grep -q "22"; then
log_and_run "SSH enumeration" "nmap --script ssh-* -p 22 $TARGET"
fi
if echo "$OPEN_PORTS" | grep -q "53"; then
log_and_run "DNS enumeration" "nmap --script dns-* -p 53 $TARGET"
if command -v dig &> /dev/null; then
log_and_run "DNS zone transfer attempt" "dig @$TARGET axfr"
fi
fi
if echo "$OPEN_PORTS" | grep -E "(80|443|8080|8443)" &> /dev/null; then
log_and_run "HTTP enumeration" "nmap --script http-* -p 80,443,8080,8443 $TARGET"
fi
if echo "$OPEN_PORTS" | grep -q "139\|445"; then
log_and_run "SMB enumeration" "nmap --script smb-* -p 139,445 $TARGET"
if command -v enum4linux &> /dev/null; then
log_and_run "enum4linux scan" "enum4linux $TARGET"
fi
fi
if echo "$OPEN_PORTS" | grep -q "1433"; then
log_and_run "MSSQL enumeration" "nmap --script ms-sql-* -p 1433 $TARGET"
fi
if echo "$OPEN_PORTS" | grep -q "3306"; then
log_and_run "MySQL enumeration" "nmap --script mysql-* -p 3306 $TARGET"
fi
fi
# Generate summary
echo -e "${GREEN}[+] Port Scan Complete!${NC}"
echo -e "${BLUE}[*] Results saved in: $WORKSPACE${NC}"
echo -e "${BLUE}[*] Log file: $LOG_FILE${NC}"
# Count open ports
if ls nmap_*.gnmap 1> /dev/null 2>&1; then
TOTAL_OPEN=$(grep -h "open" nmap_*.gnmap | wc -l)
echo -e "${BLUE}[*] Total open ports found: $TOTAL_OPEN${NC}"
fi
# Generate simple report
cat > "portscan_report.txt" << EOF
Port Scan Report for $TARGET
=============================
Scan Type: $SCAN_TYPE
Date: $(date)
Workspace: $WORKSPACE
Open Ports:
$(grep -h "open" nmap_*.gnmap 2>/dev/null | head -20 || echo "No open ports found in gnmap files")
Summary:
- Scan completed successfully
- Results saved in multiple formats (.nmap, .xml, .gnmap)
- Log file: $LOG_FILE
Next Steps:
1. Review service versions for known vulnerabilities
2. Run targeted service enumeration
3. Check for default credentials
4. Look for misconfigurations
EOF
echo -e "${GREEN}[+] Report generated: portscan_report.txt${NC}"
echo "Port scan completed at $(date)" >> "$LOG_FILE"