sandbox-cli 0.2.30__tar.gz → 0.2.32__tar.gz
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.
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/PKG-INFO +3 -3
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/pyproject.toml +3 -3
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/scanner/__init__.py +14 -4
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/scanner/advanced.py +8 -4
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/.gitignore +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/LICENSE +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/NOTICE +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/README.md +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/__main__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/downloader.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/images.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/reporter.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/rules/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/unpack.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/console.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/internal/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/internal/config.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/internal/helpers.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/models/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/models/detections.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/models/sandbox_arguments.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/abc.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/docker.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/ssh.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/downloader/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/extractors.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/merge_dll_hooks.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/scanner/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/scanner/rescan.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/__init__.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/abc.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/correlation.py +0 -0
- {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/sort_by_plugins.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sandbox-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.32
|
|
4
4
|
Summary: Command line tool for interaction with sandboxes
|
|
5
5
|
Project-URL: Homepage, https://github.com/Security-Experts-Community/sandbox-cli
|
|
6
6
|
Project-URL: Documentation, https://security-experts-community.github.io/sandbox-cli
|
|
@@ -14,9 +14,9 @@ Requires-Python: >=3.11
|
|
|
14
14
|
Requires-Dist: aiofiles>=24.1.0
|
|
15
15
|
Requires-Dist: asyncssh>=2.20.0
|
|
16
16
|
Requires-Dist: cryptography>=44.0.2
|
|
17
|
-
Requires-Dist: cyclopts>=3.
|
|
17
|
+
Requires-Dist: cyclopts>=3.16.0
|
|
18
18
|
Requires-Dist: docker>=7.1.0
|
|
19
|
-
Requires-Dist: ptsandbox>=5.0.
|
|
19
|
+
Requires-Dist: ptsandbox>=5.0.4
|
|
20
20
|
Requires-Dist: pyzipper>=0.3.6
|
|
21
21
|
Requires-Dist: rich>=14.0.0
|
|
22
22
|
Requires-Dist: zstandard>=0.23.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "sandbox-cli"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.32"
|
|
4
4
|
description = "Command line tool for interaction with sandboxes"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -11,9 +11,9 @@ dependencies = [
|
|
|
11
11
|
"aiofiles>=24.1.0",
|
|
12
12
|
"asyncssh>=2.20.0",
|
|
13
13
|
"cryptography>=44.0.2",
|
|
14
|
-
"cyclopts>=3.
|
|
14
|
+
"cyclopts>=3.16.0",
|
|
15
15
|
"docker>=7.1.0",
|
|
16
|
-
"ptsandbox>=5.0.
|
|
16
|
+
"ptsandbox>=5.0.4",
|
|
17
17
|
"pyzipper>=0.3.6",
|
|
18
18
|
"rich>=14.0.0",
|
|
19
19
|
"zstandard>=0.23.0",
|
|
@@ -514,11 +514,11 @@ async def scan_new(
|
|
|
514
514
|
group="Sandbox Options",
|
|
515
515
|
),
|
|
516
516
|
] = 3,
|
|
517
|
-
|
|
517
|
+
no_procdumps_on_finish: Annotated[
|
|
518
518
|
bool,
|
|
519
519
|
Parameter(
|
|
520
|
-
name=["--
|
|
521
|
-
help="
|
|
520
|
+
name=["--no-procdumps-on-finish", "-P"],
|
|
521
|
+
help="Disable dumps for all created and not finished processes",
|
|
522
522
|
group="Sandbox Options",
|
|
523
523
|
negative="",
|
|
524
524
|
),
|
|
@@ -586,6 +586,15 @@ async def scan_new(
|
|
|
586
586
|
negative="",
|
|
587
587
|
),
|
|
588
588
|
] = None,
|
|
589
|
+
outbound_connections: Annotated[
|
|
590
|
+
list[str] | None,
|
|
591
|
+
Parameter(
|
|
592
|
+
name=["--outbound-connections", "-oc"],
|
|
593
|
+
help="Whitelist of IP addresses to which connections from a VM are allowed (backconnect)",
|
|
594
|
+
group="Sandbox Options",
|
|
595
|
+
negative="",
|
|
596
|
+
),
|
|
597
|
+
] = None,
|
|
589
598
|
all: Annotated[
|
|
590
599
|
bool,
|
|
591
600
|
Parameter(
|
|
@@ -708,7 +717,7 @@ async def scan_new(
|
|
|
708
717
|
fake_name=fake_name,
|
|
709
718
|
unpack=unpack,
|
|
710
719
|
priority=priority,
|
|
711
|
-
|
|
720
|
+
no_procdumps_on_finish=no_procdumps_on_finish,
|
|
712
721
|
bootkitmon=bootkitmon,
|
|
713
722
|
bootkitmon_duration=bootkitmon_duration,
|
|
714
723
|
mitm_disabled=mitm_disabled,
|
|
@@ -725,4 +734,5 @@ async def scan_new(
|
|
|
725
734
|
procdumps=procdumps,
|
|
726
735
|
decompress=decompress,
|
|
727
736
|
open_browser=open_browser,
|
|
737
|
+
outbound_connections=outbound_connections,
|
|
728
738
|
)
|
|
@@ -74,13 +74,14 @@ async def _prepare_sandbox_new_scan(
|
|
|
74
74
|
syscall_hooks: Path | None,
|
|
75
75
|
dll_hooks_dir: Path | None,
|
|
76
76
|
custom_command: str | None,
|
|
77
|
-
|
|
77
|
+
no_procdumps_on_finish: bool,
|
|
78
78
|
bootkitmon: bool,
|
|
79
79
|
bootkitmon_duration: int,
|
|
80
80
|
mitm_disabled: bool,
|
|
81
81
|
disable_clicker: bool,
|
|
82
82
|
skip_sample_run: bool,
|
|
83
83
|
vnc_mode: VNCMode,
|
|
84
|
+
outbound_connections: list[str] | None,
|
|
84
85
|
) -> tuple[Sandbox, SandboxOptionsAdvanced, set[VMImage | str]]:
|
|
85
86
|
sandbox = Sandbox(key=sandbox_key)
|
|
86
87
|
|
|
@@ -161,7 +162,8 @@ async def _prepare_sandbox_new_scan(
|
|
|
161
162
|
sandbox_options.custom_command = custom_command
|
|
162
163
|
|
|
163
164
|
# add extra options
|
|
164
|
-
sandbox_options.
|
|
165
|
+
sandbox_options.debug_options["allowed_outbound_connections"] = outbound_connections or []
|
|
166
|
+
sandbox_options.procdump_new_processes_on_finish = not no_procdumps_on_finish
|
|
165
167
|
sandbox_options.bootkitmon = bootkitmon
|
|
166
168
|
sandbox_options.analysis_duration_bootkitmon = bootkitmon_duration
|
|
167
169
|
sandbox_options.mitm_enabled = not mitm_disabled
|
|
@@ -189,7 +191,7 @@ async def scan_internal_advanced(
|
|
|
189
191
|
fake_name: str | None,
|
|
190
192
|
unpack: bool,
|
|
191
193
|
priority: int,
|
|
192
|
-
|
|
194
|
+
no_procdumps_on_finish: bool,
|
|
193
195
|
bootkitmon: bool,
|
|
194
196
|
bootkitmon_duration: int,
|
|
195
197
|
mitm_disabled: bool,
|
|
@@ -206,6 +208,7 @@ async def scan_internal_advanced(
|
|
|
206
208
|
procdumps: bool,
|
|
207
209
|
decompress: bool,
|
|
208
210
|
open_browser: bool,
|
|
211
|
+
outbound_connections: list[str] | None,
|
|
209
212
|
) -> None:
|
|
210
213
|
key = get_key_by_name(key_name)
|
|
211
214
|
sandbox_sem = asyncio.Semaphore(value=key.max_workers)
|
|
@@ -348,13 +351,14 @@ async def scan_internal_advanced(
|
|
|
348
351
|
syscall_hooks,
|
|
349
352
|
dll_hooks_dir,
|
|
350
353
|
custom_command,
|
|
351
|
-
|
|
354
|
+
no_procdumps_on_finish,
|
|
352
355
|
bootkitmon,
|
|
353
356
|
bootkitmon_duration,
|
|
354
357
|
mitm_disabled,
|
|
355
358
|
disable_clicker,
|
|
356
359
|
skip_sample_run,
|
|
357
360
|
vnc_mode,
|
|
361
|
+
outbound_connections,
|
|
358
362
|
)
|
|
359
363
|
max_image_length = max(len(x) for x in images)
|
|
360
364
|
for i, image_id in enumerate(images):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/sort_by_plugins.py
RENAMED
|
File without changes
|