Operator On The Wire
Join
← Back to Knowledge Base
BLUE TEAM / MALWARE REVERSE / ANALYSIS / STATIC / FILES

MSI

lessmsi

Release v2.12.5 · activescott/lessmsi

orca.exe

Orca.exe - Win32 apps | Microsoft Learn


# identify file type  
file suspicious.msi  
  
# basic metadata (Windows)  
Get-Item suspicious.msi | Select-Object *  
  
# extract all files (fast)  
lessmsi x suspicious.msi out\  
  
# list MSI tables (Linux)  
msiinfo tables suspicious.msi  
  
# dump critical tables  
msiinfo export suspicious.msi CustomAction  
msiinfo export suspicious.msi InstallExecuteSequence  
msiinfo export suspicious.msi Binary  
msiinfo export suspicious.msi Property  
  
# quick strings for execution / URLs  
strings suspicious.msi | findstr /i "powershell cmd rundll32 http"  
  
# hash extracted payload  
Get-FileHash out\payload.bin -Algorithm SHA256  
  
# inspect magic bytes  
Format-Hex out\payload.bin -Count 16  
  
# expected headers:  
# MSI = D0 CF 11 E0 (OLE Compound File)  
# EXE = 4D 5A  
# ZIP = 50 4B  
  
# hunt for execution commands  
strings suspicious.msi | findstr /i "powershell"  
strings suspicious.msi | findstr /i "cmd.exe"  
strings suspicious.msi | findstr /i "rundll32"  
strings suspicious.msi | findstr /i "msiexec"  
  
# hunt for URLs / C2  
strings suspicious.msi | findstr /i "http"  
  
# safe workflow:  
# file -> lessmsi -> tables (CustomAction) -> extract Binary -> analyze payload  

Findings Severity

FindingSeverity
CustomAction executionCritical
Embedded executable (Binary)Critical
PowerShell executionCritical
rundll32 / cmd executionHigh
External URL / downloadHigh
Obfuscated scriptVery High
Suspicious InstallExecuteSequenceHigh

Check Tables

lessmsi.exe l -t <TABLE> .\<TARGET.MSI>

Critical Tables

TablePurposeWhat to Look ForSeverity
CustomActionExecution logicpowershell, cmd, rundll32, DLL calls🔴 Critical
BinaryEmbedded payloadsEXE, DLL, shellcode blobs🔴 Critical
InstallExecuteSequenceExecution orderWHEN malicious action runs🔴 Critical
InstallUISequenceUI-triggered executionSame as above but UI-based🔴 Critical

Supporting Tables

TablePurposeWhat to Look ForSeverity
FileFiles dropped to diskEXE, DLL, scripts🟠 High
ComponentLinks files to install logicsuspicious components🟠 High
FeatureLogical groupingrarely malicious itself🟡 Medium
PropertyMetadata / configURLs, flags, strange values🟡 Medium
DirectoryFile pathssuspicious install paths🟡 Medium

CustomAction Types

TypeMeaning
1DLL from Binary table
2EXE from file system
18EXE from property
50EXE (formatted string)
34VBScript
38JScript
226PowerShell / script execution
3073+Binary stream execution (common in malware)

Suspicious Patterns:

  • Small MSI with embedded payload
  • CustomAction invoking:
  • powershell
  • cmd.exe
  • rundll32
  • Binary table containing EXE/DLL
  • Silent install flags (/quiet, /qn)
  • External download URLs
  • MSI used as dropper/loader
  • Non-standard or missing metadata
  • Large Binary table blobs