Open main menu
Posts
Gists
Guilds
Users
Decipher
Docs
Open user menu
Log in
Sign up
Create a new gist
Posts
Gists
Guilds
Users
Decipher
Docs
Files
z3r0wifi.src
z3r0wifi.src
// When copying this script you agree to these terms:
// You are not allowed to modify or/and share it as long as you didn't change the author.
// There is no warranty, use it on your own risk.
// You will not ask me for support.
// If you break the terms, I will find you and ruin you life. Promised.
// Changelog
// * Fixed file.cap path
author = "unz3r0"
banner = function(bg,fg)
print(char(10))
lines = ["'########::'#######::'########::::'#####:::'##:::::'##:'####:'########:'####:","..... ##::'##.... ##: ##.... ##::'##.. ##:: ##:'##: ##:. ##:: ##.....::. ##::",":::: ##:::..::::: ##: ##:::: ##:'##:::: ##: ##: ##: ##:: ##:: ##:::::::: ##::","::: ##:::::'#######:: ########:: ##:::: ##: ##: ##: ##:: ##:: ######:::: ##::",":: ##::::::...... ##: ##.. ##::: ##:::: ##: ##: ##: ##:: ##:: ##...::::: ##::",": ##::::::'##:::: ##: ##::. ##::. ##:: ##:: ##: ##: ##:: ##:: ##:::::::: ##::"," ########:. #######:: ##:::. ##::. #####:::. ###. ###::'####: ##:::::::'####:","........:::.......:::..:::::..::::.....:::::...::...:::....::..::::::::....::"]
for line in lines
print(char(32)*5+line.replace("#","<color="+fg+">#</color>").replace(":","<color="+bg+">:</color>").replace(".","<color="+bg+">.</color>").replace("'","<color="+bg+">'</color>") )
wait(0.1)
end for
print(char(32)*62+"<color=#FC766AFF>v1.0.1 - ©"+author+"</color>")
print(char(10) * 1.5)
end function
tocolor = function(color)
return "<color="+color+">"+self.str+"</color>"
end function
convert = function(text)
obj = {}
obj.str = str(text)
obj.tocolor = @tocolor
return obj
end function
debug = function(msg)
if params.len == 1 and params[0] == "-d" then
date = current_date.split(" ")[0]
time = current_date.split(" ")[2]
print( convert("[DEBUG] "+date+"+"+time+" - "+msg).tocolor("purple") )
end if
end function
libs = function(dirs,names)
obj = {}
for name in names
for dir in dirs
file = get_shell.host_computer.File(dir+"/"+name)
if typeof(file) != "null" then
if file.has_permission("r") then
if file.is_binary then
debug("Loaded "+file.path)
obj.push( typeof( include_lib(file.path) ) )
obj[typeof( include_lib(file.path) )] = include_lib(file.path)
break
end if
if not file.is_binary then
debug(file.path+" is not a binary.")
end if
end if
if not file.has_permission("r") then
debug(file.path+" has no read permissions.")
end if
end if
if typeof(file) == "null" then
debug(dir+"/"+name+" does not exist.")
end if
end for
end for
return obj
end function
initdb = function(filepath)
// get wifi device name
netdev = get_shell.host_computer.network_devices.split(" ")[0]
globals.netdev = netdev
// scan networks
networks = {}
for network in get_shell.host_computer.wifi_networks(netdev)
networks[network.split(" ")[2]] = {}
networks[network.split(" ")[2]].bssid = {}
networks[network.split(" ")[2]].power = {}
networks[network.split(" ")[2]].bssid = network.split(" ")[0]
networks[network.split(" ")[2]].power = network.split(" ")[1]
end for
globals.networks = networks
debug("netdev => "+netdev)
for m in networks.indexes
debug(m+" "+networks[m].bssid+" "+networks[m].power)
end for
debug("DB => "+filepath)
// create database file if not exist
filepath = filepath.split("/")
file = get_shell.host_computer.File(filepath.join("/"))
if typeof(file) == "null" then
filename = filepath.pop
dir = []
for folder in filepath
dir.push(folder)
get_shell.host_computer.create_folder(dir.join("/").remove(dir[-1]),dir[-1])
end for
get_shell.host_computer.touch(dir.join("/"),filename)
file = get_shell.host_computer.File(dir.join("/")+"/"+filename)
// init database content
for essid in networks.indexes
if file.get_content == "" then
file.set_content(essid+":")
else if file.get_content != "" then
getfile = file.get_content
file.set_content(getfile+char(10)+essid+":")
end if
end for
end if
end function
ckdb = function(filepath,essid)
file = get_shell.host_computer.File(filepath)
db = file.get_content.split(char(10))
for line in db
if line.split(":")[0] == essid and line.split(":")[1] == "" then
print("<color=yellow>[INFO] Password for "+line.split(":")[0]+"</color>")
return 0
break
end if
if line.split(":")[0] == essid and line.split(":")[1] != "" then
print("<color=yellow>[INFO] Password for "+line.split(":")[0]+" is known: </color>"+"<color=red>["+line.split(":")[1]+"]</color>")
return 1
break
end if
end for
end function
upddb = function(filepath)
file = get_shell.host_computer.File(filepath)
db = file.get_content.split(char(10))
obj = {}
for line in db
obj[line.split(":")[0]] = {}
// check password is there
if line.split(":")[1] != "" then
obj[line.split(":")[0]] = line.split(":")[1]
end if
// if not there check essid and include
if line.split(":")[1] == "" and line.split(":")[0] == essid then
obj[line.split(":")[0]] = password
end if
end for
newdb = []
for index in obj.indexes
if not obj[index] then
newdb.push(index+":")
debug("not "+newdb)
end if
if obj[index] then
newdb.push(index+":"+obj[index])
debug("has "+newdb)
end if
end for
file.set_content(newdb.join(char(10)))
end function
ShuffleConnect = function()
file = get_shell.host_computer.File(filepath)
db = file.get_content.split(char(10))
obj = {}
for line in db
obj[line.split(":")[0]] = {}
obj[line.split(":")[0]] = line.split(":")[1]
end for
list = []
for x in obj.indexes
list.push(x)
end for
list.shuffle
print("Connecting to <color=yellow>"+list[0]+"</color>")
get_shell.host_computer.connect_wifi(netdev,networks[list[0]].bssid,list[0],obj[list[0]])
end function
banner("#00A4CCFF","#F95700FF")
libraries = libs([current_path,parent_path(launch_path),"/lib"],["crypto.so"])
CrypTools = libraries["cryptoLib"]
filepath = home_dir+"/"+"Config"+"/"+"Wifi.txt"
initdb(filepath)
for essid in networks.indexes
if ckdb(filepath,essid) then continue
print("<color=yellow>[INFO] Hacking "+essid+"</color>")
acks = round(300000/networks[essid].power.remove("%").to_int,0)+1
print("<color=yellow>[INFO] "+essid+" needs at least "+acks+" ACKs</color>")
CrypTools.airmon("start",netdev)
CrypTools.aireplay(networks[essid].bssid,essid,acks)
CrypTools.airmon("stop",netdev)
filecap = get_shell.host_computer.File(
parent_path(launch_path)
+"/"+"file.cap")
filecap = get_shell.host_computer.File(
home_dir
+"/"+"file.cap")
password = CrypTools.aircrack(filecap.path)
upddb(filepath)
print("<color=yellow>[INFO] "+essid+":"+password+"</color>")
end for
ShuffleConnect()