Repository navigation
Releases
MaldocTrace v0.2.1
Licensing and packaging release. The analysis is unchanged from 0.2.0.
Downloads
| Platform | Archive |
|---|---|
| Windows x64 / ARM64 | maldocTrace_0.2.1_windows_amd64.zip, maldocTrace_0.2.1_windows_arm64.zip |
| Linux x64 / ARM64 | maldocTrace_0.2.1_linux_amd64.tar.gz, maldocTrace_0.2.1_linux_arm64.tar.gz |
| macOS Intel / Apple Silicon | maldocTrace_0.2.1_darwin_amd64.tar.gz, maldocTrace_0.2.1_darwin_arm64.tar.gz |
You can verify downloads against checksums.txt (SHA-256).
Added
- MaldocTrace is now licensed under the Apache License 2.0 (
LICENSE).
Changed
- The Go module path is now
github.com/debugactiveprocess/MaldocTrace, sogo install github.com/debugactiveprocess/MaldocTrace/cmd/maldoctrace@v0.2.1works and the import path matches the repository (needed for Debian/Kali packaging).
MaldocTrace v0.2.0
Excel 4.0 macros, static detection of macro-less attacks (template injection, DDE, OLE, Equation Editor exploits in RTF), payloads hidden in cells and document properties, and VBA stomping detection.
Downloads
| Platform | Archive |
|---|---|
| Windows x64 / ARM64 | maldocTrace_0.2.0_windows_amd64.zip, maldocTrace_0.2.0_windows_arm64.zip |
| Linux x64 / ARM64 | maldocTrace_0.2.0_linux_amd64.tar.gz, maldocTrace_0.2.0_linux_arm64.tar.gz |
| macOS Intel / Apple Silicon | maldocTrace_0.2.0_darwin_amd64.tar.gz, maldocTrace_0.2.0_darwin_arm64.tar.gz |
You can verify downloads against checksums.txt (SHA-256). The binaries are static and have no dependencies. The macOS builds are not notarized, so remove the quarantine flag before running them: xattr -d com.apple.quarantine maldocTrace.
Added
- Excel 4.0 (XLM) macros:
- macro sheets are read from
.xls(BIFF8 formulas decompiled from parsed tokens with the MS-XLS Ftab/Cetab tables) and from.xlsm, including hidden and very hidden sheets; - an XLM interpreter runs from
Auto_OpenwithGOTO/RUN/IF/WHILE/FOR/NEXT/ON.TIME/RETURN,FORMULA/FORMULA.FILL/SET.VALUE/SET.NAME, and simulatedEXEC,CALL,REGISTER(and aliases),FOPEN/FWRITE/FCLOSE; - formulas written at run time are reported as the deobfuscated macro;
- VBA can reach XLM through
ExecuteExcel4MacroandApplication.Run "Sheet!Cell".
- macro sheets are read from
- Static findings (new
static_findingssection):- remote template injection (
attachedTemplate, RTF\*\template); - external OLE objects, with MHTML (CVE-2021-40444) and
ms-msdt(Follina) monikers flagged; - DDE/DDEAUTO fields, including
QUOTE-encoded and nested fields, in.docx,.docand RTF, plus Excel DDE formulas andddeLinks; INCLUDEPICTURE/INCLUDETEXT/LINKfields with remote targets;- hidden macro sheets and XLM
Auto_Opennames; - hyperlinks on pictures and cells (phishing workbooks), and QR-code lures.
- remote template injection (
- RTF support: format detection (
{\rt),\objdatadecoded the way Word reads it (parameters on control words, ignorable groups, junk characters,\bin), OLE1 header parsing with a fallback for corrupted headers, and Equation Editor exploit detection: MTEFFONToverflow (CVE-2017-11882 / CVE-2018-0802) andMATRIXoverflow (CVE-2018-0798). The bytes that follow the malformed record are extracted. - VBA stomping detection: string literals compiled into a module's p-code but absent from its source are reported (with the literals as evidence) and scanned for indicators.
- Payload hiding places available to the emulator:
- Excel cells:
Sheets(...),Worksheets(...),Range(...),Cells(r, c),Offset, and assignment through the default member; - document properties (
BuiltInDocumentProperties,CustomDocumentProperties), from OLE property sets anddocProps/*.xml; - document variables (
ActiveDocument.Variables, fromword/settings.xml); TextBox.Text/Captionaliases on UserForm controls.
- Excel cells:
- New JSON sections
macro_sheetsanddocument_properties. The text report shows static findings, macro sheets, run-time XLM formulas and non-trivial properties.
Changed
- JSON schema bumped to
1.3.0(additive). - Documents with Excel 4.0 macros now report
macros: present.
MaldocTrace v0.1.0
First public release.
Downloads
| Platform | Archive |
|---|---|
| Windows x64 / ARM64 | maldocTrace_0.1.0_windows_amd64.zip, maldocTrace_0.1.0_windows_arm64.zip |
| Linux x64 / ARM64 | maldocTrace_0.1.0_linux_amd64.tar.gz, maldocTrace_0.1.0_linux_arm64.tar.gz |
| macOS Intel / Apple Silicon | maldocTrace_0.1.0_darwin_amd64.tar.gz, maldocTrace_0.1.0_darwin_arm64.tar.gz |
You can verify downloads against checksums.txt (SHA-256). The binaries are static and have no dependencies. The macOS builds are not notarized, so remove the quarantine flag before running them: xattr -d com.apple.quarantine maldocTrace.
Added
- Extraction:
- OLE/CFB (
.doc,.xls,.ppt) and OOXML (.docm,.xlsm,.pptm) containers, plus raw VBA text input. - MS-OVBA decompression and UserForm control properties.
- Resource limits against zip bombs and malformed containers.
- OLE/CFB (
- Document body text for Word 97-2003 (piece table) and
.docx, so the emulator can follow macros that read their payload fromActiveDocument.Paragraphs(n).Range.Text. - VBA interpreter with bounded execution:
- procedures,
ByRefparameters, named arguments (Name:=value) and conditional compilation; - loops, arrays and the string built-ins;
- module-level declarations.
- procedures,
- Static deobfuscation with provenance and the reconstruction method of each string.
- Simulated environment (nothing is ever executed):
WScript.ShellandShell;- WMI
Win32_Process.CreatethroughGetObjectorCreateObject("winmgmts:..."); FileSystemObject,ADODB.Stream,XMLHTTP/WinHttp;MSScriptControl.ScriptControl;- Word
Paragraphs/Range/Delete/SaveAs2; - declared APIs with simulated
VarPtrpointers.
- Payload recovery:
- PowerShell
-EncodedCommand, with static folding of'a'+'b'concatenations before URL extraction; - UTF-7 shellcode buffers passed to
MultiByteToWideChar(CP_UTF7); certutil -decode/-decodehexchains over a virtual file system;- scripts passed to
ScriptControl.AddCode; - PE/ZIP/OLE/PDF identification.
- PowerShell
- Reports:
- text output and versioned JSON (schema
1.2.0), with evidence IDs linking events, commands, payloads and indicators; - batch
jsonlmode with--recursive.
- text output and versioned JSON (schema
- CLI options:
--show-stringsfor deduplicated reconstructed strings with their locations;--dump-payloads DIRto write decoded payloads and dropped files with neutral extensions and amanifest.json.
- Robustness: each pipeline stage recovers from panics and records them as diagnostics. The VBA pipeline and container parsers are fuzzed.