-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinfect.ts
More file actions
94 lines (83 loc) · 2.64 KB
/
infect.ts
File metadata and controls
94 lines (83 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import {BitBurner as NS} from "Bitburner";
import {
getServers,
sortByHackingLvl,
getFacServers,
DCRun
} from "hhelper.js";
function forcePorts(ns: NS, s, pr) {
ns.purchaseTor();
if (pr >= 1) {
//@ts-ignore
if (!ns.fileExists(`BruteSSH.exe`) && !ns.purchaseProgram('BruteSSH.exe')) {
return false;
} else
ns.brutessh(s);
}
if (pr >= 2) {
//@ts-ignore
if (!ns.fileExists(`FTPCrack.exe`) && !ns.purchaseProgram('FTPCrack.exe')) {
return false;
} else
ns.ftpcrack(s);
}
if (pr >= 3) {
//@ts-ignore
if (!ns.fileExists(`relaySMTP.exe`) && !ns.purchaseProgram('relaySMTP.exe')) {
return false;
} else
ns.relaysmtp(s);
}
if (pr >= 4) {
//@ts-ignore
if (!ns.fileExists(`HTTPWorm.exe`) && !ns.purchaseProgram('HTTPWorm.exe')) {
return false;
} else
ns.httpworm(s);
}
if (pr == 5) {
//@ts-ignore
if (!ns.fileExists(`SQLInject.exe`) && !ns.purchaseProgram('SQLInject.exe')) {
return false;
} else
ns.sqlinject(s);
}
return true;
}
export async function main(ns) {
ns.disableLog("ALL");
let servers = sortByHackingLvl(getServers(ns));
for (let i = 0; i < servers.length; i++) {
let server = servers[i];
let s = server.name;
if (s == "home" || s == "darkweb" || s.startsWith("pserv")) continue;
if (ns.hasRootAccess(s)) continue;
let hl = ns.getHackingLevel();
let hr = server.reqHacking;
let sleepInterval = 30000;
while (hr > ns.getHackingLevel())
await ns.sleep(sleepInterval);
if (server.reqPorts >= 1) {
while (!forcePorts(ns, s, server.reqPorts))
await ns.sleep(sleepInterval);
}
ns.nuke(s);
ns.tprint("Nuked " + s);
if (getFacServers()[s])
continue;
let wt = Math.ceil((server.secLvl - server.minSecLvl) / 0.05);
if (wt <= 0) {
ns.tprint(s + " is already at min security");
continue;
}
let processes = [{ "script": "1weaken.js", "modules": 1, "threads": wt, "args": s, "RAM": 1.75, "allowSplit": true }];
let WT = ns.getWeakenTime(s);
let dcResult = await DCRun(ns, processes, true);
if(dcResult.success)
ns.tprint("Weakening " + s + " with " + wt + " threads in " + Math.ceil(WT) + "s");
else
ns.tprint(`${dcResult.result}`);
//await ns.run("SM6.js", 1, s, 1000);
}
ns.tprint('Network infected!');
}