familyunclassified-autoit-compiledpecompilerautoitevasionmalware-familyloaderc2persistencediscovery
SHA-256: c9c81f5be1bd1b496eb08f067889383ebe1c90b7cf11be791d197e69160a3216

unclassified-autoit-compiled: c9c81f5b — 227 KB SCRIPT quotation-lure, Jul 2024 MSVC 14.16

Executive Summary

AutoIt v3 single-file compiler (AutoItSC) PE32 with a 227 KB encrypted compiled script stored in .rsrc (RT_RCDATA). Masquerades as a business quotation (QUOTATION_-_E401723.exe). MSVC 14.16 runtime, Jul 2024 build, empty VS_VERSIONINFO, no Authenticode. Sixteenth confirmed sibling in the unclassified-autoit-compiled cluster. No CAPE detonation available (no Windows guest). Static-only characterization.

What It Is

Field Value
SHA-256 c9c81f5be1bd1b496eb08f067889383ebe1c90b7cf11be791d197e69160a3216
Filename QUOTATION_-_E401723.exe
Size 1,289,728 bytes (1,260 KB)
File type PE32 executable (GUI) Intel 80386, 5 sections ^[file.txt]
Compiler MSVC 14.16 (linker version 14.16) — VS 2017–2019 ^[exiftool.json]
Build timestamp Mon Jul 29 15:37:01 2024 UTC ^[pefile.txt:34]
Subsystem Windows GUI ^[pefile.txt:67]
ASLR Dynamic base enabled (IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) ^[pefile.txt:74]
Signing Unsigned ^[rabin2-info.txt:30]
Version info Empty VS_VERSIONINFO (all zeros) ^[pefile.txt:229–272]
Capa AutoIt compiled-script limitation warning; no capability hits extracted ^[capa.txt]

Cluster ascription: AU3!EA06 marker in RT_RCDATA resource, full PCRE regex error-message table, .text$lp00AutoItSC linker section, and identical import surface to fifteen prior siblings. ^[strings.txt:761–790] ^[unclassified-autoit-compiled.md]

How It Works

Payload Storage

The compiled AutoIt script is stored as a RT_RCDATA resource (type 10) at offset 0xFF000 (1044576), size 232,728 bytes (227 KB). ^[resource-dump] The resource begins with the encrypted header a3484bbe... and contains the AU3!EA06 marker internally, confirming AutoIt v3.3.8.1+ compiled script format. ^[strings.txt:761] Without a decompiler (MyAut2Exe, Exe2Aut), the script logic is opaque.

Runtime Surface

The AutoItSC interpreter runtime imports the full standard Win32 surface observed across all siblings:

  • Network: WinInet (HTTP/HTTPS/FTP), WinSock (raw TCP/UDP/ICMP), IPHLPAPI (ICMP echo reconnaissance) ^[pefile.txt:373–408]
  • Registry / Token: ADVAPI32 (RegCreateKeyExW, RegSetValueExW, AdjustTokenPrivileges, CreateProcessAsUserW, OpenProcessToken, LookupPrivilegeValueW) ^[pefile.txt:421–1247]
  • Process / Memory: KERNEL32 (CreateProcessW, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateToolhelp32Snapshot, Process32FirstW/NextW) ^[pefile.txt:441–1001]
  • UI / Collection: USER32 (GetAsyncKeyState, SendInput, keybd_event, GetClipboardData, SetClipboardData, GetWindowTextW, EnumWindows, FindWindowW), GDI32 (GetDIBits, StretchBlt, BitBlt) ^[pefile.txt:1015–1210]
  • Shell / File: SHELL32 (ShellExecuteW, SHGetFolderPathW, SHFileOperationW), MPR (WNetAddConnection2W, WNetUseConnectionW) ^[pefile.txt:1248–1263]

This is the identical import footprint to siblings 2c6133ca, f618a861, and c80ef443. ^[unclassified-autoit-compiled.md]

Per-Sample Deltas

Trait This sample (c9c81f5b) Sibling range
Script size 227 KB (232,728 bytes) 186 KB – 932 KB
Script location .rsrc RT_RCDATA .rsrc or file overlay
Build date 2024-07-29 2012-01-01 (legacy) – 2024-09-30
Linker MSVC 14.16 12.0 – 14.16
Lure theme Quotation / procurement Invoice, DHL, FDA, RFQ, holiday notice, bureau scan
UPX packing No Some siblings packed
Icon suite 256×256 PNG + 11 smaller icons 4–12 icons per sibling

The 227 KB script size is mid-range for the cluster, suggesting a moderately complex payload (not a minimal stub, not the 932 KB maximal sibling).

Decompiled Behavior

Ghidra / radare2 decompilation of the AutoItSC interpreter runtime is not productive — the threat logic lives in the encrypted compiled script. Capa explicitly aborts meaningful analysis with the autoit file limitation warning. ^[capa.txt] Without script decompilation, runtime behavior must be inferred from the import surface and known AutoIt malware patterns (see unclassified-autoit-compiled cluster page for historical TTPs).

C2 Infrastructure

No hardcoded C2 strings recovered from the compiled script resource (encrypted). No CAPE detonation executed (no Windows guest available). ^[dynamic-analysis.md]

Historical siblings in this cluster show WinInet/WinSock C2 patterns. Static inference only:

  • C2 protocol: Likely HTTP/HTTPS via InternetOpenWInternetConnectWHttpOpenRequestWHttpSendRequestW, or raw TCP via socket/connect/send/recv. ^[pefile.txt:373–408]
  • Exfil / staging: FtpOpenFileW, FtpGetFileSize, InternetOpenUrlW, InternetReadFile present — possible FTP fallback or payload download. ^[pefile.txt:373–408]

No domains, IPs, URLs, mutexes, or named pipes observed statically.

Interesting Tidbits

  • Quotation lure: The filename QUOTATION_-_E401723.exe follows the same pattern as procurement-themed siblings (PO_#86637.exe, INQUIRY_2024-SP0006-B(01)_INQ24-012207.exe), suggesting a single actor or kit targeting B2B supply-chain email fraud. ^[triage.json]
  • Icon masquerade: Binwalk detects a 256×256 PNG icon at offset 0xCFD50, likely an Adobe Acrobat or document-themed icon to reinforce the lure. ^[binwalk.txt]
  • PCRE regex library: Full Perl Compatible Regular Expressions error strings and Unicode script-name table present in .rdata, confirming the AutoIt v3 runtime includes PCRE for script-side pattern matching. ^[strings.txt:565–770]
  • No anti-debug: IsDebuggerPresent is imported (standard CRT/runtime), but no CheckRemoteDebuggerPresent, NtQueryInformationProcess, or timing-loop evasion observed. No VM detection imports. The script-side may implement sandbox gates, but this is opaque statically.
  • Empty version info: VS_VERSIONINFO exists but all fields are zeroed — no fake vendor name, unlike some siblings that masquerade as legitimate software. ^[pefile.txt:229–272]

How To Mess With It (Homelab Replication)

To build an AutoItSC single-file PE from a benign script for defensive research:

  1. Toolchain: Download AutoIt v3.3.16.1 from autoitscript.com (official site). Install SciTE4AutoIt3.
  2. Script: Write a trivial .au3 script:
    #include <InetConstants.au3>
    Local $sURL = "http://example.com/test"
    Local $hDownload = InetGet($sURL, @TempDir & "\test.dat", $INET_FORCERELOAD)
    
  3. Compile: Right-click → Compile Script (x86) → produces script.exe.
  4. Verify: Run capa script.exe — should hit the same autoit file limitation warning and show Suspicious_Wininet_Imports in YARA.
  5. What you learn: The generated PE will have the same 5-section layout, empty VS_VERSIONINFO, and near-identical import surface to this sample. The .rsrc section will contain a RT_RCDATA resource with the AU3!EA06 header.

To extract the compiled script from any AutoItSC PE:

python3 -c "
import pefile, sys
pe = pefile.PE(sys.argv[1])
for entry in pe.DIRECTORY_ENTRY_RESOURCE.entries:
    if entry.id == 10:  # RT_RCDATA
        for e in entry.directory.entries:
            for lang in e.directory.entries:
                data = lang.data.struct
                print(f'RT_RCDATA offset={data.OffsetToData} size={data.Size}')
                with open('script.rcdata', 'wb') as f:
                    f.write(pe.get_data(data.OffsetToData, data.Size))
" sample.exe

Deployable Signatures

YARA Rule

rule AutoItSC_SingleFile_PE32_2024 : malware_family {
    meta:
        description = "AutoIt v3 single-file compiler PE32 with encrypted script in .rsrc"
        author = "PacketPursuit SOC"
        date = "2026-06-24"
        family = "unclassified-autoit-compiled"
        reference = "/intel/analyses/c9c81f5be1bd1b496eb08f067889383ebe1c90b7cf11be791d197e69160a3216.html"
    strings:
        $au3_marker = "AU3!EA06" ascii wide
        $autoit_sc = ".text$lp00AutoItSC" ascii
        $pcre_error1 = "numbers out of order in {} quantifier" ascii
        $pcre_error2 = "missing terminating ] for character class" ascii
        $pcre_error3 = "unrecognized character follows \\" ascii
    condition:
        uint16(0) == 0x5A4D and
        uint32(uint32(0x3C)) == 0x4550 and
        uint16(uint32(0x3C)+0x5C) == 0x10B and  // PE32
        ($au3_marker or $autoit_sc) and
        2 of ($pcre_error*)
}

Behavioral Fingerprint Statement

This binary is a PE32 x86 GUI executable with 5 sections (.text, .rdata, .data, .rsrc, .reloc), compiled with MSVC 14.x linker, empty VS_VERSIONINFO, no Authenticode signature, and no packing. It imports the full WinInet/WinSock/ADVAPI32/GDI32/USER32/SHELL32 surface typical of the AutoIt v3 interpreter runtime. The .rsrc section contains a 200–1000 KB RT_RCDATA resource beginning with high-entropy bytes and containing the ASCII string AU3!EA06. The .rdata section includes a full PCRE regex error-message table. No hardcoded C2 strings are visible; the script logic is encrypted. Capa produces an autoit file limitation warning and extracts no meaningful capabilities. These binaries are typically distributed via email with invoice, quotation, shipping, or procurement-themed filenames.

IOC List

Type Value Notes
SHA-256 c9c81f5be1bd1b496eb08f067889383ebe1c90b7cf11be791d197e69160a3216 Primary sample
Filename QUOTATION_-_E401723.exe Procurement quotation lure
Family unclassified-autoit-compiled Sixteenth confirmed sibling
Build timestamp 2024-07-29 15:37:01 UTC MSVC 14.16 linker
Script resource size 232,728 bytes (227 KB) RT_RCDATA in .rsrc
Script header AU3!EA06 (encrypted) AutoIt v3 compiled script
Capa limitation autoit file limitation Expected capa warning
YARA hits PE_File_Generic, Suspicious_Wininet_Imports Triage matches ^[yara.txt]

Detection Signatures (Capa → ATT&CK)

Capa aborts with the AutoIt limitation warning and produces no capability map. ^[capa.txt] Static inference from imports:

ATT&CK ID Technique Evidence
T1059.005 Command and Scripting Interpreter: Visual Basic AutoIt compiled script execution ^[capa.txt]
T1071.001 Web Protocols: HTTP/HTTPS WinInet imports (InternetOpenW, HttpOpenRequestW, HttpSendRequestW) ^[pefile.txt:373]
T1095 Non-Application Layer Protocol WinSock imports (socket, connect, send, recv) ^[pefile.txt:284]
T1547.001 Registry Run Keys RegSetValueExW import ^[pefile.txt:1242]
T1053.005 Scheduled Task CreateProcessW + script-side scheduling (inferred)
T1083 File and Directory Discovery FindFirstFileW, FindNextFileW, GetFileAttributesW ^[pefile.txt:941–948]
T1057 Process Discovery CreateToolhelp32Snapshot, Process32FirstW, Process32NextW ^[pefile.txt:476–478]
T1012 Query Registry RegQueryValueExW, RegEnumKeyExW, RegEnumValueW ^[pefile.txt:1216–1246]
T1113 Screen Capture GDI32 GetDIBits, StretchBlt, BitBlt ^[pefile.txt:1182–1181]
T1115 Clipboard Data GetClipboardData, SetClipboardData ^[strings.txt:1119–1123]
T1056.001 Keylogging GetAsyncKeyState, SendInput, keybd_event ^[strings.txt:1083–1084]
T1569.002 Service Execution CreateProcessAsUserW, CreateProcessWithLogonW ^[pefile.txt:1225–1226]

All TTPs are statically inferred from the AutoIt runtime import surface. No CAPE behavioral confirmation.

References

  • unclassified-autoit-compiled — Cluster entity page with 15 prior siblings and shared TTPs
  • autoit-compiled-script-dropper — Concept page for AutoIt malware deployment patterns
  • asgardprotector — Related IExpress SFX family that embeds AutoIt3 payloads
  • MalwareBazaar: https://bazaar.abuse.ch/sample/c9c81f5be1bd1b496eb08f067889383ebe1c90b7cf11be791d197e69160a3216/
  • Artifact ID: 73089880-5766-4a20-9ca6-863776bb6065 ^[triage.json]

Provenance

Analysis built from:

  • file.txt (file type), exiftool.json (metadata), pefile.txt (PE headers, imports, sections, version info), strings.txt (ASCII strings), rabin2-info.txt (radare2 binary summary), capa.txt (capa 7.0.1 limitation warning), binwalk.txt (embedded artefacts), yara.txt (triage YARA matches), triage.json (triage record), dynamic-analysis.md (CAPE skipped — no Windows guest). Resource extraction performed via Python pefile library. No Ghidra decompilation performed (interpreter runtime not meaningful to decompile; script encrypted).