393 lines
13 KiB
Bash
Executable File
393 lines
13 KiB
Bash
Executable File
#!/bin/bash
|
|
# Manual Testing Menu for Attack Box
|
|
# Interactive interface for manual penetration testing tasks
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
PURPLE='\033[0;35m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# ASCII Banner
|
|
show_banner() {
|
|
echo -e "${CYAN}"
|
|
cat << "EOF"
|
|
╔═══════════════════════════════════════╗
|
|
║ ATTACK BOX MENU ║
|
|
║ Manual Testing Interface ║
|
|
╚═══════════════════════════════════════╝
|
|
EOF
|
|
echo -e "${NC}"
|
|
}
|
|
|
|
# Main menu
|
|
show_main_menu() {
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Attack Box Manual Testing Menu ${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo
|
|
echo -e "${BLUE}1.${NC} Target Reconnaissance"
|
|
echo -e "${BLUE}2.${NC} Network Scanning"
|
|
echo -e "${BLUE}3.${NC} Web Application Testing"
|
|
echo -e "${BLUE}4.${NC} Vulnerability Assessment"
|
|
echo -e "${BLUE}5.${NC} Exploitation Framework"
|
|
echo -e "${BLUE}6.${NC} Post-Exploitation"
|
|
echo -e "${BLUE}7.${NC} Password Attacks"
|
|
echo -e "${BLUE}8.${NC} Wireless Testing"
|
|
echo -e "${BLUE}9.${NC} Social Engineering"
|
|
echo -e "${BLUE}10.${NC} OSINT Tools"
|
|
echo -e "${BLUE}11.${NC} Custom Scripts"
|
|
echo -e "${BLUE}12.${NC} Tool Status & Updates"
|
|
echo -e "${BLUE}13.${NC} Generate Reports"
|
|
echo -e "${BLUE}0.${NC} Exit"
|
|
echo
|
|
echo -ne "${YELLOW}Select an option [0-13]: ${NC}"
|
|
}
|
|
|
|
# Reconnaissance menu
|
|
recon_menu() {
|
|
clear
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Reconnaissance Tools ${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo
|
|
echo -e "${BLUE}1.${NC} Domain Enumeration (theHarvester)"
|
|
echo -e "${BLUE}2.${NC} Subdomain Discovery (Subfinder + Amass)"
|
|
echo -e "${BLUE}3.${NC} DNS Enumeration (dnsrecon)"
|
|
echo -e "${BLUE}4.${NC} WHOIS Lookup"
|
|
echo -e "${BLUE}5.${NC} Shodan Search"
|
|
echo -e "${BLUE}6.${NC} Google Dorking (Pagodo)"
|
|
echo -e "${BLUE}7.${NC} Certificate Transparency"
|
|
echo -e "${BLUE}8.${NC} Automated Recon Script"
|
|
echo -e "${BLUE}0.${NC} Back to Main Menu"
|
|
echo
|
|
echo -ne "${YELLOW}Select an option [0-8]: ${NC}"
|
|
|
|
read -r choice
|
|
case $choice in
|
|
1) domain_enum ;;
|
|
2) subdomain_discovery ;;
|
|
3) dns_enum ;;
|
|
4) whois_lookup ;;
|
|
5) shodan_search ;;
|
|
6) google_dorking ;;
|
|
7) cert_transparency ;;
|
|
8) automated_recon ;;
|
|
0) return ;;
|
|
*) echo -e "${RED}Invalid option!${NC}"; sleep 2; recon_menu ;;
|
|
esac
|
|
}
|
|
|
|
# Network scanning menu
|
|
network_menu() {
|
|
clear
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Network Scanning Tools ${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo
|
|
echo -e "${BLUE}1.${NC} Nmap Host Discovery"
|
|
echo -e "${BLUE}2.${NC} Nmap Port Scan (Top 1000)"
|
|
echo -e "${BLUE}3.${NC} Nmap Full Port Scan"
|
|
echo -e "${BLUE}4.${NC} Nmap Service Detection"
|
|
echo -e "${BLUE}5.${NC} Nmap Vulnerability Scripts"
|
|
echo -e "${BLUE}6.${NC} Masscan Fast Scan"
|
|
echo -e "${BLUE}7.${NC} Automated Port Scan Script"
|
|
echo -e "${BLUE}8.${NC} Network Mapper (netdiscover)"
|
|
echo -e "${BLUE}0.${NC} Back to Main Menu"
|
|
echo
|
|
echo -ne "${YELLOW}Select an option [0-8]: ${NC}"
|
|
|
|
read -r choice
|
|
case $choice in
|
|
1) nmap_discovery ;;
|
|
2) nmap_port_scan ;;
|
|
3) nmap_full_scan ;;
|
|
4) nmap_service_detection ;;
|
|
5) nmap_vuln_scripts ;;
|
|
6) masscan_scan ;;
|
|
7) automated_port_scan ;;
|
|
8) network_discovery ;;
|
|
0) return ;;
|
|
*) echo -e "${RED}Invalid option!${NC}"; sleep 2; network_menu ;;
|
|
esac
|
|
}
|
|
|
|
# Web application testing menu
|
|
web_menu() {
|
|
clear
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Web Application Testing Tools ${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo
|
|
echo -e "${BLUE}1.${NC} Directory/File Enumeration (Gobuster)"
|
|
echo -e "${BLUE}2.${NC} Technology Detection (WhatWeb)"
|
|
echo -e "${BLUE}3.${NC} Vulnerability Scanner (Nikto)"
|
|
echo -e "${BLUE}4.${NC} Web Crawler (Hakrawler)"
|
|
echo -e "${BLUE}5.${NC} Parameter Discovery (Arjun)"
|
|
echo -e "${BLUE}6.${NC} SQL Injection (SQLMap)"
|
|
echo -e "${BLUE}7.${NC} XSS Testing (XSStrike)"
|
|
echo -e "${BLUE}8.${NC} Automated Web Enum Script"
|
|
echo -e "${BLUE}9.${NC} Launch Burp Suite"
|
|
echo -e "${BLUE}0.${NC} Back to Main Menu"
|
|
echo
|
|
echo -ne "${YELLOW}Select an option [0-9]: ${NC}"
|
|
|
|
read -r choice
|
|
case $choice in
|
|
1) directory_enum ;;
|
|
2) tech_detection ;;
|
|
3) web_vuln_scan ;;
|
|
4) web_crawler ;;
|
|
5) param_discovery ;;
|
|
6) sql_injection ;;
|
|
7) xss_testing ;;
|
|
8) automated_web_enum ;;
|
|
9) launch_burp ;;
|
|
0) return ;;
|
|
*) echo -e "${RED}Invalid option!${NC}"; sleep 2; web_menu ;;
|
|
esac
|
|
}
|
|
|
|
# Vulnerability assessment menu
|
|
vuln_menu() {
|
|
clear
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Vulnerability Assessment Tools ${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo
|
|
echo -e "${BLUE}1.${NC} Nuclei Scanner"
|
|
echo -e "${BLUE}2.${NC} OpenVAS Scan"
|
|
echo -e "${BLUE}3.${NC} SearchSploit (ExploitDB)"
|
|
echo -e "${BLUE}4.${NC} CVE Search"
|
|
echo -e "${BLUE}5.${NC} Vulnerability Database Lookup"
|
|
echo -e "${BLUE}6.${NC} Custom Vulnerability Scripts"
|
|
echo -e "${BLUE}0.${NC} Back to Main Menu"
|
|
echo
|
|
echo -ne "${YELLOW}Select an option [0-6]: ${NC}"
|
|
|
|
read -r choice
|
|
case $choice in
|
|
1) nuclei_scan ;;
|
|
2) openvas_scan ;;
|
|
3) searchsploit_search ;;
|
|
4) cve_search ;;
|
|
5) vuln_db_lookup ;;
|
|
6) custom_vuln_scripts ;;
|
|
0) return ;;
|
|
*) echo -e "${RED}Invalid option!${NC}"; sleep 2; vuln_menu ;;
|
|
esac
|
|
}
|
|
|
|
# Functions for each tool category
|
|
domain_enum() {
|
|
echo -e "${YELLOW}[*] Domain Enumeration with theHarvester${NC}"
|
|
echo -ne "Enter target domain: "
|
|
read -r domain
|
|
echo -e "${GREEN}[+] Running theHarvester against $domain${NC}"
|
|
theHarvester -d "$domain" -b all -l 500
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
recon_menu
|
|
}
|
|
|
|
subdomain_discovery() {
|
|
echo -e "${YELLOW}[*] Subdomain Discovery${NC}"
|
|
echo -ne "Enter target domain: "
|
|
read -r domain
|
|
echo -e "${GREEN}[+] Running Subfinder...${NC}"
|
|
subfinder -d "$domain" -o "subdomains_$domain.txt"
|
|
echo -e "${GREEN}[+] Running Amass...${NC}"
|
|
amass enum -d "$domain" -o "amass_$domain.txt"
|
|
echo -e "${BLUE}[*] Results saved to subdomains_$domain.txt and amass_$domain.txt${NC}"
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
recon_menu
|
|
}
|
|
|
|
nmap_port_scan() {
|
|
echo -e "${YELLOW}[*] Nmap Port Scan (Top 1000)${NC}"
|
|
echo -ne "Enter target IP/range: "
|
|
read -r target
|
|
echo -e "${GREEN}[+] Scanning $target...${NC}"
|
|
nmap -sS -T4 --top-ports 1000 -oN "nmap_top1000_$target.txt" "$target"
|
|
echo -e "${BLUE}[*] Results saved to nmap_top1000_$target.txt${NC}"
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
network_menu
|
|
}
|
|
|
|
directory_enum() {
|
|
echo -e "${YELLOW}[*] Directory/File Enumeration${NC}"
|
|
echo -ne "Enter target URL: "
|
|
read -r url
|
|
echo -e "${GREEN}[+] Running Gobuster against $url${NC}"
|
|
gobuster dir -u "$url" -w /usr/share/wordlists/dirb/common.txt -o "gobuster_$(echo $url | sed 's|https\?://||g' | tr '/' '_').txt"
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
web_menu
|
|
}
|
|
|
|
automated_recon() {
|
|
echo -e "${YELLOW}[*] Running Automated Reconnaissance Script${NC}"
|
|
echo -ne "Enter target domain/IP: "
|
|
read -r target
|
|
echo -e "${GREEN}[+] Executing recon automation script...${NC}"
|
|
if [ -f "/root/operator/tools/scripts/recon_automation.sh" ]; then
|
|
/root/operator/tools/scripts/recon_automation.sh "$target"
|
|
else
|
|
echo -e "${RED}[-] Recon automation script not found!${NC}"
|
|
fi
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
recon_menu
|
|
}
|
|
|
|
automated_port_scan() {
|
|
echo -e "${YELLOW}[*] Running Automated Port Scan Script${NC}"
|
|
echo -ne "Enter target IP/range: "
|
|
read -r target
|
|
echo -e "${GREEN}[+] Executing port scan automation script...${NC}"
|
|
if [ -f "/root/operator/tools/scripts/port_scan_automation.sh" ]; then
|
|
/root/operator/tools/scripts/port_scan_automation.sh "$target"
|
|
else
|
|
echo -e "${RED}[-] Port scan automation script not found!${NC}"
|
|
fi
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
network_menu
|
|
}
|
|
|
|
automated_web_enum() {
|
|
echo -e "${YELLOW}[*] Running Automated Web Enumeration Script${NC}"
|
|
echo -ne "Enter target URL: "
|
|
read -r url
|
|
echo -e "${GREEN}[+] Executing web enumeration automation script...${NC}"
|
|
if [ -f "/root/operator/tools/scripts/web_enum_automation.sh" ]; then
|
|
/root/operator/tools/scripts/web_enum_automation.sh "$url"
|
|
else
|
|
echo -e "${RED}[-] Web enumeration automation script not found!${NC}"
|
|
fi
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
web_menu
|
|
}
|
|
|
|
# Tool status and updates
|
|
tool_status() {
|
|
clear
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Tool Status & Updates ${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo
|
|
|
|
# Check key tools
|
|
tools=("nmap" "gobuster" "nuclei" "subfinder" "amass" "sqlmap" "nikto" "whatweb")
|
|
|
|
for tool in "${tools[@]}"; do
|
|
if command -v "$tool" &> /dev/null; then
|
|
echo -e "${GREEN}[✓]${NC} $tool - Installed"
|
|
else
|
|
echo -e "${RED}[✗]${NC} $tool - Not Found"
|
|
fi
|
|
done
|
|
|
|
echo
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
}
|
|
|
|
# Generate reports
|
|
generate_reports() {
|
|
clear
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} Generate Reports ${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo
|
|
|
|
WORKSPACE="/root/operator"
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
REPORT_DIR="$WORKSPACE/reports/manual_testing_$DATE"
|
|
|
|
mkdir -p "$REPORT_DIR"
|
|
|
|
echo -e "${YELLOW}[*] Generating comprehensive report...${NC}"
|
|
|
|
# Collect all scan results
|
|
find "$WORKSPACE" -name "*.txt" -type f -exec cp {} "$REPORT_DIR/" \; 2>/dev/null
|
|
find "$WORKSPACE" -name "*.html" -type f -exec cp {} "$REPORT_DIR/" \; 2>/dev/null
|
|
find "$WORKSPACE" -name "*.json" -type f -exec cp {} "$REPORT_DIR/" \; 2>/dev/null
|
|
|
|
# Create summary report
|
|
cat > "$REPORT_DIR/summary_report.md" << EOF
|
|
# Manual Testing Report
|
|
**Generated:** $(date)
|
|
**Operator:** $(whoami)
|
|
|
|
## Engagement Summary
|
|
This report contains results from manual penetration testing activities.
|
|
|
|
## Files Included
|
|
$(ls -la "$REPORT_DIR" | grep -v "^total")
|
|
|
|
## Key Findings
|
|
- Review individual tool outputs for detailed findings
|
|
- Cross-reference results across multiple tools
|
|
- Validate findings manually before reporting
|
|
|
|
## Next Steps
|
|
1. Analyze all collected data
|
|
2. Prioritize findings by severity
|
|
3. Prepare client deliverables
|
|
4. Archive results securely
|
|
EOF
|
|
|
|
echo -e "${GREEN}[+] Report generated: $REPORT_DIR${NC}"
|
|
echo -e "${BLUE}[*] Press Enter to continue...${NC}"
|
|
read -r
|
|
}
|
|
|
|
# Main execution loop
|
|
main() {
|
|
while true; do
|
|
clear
|
|
show_banner
|
|
show_main_menu
|
|
read -r choice
|
|
|
|
case $choice in
|
|
1) recon_menu ;;
|
|
2) network_menu ;;
|
|
3) web_menu ;;
|
|
4) vuln_menu ;;
|
|
5) echo -e "${YELLOW}[*] Exploitation Framework - Launch Metasploit${NC}"; msfconsole ;;
|
|
6) echo -e "${YELLOW}[*] Post-Exploitation - Launch custom shells/tools${NC}"; sleep 2 ;;
|
|
7) echo -e "${YELLOW}[*] Password Attacks - Hydra, John, Hashcat${NC}"; sleep 2 ;;
|
|
8) echo -e "${YELLOW}[*] Wireless Testing - Aircrack-ng suite${NC}"; sleep 2 ;;
|
|
9) echo -e "${YELLOW}[*] Social Engineering - SET toolkit${NC}"; setoolkit ;;
|
|
10) echo -e "${YELLOW}[*] OSINT Tools - Various intelligence gathering tools${NC}"; sleep 2 ;;
|
|
11) echo -e "${YELLOW}[*] Custom Scripts - Run user-defined scripts${NC}"; sleep 2 ;;
|
|
12) tool_status ;;
|
|
13) generate_reports ;;
|
|
0) echo -e "${GREEN}[+] Goodbye!${NC}"; exit 0 ;;
|
|
*) echo -e "${RED}Invalid option! Please try again.${NC}"; sleep 2 ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
# Check if running as root
|
|
if [[ $EUID -eq 0 ]]; then
|
|
echo -e "${YELLOW}[!] Running as root - be careful!${NC}"
|
|
sleep 2
|
|
fi
|
|
|
|
# Create operator structure if it doesn't exist
|
|
mkdir -p "/root/operator/"{tools,scans,logs,loot,payloads,targets,screenshots,reports,notes,exploits,wordlists,pcaps}
|
|
|
|
# Start the main menu
|
|
main
|