@b0xs/recorder 1.0.30 → 1.0.31
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.
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* boxs lab --vpn ./lame.ovpn
|
|
10
10
|
* boxs lab --vpn ./lame.ovpn --title "HTB — Lame" --visibility public
|
|
11
11
|
* boxs lab --vpn ./lame.ovpn --no-stream
|
|
12
|
+
*
|
|
13
|
+
* SEC-2a: VPN runs in a dedicated sidecar container (has NET_ADMIN). The PTY
|
|
14
|
+
* container shares the sidecar's network namespace but has no NET_ADMIN —
|
|
15
|
+
* relay operators cannot run iptables or modify the network stack.
|
|
12
16
|
*/
|
|
13
17
|
export interface LabOptions {
|
|
14
18
|
vpn: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lab.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/lab.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lab.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/lab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAiBH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAkLnE"}
|
package/dist/cli/commands/lab.js
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
* boxs lab --vpn ./lame.ovpn
|
|
11
11
|
* boxs lab --vpn ./lame.ovpn --title "HTB — Lame" --visibility public
|
|
12
12
|
* boxs lab --vpn ./lame.ovpn --no-stream
|
|
13
|
+
*
|
|
14
|
+
* SEC-2a: VPN runs in a dedicated sidecar container (has NET_ADMIN). The PTY
|
|
15
|
+
* container shares the sidecar's network namespace but has no NET_ADMIN —
|
|
16
|
+
* relay operators cannot run iptables or modify the network stack.
|
|
13
17
|
*/
|
|
14
18
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
19
|
if (k2 === undefined) k2 = k;
|
|
@@ -96,9 +100,6 @@ async function labCommand(options) {
|
|
|
96
100
|
if (options.sessionId) {
|
|
97
101
|
sessionId = options.sessionId;
|
|
98
102
|
console.log(chalk_1.default.green(`✔ Attached to session ${sessionId}`));
|
|
99
|
-
// Always call start-stream to re-open the session (it may be 'completed'
|
|
100
|
-
// from a previous run) and get a fresh token. The passed --stream-token is
|
|
101
|
-
// only used as a fallback if the API call fails (network issue, etc.).
|
|
102
103
|
if (options.stream !== false) {
|
|
103
104
|
const streamSpinner = (0, ora_1.default)('Opening stream...').start();
|
|
104
105
|
try {
|
|
@@ -160,56 +161,66 @@ async function labCommand(options) {
|
|
|
160
161
|
console.log(chalk_1.default.gray(' VPN: ') + chalk_1.default.white(vpnPath));
|
|
161
162
|
console.log(chalk_1.default.gray(' Image: ') + chalk_1.default.white(PTY_IMAGE));
|
|
162
163
|
console.log(chalk_1.default.gray('\nPress Ctrl+C inside the container to stop recording.\n'));
|
|
164
|
+
// ── Start VPN sidecar (SEC-2a) ─────────────────────────────────────────────
|
|
165
|
+
// The sidecar owns NET_ADMIN + the network namespace. It starts OpenVPN and
|
|
166
|
+
// applies iptables egress rules. The PTY container shares this namespace via
|
|
167
|
+
// --network container:<sidecar> — with no NET_ADMIN, so operators cannot
|
|
168
|
+
// flush iptables from inside the hacking environment.
|
|
169
|
+
const sidecarName = `boxs-vpn-${sessionId.slice(0, 8)}`;
|
|
170
|
+
await startVpnSidecar(sidecarName, vpnPath);
|
|
171
|
+
// Ensure sidecar is stopped on any exit path
|
|
172
|
+
let sidecarStopped = false;
|
|
173
|
+
const cleanupSidecar = () => {
|
|
174
|
+
if (sidecarStopped)
|
|
175
|
+
return;
|
|
176
|
+
sidecarStopped = true;
|
|
177
|
+
child_process.execSync(`docker stop ${sidecarName} 2>/dev/null || true`);
|
|
178
|
+
};
|
|
179
|
+
process.once('SIGINT', cleanupSidecar);
|
|
180
|
+
process.once('SIGTERM', cleanupSidecar);
|
|
181
|
+
// Wait for VPN to be ready before starting the PTY container
|
|
182
|
+
await waitForVpnReady(sidecarName);
|
|
163
183
|
// ── Build docker run args ───────────────────────────────────────────────────
|
|
164
184
|
//
|
|
165
|
-
// Security model:
|
|
166
|
-
// --
|
|
167
|
-
// --cap-
|
|
168
|
-
// --
|
|
169
|
-
//
|
|
185
|
+
// Security model (SEC-2a):
|
|
186
|
+
// --network container:<sidecar> shares the VPN network namespace
|
|
187
|
+
// --cap-drop ALL drop everything
|
|
188
|
+
// --cap-add NET_RAW nmap/masscan/ping setcap binaries need this
|
|
189
|
+
// --cap-add SETUID / SETGID gosu needs these to switch root → operator
|
|
170
190
|
//
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
// gets NET_ADMIN only to start OpenVPN. Iptables rules inside the container
|
|
174
|
-
// restrict egress to the target IP + ws.boxs.sh once VPN is up (entrypoint.sh).
|
|
191
|
+
// NO --cap-add NET_ADMIN operator cannot run iptables or add routes
|
|
192
|
+
// NO --device /dev/net/tun tun0 lives in the shared namespace already
|
|
175
193
|
//
|
|
176
194
|
const dockerArgs = [
|
|
177
195
|
'run', '--rm', '--interactive', '--tty',
|
|
178
196
|
'--platform', 'linux/amd64',
|
|
197
|
+
'--network', `container:${sidecarName}`,
|
|
179
198
|
'--cap-drop', 'ALL',
|
|
180
|
-
'--cap-add', '
|
|
181
|
-
'--cap-add', '
|
|
182
|
-
'--cap-add', '
|
|
183
|
-
|
|
184
|
-
'--device', '/dev/net/tun', // OpenVPN needs /dev/net/tun
|
|
185
|
-
// Required env vars for the recorder inside the container.
|
|
186
|
-
// No account-level API key — only session-scoped tokens.
|
|
199
|
+
'--cap-add', 'NET_RAW', // nmap/masscan/ping (setcap binaries)
|
|
200
|
+
'--cap-add', 'SETUID', // gosu: root → operator
|
|
201
|
+
'--cap-add', 'SETGID', // gosu: group switch
|
|
202
|
+
// Session-scoped tokens only — no account-level API key in the container
|
|
187
203
|
'--env', `SESSION_ID=${sessionId}`,
|
|
188
204
|
'--env', `USER_ID=${userId}`,
|
|
189
205
|
'--env', `STREAM_TOKEN=${streamToken}`,
|
|
190
206
|
'--env', `UPLOAD_TOKEN=${uploadToken}`,
|
|
191
207
|
'--env', `WS_URL=${wsUrl}`,
|
|
192
|
-
// Mount VPN config read-only
|
|
193
|
-
'--env', `VPN_CONFIG=/tmp/vpn.ovpn`,
|
|
194
|
-
'--volume', `${vpnPath}:/tmp/vpn.ovpn:ro`,
|
|
195
208
|
// SecLists volume (populated once, reused across all sessions)
|
|
196
209
|
'--volume', `${SECLISTS_VOLUME}:/usr/share/seclists:ro`,
|
|
197
210
|
PTY_IMAGE,
|
|
198
211
|
];
|
|
199
212
|
// ── Hand off to docker run ─────────────────────────────────────────────────
|
|
200
|
-
// stdio: inherit — the container's TTY IS your terminal session.
|
|
201
|
-
// This call blocks until the user types `exit` or Ctrl+C.
|
|
202
213
|
const docker = child_process.spawn('docker', dockerArgs, {
|
|
203
214
|
stdio: 'inherit',
|
|
204
215
|
});
|
|
205
216
|
docker.on('error', (err) => {
|
|
206
217
|
console.error(chalk_1.default.red(`\n✗ Failed to start Docker: ${err.message}\n`));
|
|
218
|
+
cleanupSidecar();
|
|
207
219
|
process.exit(1);
|
|
208
220
|
});
|
|
209
221
|
docker.on('exit', (code) => {
|
|
210
|
-
|
|
211
|
-
//
|
|
212
|
-
// network drop, Ctrl+C without clean shutdown, etc.).
|
|
222
|
+
cleanupSidecar();
|
|
223
|
+
// Mark session completed even if the recorder didn't get a clean shutdown
|
|
213
224
|
const stopUrl = `${apiUrl}/api/sessions/${sessionId}/stop-stream`;
|
|
214
225
|
fetch(stopUrl, {
|
|
215
226
|
method: 'POST',
|
|
@@ -230,9 +241,50 @@ async function checkDocker() {
|
|
|
230
241
|
process.exit(1);
|
|
231
242
|
}
|
|
232
243
|
}
|
|
244
|
+
async function startVpnSidecar(name, vpnPath) {
|
|
245
|
+
const spinner = (0, ora_1.default)('Starting VPN sidecar...').start();
|
|
246
|
+
try {
|
|
247
|
+
// Remove any stale container with the same name before starting
|
|
248
|
+
await exec(`docker rm -f ${name} 2>/dev/null || true`);
|
|
249
|
+
await exec(`docker run -d --rm --name ${name} --platform linux/amd64 ` +
|
|
250
|
+
`--cap-drop ALL --cap-add NET_ADMIN ` +
|
|
251
|
+
`--device /dev/net/tun ` +
|
|
252
|
+
`--volume ${vpnPath}:/tmp/vpn.ovpn:ro ` +
|
|
253
|
+
`--env VPN_CONFIG=/tmp/vpn.ovpn ` +
|
|
254
|
+
`--entrypoint /usr/local/bin/boxs-sidecar ` +
|
|
255
|
+
`${PTY_IMAGE}`);
|
|
256
|
+
spinner.succeed(chalk_1.default.green('VPN sidecar started'));
|
|
257
|
+
}
|
|
258
|
+
catch (err) {
|
|
259
|
+
spinner.fail(chalk_1.default.red('Failed to start VPN sidecar'));
|
|
260
|
+
console.error(chalk_1.default.gray(` ${err.message}`));
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
async function waitForVpnReady(name) {
|
|
265
|
+
const spinner = (0, ora_1.default)('Waiting for VPN...').start();
|
|
266
|
+
const timeout = 60;
|
|
267
|
+
for (let i = 0; i < timeout; i++) {
|
|
268
|
+
try {
|
|
269
|
+
const { stdout } = await exec(`docker exec ${name} ip link show tun0 2>/dev/null && echo READY || true`);
|
|
270
|
+
if (stdout.includes('READY')) {
|
|
271
|
+
spinner.succeed(chalk_1.default.green('VPN connected'));
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch { /* not ready yet */ }
|
|
276
|
+
await new Promise(r => setTimeout(r, 1000));
|
|
277
|
+
}
|
|
278
|
+
// Timeout — dump sidecar logs before exiting
|
|
279
|
+
const logs = await exec(`docker logs ${name} 2>&1`)
|
|
280
|
+
.then(r => r.stdout)
|
|
281
|
+
.catch(() => '(no logs)');
|
|
282
|
+
spinner.fail(chalk_1.default.red('VPN did not connect within 60s'));
|
|
283
|
+
console.error(chalk_1.default.gray(logs));
|
|
284
|
+
child_process.execSync(`docker stop ${name} 2>/dev/null || true`);
|
|
285
|
+
process.exit(1);
|
|
286
|
+
}
|
|
233
287
|
async function pullImage() {
|
|
234
|
-
// Always pull to pick up updates under the same tag (e.g. :latest).
|
|
235
|
-
// docker pull exits fast if the digest already matches — no re-download needed.
|
|
236
288
|
const isFirstRun = await (async () => {
|
|
237
289
|
try {
|
|
238
290
|
await exec(`docker image inspect ${PTY_IMAGE} --platform linux/amd64 --format "{{.Id}}"`);
|
|
@@ -256,7 +308,6 @@ async function pullImage() {
|
|
|
256
308
|
}
|
|
257
309
|
}
|
|
258
310
|
async function ensureSecLists() {
|
|
259
|
-
// Check if volume exists and is populated
|
|
260
311
|
try {
|
|
261
312
|
const { stdout } = await exec(`docker run --rm -v ${SECLISTS_VOLUME}:/data alpine:latest test -f /data/.populated && echo yes || echo no`);
|
|
262
313
|
if (stdout.trim() === 'yes') {
|
|
@@ -271,13 +322,11 @@ async function ensureSecLists() {
|
|
|
271
322
|
console.log(chalk_1.default.gray(' This takes a few minutes. Subsequent starts are instant.\n'));
|
|
272
323
|
try {
|
|
273
324
|
await exec(`docker volume create ${SECLISTS_VOLUME}`);
|
|
274
|
-
// Use alpine/git which is tiny (~10MB) — we don't need the full boxs-pty image for this
|
|
275
325
|
child_process.execSync(`docker run --rm -v ${SECLISTS_VOLUME}:/data alpine/git:latest clone --depth=1 https://github.com/danielmiessler/SecLists /data`, { stdio: 'inherit' });
|
|
276
326
|
await exec(`docker run --rm -v ${SECLISTS_VOLUME}:/data alpine:latest touch /data/.populated`);
|
|
277
327
|
console.log(chalk_1.default.green('\n SecLists ready\n'));
|
|
278
328
|
}
|
|
279
329
|
catch (err) {
|
|
280
|
-
// Non-fatal — container works without SecLists (just missing wordlists)
|
|
281
330
|
console.log(chalk_1.default.yellow(` Warning: SecLists population failed (${err.message})`));
|
|
282
331
|
console.log(chalk_1.default.gray(' You can populate it manually: boxs-pty/scripts/populate-seclists.sh\n'));
|
|
283
332
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lab.js","sourceRoot":"","sources":["../../../src/cli/commands/lab.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lab.js","sourceRoot":"","sources":["../../../src/cli/commands/lab.ts"],"names":[],"mappings":"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"}
|