PNAME="Unsorted gui by kir_"

mainmenu(){
dialog --item-help --title "$PNAME" --menu "Selecciona una opcion" 18 40
7  "1" "Crear interfaces"    "Crea las interfaces ath0 (monitor) y ath1
(managed)" \
"2" "Scan ESSID"          "Escanea las redes y muestra el essid " \
"3" "Escoger red"         "Escoger una red Open o Wep para conectarse "
\
"4" "Conectarse a la red" "Conecta con la red seleccionada en el punto
anterior" \
"5" "Test ping"           "Hace 5 pings  a Google para comprobar la
conexion" \
"6" "Wavemon"             "Pues eso...inicia wavemon" \
"7" "Ettercap"            "Lanza Ettercap" \
"8" "Kismet"              "Inicia kismet" \
"9" "Wep "                "Conexion a red con encriptacion Wep" \
"a" "Wesside-ng"          "Wesside-ng intentara desencriptar una wep
automaticamente" \
2> ~/redtemp
OPTION="`cat ~/redtemp`"
case $OPTION in
1)
clientemon
mainmenu
;;
2)
scanessid
mainmenu
;;
3)
scanbssid
mainmenu
;;
4)
conectar
;;
5)
testping
mainmenu
;;
6)
wavemon -i ath1
mainmenu
;;
7)
ettercap -C
mainmenu
;;

8)
clear
kismet
clientemon
mainmenu
;;
9)
wep
;;
a)
wess
;;
*)

exit 0
esac
exit
}

clientemon(){
ifconfig ath0 down 1>/dev/null 2>/dev/null 3>/dev/null
ifconfig ath1 down 1>/dev/null 2>/dev/null 3>/dev/null
wlanconfig ath0 destroy 1>/dev/null 2>/dev/null 3>/dev/null
wlanconfig ath0 create wlandev wifi0 wlanmode monitor  1>/dev/null
2>/dev/null 3>/dev/null
wlanconfig ath1 destroy 1>/dev/null 2>/dev/null 3>/dev/null
wlanconfig ath1 create wlandev wifi0 wlanmode sta nosbeacon 1>/dev/null
2>/dev/null 3>/dev/null
ifconfig ath0 up 1>/dev/null 2>/dev/null 3>/dev/null
ifconfig ath1 up 1>/dev/null 2>/dev/null 3>/dev/null


ifconfig ath1 up 1>/dev/null 2>/dev/null 3>/dev/null
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ath1 -j MASQUERADE
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT

dialog --title "$PNAME" --msgbox "      Levantados los interfaces:\\n
ath0    Monitor\\n       ath1    Managed" 7 50

}

scanessid(){
iwlist ath1 scan > /tmp/scanessid
SCANESSID="`cat /tmp/scanessid | grep "ESSID\|Encryption"`"
dialog --title "$PNAME" --msgbox "$SCANESSID" 50 50
}

scanbssid(){
iwlist ath1 scan > /tmp/scan
BSSID="`grep "         Cell " /tmp/scan | awk ' { print $5 }'`"

current=1
cadena="dialog --backtitle \"Redes..\" --menu \"Selecciona una red:\" 0
0 0 "
for i in `echo $BSSID`; do
  CANAL=`grep "(Channel " /tmp/scan | awk '{ print $4 }' | sed
's/)$//g' | sed -n "$current p"`
  ESSID=`grep ESSID /tmp/scan | sed 's/                    ESSID:"//g'
| sed 's/"$//g' | sed -n "$current p" | sed 's/"/\\\"/g'`
cadena=$cadena$(echo "\"$CANAL $i $ESSID\" \"\" ")
  let current=$current+1
   done;
cadena=$cadena$(echo " 2>/tmp/scan")
      sh -c "$cadena"
ESSID=`awk '{ print $3 }' /tmp/scan | sed 's/"/\\\"/g'`
BSSID=`awk '{ print $2 }' /tmp/scan`
CANAL=`awk '{ print $1 }' /tmp/scan`

if [ -z $ESSID ]; then
 rm /tmp/scan
 clear
 exit;
 fi;
}

conectar(){
iwconfig ath1 essid $ESSID
iwconfig ath1 ap $BSSID
sleep 3
udhcpc -i ath1 > /tmp/conex
CONEX=`cat /tmp/conex`
dialog --title "$PNAME" --msgbox  "Conectado a $ESSID\\n $CONEX" 20 30
mainmenu
}

testping(){
ping -c 5 www.google.es > /tmp/pingstore
pingu=`cat /tmp/pingstore`
dialog --title "$PNAME" --msgbox "$pingu" 20 60

}

wep(){
clear
scanbssid
dialog --title "$ESSID" --inputbox "introduce la clave para $ESSID " 10
40 2> /tmp/clave
clave=`cat /tmp/clave`
iwconfig ath1 essid $ESSID
iwconfig ath1 ap $BSSID
iwconfig ath1 key s:$clave
udhcpc -i ath1 > /tmp/conex
CONEX=`cat /tmp/conex`
dialog --title "$PNAME" --msgbox  "Conectado a $ESSID\\n $CONEX" 20 30
mainmenu
}

wess(){
clear
scanbssid
wesside-ng -i ath0 -k 1 -v $BSSID
}
mainmenu