@hackerai/local 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -20
- package/dist/__tests__/utils.test.d.ts +1 -4
- package/dist/__tests__/utils.test.d.ts.map +1 -1
- package/dist/__tests__/utils.test.js +1 -93
- package/dist/__tests__/utils.test.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -197
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +0 -30
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -52
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/pty-manager.d.ts +0 -95
- package/dist/pty-manager.d.ts.map +0 -1
- package/dist/pty-manager.js +0 -452
- package/dist/pty-manager.js.map +0 -1
package/README.md
CHANGED
|
@@ -17,22 +17,11 @@ hackerai-local --token YOUR_TOKEN
|
|
|
17
17
|
|
|
18
18
|
## Usage
|
|
19
19
|
|
|
20
|
-
### Basic Usage (Docker Mode)
|
|
21
|
-
|
|
22
20
|
```bash
|
|
23
21
|
npx @hackerai/local@latest --token hsb_abc123 --name "My Laptop"
|
|
24
22
|
```
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
nmap, masscan, sqlmap, ffuf, gobuster, nuclei, hydra, nikto, wpscan, subfinder, httpx, smbclient, impacket, and many more.
|
|
28
|
-
|
|
29
|
-
### Dangerous Mode (No Docker)
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
npx @hackerai/local@latest --token hsb_abc123 --name "Work PC" --dangerous
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**Warning:** Dangerous mode runs commands directly on your host OS without isolation.
|
|
24
|
+
Commands run directly on your host OS. The client connects to HackerAI and relays commands in real-time.
|
|
36
25
|
|
|
37
26
|
## Options
|
|
38
27
|
|
|
@@ -40,7 +29,6 @@ npx @hackerai/local@latest --token hsb_abc123 --name "Work PC" --dangerous
|
|
|
40
29
|
| ------------------ | ------------------------------------------------------ |
|
|
41
30
|
| `--token TOKEN` | Authentication token from HackerAI Settings (required) |
|
|
42
31
|
| `--name NAME` | Connection name shown in HackerAI (default: hostname) |
|
|
43
|
-
| `--dangerous` | Run commands directly on host OS without Docker |
|
|
44
32
|
| `--convex-url URL` | Override backend URL (for development) |
|
|
45
33
|
| `--help, -h` | Show help message |
|
|
46
34
|
|
|
@@ -52,13 +40,7 @@ npx @hackerai/local@latest --token hsb_abc123 --name "Work PC" --dangerous
|
|
|
52
40
|
|
|
53
41
|
## Security
|
|
54
42
|
|
|
55
|
-
|
|
56
|
-
- Host network access (`--network host`) for pentesting tools to scan network services
|
|
57
|
-
- Linux capabilities for network tools:
|
|
58
|
-
- `NET_RAW`: Required for ping, nmap, masscan, hping3, arp-scan, tcpdump, raw sockets
|
|
59
|
-
- `NET_ADMIN`: Required for network interface manipulation, arp-scan, netdiscover
|
|
60
|
-
- `SYS_PTRACE`: Required for debugging tools (gdb, strace, ltrace)
|
|
61
|
-
- **Dangerous Mode**: Commands run directly on your OS without any isolation - use with caution
|
|
43
|
+
Commands run directly on your OS without any isolation. Only connect machines you trust and control. The client auto-terminates after 1 hour of inactivity.
|
|
62
44
|
|
|
63
45
|
## License
|
|
64
46
|
|
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* These tests verify:
|
|
5
5
|
* - Output truncation (25% head + 75% tail strategy)
|
|
6
|
-
* -
|
|
7
|
-
* - Docker run command building
|
|
8
|
-
* - Sandbox mode detection
|
|
9
|
-
* - Shell detection parsing
|
|
6
|
+
* - Platform shell detection
|
|
10
7
|
*/
|
|
11
8
|
export {};
|
|
12
9
|
//# sourceMappingURL=utils.test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/utils.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/utils.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -4,10 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* These tests verify:
|
|
6
6
|
* - Output truncation (25% head + 75% tail strategy)
|
|
7
|
-
* -
|
|
8
|
-
* - Docker run command building
|
|
9
|
-
* - Sandbox mode detection
|
|
10
|
-
* - Shell detection parsing
|
|
7
|
+
* - Platform shell detection
|
|
11
8
|
*/
|
|
12
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
10
|
const utils_1 = require("../utils");
|
|
@@ -47,95 +44,6 @@ describe("Output Truncation", () => {
|
|
|
47
44
|
expect(result).toContain(utils_1.TRUNCATION_MARKER);
|
|
48
45
|
});
|
|
49
46
|
});
|
|
50
|
-
describe("Docker Capabilities", () => {
|
|
51
|
-
it("should include NET_RAW for ping, nmap, raw sockets", () => {
|
|
52
|
-
expect(utils_1.DOCKER_CAPABILITIES).toContain("NET_RAW");
|
|
53
|
-
});
|
|
54
|
-
it("should include NET_ADMIN for network interface tools", () => {
|
|
55
|
-
expect(utils_1.DOCKER_CAPABILITIES).toContain("NET_ADMIN");
|
|
56
|
-
});
|
|
57
|
-
it("should include SYS_PTRACE for debugging tools", () => {
|
|
58
|
-
expect(utils_1.DOCKER_CAPABILITIES).toContain("SYS_PTRACE");
|
|
59
|
-
});
|
|
60
|
-
it("should build capability flags correctly", () => {
|
|
61
|
-
const flags = (0, utils_1.buildDockerCapabilityFlags)();
|
|
62
|
-
expect(flags).toBe("--cap-add=NET_RAW --cap-add=NET_ADMIN --cap-add=SYS_PTRACE");
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe("Docker Run Command", () => {
|
|
66
|
-
it("should build basic docker run command with capabilities", () => {
|
|
67
|
-
const cmd = (0, utils_1.buildDockerRunCommand)({ image: "hackerai/sandbox:latest" });
|
|
68
|
-
expect(cmd).toContain("docker run -d");
|
|
69
|
-
expect(cmd).toContain("--cap-add=NET_RAW");
|
|
70
|
-
expect(cmd).toContain("--cap-add=NET_ADMIN");
|
|
71
|
-
expect(cmd).toContain("--cap-add=SYS_PTRACE");
|
|
72
|
-
expect(cmd).toContain("--network host");
|
|
73
|
-
expect(cmd).toContain("hackerai/sandbox:latest");
|
|
74
|
-
expect(cmd).toContain("tail -f /dev/null");
|
|
75
|
-
});
|
|
76
|
-
it("should include container name when provided", () => {
|
|
77
|
-
const cmd = (0, utils_1.buildDockerRunCommand)({
|
|
78
|
-
image: "hackerai/sandbox:latest",
|
|
79
|
-
containerName: "my-container",
|
|
80
|
-
});
|
|
81
|
-
expect(cmd).toContain("--name my-container");
|
|
82
|
-
});
|
|
83
|
-
it("should not include container name when not provided", () => {
|
|
84
|
-
const cmd = (0, utils_1.buildDockerRunCommand)({ image: "hackerai/sandbox:latest" });
|
|
85
|
-
expect(cmd).not.toContain("--name");
|
|
86
|
-
});
|
|
87
|
-
it("should exclude capabilities when disabled", () => {
|
|
88
|
-
const cmd = (0, utils_1.buildDockerRunCommand)({
|
|
89
|
-
image: "alpine",
|
|
90
|
-
capabilities: false,
|
|
91
|
-
});
|
|
92
|
-
expect(cmd).not.toContain("--cap-add");
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
describe("Sandbox Mode Detection", () => {
|
|
96
|
-
it("should return 'dangerous' when dangerous flag is set", () => {
|
|
97
|
-
const mode = (0, utils_1.getSandboxMode)({
|
|
98
|
-
dangerous: true,
|
|
99
|
-
});
|
|
100
|
-
expect(mode).toBe("dangerous");
|
|
101
|
-
});
|
|
102
|
-
it("should return 'docker' when dangerous flag is not set", () => {
|
|
103
|
-
const mode = (0, utils_1.getSandboxMode)({
|
|
104
|
-
dangerous: false,
|
|
105
|
-
});
|
|
106
|
-
expect(mode).toBe("docker");
|
|
107
|
-
});
|
|
108
|
-
it("should return 'docker' when dangerous flag is undefined", () => {
|
|
109
|
-
const mode = (0, utils_1.getSandboxMode)({});
|
|
110
|
-
expect(mode).toBe("docker");
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
describe("Shell Detection Parsing", () => {
|
|
114
|
-
it("should return bash when found", () => {
|
|
115
|
-
const shell = (0, utils_1.parseShellDetectionOutput)("/bin/bash");
|
|
116
|
-
expect(shell).toBe("/bin/bash");
|
|
117
|
-
});
|
|
118
|
-
it("should return sh when bash not found", () => {
|
|
119
|
-
const shell = (0, utils_1.parseShellDetectionOutput)("/bin/sh");
|
|
120
|
-
expect(shell).toBe("/bin/sh");
|
|
121
|
-
});
|
|
122
|
-
it("should take first line when multiple results", () => {
|
|
123
|
-
const shell = (0, utils_1.parseShellDetectionOutput)("/bin/bash\n/bin/sh");
|
|
124
|
-
expect(shell).toBe("/bin/bash");
|
|
125
|
-
});
|
|
126
|
-
it("should return /bin/sh for empty output", () => {
|
|
127
|
-
const shell = (0, utils_1.parseShellDetectionOutput)("");
|
|
128
|
-
expect(shell).toBe("/bin/sh");
|
|
129
|
-
});
|
|
130
|
-
it("should return /bin/sh for whitespace-only output", () => {
|
|
131
|
-
const shell = (0, utils_1.parseShellDetectionOutput)(" \n ");
|
|
132
|
-
expect(shell).toBe("/bin/sh");
|
|
133
|
-
});
|
|
134
|
-
it("should handle Alpine busybox ash path", () => {
|
|
135
|
-
const shell = (0, utils_1.parseShellDetectionOutput)("/bin/ash");
|
|
136
|
-
expect(shell).toBe("/bin/ash");
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
47
|
describe("Platform Shell Detection", () => {
|
|
140
48
|
it("should return cmd.exe for Windows", () => {
|
|
141
49
|
const result = (0, utils_1.getDefaultShell)("win32");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/__tests__/utils.test.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/__tests__/utils.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* Connects to HackerAI backend via Convex for connection lifecycle
|
|
6
6
|
* and uses Centrifugo for real-time command relay and streaming output.
|
|
7
7
|
*
|
|
8
|
+
* Runs commands directly on the host OS (no Docker isolation).
|
|
9
|
+
*
|
|
8
10
|
* Usage:
|
|
9
|
-
* npx @hackerai/local --token TOKEN --name "My
|
|
10
|
-
* npx @hackerai/local --token TOKEN --name "Work PC" --dangerous
|
|
11
|
+
* npx @hackerai/local --token TOKEN --name "My Machine"
|
|
11
12
|
*/
|
|
12
13
|
export {};
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
|
package/dist/index.js
CHANGED
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
* Connects to HackerAI backend via Convex for connection lifecycle
|
|
7
7
|
* and uses Centrifugo for real-time command relay and streaming output.
|
|
8
8
|
*
|
|
9
|
+
* Runs commands directly on the host OS (no Docker isolation).
|
|
10
|
+
*
|
|
9
11
|
* Usage:
|
|
10
|
-
* npx @hackerai/local --token TOKEN --name "My
|
|
11
|
-
* npx @hackerai/local --token TOKEN --name "Work PC" --dangerous
|
|
12
|
+
* npx @hackerai/local --token TOKEN --name "My Machine"
|
|
12
13
|
*/
|
|
13
14
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -96,22 +97,8 @@ function runShellCommand(command, options = {}) {
|
|
|
96
97
|
});
|
|
97
98
|
});
|
|
98
99
|
}
|
|
99
|
-
function runWithOutput(command, args) {
|
|
100
|
-
return new Promise((resolve, reject) => {
|
|
101
|
-
const proc = (0, child_process_1.spawn)(command, args, { stdio: "inherit" });
|
|
102
|
-
proc.on("close", (code) => {
|
|
103
|
-
if (code === 0)
|
|
104
|
-
resolve();
|
|
105
|
-
else
|
|
106
|
-
reject(new Error(`Process exited with code ${code}`));
|
|
107
|
-
});
|
|
108
|
-
proc.on("error", reject);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
100
|
// Production Convex URL - hardcoded for the published package
|
|
112
101
|
const PRODUCTION_CONVEX_URL = "https://convex.haiusercontent.com";
|
|
113
|
-
// Default pre-built image with all pentesting tools
|
|
114
|
-
const DEFAULT_IMAGE = "hackerai/sandbox";
|
|
115
102
|
// Convex function references (string paths work at runtime)
|
|
116
103
|
const api = {
|
|
117
104
|
localSandbox: {
|
|
@@ -135,8 +122,6 @@ class LocalSandboxClient {
|
|
|
135
122
|
convexHttp;
|
|
136
123
|
centrifuge;
|
|
137
124
|
subscription;
|
|
138
|
-
containerId;
|
|
139
|
-
containerShell = "/bin/bash";
|
|
140
125
|
userId;
|
|
141
126
|
connectionId;
|
|
142
127
|
isShuttingDown = false;
|
|
@@ -149,90 +134,9 @@ class LocalSandboxClient {
|
|
|
149
134
|
}
|
|
150
135
|
async start() {
|
|
151
136
|
console.log(chalk.blue("🚀 Starting HackerAI local sandbox..."));
|
|
152
|
-
|
|
153
|
-
const dockerCheck = await runShellCommand("docker --version", {
|
|
154
|
-
timeout: 5000,
|
|
155
|
-
});
|
|
156
|
-
if (dockerCheck.exitCode !== 0) {
|
|
157
|
-
console.error(chalk.red("❌ Docker not found. Please install Docker or use --dangerous mode."));
|
|
158
|
-
process.exit(1);
|
|
159
|
-
}
|
|
160
|
-
console.log(chalk.green("✓ Docker is available"));
|
|
161
|
-
this.containerId = await this.createContainer();
|
|
162
|
-
console.log(chalk.green(`✓ Container: ${this.containerId.slice(0, 12)}`));
|
|
163
|
-
await this.detectContainerShell();
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
console.log(chalk.yellow("⚠️ DANGEROUS MODE - Commands will run directly on your OS!"));
|
|
167
|
-
}
|
|
137
|
+
console.log(chalk.yellow("⚠️ Commands run directly on your OS without any isolation."));
|
|
168
138
|
await this.connect();
|
|
169
139
|
}
|
|
170
|
-
getContainerName() {
|
|
171
|
-
const sanitized = this.config.name
|
|
172
|
-
.toLowerCase()
|
|
173
|
-
.replace(/[^a-z0-9-]/g, "-")
|
|
174
|
-
.replace(/-+/g, "-")
|
|
175
|
-
.replace(/^-|-$/g, "");
|
|
176
|
-
return `hackerai-sandbox-${sanitized || "default"}`;
|
|
177
|
-
}
|
|
178
|
-
async findExistingContainer(containerName) {
|
|
179
|
-
const result = await runShellCommand(`docker ps -a --filter "name=^${containerName}$" --format "{{.ID}}|{{.State}}"`, { timeout: 5000 });
|
|
180
|
-
if (result.exitCode !== 0 || !result.stdout.trim()) {
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
const [id, state] = result.stdout.trim().split("|");
|
|
184
|
-
return { id, running: state === "running" };
|
|
185
|
-
}
|
|
186
|
-
async createContainer() {
|
|
187
|
-
if (this.config.persist) {
|
|
188
|
-
const containerName = this.getContainerName();
|
|
189
|
-
const existing = await this.findExistingContainer(containerName);
|
|
190
|
-
if (existing) {
|
|
191
|
-
if (existing.running) {
|
|
192
|
-
console.log(chalk.green(`✓ Reusing existing container: ${containerName}`));
|
|
193
|
-
return existing.id;
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
console.log(chalk.blue(`Starting existing container: ${containerName}`));
|
|
197
|
-
const startResult = await runShellCommand(`docker start ${existing.id}`, { timeout: 30000 });
|
|
198
|
-
if (startResult.exitCode === 0) {
|
|
199
|
-
console.log(chalk.green(`✓ Container started: ${containerName}`));
|
|
200
|
-
return existing.id;
|
|
201
|
-
}
|
|
202
|
-
console.log(chalk.yellow(`⚠️ Failed to start, creating new container...`));
|
|
203
|
-
await runShellCommand(`docker rm -f ${existing.id}`, {
|
|
204
|
-
timeout: 5000,
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
if (this.config.build) {
|
|
210
|
-
console.log(chalk.red("❌ --build flag is not supported in the npx package."));
|
|
211
|
-
process.exit(1);
|
|
212
|
-
}
|
|
213
|
-
console.log(chalk.blue(`Pulling pre-built image: ${DEFAULT_IMAGE}`));
|
|
214
|
-
console.log(chalk.gray("(First run may take a few minutes to download the image)"));
|
|
215
|
-
console.log("");
|
|
216
|
-
try {
|
|
217
|
-
await runWithOutput("docker", ["pull", DEFAULT_IMAGE]);
|
|
218
|
-
console.log(chalk.green("✓ Image ready"));
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
222
|
-
console.error(chalk.red("❌ Failed to pull image:"), message);
|
|
223
|
-
process.exit(1);
|
|
224
|
-
}
|
|
225
|
-
console.log(chalk.blue("Creating Docker container..."));
|
|
226
|
-
const dockerCommand = (0, utils_1.buildDockerRunCommand)({
|
|
227
|
-
image: DEFAULT_IMAGE,
|
|
228
|
-
containerName: this.config.persist ? this.getContainerName() : undefined,
|
|
229
|
-
});
|
|
230
|
-
const result = await runShellCommand(dockerCommand, { timeout: 60000 });
|
|
231
|
-
if (result.exitCode !== 0) {
|
|
232
|
-
throw new Error(`Failed to create container: ${result.stderr}`);
|
|
233
|
-
}
|
|
234
|
-
return result.stdout.trim();
|
|
235
|
-
}
|
|
236
140
|
getOsInfo() {
|
|
237
141
|
return {
|
|
238
142
|
platform: os_1.default.platform(),
|
|
@@ -241,41 +145,14 @@ class LocalSandboxClient {
|
|
|
241
145
|
hostname: os_1.default.hostname(),
|
|
242
146
|
};
|
|
243
147
|
}
|
|
244
|
-
getMode() {
|
|
245
|
-
return (0, utils_1.getSandboxMode)({
|
|
246
|
-
dangerous: this.config.dangerous,
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
getModeDisplay() {
|
|
250
|
-
const mode = this.getMode();
|
|
251
|
-
if (mode === "dangerous") {
|
|
252
|
-
return "DANGEROUS";
|
|
253
|
-
}
|
|
254
|
-
return "Docker";
|
|
255
|
-
}
|
|
256
|
-
async detectContainerShell() {
|
|
257
|
-
if (!this.containerId)
|
|
258
|
-
return;
|
|
259
|
-
const result = await runShellCommand(`docker exec ${this.containerId} sh -c 'command -v bash || command -v sh || echo /bin/sh'`, { timeout: 5000 });
|
|
260
|
-
if (result.exitCode === 0) {
|
|
261
|
-
this.containerShell = (0, utils_1.parseShellDetectionOutput)(result.stdout);
|
|
262
|
-
console.log(chalk.green(`✓ Shell: ${this.containerShell}`));
|
|
263
|
-
}
|
|
264
|
-
else {
|
|
265
|
-
this.containerShell = "/bin/sh";
|
|
266
|
-
console.log(chalk.yellow(`⚠️ Shell detection failed, using ${this.containerShell}`));
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
148
|
async connect() {
|
|
270
149
|
console.log(chalk.blue("Connecting to HackerAI..."));
|
|
271
150
|
try {
|
|
272
151
|
const result = (await this.convexHttp.mutation(api.localSandbox.connect, {
|
|
273
152
|
token: this.config.token,
|
|
274
153
|
connectionName: this.config.name,
|
|
275
|
-
containerId: this.containerId,
|
|
276
154
|
clientVersion: "1.0.0",
|
|
277
|
-
|
|
278
|
-
osInfo: this.config.dangerous ? this.getOsInfo() : undefined,
|
|
155
|
+
osInfo: this.getOsInfo(),
|
|
279
156
|
}));
|
|
280
157
|
if (!result.success ||
|
|
281
158
|
!result.centrifugoToken ||
|
|
@@ -287,7 +164,6 @@ class LocalSandboxClient {
|
|
|
287
164
|
console.log(chalk.green("✓ Authenticated"));
|
|
288
165
|
console.log(chalk.bold(chalk.green("🎉 Local sandbox is ready!")));
|
|
289
166
|
console.log(chalk.gray(`Connection: ${this.connectionId}`));
|
|
290
|
-
console.log(chalk.gray(`Mode: ${this.getModeDisplay()}${this.config.persist ? " (persistent)" : ""}`));
|
|
291
167
|
this.setupCentrifugo(result.centrifugoWsUrl, result.centrifugoToken);
|
|
292
168
|
this.startIdleCheck();
|
|
293
169
|
}
|
|
@@ -432,19 +308,9 @@ class LocalSandboxClient {
|
|
|
432
308
|
return new Promise((resolve) => {
|
|
433
309
|
let killed = false;
|
|
434
310
|
let timeoutId;
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
if (this.config.dangerous) {
|
|
439
|
-
proc = (0, child_process_1.spawn)(DEFAULT_SHELL.shell, [DEFAULT_SHELL.shellFlag, fullCommand], {
|
|
440
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
441
|
-
});
|
|
442
|
-
}
|
|
443
|
-
else {
|
|
444
|
-
const escapedCommand = fullCommand.replace(/'/g, "'\\''");
|
|
445
|
-
const shellName = this.containerShell.split("/").pop() || "sh";
|
|
446
|
-
proc = (0, child_process_1.spawn)("docker", ["exec", this.containerId, shellName, "-c", escapedCommand], { stdio: ["ignore", "pipe", "pipe"] });
|
|
447
|
-
}
|
|
311
|
+
const proc = (0, child_process_1.spawn)(DEFAULT_SHELL.shell, [DEFAULT_SHELL.shellFlag, fullCommand], {
|
|
312
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
313
|
+
});
|
|
448
314
|
if (commandTimeout > 0) {
|
|
449
315
|
timeoutId = setTimeout(() => {
|
|
450
316
|
killed = true;
|
|
@@ -456,9 +322,9 @@ class LocalSandboxClient {
|
|
|
456
322
|
}, 2000);
|
|
457
323
|
}, commandTimeout);
|
|
458
324
|
}
|
|
325
|
+
let accumulatedStderr = "";
|
|
459
326
|
proc.stdout?.on("data", (data) => {
|
|
460
327
|
const chunk = data.toString();
|
|
461
|
-
accumulatedStdout += chunk;
|
|
462
328
|
this.publishToChannel({
|
|
463
329
|
type: "stdout",
|
|
464
330
|
commandId,
|
|
@@ -539,24 +405,12 @@ class LocalSandboxClient {
|
|
|
539
405
|
});
|
|
540
406
|
}
|
|
541
407
|
async spawnBackground(fullCommand) {
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
return child.pid ?? -1;
|
|
549
|
-
}
|
|
550
|
-
else {
|
|
551
|
-
const escapedCommand = fullCommand.replace(/'/g, "'\\''");
|
|
552
|
-
const shellName = this.containerShell.split("/").pop() || "sh";
|
|
553
|
-
const result = await runShellCommand(`docker exec ${this.containerId} ${shellName} -c 'nohup ${escapedCommand} > /dev/null 2>&1 & echo $!'`, { timeout: 5000 });
|
|
554
|
-
if (result.exitCode === 0 && result.stdout.trim()) {
|
|
555
|
-
const pid = parseInt(result.stdout.trim(), 10);
|
|
556
|
-
return isNaN(pid) ? -1 : pid;
|
|
557
|
-
}
|
|
558
|
-
return -1;
|
|
559
|
-
}
|
|
408
|
+
const child = (0, child_process_1.spawn)(DEFAULT_SHELL.shell, [DEFAULT_SHELL.shellFlag, fullCommand], {
|
|
409
|
+
detached: os_1.default.platform() !== "win32",
|
|
410
|
+
stdio: "ignore",
|
|
411
|
+
});
|
|
412
|
+
child.unref();
|
|
413
|
+
return child.pid ?? -1;
|
|
560
414
|
}
|
|
561
415
|
startIdleCheck() {
|
|
562
416
|
this.idleCheckInterval = setInterval(() => {
|
|
@@ -607,23 +461,6 @@ class LocalSandboxClient {
|
|
|
607
461
|
console.warn(chalk.yellow(`⚠️ Failed to disconnect: ${message}`));
|
|
608
462
|
}
|
|
609
463
|
}
|
|
610
|
-
if (this.containerId) {
|
|
611
|
-
if (this.config.persist) {
|
|
612
|
-
console.log(chalk.green(`✓ Container preserved: ${this.getContainerName()}`));
|
|
613
|
-
console.log(chalk.gray(" (Use --persist again to reuse it, or docker rm to remove)"));
|
|
614
|
-
}
|
|
615
|
-
else {
|
|
616
|
-
const result = await runShellCommand(`docker rm -f ${this.containerId}`, {
|
|
617
|
-
timeout: 3000,
|
|
618
|
-
});
|
|
619
|
-
if (result.exitCode === 0) {
|
|
620
|
-
console.log(chalk.green("✓ Container removed"));
|
|
621
|
-
}
|
|
622
|
-
else {
|
|
623
|
-
console.error(chalk.red("Error removing container:"), result.stderr);
|
|
624
|
-
}
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
464
|
}
|
|
628
465
|
finally {
|
|
629
466
|
clearTimeout(forceExitTimeout);
|
|
@@ -650,29 +487,16 @@ ${chalk.yellow("Usage:")}
|
|
|
650
487
|
${chalk.yellow("Options:")}
|
|
651
488
|
--token TOKEN Authentication token from Settings (required)
|
|
652
489
|
--name NAME Connection name (default: hostname)
|
|
653
|
-
--dangerous Run commands directly on host OS (no Docker)
|
|
654
|
-
--persist Keep container running on exit and reuse if exists
|
|
655
490
|
--convex-url URL Override Convex backend URL (for development)
|
|
656
491
|
--help, -h Show this help message
|
|
657
492
|
|
|
658
493
|
${chalk.yellow("Examples:")}
|
|
659
|
-
# Basic usage - pulls pre-built image with 30+ pentesting tools
|
|
660
494
|
npx @hackerai/local --token hsb_abc123 --name "My Laptop"
|
|
661
|
-
|
|
662
|
-
# Persistent container (faster restarts, preserves installed packages)
|
|
663
|
-
npx @hackerai/local --token hsb_abc123 --name "Dev" --persist
|
|
664
|
-
|
|
665
|
-
# Dangerous mode (no Docker isolation) - use with caution!
|
|
666
|
-
npx @hackerai/local --token hsb_abc123 --name "Work PC" --dangerous
|
|
667
|
-
|
|
668
|
-
${chalk.cyan("Pre-built Image:")}
|
|
669
|
-
The default image includes: nmap, sqlmap, ffuf, gobuster, nuclei, hydra,
|
|
670
|
-
nikto, wpscan, subfinder, httpx, and 20+ more pentesting tools.
|
|
495
|
+
npx @hackerai/local --token hsb_abc123 --name "Work PC"
|
|
671
496
|
|
|
672
497
|
${chalk.red("⚠️ Security Warning:")}
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
In DANGEROUS mode, commands run directly on your OS without any isolation.
|
|
498
|
+
Commands run directly on your OS without any isolation.
|
|
499
|
+
Only connect machines you trust and control.
|
|
676
500
|
|
|
677
501
|
${chalk.cyan("Auto-termination:")}
|
|
678
502
|
The client automatically terminates after 1 hour of inactivity (no commands
|
|
@@ -684,9 +508,6 @@ const config = {
|
|
|
684
508
|
convexUrl: getArg("--convex-url") || PRODUCTION_CONVEX_URL,
|
|
685
509
|
token: getArg("--token") || "",
|
|
686
510
|
name: getArg("--name") || os_1.default.hostname(),
|
|
687
|
-
dangerous: hasFlag("--dangerous"),
|
|
688
|
-
build: hasFlag("--build"),
|
|
689
|
-
persist: hasFlag("--persist"),
|
|
690
511
|
};
|
|
691
512
|
if (!config.token) {
|
|
692
513
|
console.error(chalk.red("❌ No authentication token provided"));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|