#!/bin/bash
# NullFrame OS - Interactive Attack Menu
# RGB Neon Theme

# Colors
RED='\033[0;91m'
GREEN='\033[0;92m'
YELLOW='\033[0;93m'
BLUE='\033[0;94m'
MAGENTA='\033[0;95m'
CYAN='\033[0;96m'
WHITE='\033[0;97m'
BOLD='\033[1m'
DIM='\033[2m'
NC='\033[0m'
RGB='\033[38;2;255;0;136m'

# RGB Animation
rgb_cycle() {
    local colors=("91" "93" "92" "96" "94" "95")
    while true; do
        for c in "${colors[@]}"; do
            echo -ne "\033[38;2;$(shuffle $c)m"
            sleep 0.5
        done
    done
}

shuffle() {
    echo $(( (RANDOM % 6) + 91 ))
}

# Clear and show header
clear
echo -e "\033[2J\033[H"
echo -e "${RGB}"
cat << 'HEADER'
    ██╗  ██╗██████╗  ██████╗ ██████╗ ███████╗
    ██║ ██╔╝██╔══██╗██╔═══██╗██╔══██╗██╔════╝
    █████╔╝ ██████╔╝██║   ██║██████╔╝███████╗
    ██╔═██╗ ██╔══██╗██║   ██║██╔══██╗╚════██║
    ██║  ██╗██████╔╝╚██████╔╝██████╔╝███████║
    ╚═╝  ╚═╝╚═════╝  ╚═════╝ ╚═════╝ ╚══════╝
         FRAME OS - ATTACK MENU
HEADER

echo -e "${NC}"
echo -e "${BOLD}${CYAN}═══════════════════════════════════════════════════════════${NC}"
echo -e "${YELLOW}  ⚠️  AUTHORIZED SECURITY TESTING ONLY ⚠️  ${NC}"
echo -e "${BOLD}${CYAN}═══════════════════════════════════════════════════════════${NC}"
echo ""

# Main menu
show_menu() {
    echo -e "${BOLD}${GREEN}[ 1 ]${NC} ${MAGENTA}WiFi Attacks${NC}         - Monitor mode, scan, deauth, handshake"
    echo -e "${BOLD}${GREEN}[ 2 ]${NC} ${MAGENTA}BLE Attacks${NC}          - Bluetooth LE scan, connect, glitch"
    echo -e "${BOLD}${GREEN}[ 3 ]${NC} ${MAGENTA}RF Attacks${NC}          - RF sniffing, glitching, spectral"
    echo -e "${BOLD}${GREEN}[ 4 ]${NC} ${MAGENTA}Network Attacks${NC}      - ARP spoof, MITM, port scan"
    echo -e "${BOLD}${GREEN}[ 5 ]${NC} ${MAGENTA}Exploitation${NC}         - Metasploit, payload gen"
    echo ""
    echo -e "${BOLD}${YELLOW}[ 6 ]${NC} ${CYAN}USB Arming${NC}            - Setup writable persistence"
    echo -e "${BOLD}${YELLOW}[ 7 ]${NC} ${CYAN}Network Setup${NC}         - Configure interface"
    echo -e "${BOLD}${YELLOW}[ 8 ]${NC} ${CYAN}Logs${NC}                   - View activity logs"
    echo ""
    echo -e "${BOLD}${RED}[ 0 ]${NC} ${CYAN}Exit / Shutdown${NC}"
    echo ""
    echo -ne "${BOLD}${RGB}[>]${NC} Select option: "
}

# WiFi submenu
wifi_menu() {
    clear
    echo -e "${RGB}"
    echo "╔════════════════════════════════════════╗"
    echo "║       WIFI ATTACK MODULE                ║"
    echo "╚════════════════════════════════════════╝"
    echo -e "${NC}"
    echo -e "${GREEN}[1]${NC} Enable Monitor Mode (airmon-ng)"
    echo -e "${GREEN}[2]${NC} Scan Networks (airodump-ng)"
    echo -e "${GREEN}[3]${NC} Deauth Attack (aireplay-ng)"
    echo -e "${GREEN}[4]${NC} Capture Handshake"
    echo -e "${GREEN}[5]${NC} Crack WPA (hashcat)"
    echo -e "${GREEN}[6]${NC} Wifite2 Automated"
    echo -e "${GREEN}[0]${NC} Back to Main Menu"
    echo ""
    echo -ne "${BOLD}[>]${NC} Choice: "
    read opt
    case $opt in
        1) /opt/nullframe/wifi/monitor.sh ;;
        2) echo "[*] Running airodump-ng..."; airodump-ng wlan0mon 2>/dev/null || echo "[!] Enable monitor mode first" ;;
        3) echo "[*] Deauth attack requires target BSSID"; echo "[*] Usage: aireplay-ng --deauth 10 -a <BSSID> wlan0mon" ;;
        5) echo "[*] Hashcat ready - place handshake cap in /tmp"; echo "[*] Usage: hashcat -m 2500 handshake.hccapx wordlist.txt" ;;
        0) main ;;
    esac
}

# BLE submenu
ble_menu() {
    clear
    echo -e "${RGB}"
    echo "╔════════════════════════════════════════╗"
    echo "║       BLE ATTACK MODULE                 ║"
    echo "╚════════════════════════════════════════╝"
    echo -e "${NC}"
    echo -e "${GREEN}[1]${NC} Scan for BLE Devices"
    echo -e "${GREEN}[2]${NC} Connect to BLE Device"
    echo -e "${GREEN}[3]${NC} Enumerate Services/Characteristics"
    echo -e "${GREEN}[4]${NC} Cursed BLE Glitcher"
    echo -e "${GREEN}[5]${NC} BLE Fuzzing"
    echo -e "${GREEN}[6]${NC} BLE Jammer"
    echo -e "${GREEN}[0]${NC} Back to Main Menu"
    echo ""
    echo -ne "${BOLD}[>]${NC} Choice: "
    read opt
    case $opt in
        1) /opt/nullframe/ble/scan.sh ;;
        4) /opt/nullframe/ble/glitch.sh ;;
        0) main ;;
    esac
}

# RF submenu
rf_menu() {
    clear
    echo -e "${RGB}"
    echo "╔════════════════════════════════════════╗"
    echo "║       RF ATTACK MODULE                  ║"
    echo "╚════════════════════════════════════════╝"
    echo -e "${NC}"
    echo -e "${GREEN}[1]${NC} RF Sniff (requires RTL-SDR)"
    echo -e "${GREEN}[2]${NC} Spectral Analysis"
    echo -e "${GREEN}[3]${NC} Signal Jammer"
    echo -e "${GREEN}[4]${NC} Cursed RF Glitcher"
    echo -e "${GREEN}[5]${NC} RFID Fuzzing"
    echo -e "${GREEN}[0]${NC} Back to Main Menu"
    echo ""
    echo -ne "${BOLD}[>]${NC} Choice: "
    read opt
    case $opt in
        1) /opt/nullframe/rf/sniff.sh ;;
        4) /opt/nullframe/ble/glitch.sh ;;
        0) main ;;
    esac
}

# Network submenu
network_menu() {
    clear
    echo -e "${RGB}"
    echo "╔════════════════════════════════════════╗"
    echo "║       NETWORK ATTACK MODULE             ║"
    echo "╚════════════════════════════════════════╝"
    echo -e "${NC}"
    echo -e "${GREEN}[1]${NC} ARP Spoof"
    echo -e "${GREEN}[2]${NC} Port Scan (nmap)"
    echo -e "${GREEN}[3]${NC} MITM with Ettercap"
    echo -e "${GREEN}[4]${NC} LLMNR/NBT-NS Poison (Responder)"
    echo -e "${GREEN}[5]${NC} Packet Sniff (tcpdump)"
    echo -e "${GREEN}[0]${NC} Back to Main Menu"
    echo ""
    echo -ne "${BOLD}[>]${NC} Choice: "
    read opt
    case $opt in
        1) 
            echo -n "Target IP: "; read target
            echo -n "Gateway IP: "; read gw
            /opt/nullframe/network/arpSpoof.sh $target $gw
            ;;
        2) echo "[*] Usage: nmap -sV -sC target"; nmap --help 2>/dev/null | head -20 ;;
        0) main ;;
    esac
}

# Main loop
main() {
    while true; do
        show_menu
        read opt
        case $opt in
            1) wifi_menu ;;
            2) ble_menu ;;
            3) rf_menu ;;
            4) network_menu ;;
            5) echo "[*] Metasploit: msfconsole" ;;
            6) echo "[*] USB persistence requires persistent storage" ;;
            7) echo "[*] Configure: ip link show / ip addr" ;;
            8) echo "[*] Logs: tail -f /var/log/*" ;;
            0) echo "[*] Shutting down..."; exit 0 ;;
            *) echo "[!] Invalid option" ;;
        esac
        echo -ne "${NC}"
        sleep 1
    done
}

main
