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.
Files changed (37) hide show
  1. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/PKG-INFO +3 -3
  2. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/pyproject.toml +3 -3
  3. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/scanner/__init__.py +14 -4
  4. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/scanner/advanced.py +8 -4
  5. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/.gitignore +0 -0
  6. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/LICENSE +0 -0
  7. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/NOTICE +0 -0
  8. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/README.md +0 -0
  9. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/__main__.py +0 -0
  10. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/__init__.py +0 -0
  11. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/downloader.py +0 -0
  12. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/images.py +0 -0
  13. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/reporter.py +0 -0
  14. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/rules/__init__.py +0 -0
  15. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/cli/unpack.py +0 -0
  16. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/console.py +0 -0
  17. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/internal/__init__.py +0 -0
  18. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/internal/config.py +0 -0
  19. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/internal/helpers.py +0 -0
  20. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/models/__init__.py +0 -0
  21. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/models/detections.py +0 -0
  22. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/models/sandbox_arguments.py +0 -0
  23. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/__init__.py +0 -0
  24. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/__init__.py +0 -0
  25. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/abc.py +0 -0
  26. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/docker.py +0 -0
  27. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/compiler/ssh.py +0 -0
  28. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/downloader/__init__.py +0 -0
  29. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/extractors.py +0 -0
  30. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/merge_dll_hooks.py +0 -0
  31. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/scanner/__init__.py +0 -0
  32. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/scanner/rescan.py +0 -0
  33. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/__init__.py +0 -0
  34. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/__init__.py +0 -0
  35. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/abc.py +0 -0
  36. {sandbox_cli-0.2.30 → sandbox_cli-0.2.32}/sandbox_cli/utils/unpack/plugins/correlation.py +0 -0
  37. {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.30
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.12.0
17
+ Requires-Dist: cyclopts>=3.16.0
18
18
  Requires-Dist: docker>=7.1.0
19
- Requires-Dist: ptsandbox>=5.0.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.30"
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.12.0",
14
+ "cyclopts>=3.16.0",
15
15
  "docker>=7.1.0",
16
- "ptsandbox>=5.0.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
- procdump_new_processes_on_finish: Annotated[
517
+ no_procdumps_on_finish: Annotated[
518
518
  bool,
519
519
  Parameter(
520
- name=["--procdump-new-processes-on-finish", "-P"],
521
- help="Collect dumps for all created and not finished processes",
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
- procdump_new_processes_on_finish=procdump_new_processes_on_finish,
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
- procdump_new_processes_on_finish: bool,
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.procdump_new_processes_on_finish = procdump_new_processes_on_finish
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
- procdump_new_processes_on_finish: bool,
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
- procdump_new_processes_on_finish,
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