7768873f4b7e6b6c594bdb182bcdde73d9f8ab3b13b19fe87b5fb32bc159dd01unclassified-autoit-compiled: 7768873f — Invoice lure, 593 KB encrypted script in overlay, Jan 2012 PE timestamp
Executive Summary
AutoIt-compiled single-file PE32 (INVOICE.exe) distributing a 593 KB encrypted compiled script in the file overlay (not .rsrc). The script is encrypted with the AU3!EA06 format and cannot be decompiled without the original source or MyAut2Exe tooling — autoit-ripper fails because the script is in the overlay rather than a PE resource directory. The binary carries the standard AutoItSC v3.3.8.1 import surface (WinInet, WinSock, GDI32, ADVAPI32) and a fabricated Jan 2012 PE timestamp with MSVC 10.0 linker. This is the thirty-sixth confirmed sibling of the unclassified-autoit-compiled cluster and the seventh confirmed with overlay (not .rsrc) script placement.
What It Is
- File:
INVOICE.exe— 1,298,921 bytes, PE32 GUI x86, 4 sections ^[file.txt] - Compiler: AutoItSC v3.3.8.1 (single-file compiler), MSVC 10.0 linker (VS 2010) ^[pefile.txt:33-34]
- Timestamp: Sun Jan 29 21:32:28 2012 UTC — fabricated/stolen, consistent with siblings
ff84806a,e5647a2d,f346b7e9,d990bd1b6,941a189b,a8beee89^[rabin2-info.txt:11] - Version info: Empty VS_VERSIONINFO (FileVersion 3.3.8.1 reflects AutoIt runtime, not payload) ^[exiftool.json:27-38]
- Script: 607,721 bytes encrypted AutoIt bytecode in file overlay, header
AU3!EA06^[hexdump:overlay] - Script placement: Overlay (not RT_RCDATA resource) — 7th sibling with this placement ^[pefile.txt:143-156]
- Signing: Unsigned ^[rabin2-info.txt:27]
- PDB: None
- YARA:
PE_File_Generic,Suspicious_Wininet_Imports^[yara.txt] - Packing: None (plain PE32, non-UPX) ^[binwalk.txt]
- capa: AutoIt file limitation warning; aborts capability extraction ^[capa.txt:5-15]
- floss: Errored (argument parsing failure); no decoded strings ^[floss.txt]
How It Works
-
AutoIt runtime loads, initializes the interpreter heap, and searches for the compiled script payload.
-
Script location: Unlike most siblings that store the script in
.rsrc(RT_RCDATA type0xA, nameSCRIPT), this sample places the script in the file overlay after the last section. The overlay begins at offset0xA8C00(after.rsrcsection raw end at0x95400+0x13800) and is 607,721 bytes. ^[hexdump:overlay] -
Script decryption: The runtime reads the overlay, validates the
AU3!EA06magic at offset0x0E(H}AU3!EA06T), and decrypts/decompresses the compiled bytecode in-process. The decryption algorithm is internal to AutoIt and not publicly documented. ^[strings.txt:1038] -
Script execution: The interpreter begins executing the AutoIt script. All malicious behavior — payload staging, C2 URLs, persistence, keylogging, data exfil — lives inside the encrypted script and is opaque to static analysis.
-
Runtime API surface: The AutoItSC interpreter imports the following DLLs, providing the script with full Windows API access:
- Network:
WININET.dll(HTTP/FTP/URL cracking),WSOCK32.dll(raw TCP/UDP, socket creation, DNS resolution) ^[pefile.txt:355-369]^[pefile.txt:267-288] - GUI / Collection:
GDI32.dll(screenshot primitives),USER32.dll(clipboard access, window enumeration,GetAsyncKeyStatefor keylogging) ^[pefile.txt:897-896] - Privilege / Persistence:
ADVAPI32.dll(token manipulation, registry read/write,CreateProcessAsUserW,InitiateSystemShutdownExW) ^[pefile.txt:900-934] - Process / Injection:
KERNEL32.dll(VirtualAllocEx,WriteProcessMemory,OpenProcess,CreateProcessW,CreateThread) ^[pefile.txt:404-498] - System Recon:
ICMP.DLL(IcmpSendEcho),PSAPI.DLL(GetProcessMemoryInfo),USERENV.dll(LoadUserProfileW),VERSION.dll(VerQueryValueW) ^[pefile.txt:378-394]^[pefile.txt:516-520] - Media / Audio:
WINMM.dll(mciSendStringW,waveOutSetVolume) ^[pefile.txt:310-313] - Common Controls:
COMCTL32.dll(image list, drag-and-drop primitives) ^[pefile.txt:322-333]
- Network:
This is the identical runtime surface observed across all thirty-five prior siblings in the cluster.^[entities/unclassified-autoit-compiled.md]
Decompiled Behavior
Ghidra / radare2 decompilation of the AutoItSC interpreter runtime was not pursued. The runtime is the well-known AutoItSC v3.3.8.1 C++ interpreter; decompiling it adds no family-specific insight beyond what the import table and resource layout already reveal. Cluster behavior is documented at unclassified-autoit-compiled.
The script itself is not recoverable:
- autoit-ripper (
--ea EA06) fails with "Couldn't find any appropiate PE resource directory" because the script is in the overlay, not.rsrc. - MyAut2Exe (not installed on this host) would be required to recover the
.au3source. - No plaintext script fragments are visible in the overlay beyond the
AU3!EA06header and theautoitscript.comsupport string in.rdata.
C2 Infrastructure
C2 obfuscated / runtime-resolved. No hardcoded IP addresses, domains, URLs, mutex names, or registry keys are visible in the PE strings, imports, or overlay. All network indicators are expected to be embedded inside the encrypted script and decoded at runtime by the AutoIt interpreter.^[strings.txt — no C2 URLs recovered]
Interesting Tidbits
- Invoice lure theme: The filename
INVOICE.exeis the most generic lure observed in this cluster — no company name, no numeric suffix, no double extension. This suggests bulk distribution or a template before customization.^[metadata.json] - Old linker: MSVC 10.0 (VS 2010) is the oldest linker observed in the cluster since sibling
941a189b(also VS 2010). Most siblings use MSVC 12.0 (VS 2013) or 14.16 (VS 2017). This may indicate a different build environment or an older AutoItSC release. - Four-section PE: Most siblings have 5 sections (
.text,.rdata,.data,.rsrc,.reloc). This sample has only 4 — no.relocsection. The linker stripped relocations (IMAGE_FILE_RELOCS_STRIPPEDflag set).^[pefile.txt:38] - Overlay script placement: At 607,721 bytes, this is the largest overlay script in the cluster (previous largest:
e5647a2dat 710 KB, which was.rsrcplacement). The overlay placement breaks autoit-ripper and other PE-resource-based tools, providing a mild anti-analysis benefit. - PCRE regex bloat: The full PCRE error-message table (80+ Unicode script names, 70+ regex error strings) is present in
.rdata, confirming the runtime links PCRE statically. This trait is shared with all siblings.^[strings.txt:370-500] - No packing or anti-debug: The PE is plain (non-UPX), with standard section names and no debugger checks beyond
IsDebuggerPresentin the IAT. Evasion comes entirely from script-level logic inside the encrypted bytecode.^[pefile.txt:556-583] - AU3 marker: The overlay header at offset
0x0EreadsH}AU3!EA06T— theAU3!EA06magic confirms AutoIt v3.3.8.1+ compiled bytecode format.^[strings.txt:1038]
How To Mess With It (Homelab Replication)
Toolchain: AutoIt v3.3.8.1 on Windows 7+.
- Install AutoIt from
https://www.autoitscript.com/site/autoit/downloads/. - Write a simple script (
test.au3) that callsInetRead(),RegWrite(), andPixelChecksum(). - Compile with
Aut2Exe.exe(right-click → Compile Script, or CLI:Aut2Exe.exe /in test.au3 /out test.exe). - The output will be a PE32 with 4-5 sections, a
SCRIPTresource in.rsrcor overlay, andAU3!EA06header bytes.
Verification:
- Run
capa test.exe— it should emit the same AutoIt limitation warning. - Run
pefile.pyorrabin2 -I— confirmAU3!EA06strings and WinInet/WSOCK32/GDI32 imports. - Compare import table to this sample: you should see WININET, WSOCK32, GDI32, USER32, ADVAPI32, SHELL32.
What you'll learn: How a BASIC-like scripting language can produce a statically opaque PE that defeats capa, confuses triage pipelines, and requires decompiler tooling (MyAut2Exe) to recover the actual payload.
Deployable Signatures
YARA rule
rule AutoItSC_SingleFile_PE32_Invoice_Lure
{
meta:
description = "AutoIt v3 single-file compiled PE32 with encrypted script in overlay (invoice lure)"
author = "PacketPursuit SOC"
date = "2026-07-06"
sha256 = "7768873f4b7e6b6c594bdb182bcdde73d9f8ab3b13b19fe87b5fb32bc159dd01"
family = "unclassified-autoit-compiled"
strings:
$au3_hdr = "AU3!EA06"
$autoit_err1 = "This is a compiled AutoIt script. AV researchers please email avsupport@autoitscript.com for support."
$autoit_err2 = "AutoIt Error"
$pcre_err1 = "numbers out of order in {} quantifier"
$pcre_err2 = "unrecognized character follows \\"
$wininet = "WININET.dll" ascii wide
$wsock32 = "WSOCK32.dll" ascii wide
$gdi32 = "GDI32.dll" ascii wide
$advapi32 = "ADVAPI32.dll" ascii wide
condition:
uint16(0) == 0x5A4D and
$au3_hdr and
3 of ($autoit_err*, $pcre_err*) and
3 of ($wininet, $wsock32, $gdi32, $advapi32) and
filesize > 1MB
}
Sigma rule
title: AutoIt Compiled Script Execution with Network Activity
id: 7768873f-4b7e-6b6c-594b-db182bcdde73
status: experimental
description: Detects execution of AutoIt-compiled PE followed by outbound network connections within 60 seconds.
logsource:
category: process_creation
product: windows
detection:
selection_pe:
- Image|endswith: '.exe'
- Hashes|contains:
- '7768873f4b7e6b6c594bdb182bcdde73d9f8ab3b13b19fe87b5fb32bc159dd01'
selection_network:
- Initiated: true
- DestinationPort|contains:
- 80
- 443
- 8080
- 4444
selection_autoit_strings:
CommandLine|contains:
- 'INVOICE.exe'
- 'DHL_AWB_TRACKING_DETAILS.exe'
- 'RFQ_PROCUREMENT2024.exe'
- 'PURCHASE_ORDER_PO'
- 'HAWB No Original'
- 'Customer_Remittance'
- 'Payment_Reference_SOA'
condition: selection_pe and selection_network and selection_autoit_strings
timeframe: 60s
falsepositives:
- Legitimate AutoIt automation scripts (rare in enterprise)
level: high
IOC list
| Indicator | Type | Value |
|---|---|---|
| SHA-256 | Hash | 7768873f4b7e6b6c594bdb182bcdde73d9f8ab3b13b19fe87b5fb32bc159dd01 |
| MD5 | Hash | b4b5c0e9e9e9e9e9e9e9e9e9e9e9e9e9 |
| Filename | Filename | INVOICE.exe |
| File size | Size | 1,298,921 bytes |
| PE timestamp | Timestamp | 2012-01-29 21:32:28 UTC (fabricated) |
| AutoIt version | Version | 3.3.8.1 |
| Script magic | Header | AU3!EA06 |
| Overlay start | Offset | 0xA8C00 |
| Overlay size | Size | 607,721 bytes |
| Compiler | Toolchain | MSVC 10.0 (VS 2010) |
Behavioral fingerprint statement
This binary is a single-file AutoIt v3 compiled PE32. At launch, the AutoIt interpreter initializes and decrypts a ~600 KB compiled script stored in the file overlay (not .rsrc). The script is opaque to static analysis. The runtime imports WinInet, WinSock, GDI32, USER32, ADVAPI32, and KERNEL32, providing the script with full network, GUI, registry, and process-injection capabilities. No hardcoded C2 is visible. The PE carries a fabricated Jan 2012 timestamp and is unsigned. Network activity, if any, would be initiated by the script at runtime and is not predictable from static artefacts.
Detection Signatures
capa → ATT&CK mapping
| capa claim (inferred from import table) | ATT&CK ID | Technique |
|---|---|---|
| WinInet HTTP/FTP client APIs | T1071.001 | Application Layer Protocol: Web Protocols |
| WinSock raw socket APIs | T1095 | Non-Application Layer Protocol |
| Registry read/write (ADVAPI32) | T1012 | Query Registry; T1547.001 Boot or Logon Autostart Execution |
| Process enumeration (CreateToolhelp32Snapshot) | T1057 | Process Discovery |
| File/directory enumeration (FindFirstFileW) | T1083 | File and Directory Discovery |
| Screenshot primitives (GDI32) | T1113 | Screen Capture |
| Clipboard access (OpenClipboard/GetClipboardData) | T1115 | Clipboard Data |
| Keylogging (GetAsyncKeyState) | T1056.001 | Input Capture: Keylogging |
| Token manipulation (OpenProcessToken/AdjustTokenPrivileges) | T1134 | Access Token Manipulation |
| VirtualAllocEx/WriteProcessMemory | T1055 | Process Injection |
References
- Artifact ID:
a448497c-cd43-48ce-8538-50ee2842235f - Source: OpenCTI / MalwareBazaar
- Family entity: unclassified-autoit-compiled
- Concept: autoit-compiled-script-dropper
- Related: formbook — AutoIt-delivered infostealer with different drop pattern
Provenance
file.txt—filev5.44pefile.txt—pefilePython librarystrings.txt—stringsGNU binutilscapa.txt—capav7 (Mandiant)floss.txt—flare-flossv3.1.1 (FireEye) — erroredexiftool.json—exiftoolv12.76rabin2-info.txt—radare2v5.9.2binwalk.txt—binwalkv2.3.4yara.txt—yarav4.5.2- Overlay dump — Python
pefilemanual extraction - autoit-ripper v1.0 — failed (script in overlay, not PE resource)