7bfa4723b2386a09e99d874b7d1da33999c163e6dfab9692ac3c496fc9699e91unclassified-autoit-compiled: 7bfa4723 — Purchase-order lure, 768 KB encrypted script in overlay
Executive Summary
AutoItSC v3.3.8.1 single-file PE32 (New_order_098765678.exe) with a 768 KB encrypted compiled script stored in the file overlay (not .rsrc). Eighth confirmed sibling with overlay placement. Purchase-order social-engineering lure, fabricated Jan 2012 PE timestamp, empty VS_VERSIONINFO, and the full AutoIt runtime import surface (WinInet/WinSock/ADVAPI32/GDI/PSAPI/ICMP). No plaintext C2 recovered; threat logic is opaque without AutoIt decompilation. Static-only analysis.
What It Is
| Field | Value |
|---|---|
| SHA-256 | 7bfa4723b2386a09e99d874b7d1da33999c163e6dfab9692ac3c496fc9699e91 |
| Filename | New_order_098765678.exe ^[triage.json] |
| Size | 1,418,105 bytes (1.35 MB) ^[file.txt] |
| Type | PE32 executable (GUI) Intel 80386, 4 sections ^[file.txt] |
| Linker | MSVC 10.0 (Visual Studio 2010) ^[pefile.txt:45] |
| Timestamp | 0x4F25BAEC → Sun Jan 29 21:32:28 2012 UTC ^[pefile.txt:34] — fabricated (cluster hallmark) |
| Toolchain | AutoItSC v3.3.8.1 single-file compiler ^[exiftool.json:38] |
| Signing | Unsigned ^[pefile.txt:27] |
| PDB | None ^[pefile.txt:35] |
VS_VERSIONINFO is present but the FileDescription field is empty ^[exiftool.json:36]. The CompiledScript field explicitly identifies the runtime as "AutoIt v3 Script: 3, 3, 8, 1" ^[exiftool.json:38].
How It Works
Script Placement — Overlay (not .rsrc)
Unlike the majority of this cluster (~30 siblings) that store the encrypted script inside .rsrc as an RT_RCDATA resource, this sample places it in the file overlay after the last PE section. ^[pefile.txt:138-156]
- Overlay offset: 649,216 bytes (
0x9E800) ^[rabin2-info.txt:23] - Overlay size: 768,889 bytes
- Overlay entropy: ~7.9997 (effectively random — AES/Custom encrypted) ^[terminal:entropy-calc]
- Header:
a3 48 4b be 98 6c 4a a9 99 4c 53 0a 86 d6 48 7d— theAU3!EA06magic is present at offset 0x12 in the overlay ^[terminal:overlay-inspection]
This placement breaks naive autoit-ripper tools that scan only .rsrc for SCRIPT resources. It is the eighth confirmed sibling with this placement, after ff84806a, f346b7e9, e5647a2d, d990bd1b6, a8beee89, 941a189b, and 7768873f.
Build Fingerprint
The binary matches the cluster's standard build fingerprint:
- 4 sections (
.text,.rdata,.data,.rsrc) — no.reloc^[pefile.txt:76-156] .textentropy: 6.68 (expected for compiled C runtime + interpreter) ^[pefile.txt:92].rdataentropy: 4.80 (IAT + string tables) ^[pefile.txt:112].dataentropy: 2.15 (low — initialized global data) ^[pefile.txt:132].rsrcentropy: 5.54 (icons, dialogs, strings, manifest) ^[pefile.txt:152]- No
RT_RCDATAresource of suspicious size; the largest.rsrcentries are the icon suite (max 9,640 bytes) and RT_MANIFEST (620 bytes) ^[terminal:resource-dump]
Import Surface
The full AutoIt runtime import table is present, identical to cluster siblings:
Network / C2: WSOCK32.dll (socket, connect, send, recv, WSAStartup, gethostbyname, inet_addr, etc.) ^[pefile.txt:267-288]; WININET.dll (InternetOpenW, InternetConnectW, HttpOpenRequestW, HttpSendRequestW, InternetOpenUrlW, FtpOpenFileW, InternetReadFile, etc.) ^[pefile.txt:355-368]
Process / Injection: OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateProcessW, CreateThread, CreateToolhelp32Snapshot, Process32FirstW/NextW ^[pefile.txt:420-433]
Registry / Persistence: RegSetValueExW, RegCreateKeyExW, RegOpenKeyExW, RegQueryValueExW, RegEnumKeyExW, RegDeleteValueW, RegDeleteKeyExW ^[pefile.txt:796-828]
Privilege / Token: OpenProcessToken, OpenThreadToken, LookupPrivilegeValueW, AdjustTokenPrivileges, DuplicateTokenEx, CreateProcessAsUserW, CreateProcessWithLogonW ^[pefile.txt:806-826]
Clipboard / Screen: OpenClipboard, GetClipboardData, SetClipboardData, EmptyClipboard, GetAsyncKeyState, SendInput, keybd_event, mouse_event, GetDC, StretchBlt, GetDIBits ^[pefile.txt:698-705, 641, 753]
Reconnaissance: PSAPI.DLL (EnumProcesses, EnumProcessModules, GetProcessMemoryInfo) ^[pefile.txt:378-381]; ICMP.DLL (IcmpCreateFile, IcmpSendEcho) ^[strings.txt:518-520]
PCRE Runtime: Full embedded PCRE regex library strings are present in .rdata, including the complete Unicode script-name table (Arabic, Armenian, Avestan, Balinese, Bengali ... Ugaritic) and error-message table (numbers out of order in {} quantifier, unmatched parentheses, etc.) ^[strings.txt:369-403, 512-515]. This is a cluster-defining trait and suggests script-side data harvesting or pattern matching.
Anti-Analysis
- Compiled script encryption: The overlay payload is encrypted with ~8.0 entropy; no plaintext strings recoverable. ^[terminal:entropy-calc]
- Fabricated timestamp: Jan 2012 PE timestamp is a known cluster hallmark used to age the binary. ^[pefile.txt:34]
- Empty VS_VERSIONINFO: No product name, company, or description to cluster on. ^[exiftool.json:36]
- No
.relocsection: Prevents easy rebasing and hints at a fixed-base assumption in the shellcode or interpreter stub. ^[pefile.txt:76]
Decompiled Behavior
Static RE via radare2 (level-3 analysis, 2,514 functions identified) confirms the entry point at 0x004165c1 is a standard MSVC C runtime initialization sequence (__security_init_cookie → GetStartupInfoW → PE header validation → main) ^[r2:entry0]. No unusual anti-debug or VM checks are present in the compiled runtime — the threat logic lives entirely inside the encrypted AutoIt script overlay.
Ghidra decompilation was not attempted because the binary is a known AutoItSC runtime; capa explicitly warns that "capa cannot handle AutoIt scripts" and directs analysts to manual tools like MyAut2Exe. ^[capa.txt] The runtime itself is benign; all malicious behavior is script-defined and opaque without decryption/decompilation.
C2 Infrastructure
No plaintext C2 indicators recovered. The encrypted overlay contains the script logic, and no URLs, IPs, domains, mutex names, or pipe names were found in the PE's string surface or imports. ^[strings.txt, terminal:string-grep]
Cluster siblings have historically delivered inner payloads that beacon via:
- SMTP exfil (AgentTesla inner payload in
6718622d) ^[/intel/analyses/6718622d94d373a123cac9f8cc6789bc1132eed19a5a9232dd0454ee869d910c.html] - HTTP/HTTPS downloaders (WinInet surface present)
- Raw TCP sockets (WSOCK32 surface present)
This sample's C2 modality is inferred but unconfirmed pending decompilation.
Interesting Tidbits
- Filename semantic:
New_order_098765678.exefollows the cluster's purchase-order/procurement naming convention (PO_#86637.exe,Final_order.exe,PO-A1702108.exe,PO20240627-001.exe,PO-22012025-RFQ.exe). The numeric suffix is a low-entropy filler typical of template-generated lure names. ^[triage.json] - Overlay placement trend: Overlay-stored scripts are a minority (~8 of 37) but persistent across the cluster timeline (Jan 2012 → Jul 2024). This suggests a deliberate builder option or forked compiler configuration. ^[entity:unclassified-autoit-compiled]
- Missing
.reloc: All cluster siblings lack.reloc, which is unusual for a GUI PE and may reflect a custom linker flag or stripped output from the AutoItSC build pipeline. ^[pefile.txt:76] - PCRE bloat: The PCRE error-message and Unicode-script tables add ~20 KB of identifiable
.rdatastrings. These are harmless artifacts but serve as a cluster fingerprint. ^[strings.txt:369-403] - Floss failure: flare-floss was invoked with incorrect argument ordering (
--noflag received the file path as its value), producing no decoded strings. ^[floss.txt] Correct invocation would require--no static stack tight decodedsyntax.
How To Mess With It (Homelab Replication)
Reproducing the exact build requires the AutoIt v3.3.8.1 single-file compiler (AutoItSC). The builder is not publicly available as a standalone download, but the open-source AutoIt v3 interpreter can be compiled with the SC (single-file) option.
- Install AutoIt v3.3.8.1 (or latest) from autoitscript.com
- Write a
.au3script with network, registry, and file operations - Compile with
Aut2Exe.exe /in script.au3 /out payload.exe /icon lure.ico - Observe: output is a PE32 with
.textentropy ~6.5–7.0, PCRE strings in.rdata, empty VS_VERSIONINFO, and encryptedAU3!EA06script in.rsrcor overlay depending on compiler flags - Verification: Run
capa payload.exe— it will flag the "autoit file limitation" warning and report minimal capabilities, confirming the script logic is opaque to static analysis
What you learn: How a BASIC-like scripting runtime can be weaponized to hide malicious behavior behind a compiled C runtime that defeats standard static-analysis pipelines.
Deployable Signatures
YARA Rule
rule AutoItSC_SingleFile_PE32_Cluster
{
meta:
description = "AutoItSC v3 single-file compiled PE32 — cluster fingerprint"
author = "Titus / PacketPursuit"
date = "2026-07-07"
sha256 = "7bfa4723b2386a09e99d874b7d1da33999c163e6dfab9692ac3c496fc9699e91"
strings:
$au3_magic = { A3 48 4B BE 98 6C 4A A9 99 4C 53 0A 86 D6 48 7D }
$autoit_str = "This is a compiled AutoIt script. AV researchers please email avsupport@autoitscript.com for support." ascii wide
$pcre_err1 = "numbers out of order in {} quantifier" ascii
$pcre_err2 = "unmatched parentheses" ascii
$pcre_err3 = "this version of PCRE is not compiled with PCRE_UTF8 support" ascii
$compiled = "CompiledScript" ascii wide
$ver1 = "AutoIt v3 Script" ascii wide
condition:
uint16(0) == 0x5A4D and
(
($autoit_str and $ver1) or
($au3_magic at pe.overlay.offset) or
(3 of ($pcre_err*))
) and
filesize > 500KB
}
Behavioral Hunt Query (Sigma)
title: AutoItSC Single-File PE32 Execution
logsource:
category: process_creation
product: windows
detection:
selection:
- ImageLoaded|endswith:
- '\\New_order_098765678.exe'
- CommandLine|contains:
- 'New_order'
- '098765678'
condition: selection
falsepositives:
- None expected for this exact filename
level: high
IOC List
| Type | Indicator | Note |
|---|---|---|
| SHA-256 | 7bfa4723b2386a09e99d874b7d1da33999c163e6dfab9692ac3c496fc9699e91 |
Primary |
| Filename | New_order_098765678.exe |
Purchase-order lure |
| File size | 1,418,105 bytes | |
| PE timestamp | 0x4F25BAEC (Jan 29 2012) |
Fabricated |
| Linker | 10.0 (VS 2010) | |
| Overlay magic | a3484bbe986c4aa9994c530a86d6487d |
AU3 encrypted script header |
| Overlay entropy | ~7.9997 | Heavily encrypted |
| Sections | .text, .rdata, .data, .rsrc |
No .reloc |
Behavioral Fingerprint
This binary is a 1.35 MB PE32 x86 GUI executable compiled with the AutoItSC v3.3.8.1 single-file compiler. It contains a 768 KB encrypted compiled script in the file overlay (not .rsrc) with AU3!EA06 header magic. The import table is dominated by AutoIt runtime APIs: WSOCK32, WININET, ADVAPI32 (registry + token manipulation), GDI32 (screenshot), USER32 (clipboard + keylogging), PSAPI (process enumeration), and ICMP.DLL (host reconnaissance). No .reloc section. Empty VS_VERSIONINFO. Fabricated Jan 2012 PE timestamp. The PCRE regex library error-message table is present in .rdata. No anti-debug or VM checks in the runtime. All threat logic is script-defined and opaque without AutoIt decompilation.
Detection Signatures
| ATT&CK ID | Technique | Evidence |
|---|---|---|
| T1059.005 | Command and Scripting Interpreter: Visual Basic / AutoIt | Compiled AutoIt script in overlay ^[exiftool.json:38] |
| T1071.001 | Web Protocols | WinInet HTTP/FTP APIs imported ^[pefile.txt:355-368] |
| T1095 | Non-Application Layer Protocol | WSOCK32 raw socket APIs imported ^[pefile.txt:267-288] |
| T1547.001 | Registry Run Keys | ADVAPI32 RegSetValueExW imported ^[pefile.txt:800] |
| T1053.005 | Scheduled Task | CreateProcessW + shell APIs enable task creation ^[pefile.txt:431] |
| T1083 | File and Directory Discovery | FindFirstFileW, FindNextFileW ^[pefile.txt:436-439] |
| T1057 | Process Discovery | CreateToolhelp32Snapshot, Process32FirstW/NextW, EnumProcesses ^[pefile.txt:431-433, 378] |
| T1012 | Query Registry | RegQueryValueExW, RegOpenKeyExW, RegEnumKeyExW ^[pefile.txt:824-828] |
| T1113 | Screen Capture | GDI32 StretchBlt, GetDIBits, GetDC ^[pefile.txt:753-755] |
| T1115 | Clipboard Data | OpenClipboard, GetClipboardData, SetClipboardData ^[pefile.txt:698-705] |
| T1056.001 | Keylogging | GetAsyncKeyState, SendInput, keybd_event ^[pefile.txt:641, 621, 643] |
| T1005 | Data from Local System | File read/write APIs, INI/profile APIs ^[pefile.txt:426-430] |
| T1070.004 | File Deletion | DeleteFileW, RemoveDirectoryW ^[pefile.txt:438, 443] |
| T1134.001 | Token Impersonation | OpenProcessToken, DuplicateTokenEx, CreateProcessAsUserW ^[pefile.txt:806-810] |
| T1497.001 | Virtualization/Sandbox Evasion | Compiled script encryption (natural static obfuscation) ^[terminal:entropy-calc] |
References
- Entity page: unclassified-autoit-compiled
- Concept: autoit-compiled-script-dropper
- Technique: autoit-shellcode-xor-decryptor
- Technique: callwindowproc-shellcode-injection
- Technique: process-hollowing
- Triage artifacts:
raw/analyses/7bfa4723b2386a09e99d874b7d1da33999c163e6dfab9692ac3c496fc9699e91/
Provenance
file.txt,strings.txt,pefile.txt,exiftool.json,rabin2-info.txt,capa.txt,floss.txt,binwalk.txt,metadata.json,triage.json— generated by triage-fast pipeline (May 26 2026)- radare2 analysis: level-3 auto-analysis, 2,514 functions, entrypoint at
0x004165c1 - Overlay inspection and entropy calculation: custom Python (pefile + math), Jul 7 2026
- No dynamic analysis: CAPE skipped — no Windows guest available ^[dynamic-analysis.md]