Skip to content

Commit d2f5f01

Browse files
committed
Merge branch 'master' into staging
2 parents 0761633 + 75db278 commit d2f5f01

File tree

17 files changed

+1407
-678
lines changed

17 files changed

+1407
-678
lines changed

conf/default/gcp.conf.default

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ zone = <zone_name>
55
# Specify the project identifier
66
project = <project_id>
77

8+
# pubsub
9+
subscription_id =
10+
811
# Running in a GCP environment. If true, the Compute Engine credentials will be used
912
running_in_gcp = true
1013

docker/.env.example

Lines changed: 0 additions & 8 deletions
This file was deleted.

docker/Dockerfile

Lines changed: 0 additions & 36 deletions
This file was deleted.

docker/docker-compose.yml

Lines changed: 0 additions & 67 deletions
This file was deleted.

docker/pcap.sh

Lines changed: 0 additions & 4 deletions
This file was deleted.

docker/readme.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

docker/run.sh

Lines changed: 0 additions & 34 deletions
This file was deleted.

docs/book/src/usage/submit.rst

Lines changed: 124 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -113,61 +113,130 @@ some options (in this case a command line argument for the malware)::
113113

114114
``--options`` Options Available
115115
-------------------------------
116-
- ``filename``: Rename the sample file
117-
- ``name``: This will force family extractor to run, Ex: name=trickbot
118-
- ``curdir``: Change from where execute sample, by default %TEMP%, Ex: curdir=%APPDATA% or
119-
curdir=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
120-
- ``executiondir``: Sets directory to launch the file from. Need not be the same as the directory of sample file. Defaults to %TEMP% if both executiondir and curdir are not specified. Only supports full paths
121-
- ``free``: Run without monitoring (disables many capabilities) Ex: free=1
122-
- ``force-sleepskip``: Override default sleep skipping behavior: 0 disables all sleep skipping, 1 skips all sleeps.
123-
- ``full-logs``: By default, logs prior to network activity for URL analyses and prior to access of the file in question for non-executable formats are suppressed. Set to 1 to disable log suppression.
124-
- ``force-flush``: For performance reasons, logs are buffered before being sent back to the result server. We make every attempt to flush the buffer at critical points including when exceptions occur, but in some rare termination scenarios, logs may be lost. Set to 1 to force flushing of the log buffers after any non-duplicate API is called, set to 2 to force flushing of every log.
125-
- ``no-stealth``: Set to 1 to disable anti-anti-VM/sandbox code enabled by default.
126-
- ``buffer-max``: When set to an integer of your choice, changes the maximum number of bytes that can be logged for most API buffers.
127-
- ``large-buffer-max``: Some hooked APIs permit larger buffers to be logged. To change the limit for this, set this to an integer of your choice.
128-
- ``norefer``: Disables use of a fake referrer when performing URL analyses
129-
- ``file``: When using the zip or rar package, set the name of the file to execute
130-
- ``password``: When using the zip or rar package, set the password to use for extraction. Also used when analyzing password-protected Office documents.
131-
- ``function``: When using the dll package, set the name of the exported function to execute
132-
- ``dllloader``: When using the dll package, set the name of the process loading the DLL (defaults to rundll32.exe).
133-
- ``arguments``: When using the dll, exe, or python packages, set the arguments to be passed to the executable or exported function.
134-
- ``appdata``: When using the exe package, set to 1 to run the executable out of the Application Data path instead of the Temp directory.
135-
- ``startbrowser``: Setting this option to 1 will launch a browser 30 seconds into the analysis (useful for some banking trojans).
136-
- ``browserdelay``: Sets the number of seconds to wait before starting the browser with the startbrowser option. Defaults to 30 seconds.
137-
- ``url``: When used with the startbrowser option, this will determine the URL the started browser will access.
138-
- ``debug``: Set to 1 to enable reporting of critical exceptions occurring during analysis, set to 2 to enable reporting of all exceptions.
139-
- ``disable_hook_content``: Set to 1 to remove functionality of all hooks except those critical for monitoring other processes. Set to 2 to apply to all hooks.
140-
- ``hook-type``: Valid for 32-bit analyses only. Specifies the hook type to use: direct, indirect, or safe. Safe attempts a Detours-style hook.
141-
- ``serial``: Spoof the serial of the system volume as the provided hex value
142-
- ``single-process``: When set to 1 this will limit behavior monitoring to the initial process only.
143-
- ``exclude-apis``: Exclude the colon-separated list of APIs from being hooked
144-
- ``exclude-dlls``: Exclude the colon-separated list of DLLs from being hooked
145-
- ``dropped-limit``: Override the default dropped file limit of 100 files
146-
- ``compression``: When set to 1 this will enable CAPE's extraction of compressed payloads
147-
- ``extraction``: When set to 1 this will enable CAPE's extraction of payloads from within each process
148-
- ``injection``: When set to 1 this will enable CAPE's capture of injected payloads between processes
149-
- ``combo``: This combines compression, injection and extraction with process dumps
150-
- ``dump-on-api``: Dump the calling module when a function from the colon-separated list of APIs is used
151-
- ``bp0``: Sets breakpoint 0 (processor/hardware) to a VA or RVA value (or module::export). Applies also to bp1-bp3.
152-
- ``file-offsets``: Breakpoints in bp0-bp3 will be interpreted as PE file offsets rather than RVAs
153-
- ``break-on-return``: Sets breakpoints on the return address(es) from a colon-separated list of APIs
154-
- ``base-on-api``: Sets the base address to which breakpoints will be applied (and sets breakpoints)
155-
- ``depth``: Sets the depth an instruction trace will step into (defaults to 0, requires Trace package)
156-
- ``count``: Sets the number of instructions in a trace (defaults to 128, requires Trace package)
157-
- ``referrer``: Specify the referrer to be used for URL tasks, overriding the default Google referrer
158-
- ``loop_detection``: Set this option to 1 to enable loop detection (compress call logs - behavior analysis)
159-
- ``static``: Check if config can be extracted statically, if not, send to vm
160-
- ``Dl&Exec add headers``: Example: dnl_user_agent: "CAPE Sandbox", dnl_referrer: google
161-
- ``servicedesc`` - for service package: Service description
162-
- ``arguments`` - for service package: Service arguments
163-
- ``store_memdump``: Will force STORE memdump, only when submitting to analyzer node directly, as distributed cluster can modify this
164-
- ``pre_script_args``: Command line arguments for pre_script. Example: pre_script_args=file1 file2 file3
165-
- ``pre_script_timeout``: pre_script_timeout will default to 60 seconds. Script will stop after timeout Example: pre_script_timeout=30
166-
- ``during_script_args``: Command line arguments for during_script. Example: during_script_args=file1 file2 file3
167-
- ``pwsh``: - for ps1 package: prefer PowerShell Core, if available in the vm
168-
- ``check_shellcode``: - Setting check_shellcode=0 will disable checking for shellcode during package identification and extracting from archive
169-
- ``unhook-apis``: - capability to dynamically unhook previously hooked functions (unhook-apis option takes colon-separated list e.g. unhook-apis=NtSetInformationThread:NtDelayExecution)
170-
- ``ttd``: - ttd=1. TTD integration (Microsoft Time Travel Debugging). Place TTD binaries in analyzer/windows/bin (with wow64 subdirectory for 32-bit). .trc files output to TTD directory in results folder for manual retrieval
116+
117+
Analysis options can be specified at submission time in the format ``option1=val1,option2=val2``. These options control the behavior of the monitor and analyzer during detonation.
118+
119+
Submission & General
120+
^^^^^^^^^^^^^^^^^^^^
121+
- ``filename``: Rename the sample file within the guest environment.
122+
- ``name``: Force family extractor to run for a specific family (e.g., ``name=trickbot``).
123+
- ``curdir``: Change the execution directory (default is ``%TEMP%``). Supports environment variables like ``%APPDATA%``.
124+
- ``executiondir``: Sets the directory to launch the file from. Must be a full path.
125+
- ``arguments``: Command line arguments to pass to the initial process or exported function.
126+
- ``appdata``: Set to ``1`` to run the executable from the ``AppData`` path instead of ``Temp``.
127+
- ``file``: For Zip/Rar packages, specify which file within the archive to execute.
128+
- ``password``: Password for archive extraction or protected Office documents.
129+
- ``function``: For DLL packages, specify exported function name(s) or ordinals (colon-separated).
130+
- ``dllloader``: Specify a process name to fake the DLL launcher (default is ``rundll32.exe``).
131+
- ``pwsh``: For PS1 package, prefer PowerShell Core (``pwsh.exe``) if available.
132+
- ``ignore_size_check``: Allow ignoring file size limits (must be enabled in ``conf/web.conf``).
133+
- ``check_shellcode``: Set to ``0`` to disable shellcode detection during package identification.
134+
- ``pre_script_args`` / ``during_script_args``: Command line arguments for pre/during-execution scripts.
135+
- ``pre_script_timeout``: Timeout for pre-execution script (default 60s).
136+
- ``servicedesc`` / ``servicename``: Custom name and description for Service packages.
137+
- ``lang``: Override the system language code (LCID).
138+
- ``standalone``: Run in standalone mode without a Cuckoo pipe.
139+
- ``monitor``: Inject the monitor into a specific PID or explorer (useful for interactive mode).
140+
- ``shutdown-mutex``: Name of the mutex that signals a shutdown/termination.
141+
- ``terminate-event``: Name of the event set by the analyzer to signal termination.
142+
- ``terminate-processes``: If true, terminate processes when ``terminate-event`` is signaled.
143+
- ``first-process``: (Internal) Flag indicating if this is the first process in the analysis tree.
144+
- ``startup-time``: Milliseconds since system startup.
145+
146+
Monitor & Evasion
147+
^^^^^^^^^^^^^^^^^
148+
- ``free``: Run without monitoring (disables many capabilities for stealth or performance).
149+
- ``no-stealth``: Set to ``1`` to disable built-in anti-anti-VM/sandbox tricks.
150+
- ``force-sleepskip``: ``0`` = disable sleep skipping, ``1`` = skip all sleeps.
151+
- ``serial``: Spoof the system volume serial number (Hex value).
152+
- ``sysvol_ctimelow/high``: Spoof the creation time of the system volume.
153+
- ``sys32_ctimelow/high``: Spoof the creation time of the System32 directory.
154+
- ``fake-rdtsc``: Enable fake RDTSC (Read Time-Stamp Counter) results.
155+
- ``nop-rdtscp``: NOP the RDTSCP instruction.
156+
- ``ntdll-protect``: Enable write protection on ``ntdll.dll`` code.
157+
- ``ntdll-unhook``: Enable protection against ntdll unhooking via ``NtReadFile``.
158+
- ``ntdll-remap``: Enable ntdll remapping protection.
159+
- ``protected-pids``: Enable protection for critical PIDs to prevent termination or injection.
160+
- ``single-process``: Limit behavior monitoring to the initial process only.
161+
- ``interactive``: Enable interactive desktop mode.
162+
- ``pdf``: Enable specific hooks/behavior for Adobe Reader.
163+
- ``startbrowser``: Launch a browser 30 seconds into the analysis.
164+
- ``browserdelay``: Seconds to wait before starting the browser (default 30).
165+
- ``url``: Determine the URL the started browser will access.
166+
- ``referrer``: Specify a custom referrer for URL tasks.
167+
- ``norefer``: Disable the use of a fake referrer.
168+
- ``file-of-interest``: Specify a particular file or URL being analyzed.
169+
170+
Hooking & Logging
171+
^^^^^^^^^^^^^^^^^
172+
- ``hook-type``: Hooking method: ``indirect``, ``pushret``, ``direct``, or ``safe``.
173+
- ``hook-range``: Limit the number of applied hooks (useful for testing).
174+
- ``hook-low``: Allocate hook trampolines in low memory (<2GB) on x64 systems.
175+
- ``hook-restore``: Attempt to restore hooks if modification is detected.
176+
- ``hook-protect``: Enable write protection on hook pages.
177+
- ``hook-watch``: Enable continuous monitoring of hook integrity.
178+
- ``disable-hook-content``: ``1`` = remove payload of non-critical hooks, ``2`` = remove payload of all hooks.
179+
- ``minhook`` / ``zerohook``: Enable only minimal hooks or disable all non-essential hooks.
180+
- ``native``: Install only native (ntdll) hooks.
181+
- ``syscall``: Enable syscall hooks (Windows 10+).
182+
- ``exclude-apis`` / ``exclude-dlls``: Colon-separated lists of APIs or DLLs to exclude from hooking.
183+
- ``unhook-apis``: Colon-separated list of APIs to dynamically unhook at runtime.
184+
- ``coverage-modules``: Colon-separated list of DLLs to include in monitoring (exclude from 'dll range' filtering).
185+
- ``full-logs``: Disable log suppression (logs before network/file activity are normally suppressed).
186+
- ``force-flush``: ``1`` = flush logs after any non-duplicate API, ``2`` = force flush every log.
187+
- ``log-exceptions`` / ``log-vexcept``: Enable logging of standard or Vectored Exception Handlers.
188+
- ``log-breakpoints`` / ``log-bps``: Enable logging of breakpoints to the behavior log.
189+
- ``trace-times`` / ``tt``: Enable timing information in instruction traces.
190+
- ``buffer-max`` / ``large-buffer-max``: Max size for standard and large API log buffers.
191+
- ``api-rate-cap`` / ``api-cap``: Limits for the rate and total number of API logs.
192+
- ``no-logs`` / ``disable-logging``: Divert or completely disable the analysis log.
193+
194+
Dumping & Payloads
195+
^^^^^^^^^^^^^^^^^^
196+
- ``procdump``: Enable process memory dumping on exit or timeout.
197+
- ``procmemdump``: Enable full process memory dumping.
198+
- ``import-reconstruction``: Attempt import reconstruction on process dumps (slow).
199+
- ``dump-limit``: Limit the number of payload dumps (default 10).
200+
- ``dropped-limit``: Limit the number of dropped files logged (default 100).
201+
- ``dump-on-api``: Dump the calling module when specific APIs (colon-separated) are called.
202+
- ``dump-config-region``: Dump memory regions suspected to contain C2 configuration.
203+
- ``dump-crypto`` / ``dump-keys``: Dump buffers from Crypto APIs or keys from ``CryptImportKey``.
204+
- ``amsidump``: Enable AMSI buffer dumping (Windows 10+).
205+
- ``jit-dumps``: Limit for .NET JIT cache dumps.
206+
- ``tlsdump``: Enable dumping of TLS secrets.
207+
- ``regdump``: Enable dumping of Registry data.
208+
- ``unpacker``: ``1`` = passive unpacking, ``2`` = active unpacking.
209+
- ``injection`` / ``extraction`` / ``compression``: Enable capture of injected payloads, process extractions, or compressed payloads.
210+
- ``combo``: Combines compression, injection, and extraction with process dumps.
211+
- ``store_memdump``: Force STORE memdump when submitting to an analyzer node directly.
212+
213+
Debug & Tracing
214+
^^^^^^^^^^^^^^^
215+
- ``debugger``: Enable the internal debugger engine (implicitly set by bp/trace options).
216+
- ``debug``: ``1`` = report critical exceptions, ``2`` = report all exceptions.
217+
- ``bp0``...``bp3``: Set hardware breakpoints (format: ``0xAddress``, ``Module:Export``, or ``ep`` for entrypoint).
218+
- ``br0``, ``br1``: Set "break-on-return" addresses.
219+
- ``bp`` / ``sysbp``: Colon-separated lists of software or syscall breakpoints.
220+
- ``sysbpmode``: Mode for syscall breakpoints.
221+
- ``break-on-return``: Colon-separated list of APIs to break on return.
222+
- ``break-on-jit``: Break on .NET JIT compiled native code.
223+
- ``trace-all``: Enable full execution tracing.
224+
- ``trace-into-api``: Colon-separated list of APIs to trace into.
225+
- ``branch-trace``: Enable branch tracing.
226+
- ``depth``: Trace depth limit (integer or ``all``).
227+
- ``count``: Trace instruction count limit (integer or ``all``).
228+
- ``step-out``: Set a step-out breakpoint at a specific address.
229+
- ``stepmode``: Custom trace stepping behavior.
230+
- ``loopskip`` / ``loop_detection``: Enable loop skipping or detection to compress call logs.
231+
- ``base-on-api``: Base breakpoints on specific API addresses.
232+
- ``base-on-alloc``: Base breakpoints on executable memory allocations.
233+
- ``base-on-caller``: Base breakpoints on new calling regions.
234+
- ``file-offsets``: Interpret breakpoints as file offsets instead of RVAs.
235+
- ``loaderlock``: Allow scans/dumps while the Loader Lock is held.
236+
- ``snaps``: Enable Windows Loader Snaps output (LdrSnap).
237+
- ``ttd``: Enable Microsoft Time Travel Debugging integration (requires TTD binaries).
238+
- ``polarproxy``: Run PolarProxy for TLS decryption (TLS port can be set via ``tlsport``).
239+
- ``mitmdump``: Run mitmdump to generate HAR with decrypted TLS.
171240

172241
.. _webpy:
173242

0 commit comments

Comments
 (0)