import_code("/root/BytesDev")
import_code("/root/minifox")
import_code("/root/Fox.so")
cob=get_custom_object
if get_shell.host_computer.public_ip == "servIp" then exit("You really thought you could run this on the main server and I WOULDN'T have protection against that?")
ver = "2.8.3"
internal_ver=1
fox=" _,-=._ /|_/|\n"
fox=fox+" `-.} `=._,.-=-._., @ @._,\n"
fox=fox+" `._ _,-. ) _,.-'\n"
fox=fox+" ` G.m-""^m`m'\n"
moto ="Make any system a FoxTrot!"
logo = "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n"
logo = logo+" ______ ______ __ \n"
logo = logo+" / ____/ ____ _ __ /_ __/ _____ ____ / /_\n"
logo = logo+" / /_ / __ \ | |/_/ / / / ___/ / __ \ / __/\n"
logo = logo+" / __/ / /_/ / _> < / / / / / /_/ // /_ \n"
logo = logo+"/_/ \____/ /_/|_| /_/ /_/ \____/ \__/ \n"
logo = logo+"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n"
logo = logo+"v. "+ver+"\n"
logo = logo+fox
logo = logo+moto+"\n"
logo = logo+"By Clover (discord.gg/9qFt4KJgtE)\n"
print(logo)
libs=FoxLib.General.LibFinder()
mxf=libs.mxf
cpf=libs.cpf
if not mxf then exit("-={FATAL ERROR: Could not locate library 'metaxploit' in the system!}=-")
mx=include_lib(mxf)
print("Library 'metaxploit' v."+mx.load(mxf).version+" loaded successfully!")
if not cpf then exit("-={FATAL ERROR: Could not locate library 'crypto' in the system!}=-")
cp=include_lib(cpf)
print("Library 'crypto' v."+mx.load(cpf).version+" loaded successfully!")
apt = include_lib("/lib/aptclient.so")
foxtrot=program_path
scnln = "/usr/bin/ScanLan.exe"
results=[]
if not get_shell.host_computer.File(scnln) then scnln = current_path+"/ScanLan.exe"
if not get_shell.host_computer.File(scnln) then scnln = null
owner="Clover"
if apt then
inSource=apt.show("30.30.30.30")
inSourceF=apt.show("32.165.47.151")
if inSource == "30.30.30.30 repository not found" then
apt.add_repo("30.30.30.30",1542)
apt.update
end if
if inSourceF == "32.165.47.151 repository not found" then
apt.add_repo("32.165.47.151")
apt.update
end if
if typeof(apt.check_upgrade(mxf)) == "number" and apt.check_upgrade(mxf) then apt.install("metaxploit.so",parent_path(mxf))
if typeof(apt.check_upgrade(foxtrot)) == "number" and apt.check_upgrade(foxtrot) then
print("FoxTrot updated! Autoupdating...\n")
apt.install("FoxTrot",parent_path(foxtrot))
exit("Please re-launch FoxTrot")
end if
end if
mx=include_lib(mxf)
//login
tfaa=function(fuser)
out={}
out.bool=1
cont=server.host_computer.File("/.FoxTrot/users/"+fuser+"/mail.enc").get_content
cont=FoxLib.General.Deserialize(cont)
print("Verify email - "+cont.verify+"")
mconf=user_input("\_[: ")
if Sha256(mconf) != cont.hashed then
out.bool=0
out.err="Could not validate email"
return out
end if
mail=mail_login
if typeof(mail) == "string" then
out.bool=0
out.err="-={FATAL ERROR: Could not send 2FA email}=-"
return out
end if
tfan=floor(rnd*2000000)
text="=-= ALERT -=-"+char(10)+"This is an automated alert sent by FoxTrot"+char(10)+"ACCOUNT LOGIN DETECTED"+char(10)+"Account: "+fuser+""+char(10)+"IP: "+get_shell.host_computer.public_ip+""+char(10)+"Time: ["+current_date+"]"+char(10)+"2FA: "+tfan+""
mail.send("null@null.null","FOXTROT ALERT",text)
auth=user_input("\_[2FA: ")
if auth != str(tfan) then
out.bool=0
out.err="Incorrect 2FA code."
return out
end if
return out
end function
login=function(fuser,fpass)
if server.host_computer.File("/.FoxTrot/users/"+fuser) == null then exit("-={Could not verify your identity!}=-")
userAcc=server.host_computer.File("/.FoxTrot/users/"+fuser+"/passwd.enc")
userData = userAcc.get_content
if Sha256(fpass) != userData then exit("-={Could not verify your identity!}=-")
if server.host_computer.File("/.FoxTrot/users/"+fuser+"/license").get_content == "BAN" then exit("-={This account has been permanently banned.}=-")
tfa=server.host_computer.File("/.FoxTrot/users/"+fuser+"/sec.lvl").get_content
if tfa == "1" then
x=tfaa(fuser)
if not x.bool then exit x.err
end if
end function
checklgn=function()
out={}
out.bool=1
fpass=user_input("\_[Password: ",1)
if Sha256(fpass) != fdata.get_content then
out.bool=0
out.err="-={Could not verify your identity}=-"
return out
end if
if fconf.get_content == "1" then return tfaa(fuser)
return out
end function
register=function()
allowedChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
print("CAUTION: Be careful while creating an account! We cannot recover your password if you forget it!")
globals.fuser=user_input("\_[Username: ")
if fuser.len < 3 then
print("Username too short!")
wait(1)
return 0
end if
if fuser.len > 20 then
print("Username too long!")
wait(1)
return 0
end if
for chr in fuser
if allowedChars.indexOf(chr) == null then
print("Illegal characters used in username!")
wait(1)
return 0
end if
end for
if server.host_computer.File("/.FoxTrot/users/"+fuser) then
print("That username is taken!")
wait(1)
return 0
end if
globals.fpass=user_input("\_[Password: ",1)
cpass=user_input("\_[Confirm: ",1)
if cpass != fpass then
print("Passwords do not match")
wait(1)
return 0
end if
print("Redeem your license under account setting after registering")
cont=server.host_computer.File("/.FoxTrot/used_licenses").get_content
cont=FoxLib.General.Deserialize(cont)
cont[fuser]="FREE"
cont=FoxLib.General.Serialize(cont,1)
server.host_computer.File("/.FoxTrot/used_licenses").set_content(cont)
server.host_computer.create_folder("/.FoxTrot/users/",fuser)
server.host_computer.touch("/.FoxTrot/users/"+fuser,"passwd.enc")
server.host_computer.touch("/.FoxTrot/users/"+fuser,"mail.enc")
server.host_computer.touch("/.FoxTrot/users/"+fuser,"modules")
server.host_computer.touch("/.FoxTrot/users/"+fuser,"license")
server.host_computer.touch("/.FoxTrot/users/"+fuser,"sec.lvl")
server.host_computer.File("/.FoxTrot/users/").chmod("o-wrx",1)
server.host_computer.File("/.FoxTrot/users/").chmod("g-wrx",1)
server.host_computer.File("/.FoxTrot/users/").chmod("u-wrx",1)
server.host_computer.File("/.FoxTrot/users/"+fuser+"/sec.lvl").set_content("0")
server.host_computer.File("/.FoxTrot/users/"+fuser+"/passwd.enc").set_content(Sha256(fpass))
server.host_computer.File("/.FoxTrot/users/"+fuser+"/license").set_content("FREE")
server.host_computer.File("/.FoxTrot/users/"+fuser+"/mail.enc").set_content("none")
server.host_computer.File("/.FoxTrot/users/"+fuser+"/modules").set_content("[]")
return 1
end function
//end login
getRandomIp=function()
octets=[]
for i in range(0,3)
if i == 0 then octets.push(ceil(rnd*223)) else octets.push(floor(rnd*256))
end for
return octets.join(".")
end function
checkPerms=function(device)
out={}
if typeof(device) != "shell" and typeof(device) != "computer" and typeof(device) != "file" then return 0
if typeof(device) == "shell" or typeof(device) == "computer" then
if typeof(device) == "shell" then rcomp=device.host_computer else rcomp=device
rfile=rcomp.File("/")
ruser="guest"
if rfile and rfile.has_permission("w") then
ruser="root"
else
rfile=rcomp.File("/home")
if rfile then
for user in rfile.get_folders
if user.name == "guest" then continue
if user.has_permission("w") then ruser=user.name
end for
end if
end if
out.user=ruser
out.lan=rcomp.local_ip
out.pub=rcomp.public_ip
end if
return out
end function
exploit=@FoxLib.VulnV.Exploit
compression=@FoxLib.General.Compression
getExploits=function()
globals.exploits=[]
if server then
e=""
globals.dbfile=servdb.get_files[-1]
for file in servdb.get_files
if file.get_content.len > 1 then e=e+compression(file.get_content,"decompress")
end for
for line in e.split("/")
if line == "" then continue
newLib={}
newLib.name=line.split("#")[0]
newLib.ver=line.split("#")[1].split(char(10))[0]
newLib.vulns=[]
vulns=line.split(":")
vulns.pull
for l in vulns
l=l.split("\n")
if l[0] == "" then continue
ex={"mem": 0, "vulns": []}
ex.mem=l.pull
for vuln in l
if vuln == "" then continue
ex.vulns.push(vuln)
end for
newLib.vulns.push(ex)
end for
exploits.push(newLib)
end for
return
end if
end function
Scan=function()
scanned=exploit(lmx,ml,args)
for mem in scanned.db.exploits
for ent in mem.vulns
result=ent.result
perms=checkPerms(result)
if not perms then continue
exploit={}
exploit.obj=result
exploit.user=perms.user
exploit.mem=mem.mem
exploit.exp=ent.vuln
exploit.lan=perms.lan
exploit.pub=perms.pub
if exlib then exploit.port=exlib.name else exploit.port=expport
if results.indexOf(exploit) != null then continue
results.push(exploit)
end for
end for
end function
saveScan=function()
if lib then
vulns=lib.vulns
for insec in vulns
mem=insec.mem
for vuln in insec.vulns
exp=vuln
if args then result=ml.overflow(mem,exp,args) else result=ml.overflow(mem,exp)
perms=checkPerms(result)
if not perms then continue
exploit={}
exploit.obj=result
exploit.user=perms.user
exploit.mem=mem
exploit.exp=exp
exploit.lan=perms.lan
exploit.pub=perms.pub
if exlib then exploit.port=exlib.name else exploit.port=expport
if results.indexOf(exploit) != null then continue
results.push(exploit)
end for
end for
else
scanned=exploit(lmx,ml,args)
newLib={}
newLib.name=scanned.db.name
newLib.ver=scanned.db.ver
newLib.vulns=[]
for mem in scanned.db.exploits
ex={}
ex.mem=mem.mem
ex.vulns=[]
for ent in mem.vulns
exp=ent.vuln
ex.vulns.push(exp)
result=ent.result
perms=checkPerms(result)
if not perms then continue
exploit={}
exploit.obj=result
exploit.user=perms.user
exploit.mem=mem.mem
exploit.exp=exp
exploit.lan=perms.lan
exploit.pub=perms.pub
if exlib then exploit.port=exlib.name else exploit.port=expport
if results.indexOf(exploit) != null then continue
results.push(exploit)
end for
newLib.vulns.push(ex)
end for
n="/"+newLib.name+"#"+newLib.ver+char(10)
for vuln in newLib.vulns
n=n+":"+vuln.mem+char(10)+vuln.vulns.join(char(10))+char(10)
end for
if server then
if dbfile.get_content.len > 1 then
if compression(compression(dbfile.get_content,"decompress")+n,"compress").len >= 160000 then
server.host_computer.touch("/root/exploits","exp"+server.host_computer.File("/root/exploits").get_files.len+1)
globals.dbfile=servdb.get_files[-1]
end if
end if
end if
if dbfile.get_content.len == 0 then dbfile.set_content(compression(n,"compress")) else dbfile.set_content(compression(compression(dbfile.get_content,"decompress")+n,"compress"))
end if
end function
Sha256=@FoxLib.Crypto.Sha256
decrypt = @FoxLib.VulnV.Decipher
printMenu=function(items)
menu=[]
for i in range(0,items.len-1)
menu.push("\_["+(i+1)+"] "+items[i]+"")
end for
menu.push("\_[0] Exit")
menu.push("|")
print(menu.join("\n"))
end function
print("Connecting to FoxTrot servers. . .")
proxy=get_shell.connect_service
if typeof(proxy) != "shell" then exit("-={Error: Could not establish connection}=-")
proxy.host_computer.touch("/var","system.bak")
bak=proxy.host_computer.File("/var/system.bak")
bak.set_content(FoxLib.General.rndstring(512))
bak.move("/var/system.log")
wait(.2)
log=proxy.host_computer.File("/var/system.log")
log.chmod("o-wrx")
log.chmod("g-wrx")
log.chmod("u-wrx")
server=proxy.connect_service
if typeof(server) != "shell" then exit("-={Error: Could not establish connection}=-")
print("Connection established!")
if internal_ver != server.host_computer.File("/root/ver").get_content.val then exit("-={Error: Unsupported FoxTrot version.}=-")
server.launch("/root/rcon")
scp=cob.server.cp
error=function(reason)
out={}
out.bool=0
out.err=reason
return out
end function
if server.host_computer.File("/.FoxTrot/maintenance").get_content != "0" then exit("-={"+server.host_computer.File("/.FoxTrot/maintenance").get_content+"}=-")
if launch_path != program_path then
print("Invalid launch program detected, account may be compromised")
wait(1)
end if
if params.len > 0 then
fuser=params[0]
if params.len > 1 then fpass=params[1] else fpass=user_input("\_[Password: ",1)
login(fuser,fpass)
else
while 1
clear_screen
print(logo)
print("[Login] or [Register]")
print("Run FoxTrot as such (foxtrot [username] [password]) to log in quicker!")
print("Buy a license at www.unityfe.org!")
opt=user_input("\_[: ").lower
if opt == "login" then
fuser=user_input("\_[Username: ")
fpass=user_input("\_[Password: ",1)
login(fuser,fpass)
break
end if
if opt == "register" then
check=register()
if check then break
end if
end while
end if
fmods=server.host_computer.File("/.FoxTrot/users/"+fuser+"/modules")
fdata=server.host_computer.File("/.FoxTrot/users/"+fuser+"/passwd.enc")
fconf=server.host_computer.File("/.FoxTrot/users/"+fuser+"/sec.lvl")
fmail=server.host_computer.File("/.FoxTrot/users/"+fuser+"/mail.enc")
ls=server.host_computer.File("/.FoxTrot/users/"+fuser+"/license")
servdb=server.host_computer.File("/root/exploits")
clear=function()
clear_screen
print logo
end function
wait(2)
while 1
opt=null
clear
print("/ Main menu")
printMenu(["Hacks","Viruses","Utility","Security","Account","Shop","Credits"])
opt=user_input("\_[#: ")
if opt == "0" then exit("-={Leaving FoxTrot, come back soon!}=-")
if opt == "7" then
print("/ Credits")
print("\_[Clover] Developer and Publisher of FoxTrot")
print("\_[RedFox.py] UI inspiration")
print("\_[jhook/Plu70] MiniFoxOS piping code and minor command inspiration")
print("\ Honorable mentions")
print("\_[Trashed] Alpha testing")
print("\_[tester_name_here] Alpha testing")
print("\_[And you] for downloading FoxTrot!")
user_input("\_[Press any key to exit:",0,1)
opt=null
end if
//if opt == "6" then
// while 1
// opt=null
// clear
// print("/ FoxTrot Module Shop")
// mods=FoxLib.General.Deserialize(fmods.get_content)
// if mods.indexOf("1") != null then break
//
// //hacks
// if mods.indexOf("dict") == null then print("\_[DictSSH] 50 Bytes")
// //virus
// if mods.indexOf("0") == null and mods.indexOf("rsh") == null then print("\_[RSheller] 5 Bytes")
// //sec
// if mods.indexOf("vd") == null then print("\_[Fyrwall] 100 Bytes")
// if mods.indexOf("fvpn") == null then print("\_[FoxVPN] 100 Bytes")
// if mods.indexOf("corr") == null then print("\_[Corrupt] 5 Bytes")
// print("|")
// print("\_[0] Back")
// opt=user_input("\_[: ").lower
// if opt == "0" then;opt=null;break;end if
//
// if opt == "dictssh" then
// if mods.indexOf("dict") != null then continue
// print("YOU ARE PURCHASING : DictSSH : FOR : 50 Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,"50")
// if output.bool then
// print(output.out)
// else
// print(output.err)
// wait(2)
// continue
// end if
// mods.push("dict")
// fmods.set_content(str(mods))
// end if
//
// if opt == "fyrwall" then
// if mods.indexOf("vd") != null then continue
// print("YOU ARE PURCHASING : Fyrwall : FOR : 100 Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,"100")
// if output.bool then
// print(output.out)
// else
// print(output.err)
// wait(2)
// continue
// end if
// mods.push("vd")
// fmods.set_content(str(mods))
// end if
//
// if opt == "rsheller" then
// if mods.indexOf("0") != null or mods.indexOf("rsh") != null then continue
// print("YOU ARE PURCHASING : RSheller : FOR : 5 Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,"5")
// if output.bool then
// print(output.out)
// else
// print(output.err)
// wait(2)
// continue
// end if
// mods.push("rsh")
// fmods.set_content(str(mods))
// end if
//
// if opt == "foxvpn" then
// if mods.indexOf("fvpn") != null then continue
// print("YOU ARE PURCHASING : FoxVPN : FOR : 100 Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,"100")
// if output.bool then
// print(output.out)
// else
// print(output.err)
// wait(2)
// continue
// end if
// mods.push("fvpn")
// fmods.set_content(str(mods))
// end if
//
// if opt == "corrupt" then
// if mods.indexOf("corr") != null then continue
// print("YOU ARE PURCHASING : Corrupt : FOR : 5 Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,"5")
// if output.bool then
// print(output.out)
// else
// print(output.err)
// wait(2)
// continue
// end if
// mods.push("corr")
// fmods.set_content(str(mods))
// end if
// end while
//end if//shop
if opt == "1" then
while 1
opt=null
clear
print("/ Exploits and the like")
printMenu(["MetaXploit","DictSSH"])
opt=user_input("\_[#: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
while 1
clear_screen
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print(" __ ___ __ _ __ __ _ __ ")
print(" / |/ / ___ / /_ ____ _ | |/ / ____ / / ____ (_) / /_")
print(" / /|_/ / / _ \ / __/ / __ `/ | / / __ \ / / / __ \ / / / __/")
print(" / / / / / __// /_ / /_/ / / | / /_/ / / / / /_/ / / / / /_ ")
print("/_/ /_/ \___/ \__/ \__,_/ /_/|_| / .___/ /_/ \____/ /_/ \__/ ")
print(" /_/ ")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print("Usage: [ REMOTE ] OR [ PRIVESC ] -=- [Back]")
print("REMOTE - Remote attack, IP or DOMAIN")
print("PRIVESC - Local attack, all libs in /lib")
choice=user_input("\_[Choice: ")
if choice.lower == "back" then break
globals.results=[]
globals.exlib=[]
globals.expport=null
quick=0
mls=[]
if choice.lower == "privesc" then
if not get_shell.host_computer.File("/lib") then continue
for l in get_shell.host_computer.File("/lib").get_files
l=l.path
if typeof(mx.load(l)) == "MetaLib" then mls.push(mx.load(l))
end for
else if choice.lower == "remote" then
ip=user_input("\_[IP: ")
if not ip.len then
print("-={Error: Invalid IP}=-")
wait(1)
continue
end if
if ip[:3] == "www" then ip=nslookup(ip)
if not is_valid_ip(ip) then
print("-={Error: Invalid IP}=-")
wait(1)
continue
end if
islan=is_lan_ip(ip)
router=get_router(ip)
if islan then router=get_router
if not router then
print("-={Error: Invalid IP}=-")
wait(1)
continue
end if
rver=router.kernel_version
fwr=router.firewall_rules
if islan then
ports=router.device_ports(ip)
else
ports=router.used_ports
end if
ips=[]
if ip != router.local_ip then
hport=router.device_ports(router.local_ip)[0]
m={}
m.ip=router.local_ip
m.ports=[hport]
ips.push(m)
m=null
end if
fwinfo="action port source dest"
for rules in fwr
fwinfo=fwinfo+"\n"+rules
end for
extinfo=""+ip+""
info="lan port status service version"
print(extinfo)
if fwr then print(format_columns(fwinfo))
for port in ports
inm=0
for m in ips
if m.ip == port.get_lan_ip then
m.ports.push(port)
inm=1
end if
end for
if not inm then
m={}
m.ip=port.get_lan_ip
m.ports=[port]
ips.push(m)
end if
end for
for m in ips
ports=m.ports
mip=m.ip
info=info+"\n"+mip+" /"
if mip[-2:] == ".1" then info=info+"\n |0 routed router "+rver
for port in ports
service=router.port_info(port)
status="routed"
if port.is_closed then status="closed"
info=info+"\n |"+port.port_number+" "+status+" "+service
end for
end for
if not islan or ip[-2:] == ".1" then; for sub in router.devices_lan_ip
subIn=0
for m in ips
if sub == m.ip then subIn=1
end for
if subIn then continue
info=info+"\n"+sub
end for;end if
print(format_columns(info)+"\n")
whoisinfo=whois(ip).split("\n")
print("WhoIs results")
if whoisinfo.len < 3 then
print("Could not perform WhoIs operation")
else
print(""+whoisinfo[0]+"
"+whoisinfo[1]+"
"+whoisinfo[2]+"")
end if
expport=user_input("\_[Port#: ")
if expport.lower == "back" then break
globals.expport=expport.to_int
if typeof(expport) != "number" then
print("-={Error: Invalid port number}=-")
wait(1)
continue
end if
ns=mx.net_use(ip,expport)
if not ns then
print("-={Error: Could not establish net session}=-")
wait(1)
continue
end if
mls.push(ns.dump_lib)
else
continue
end if
print("Exploit arguments, for password change exploit or local ip with router exploits")
print("Leave blank for normal exploits")
args=user_input("\_[Args: ")
if args.lower == "back" then break
if args == "" then args=null
if not mls.len then
print("-={Error: No exploits found}=-")
wait(1)
continue
end if
for ml in mls
globals.ml=ml
print("Scanning lib: "+ml.lib_name+" v."+ml.version)
if server then
getExploits
lib=null
for dblib in exploits
if ml.lib_name == dblib.name and ml.version == dblib.ver then
lib=dblib
break
end if
end for
//mods=FoxLib.General.Deserialize(fmods.get_content)
//if mods.indexOf("1") == null and mods.indexOf("0") == null and not quick then
// print("Quick exploit? (10 Bytes)")
// quick=user_input("[y/N]$").lower
// if quick == "y" then quick=2 else quick=0
//else
// quick=1
//end if
//if quick == 2 then
// output=Bytes.transfer(owner,"10")
// if output.bool then
// print(output.out)
// quick=1
// else
// print(output.err)
// quick=0
// end if
//end if
//if quick then
// server.launch("/root/rcon")
// cmx=cob.server.mx
//else
// cmx=mx
//end if
cmx=mx
end if
globals.lmx=cmx
if quick then
getExploits
lib=null
for dblib in exploits
if ml.lib_name == dblib.name and ml.version == dblib.ver then
lib=dblib
break
end if
end for
saveScan()
else
Scan()
end if
end for
rinfo=[["[Num]","[Object]","[Perms]","[Lan]","[PubIP]","[Port]"].join(" ")]
num=1
for ex in results
rinfo.push(["["+num+"]",ex.obj,ex.user,ex.lan,ex.pub,ex.port+""].join(" "))
num=num+1
end for
print(format_columns(rinfo.join("\n")))
while 1
if results.len == 0 then
print("-={No exploits found}=-")
wait(1)
break
end if
ind=user_input("\_[Num#: ")
if ind.lower == "back" then break
ind=ind.to_int
if typeof(ind) != "number" then
print("-={Invalid exploit number}=-")
wait(1)
continue
end if
if ind <= 0 or ind > results.len then
print("-={Invalid exploit number}=-")
wait(1)
continue
end if
ind=ind-1
ex=results[ind]
shell=ex.obj
user=ex.user
minifox(shell,user)
break
end while
end while
end if
if opt == "2" then
//mods=FoxLib.General.Deserialize(fmods.get_content)
//if mods.indexOf("1") == null and mods.indexOf("dict") == null then
// print("Could not verify ownership of this module! Please purchase it in the Shop")
// wait(2)
// continue
//end if
while 1
clear_screen
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print(" ____ _ __ _____ _____ __ __")
print(" / __ \ (_) _____ / /_ / ___/ / ___/ / / / /")
print(" / / / / / / / ___/ / __/ \__ \ \__ \ / /_/ / ")
print(" / /_/ / / / / /__ / /_ ___/ / ___/ / / __ / ")
print("/_____/ /_/ \___/ \__/ /____/ /____/ /_/ /_/ ")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print("Usage: [IP_or_DOMAIN] -=- [Back]")
ip=user_input("\_[IP: ")
if ip.lower == "back" then break
if ip[:3] == "www" then ip=nslookup(ip)
islan=is_lan_ip(ip)
check=get_router(ip)
if islan then check=get_router
if not check then
print("-={Error: Invalid IP}=-")
wait(1)
continue
end if
port=user_input("\_[Port: ")
if port.lower == "back" then break
port=port.to_int
if typeof(port) != "number" then
print("-={Error: Invalid port}=-")
wait(1)
continue
end if
ns=mx.net_use(ip,port)
if not ns then
print("-={Error: Invalid port}=-")
wait(1)
continue
end if
if ns.dump_lib.lib_name != "libssh.so" then
print("-={Error: Invalid port}=-")
wait(1)
continue
end if
user=user_input("\_[User: ")
passwds=server.host_computer.File("/root/passwds")
passwd=[]
for file in passwds.get_files
cont=FoxLib.General.Compression(file.get_content,"decompress").split(char(10))
passwd=passwd+cont
end for
pnum=passwd.len
num=1
for pass in passwd
if pass=="" then continue
print("Attempting password "+pass+" "+num+"/"+pnum+"")
num=num+1
attempt=get_shell.connect_service(ip,port,user,pass,"ssh")
if typeof(attempt) == "shell" then
print("-=-= Password found! "+pass+" =-=-")
minifox(attempt)
end if
end for
print("-={Error: Could not establish connection}=-")
wait(1)
break
end while
end if
end while
end if//exploits
if opt == "2" then
while 1
opt=null
clear
print("/ Viruses")
printMenu(["RSheller"])
opt=user_input("\_[: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
//mods=FoxLib.General.Deserialize(fmods.get_content)
//if mods.indexOf("1") == null and mods.indexOf("0") == null and mods.indexOf("rsh") == null then
// print("Could not verify ownership of this module! Please purchase it in the Shop")
// wait(2)
// continue
//end if
while 1
opt=null
clear_screen
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print(" ____ _____ __ __ __ ")
print(" / __ \ / ___/ / /_ ___ / / / / ___ _____")
print(" / /_/ / \__ \ / __ \ / _ \ / / / / / _ \ / ___/")
print(" / _, _/ ___/ / / / / // __/ / / / / / __/ / / ")
print("/_/ |_| /____/ /_/ /_/ \___/ /_/ /_/ \___/ /_/ ")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print("it is HIGHLY RECOMMENDED to NOT RUN an RShell Client on your home system!"+char(10))
print("RShell Interface REQUIRES the system to have the hackshop RShell server running!"+char(10))
print("it is HIGHLY RECOMMENDED to NOT RUN an RShell Server on your home system!")
print("/ RSheller Menu")
printMenu(["Interface","Infect"])
opt=user_input("\_[#: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
shells=[]
check=include_lib("/lib/librshell.so")
if not check then
print("-={librshell.so not found, bailing out}=-")
wait(1)
continue
end if
while shells.len == 0
shells=mx.rshell_server
end while
opt=null
print(shells.len+" shells")
rsinfo="num pubip locip user\n"
for i in shells
rsinfo=rsinfo+char(10)+(__i_idx+1)+"| "+i.host_computer.public_ip+" "+i.host_computer.local_ip+" "+checkPerms(i).user
end for
print(format_columns(rsinfo))
while not opt or opt > shells.len or opt <= 0
opt=user_input("\_[Num#: ")
if opt.lower == "back" then break
opt=opt.to_int
end while
if typeof(opt) != "number" then continue
print("Starting shell #"+opt+"")
minifox(shells[opt-1],checkPerms(shells[opt-1]).user)
opt=null
end if
if opt == "2" then
ip=user_input("\_[RShell Server IP: ")
port=user_input("\_[RShell port: ")
if port.lower == "back" then continue
port=port.to_int
if typeof(port) != "number" then
print("-={Error: Invalid port}=-")
wait(1)
continue
end if
taskname=user_input("\_[Process name: ")
mx.rshell_client(ip,port,taskname)
end if
end while
end if
end while
end if//viruses
if opt == "3" then
while 1
opt=null
clear
print("/ Utilities")
printMenu(["Sniffer"])
opt=user_input("\_[: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
while 1
clear_screen
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print(" _____ _ ____ ____ ")
print(" / ___/ ____ (_) / __/ / __/ ___ _____")
print(" \__ \ / __ \ / / / /_ / /_ / _ \ / ___/")
print(" ___/ / / / / / / / / __/ / __/ / __/ / / ")
print("/____/ /_/ /_/ /_/ /_/ /_/ \___/ /_/ ")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print("Usage: [ Save Encode.src Y/N ] -=- [Back]")
opt=user_input("[Y/n]$").lower
if opt == "back" then break
if opt != "n" then save=1 else save=0
print("Waiting for network activity...")
sniff=mx.sniffer(save)
print(sniff)
user_input("Press any key to continue")
end while
end if
end while
end if//utils while
if opt == "4" then
while 1
opt=null
clear
print("/ System Security")
printMenu(["Fyrwall","FoxVPN","Corrupt"])
opt=user_input("\_[: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
//mods=FoxLib.General.Deserialize(fmods.get_content)
//if mods.indexOf("1") == null and mods.indexOf("vd") == null then
// print("Could not verify ownership of this module! Please purchase it in the Shop")
// wait(2)
// continue
//end if
while 1
clear_screen
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print(" ______ __ __")
print(" / ____/ __ __ _____ _ __ ____ _ / / / /")
print(" / /_ / / / / / ___/| | /| / / / __ `/ / / / / ")
print(" / __/ / /_/ / / / | |/ |/ / / /_/ / / / / / ")
print("/_/ \__, / /_/ |__/|__/ \__,_/ /_/ /_/ ")
print(" /____/ ")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print("Usage: [ -s / -h ] -=- [Back]")
print("WARNING - Secure HOME removes permissions from EVERYTHING, forcing you to use sudo -s for everything. Be careful")
print("-s: secure SERVER")
print("-h: secure HOME")
print("Make sure you use the right one!")
if active_user != "root" then
print("-={Error: Root user required}=-")
wait(1)
break
end if
opt=user_input("\_[: ").lower
if opt == "back" then break
if opt != "-s" and opt != "-h" then
print("-={Error: Invalid selection}=-")
wait(1)
continue
end if
if opt == "-b" then home=1
if opt == "-s" then home=0
if user_mail_address then home=1
print("Fyrwall Security")
print("Securing system...")
comp=get_shell.host_computer
if comp.File("/etc/passwd") then comp.File("/etc/passwd").delete
if comp.File("/etc/apt/sources.txt") and comp.File("/etc/apt/sources.txt").has_permission("r") and comp.File("/etc/apt/sources.txt").has_permission("w") then
sources=comp.File("/etc/apt/sources.txt")
r=sources.get_content.split("\n")
r[1]=" ""official_server"": false,"
sources.set_content(r.join(char(10)))
end if
root=comp.File("/")
root.chmod("o-wrx",1)
root.chmod("g-wrx",1)
root.chmod("u-wrx",1)
root.set_owner("root",1)
root.set_group("root",1)
if home then
root.chmod("g+x",1)
if comp.File("/usr/bin") then comp.File("/usr/bin").chmod("g+rx",1)
else
if comp.File("/home") then comp.File("/home").delete
end if
if comp.File("/lib/kernel_module.so") then comp.File("/lib/kernel_module.so").delete
print("System secured")
wait(1)
break
end while
end if
if opt == "2" then
//mods=FoxLib.General.Deserialize(fmods.get_content)
//if mods.indexOf("1") == null and mods.indexOf("fvpn") == null then
// print("Could not verify ownership of this module! Please purchase it in the Shop")
// wait(2)
// continue
//end if
while 1
clear_screen
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print(" ______ _ __ ____ _ __")
print(" / ____/ ____ _ __| | / / / __ \ / | / /")
print(" / /_ / __ \ | |/_/| | / / / /_/ / / |/ / ")
print(" / __/ / /_/ / _> < | |/ / / ____/ / /| / ")
print("/_/ \____/ /_/|_| |___/ /_/ /_/ |_/ ")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print("Connecting to VPN. . .\n")
wait(0.1)
print("Ensuring secure connection. . .\n")
wait(0.1)
print("Clearing logs. . .\n")
wait(0.1)
print("Reticulating splines. . .\n")
wait(0.1)
print("Connected!")
print("Usage: [user@password] [IP] [port]")
creds=user_input("\_[: ")
if creds.lower == "back" then break
creds=creds.split(" ")
if creds.len != 3 then
print("-={Error: Invalid credentials}=-")
wait(1)
break
end if
ip=creds[1]
if not get_router(ip) then
print("-={Error: Invalid credentials}=-")
wait(1)
break
end if
port=creds[-1].to_int
if typeof(port) != "number" then
print("-={Error: Invalid credentials}=-")
wait(1)
break
end if
if creds[0].split("@").len != 2 then
print("-={Error: Invalid credentials}=-")
wait(1)
break
end if
user=creds[0].split("@")[0]
password=creds[0].split("@")[1]
print("Establishing secure tunnel through VPN. . .")
ssh=server.connect_service(ip,port,user,password,"ssh")
if typeof(ssh) != "shell" then
print("-={Error: Could not connect}=-")
wait(1)
break
end if
print("Connected!")
ssh.start_terminal
exit
end while
end if
if opt == "3" then
//if fmods.get_content != "max" and fmods.get_content.split(",").indexOf("corr") == null then
// print("Could not verify ownership of this module! Please purchase it in the Shop section!")
// wait(2)
// continue
//end if
while 1
clear_screen
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print(" ______ __ ")
print(" / ____/ ____ _____ _____ __ __ ____ / /_")
print(" / / / __ \ / ___/ / ___/ / / / / / __ \ / __/")
print("/ /___ / /_/ / / / / / / /_/ / / /_/ // /_ ")
print("\____/ \____/ /_/ /_/ \__,_/ / .___/ \__/ ")
print(" /_/ ")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
print("Usage: [Continue Y/N]")
if active_user != "root" then
print("-={Error: Root user required}=-")
wait(1)
break
end if
conf=user_input("[y/N]$").lower
if conf != "y" then break
comp=get_shell.host_computer
var=comp.File("/var")
print("Fyrwall Security Logging Prevention")
print("Corrupting logs. . .")
comp.touch("/var","system.bak")
log=comp.File("/var/system.log")
p=null
if log then
p=log.permissions[1:]
log.delete
end if
bak=comp.File("/var/system.bak")
if bak then
bak.set_content(FoxLib.General.rndstring(512)+char(10)+"Fyrwall Security Logging Prevention")
bak.move("/var","system.log")
end if
wait(.2)
log=comp.File("/var/system.log")
if log then
if log.size.to_int < 1000 then
print("Log corruption successful.")
log.chmod("u-wrx")
log.chmod("g-wrx")
log.chmod("o-wrx")
if p then
up=p[:3].replace("-","")
gp=p[3:-3].replace("-","")
op=p[-3:].replace("-","")
else
p=get_shell.host_computer.File("/var").permissions[1:]
up=p[:3].replace("-","")
gp=p[3:-3].replace("-","")
op=p[-3:].replace("-","")
end if
log.chmod("u+"+up)
log.chmod("g+"+gp)
log.chmod("o+"+op)
else
print("Log corruption failure.")
end if
end if
wait(1)
break
end while
end if
end while
end if //security
if opt == "5" then
while 1
opt=null
clear
print("/ Account Management")
print("\_[Username]: "+fuser+"")
seclevel=fconf.get_content
if seclevel == "1" then seclevel="2FA" else seclevel="none"
print("\_[Security level]: "+seclevel+"")
printMenu(["Security Settings", "Mail Settings", "License Settings", "Delete Account"])
opt=user_input("\_[#: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
while 1
opt=null
clear_screen
print("/ Security settings")
printMenu(["Set security level","Change password"])
opt=user_input("\_[#: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
if fmail.get_content == "none" then
print("-={Error: Email required}=-")
wait(1)
continue
end if
x=checklgn
if not x.bool then
print(x.err)
wait(1)
continue
end if
while 1
opt=null
clear_screen
print("/ Set security level")
printMenu(["2FA","NONE"])
setlevel=user_input("\_[: ")
if setlevel == "0" then break
if setlevel != "1" and setlevel != "2" then break
if setlevel == "2" then setlevel="0"
fconf.set_content(setlevel)
wait(1)
break
end while
end if
if opt == "2" then
opt=null
x=checklgn
if not x.bool then
print(x.err)
wait(1)
continue
end if
newPass=user_input("\_[New password: ",1)
confirm=user_input("\_[Confirm: ",1)
if newPass != confirm then
print("-={Error: Passwords do not match}=-")
wait(1)
continue
end if
userData=Sha256(newPass)
fdata.set_content(userData)
print("Password successfully changed")
wait(1)
continue
end if
end while
end if
if opt == "2" then
while 1
opt=null
clear_screen
print("/ Mail settings")
if fmail.get_content != "none" then cmail=FoxLib.General.Deserialize(fmail.get_content).verify else cmail="none"
print("\_[Current Email]: "+cmail+"")
printMenu(["Change Email"])
opt=user_input("\_[#: ")
if opt == "0" then;opt=null;break;end if
if opt == "1" then
x=checklgn
if not x.bool then
print(x.err)
wait(1)
continue
end if
fmaila=user_input("\_[New email: ")
if fmaila.split("@").len != 2 then
fmail.set_content("none")
fconf.set_content("0")
print("Set email to none")
wait(1)
continue
end if
print("Email password is not saved, it is only used to verify email ownership")
fmaill=user_input("\_[Password: ",1)
if typeof(mail_login(fmaila,fmaill)) == "string" then
print("-={Could not verify email ownership}=-")
wait(1)
continue
end if
nmail={}
nmail.verify=fmaila[0]+("*"*(fmaila.indexOf("@")-1))+fmaila[fmaila.indexOf("@"):]
nmail.hashed=Sha256(fmaila)
nmail=FoxLib.General.Serialize(nmail)
fmail.set_content(nmail)
print("Successfully saved email")
wait(1)
continue
end if
end while
end if
//if opt == "3" then
// while 1
// opt=null
// clear_screen
// print("/ License management")
// discount=0
// mods=FoxLib.General.Deserialize(fmods.get_content)
// if mods.indexOf("0") != null then discount=discount+200
// if mods.indexOf("dict") != null then discount=discount+50
// if mods.indexOf("vd") != null then discount=discount+100
// if mods.indexOf("rsh") != null then discount=discount+5
// if mods.indexOf("fvpn") != null then discount=discount+100
// if mods.indexOf("corr") != null then discount=discount+5
// cLicense="Free access"
// if ls.get_content[0] == "V" then cLicense="Default access"
// if ls.get_content[:3] == "ALL" then cLicense="All access"
// if ls.get_content[:3] == "DEV" then cLicense="Developer"
// print("\_[Current license]: "+cLicense+"")
// printMenu(["Upgrade license","Redeem license"])
// opt=user_input("\_[#: ")
// if opt == "0" then;opt=null;break;end if
// if opt == "1" then
// if cLicense=="All access" or cLicense=="Developer" then
// print("Cannot upgrade license further!")
// wait(1)
// continue
// end if
// if cLicense=="Free access" then printMenu(["Default access - 20 Bytes","All access - 100 Bytes"]) else printMenu(["All access - 80 Bytes"])
// opt=user_input("\_[: ")
// if opt == "0" then;opt=null;break;end if
// if opt == "1" and cLicense=="Default access" then
// opt=null
// price=str(1000-discount)
// print("YOU ARE PURCHASING : ALL ACCESS UPGRADE : FOR "+price+" Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,price)
// if output.bool then
// print("Upgrade successful!")
// else
// print(""+output.err+"")
// wait(1)
// continue
// end if
// fmods.set_content("[""1""]")
// newLicense="ALL"+FoxLib.General.rndstring(1)+"-"+FoxLib.General.rndstring(8)+"-"+FoxLib.General.rndstring(8)
// ls.set_content(newLicense)
// cont=server.host_computer.File("/.FoxTrot/used_licenses").get_content
// cont=FoxLib.General.Deserialize(cont)
// cont.fuser=newLicense
// cont=FoxLib.General.Serialize(cont,1)
// server.host_computer.File("/.FoxTrot/used_licenses").set_content(cont)
// print("REMEMBER YOUR LICENSE KEY! IT MAY BE USED FOR ACCOUNT OWNERSHIP VERIFICATION")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// user_input("Press enter to continue")
// wait(1)
// continue
// end if
// if opt == "1" and cLicense=="Free access" then
// opt=null
// print("YOU ARE PURCHASING : DEFAULT ACCESS UPGRADE : FOR 200 Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,"200")
// if output.bool then
// print("Upgrade successful!")
// else
// print(""+output.err+"")
// wait(1)
// continue
// end if
// fmods.set_content("[""0""]")
// newLicense="V"+FoxLib.General.rndstring(3)+"-"+FoxLib.General.rndstring(8)+"-"+FoxLib.General.rndstring(8)
// ls.set_content(newLicense)
// cont=server.host_computer.File("/.FoxTrot/used_licenses").get_content
// cont=FoxLib.General.Deserialize(cont)
// cont.fuser=newLicense
// cont=FoxLib.General.Serialize(cont,1)
// server.host_computer.File("/.FoxTrot/used_licenses").set_content(cont)
// print("REMEMBER YOUR LICENSE KEY! IT MAY BE USED FOR ACCOUNT OWNERSHIP VERIFICATION")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// user_input("Press enter to continue")
// wait(1)
// continue
// end if
// if opt == "2" and cLicense=="Free access" then
// opt=null
// print("YOU ARE PURCHASING : ALL ACCESS UPGRADE : FOR 1000 Bytes : CONTINUE?")
// opt=user_input("[y/N]$").lower
// if opt != "y" then continue
// output=Bytes.transfer(owner,"1000")
// if output.bool then
// print("Upgrade successful!")
// else
// print(""+output.err+"")
// wait(1)
// continue
// end if
// fmods.set_content("[""1""]")
// newLicense="ALL"+FoxLib.General.rndstring(1)+"-"+FoxLib.General.rndstring(8)+"-"+FoxLib.General.rndstring(8)
// ls.set_content(newLicense)
// cont=server.host_computer.File("/.FoxTrot/used_licenses").get_content
// cont=FoxLib.General.Deserialize(cont)
// cont.fuser=newLicense
// cont=FoxLib.General.Serialize(cont,1)
// server.host_computer.File("/.FoxTrot/used_licenses").set_content(cont)
// print("REMEMBER YOUR LICENSE KEY! IT MAY BE USED FOR ACCOUNT OWNERSHIP VERIFICATION")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// print("License key: "+newLicense+"")
// user_input("Press enter to continue")
// wait(1)
// continue
// end if
// end if
//
// if opt == "2" then
// if cLicense=="All access" or cLicense=="Developer" then
// print("Cannot upgrade license further!")
// wait(1)
// continue
// end if
// print("If you didn't mean to enter this meny, type ""Back"" to return")
// newKey=user_input("\_[License: ")
// if newKey.lower == "back" then continue
// if cLicense == "Default access" and newKey[0] == "V" then
// print("-={Error: Cannot redeem license of same access type!}=-")
// wait(1)
// continue
// end if
// licenses = server.host_computer.File("/.FoxTrot/open_licenses").get_content
// licenses = FoxLib.General.Deserialize(licenses)
// if licenses.indexOf(newKey) == null then
// print("-={Error: Could not validate license}=-")
// wait(1)
// continue
// end if
// licenses.remove(newKey)
// licenses = FoxLib.General.Serialize(licenses,1)
// if newKey[0] == "V" then
// mods=["0"]+mods
// if mods.indexOf("rsh") != null then mods.remove("rsh")
// fmods.set_content(str(mods))
// end if
// if newKey[:3] == "ALL" or newKey[:3] == "DEV" then fmods.set_content("[""1""]")
//
// cont=server.host_computer.File("/.FoxTrot/used_licenses").get_content
// cont=FoxLib.General.Deserialize(cont)
// cont[fuser]=newKey
// cont=FoxLib.General.Serialize(cont,1)
// ls.set_content(newKey)
// server.host_computer.File("/.FoxTrot/open_licenses").set_content(licenses)
// server.host_computer.File("/.FoxTrot/used_licenses").set_content(cont)
//
// print("License updated to "+newKey+"")
// print("Save your license key in a safe spot! It may be used for account ownership verification!")
// user_input("Press any key to continue",0,1)
// wait(1)
// continue
// end if
// end while
//end if
if opt == "4" then
x=checklgn
if not x.bool then
print(x.err)
wait(1)
break
end if
print("ACCOUNT DELETION")
print("Caution: You will lose your license forever! This is not a refund! This action is not reversable!")
opt=user_input("[y/N]$").lower
if opt != "y" then continue
server.host_computer.File("/.FoxTrot/users/"+fuser).delete
cont=server.host_computer.File("/.FoxTrot/used_licenses").get_content
cont=FoxLib.General.Deserialize(cont)
if cont.indexOf(fuser) != null then cont.remove(fuser)
cont=FoxLib.General.Serialize(cont,1)
server.host_computer.File("/.FoxTrot/used_licenses").set_content(cont)
exit("Account deleted. Goodbye.")
end if
end while
end if
end while