Files
cli/npcRshell.src
- import_code("/home/me/h/src/utils.src") // exports map.inspect, p
- import_code("/home/me/h/libs/list.src") // exports list utils and map utils
- import_code("/home/me/h/libs/disk.src") // exports Disk, Block
- import_code("/home/me/h/libs/nmap.src") // exports Nmap, Service
- import_code("/home/me/h/libs/scan.src") // exports Scan
- import_code("/home/me/h/libs/json.src") // exports Json
- import_code("/home/me/h/src/rndIP.src") // exports rnd_ip
- import_code("/home/me/h/libs/optionSelector.src") // exports option_selector
- import_code("/home/me/h/src/machine.src") // exports Machine, MachineService, depends on Scan, Nmap , Json, rnd_ip
- import_code("/home/me/h/src/shell.src") // extend map
- TABLEATTACK_SCRIPT = get_shell.host_computer.File(home_dir + "/Config/tableAttack.src")
- EMPTY_LOG_PATH = home_dir + "/Config/emptyLog"
- RSERVER_INSTALLER_SCRIPT = get_shell.host_computer.File(home_dir + "/Config/rserverInstaller.src")
- PASSWORDS_DISK = new Disk
- PASSWORDS_DISK.init(home_dir + "/Config", "passwords")
- EXPLOITS_DISK = new Disk
- EXPLOITS_DISK.init(home_dir + "/Config", "exploits")
- Machine.metaxploit = include_lib("/lib/metaxploit.so")
- Scan.metaxploit = include_lib("/lib/metaxploit.so")
- get_shell.host_computer.touch(home_dir + "/Config", "rservers.txt")
- RSERVERS_FILE = get_shell.host_computer.File(home_dir + "/Config/rservers.txt")
- Command = {}
- Command.npcRsrv_sig = {}
- Command.npcRsrv_sig["description"] = "hack a random pc and setup rshell server in it"
- Command.npcRsrv_sig["args"] = []
Command.npcRsrv_sig["options"] = []
- Command.npcRsrv_sig["options"] = [{["-w", "--wipe"]: "wipe the server logs instead of connecting"}]
- Command.npcRsrv = function(args = [], options = {})
- re_hack = function(s)
- ip = s.split(":")[0]
- port = s.split(":")[1].to_int
-
- machine = new Machine
- machine.init(ip, PASSWORDS_DISK, EXPLOITS_DISK)
-
- server_service = null
- for s in machine.services
- if s.port == port then server_service = s
- end for
-
- server_service.set_exploits
- server_shell = server_service.quick_root_shell(TABLEATTACK_SCRIPT)
-
- router_shell = machine.router_service
- router_shell.set_exploits
- router_shell = router_shell.quick_root_shell(TABLEATTACK_SCRIPT)
-
- router_shell.clear_logs(EMPTY_LOG_PATH)
- server_shell.clear_logs(EMPTY_LOG_PATH)
- if options["-w"] then exit
- server_shell.start_terminal
- end function
- rservers = RSERVERS_FILE.get_content.split(char(10)).compact
-
- if rservers.len > 0 then
- print "you arealdy have hacked rservers, do you want to reuse them?" + char(10)
-
- for i in rservers.indexes
- rservers[i] = [@re_hack, rservers[i], rservers[i]]
- end for
- rservers.push ["return", null, "hack a new one"]
-
- option_selector rservers
- end if
- while true
- machine = new Machine
- machine.init(rnd_ip, PASSWORDS_DISK, EXPLOITS_DISK)
-
- if machine.open_services.len == 0 then continue
-
- server_shell = null
- server_port = null
- for s in machine.open_services
- s.set_exploits
- shell = s.quick_root_shell(TABLEATTACK_SCRIPT)
- if shell != null then
- server_shell = shell
- server_port = s.port
- break
- end if
- end for
- if server_shell == null then continue
- server_shell.clear_logs(EMPTY_LOG_PATH)
-
- router_shell = machine.router_service
- router_shell.set_exploits
- router_shell = router_shell.quick_root_shell(TABLEATTACK_SCRIPT)
- if router_shell == null then continue
- router_shell.clear_logs(EMPTY_LOG_PATH)
-
- machine.save_exploits
- server_shell.install_rserver(RSERVER_INSTALLER_SCRIPT)
- server_shell.start_terminal
- end while
- end function
- import_code("/home/me/h/libs/thor.src") //depends on Listlib, exports Thor
- Thor.init(Command, "npcRsrv")
cli/hostImg.src
import_code("/home/me/h/src/utils.src") // exports map.inspect, p
import_code("/home/me/h/libs/list.src") // exports list utils and map utils
import_code("/home/me/h/libs/disk.src") // exports Disk, Block
import_code("/home/me/h/libs/nmap.src") // exports Nmap, Service
import_code("/home/me/h/libs/scan.src") // exports Scan
import_code("/home/me/h/libs/json.src") // exports Json
import_code("/home/me/h/src/rndIP.src") // exports rnd_ip
import_code("/home/me/h/libs/optionSelector.src") // exports option_selector
import_code("/home/me/h/src/machine.src") // exports Machine, MachineService, depends on Scan, Nmap , Json, rnd_ip
import_code("/home/me/h/src/shell.src") // extend map
TABLEATTACK_SCRIPT = get_shell.host_computer.File(home_dir + "/Config/tableAttack.src")
EMPTY_LOG_PATH = home_dir + "/Config/emptyLog"
IMG_HTML = get_shell.host_computer.File(home_dir + "/Config/img.html")
IMG_SCRIPT = get_shell.host_computer.File(home_dir + "/Config/IMGsite.src")
PASSWORDS_DISK = new Disk
PASSWORDS_DISK.init(home_dir + "/Config", "passwords")
EXPLOITS_DISK = new Disk
EXPLOITS_DISK.init(home_dir + "/Config", "exploits")
Machine.metaxploit = include_lib("/lib/metaxploit.so")
Scan.metaxploit = include_lib("/lib/metaxploit.so")
Command = {}
Command.hostImg_sig = {}
Command.hostImg_sig["description"] = "hack a random site and host a img"
Command.hostImg_sig["args"] = []
Command.hostImg_sig["options"] = []
Command.hostImg = function(args = [], options = {})
img_data = user_input("image data: ")
while true
machine = new Machine
machine.init(rnd_ip, PASSWORDS_DISK, EXPLOITS_DISK)
site_service = null
for s in machine.services
if s.port == 80 then
site_service = s
end if
end for
if not site_service then continue
site_service.set_exploits
site_shell = site_service.quick_root_shell(TABLEATTACK_SCRIPT)
if site_shell == null then continue
site_shell.clear_logs(EMPTY_LOG_PATH)
router_shell = machine.router_service
router_shell.set_exploits
router_shell = router_shell.quick_root_shell(TABLEATTACK_SCRIPT)
if router_shell == null then continue
router_shell.clear_logs(EMPTY_LOG_PATH)
machine.save_exploits
img_html = IMG_HTML.get_content
img_html = img_html.replace("IMG_DATA_HERE", img_data)
print img_html
site_shell.host_computer.touch("/home/guest", "img.html")
site_shell.host_computer.File("/home/guest/img.html").set_content(img_html)
site_shell.host_computer.touch("/home/guest", "IMGsite.src")
site_shell.host_computer.File("/home/guest/IMGsite.src").set_content(IMG_SCRIPT.get_content)
site_shell.build("/home/guest/IMGsite.src", "/home/guest")
site_shell.launch("/home/guest/IMGsite")
site_shell.clear_logs(EMPTY_LOG_PATH)
router_shell.clear_logs(EMPTY_LOG_PATH)
print "here is the img site: " + machine.ip
site_shell.start_terminal
exit
end while
end function
import_code("/home/me/h/libs/thor.src") //depends on Listlib, exports Thor
Thor.init(Command, "hostImg")
src/img.html
<!DOCTYPE html>
<html>
<style>
.p {
width: 0px;
height: 0px;
display: table-cell;
border: solid #000000 2x;
}
.p0 {
width: 0px;
height: 0px;
display: table-cell;
border: solid #000000 0.5x;
}
.p1 {
width: 0px;
height: 0px;
display: table-cell;
border: solid #000000 1x;
}
.p2 {
width: 0px;
height: 0px;
display: table-cell;
border: solid #000000 2x;
}
.p3 {
width: 0px;
height: 0px;
display: table-cell;
border: solid #000000 3x;
}
body {
overflow-y: auto;
height: 100%;
margin :0;
background-color: #ffffff;
color: #000000;
}
html{
background-color: #21333D;
height:100%;
}
</style>
<body id="body">
<button onclick="gen_image(img_data, target_element_id, 0)">scale 0</button>
<button onclick="gen_image(img_data, target_element_id, 1)">scale 1</button>
<button onclick="gen_image(img_data, target_element_id, 2)">scale 2</button>
<button onclick="gen_image(img_data, target_element_id, 3)">scale 3</button>
<p>output: </p>
<div id="imgout">
loading img
</div>
<script>
function divide(s, n) {
let offset = 0
let r = []
while(true) {
r.push(s.slice(0, n ))
s = s.slice(n)
if (s.length == 0) {
break
}
}
return r
}
function hex_to_tag(s, scale) {
return "<div class=\"p" + scale + "\" style=\"border-color: #" + s + "\"></div>"
}
function to_line(s) {
return "<div>" + s.join("") + "</div>"
}
function gen_image(img, target_element_id, scale) {
let out_element = document.getElementById(target_element_id)
data = img
data = data.replace("\n", "")
let width = Number(data.split(" ")[0])
data = data.split(" ")[1]
data = divide(data,6)
data = data.map(function(i) {return hex_to_tag(i, scale)})
data = divide(data, width)
data = data.map(to_line)
out_element.innerHTML = data.join("")
}
img_data = "IMG_DATA_HERE"
target_element_id = "imgout"
scale = "1"
gen_image(img_data, target_element_id, scale)
</script>
</body>
</html>