A DLL downloader from our honeypot that pulls three programs from indexsinas.me

A small 32-bit DLL caught by our honeypot exists for one job: the moment it is loaded, it fetches three executables from an operator server on port 811, drops them in C:\Windows and runs them hidden.

How this analysis was produced

Caleb, our malware analysis agent, examined the sample in an isolated container with no network. The program was only read by tools or run inside an emulator, never on a real computer. Analysis steps: Packer check, Static analysis, Emulation, Cross-references, Our rule engine. This write-up is built from that tool output and was reviewed by a person before publishing. The sample came from our own research honeypot; no customer data was used.

What it isLoader
What it wantsThe operator gets a foothold that installs and silently starts whatever three programs they host at 2[.]indexsinas[.]me:811, so the server, not this DLL, decides what the infected machine becomes.
FamilyNo match to a known family
ConfidenceWe are confident it is a downloader, because the URLs, save paths and download and execute imports are plain to see, but we cannot say what the payloads do and no tool output named a family.
Key findings

How it reached us

Our research honeypot captured this 71,171 byte file on 2026-10-30. It is a 32-bit Windows DLL, not a standalone program, built with Microsoft Visual C++ 2010 (linker 10.00). A DLL like this needs something else to load it, so we infer it was meant to be pushed and loaded by an exploit or another tool rather than double-clicked by a user.

caleb@sandbox: Packer check
entropy: 5.25
 type=Tool name=Visual Studio version=2010 info= part=Header
 packed: false
format: PE32

The file is an unpacked PE32 built with Visual Studio 2010, with modest overall entropy.

Stage one: the downloader DLL

It runs the moment it is loaded

We emulated the DLL starting at its entry point as if Windows had just loaded it (DLL_PROCESS_ATTACH). The routine that handles the first download, FUN_10011b70, is reached by an unconditional jump at 0x100114ba in the entry code. This matters to the attacker: whoever loads the DLL does not need to know any export name, simply loading it is enough.

caleb@sandbox: Cross-references
 from=0x100114ba function=FUN_10011b70 type=UNCONDITIONAL_JUMP

The first download routine is reached by a direct jump from the DLL's startup code.

Three downloads from one server

The DLL contains three URLs on 2[.]indexsinas[.]me port 811, each used by its own small function (FUN_10011b70, FUN_10011c00, FUN_10011c90). Its only network import is URLDownloadToFileA from URLMON.DLL, which saves a URL straight to disk. Using a non-standard port and a single short domain keeps the loader tiny and lets the operator swap payloads on the server at will.

caleb@sandbox: Static analysis
 - WinExec
 - URLDownloadToFileA
 - WinExec
 - URLDownloadToFileA
 value: hxxp://2[.]indexsinas[.]me:811/86[.]exe
 value: c:\Windows\86.exe
 value: hxxp://2[.]indexsinas[.]me:811/iexplore[.]exe
 value: c:\Windows\iexplore.exe
 value: hxxp://2[.]indexsinas[.]me:811/c64[.]exe
 value: c:\Windows\c64.exe
 - URLDownloadToFileA
 - WinExec
 - URLDownloadToFileA
 - WinExec
 - hxxp://2[.]indexsinas[.]me:811/86[.]exe
 - c:\Windows\86.exe
 - URLDownloadToFileA
 - WinExec
 - URLDownloadToFileA
 - WinExec
 - hxxp://2[.]indexsinas[.]me:811/iexplore[.]exe
 - c:\Windows\iexplore.exe
 - URLDownloadToFileA
 - WinExec

Plain-text URLs and save paths sit next to the download and execute imports.

Dropped in C:\Windows under familiar names

Each file is saved directly in c:\Windows as 86.exe, iexplore.exe or c64.exe. The name iexplore.exe imitates Internet Explorer; we infer it is chosen so a process list looks normal at a glance, though the real browser does not live in the Windows root folder. The names 86 and c64 suggest 32-bit and 64-bit builds of the same tool, but that is our inference.

Started hidden

The import table pairs WinExec with Sleep, and our reading of the decompiled routines shows each download is followed by a 5 second pause and a WinExec call with a hidden window. The user sees nothing while three new programs start. The IsDebuggerPresent and GetTickCount imports belong to the standard C runtime startup code, not to any anti-analysis check, as the runtime initialisation in emulation shows.

caleb@sandbox: Emulation
 kind: dll_entry.DLL_PROCESS_ATTACH
 api: KERNEL32.GetTickCount
 api: KERNEL32.QueryPerformanceCounter
 - KERNEL32.GetTickCount
 - KERNEL32.QueryPerformanceCounter

Emulation starts at DLL load and the early timing calls are ordinary runtime initialisation.

DLL loadedEntry code jumps to downloaderT11292[.]indexsinas[.]me:811Fetches 86, iexplore, c64T1105C:\Windows folderSaves under look-alike namesT1036.005WinExecRuns each file hiddenT1106

What happens when the DLL is loaded.

Talking to the operator

There is no command channel in this DLL: the only contact with the operator is the three HTTP downloads from 2[.]indexsinas[.]me on port 811. Our rule engine matched the domain, the three URL tails, the save paths and the download import in this file and matched none of 598 clean files. Because the URLs are not encrypted, blocking or sinkholing that one host defeats this stage completely.

caleb@sandbox: Our rule engine
 rule: indexsinas_downloader_dll
 id=$u1 offset=0xb5de data=3a3831312f38362e657865
 id=$u2 offset=0xb62a data=3a3831312f696578706c6f72652e657865
 id=$u3 offset=0xb672 data=3a3831312f6336342e657865
 matchedCount: 0

A rule built on the URLs and paths matches this sample and no clean files.

Who may be behind it

No tool output named a family or actor, so we do not attribute this sample. The domain name indexsinas.me is the strongest thread for anyone tracking the campaign, and the payload names hint at a toolkit with separate 32-bit and 64-bit builds, but that remains an inference until the payloads are recovered.

Indicators

Every indicator the analysis found. Network indicators are defanged so they cannot be clicked. We never share the sample itself.

TypeIndicatorContext
SHA-25656dededa09c602a20079ec6aa5b5be0cab897c92f2b5ad98c9d9c1f401b13fd7The sample
Domain2[.]indexsinas[.]meSeen in Static analysis (E1)
URLhxxp://2[.]indexsinas[.]me:811/86[.]exeSeen in Static analysis (E1)
URLhxxp://2[.]indexsinas[.]me:811/iexplore[.]exeSeen in Static analysis (E1)
URLhxxp://2[.]indexsinas[.]me:811/c64[.]exeSeen in Static analysis (E1)
File pathc:\Windows\86.exeSeen in Static analysis (E1)
File pathc:\Windows\iexplore.exeSeen in Static analysis (E1)
File pathc:\Windows\c64.exeSeen in Static analysis (E1)

MITRE ATT&CK

TacticTechniqueIDEvidence
Command and ControlIngress Tool TransferT1105Downloads three next-stage executables over HTTP on port 811 from 2[.]indexsinas[.]me (FUN_10011b70, FUN_10011c00 and FUN_10011c90 call URLDownloadToFileA; emulation logged 3 URLDownloadToFileA calls…
Defense EvasionMatch Legitimate Resource Name or LocationT1036.005Saves the downloads in C:\Windows under the names 86.exe, iexplore.exe and c64.exe. The name iexplore.exe imitates a real Windows program (the purpose is an inference) (Emulation logged file creates …
ExecutionNative APIT1106Starts each downloaded file with WinExec and a hidden window (nCmdShow 0), 5 seconds after the download (Decompiled code shows Sleep(5000) then WinExec(path,0); emulation logged process creation for …
ExecutionShared ModulesT1129Does all of this as soon as the DLL is loaded, with no export needing to be called (Emulation of dll_entry.DLL_PROCESS_ATTACH reached the download and run calls; FUN_10011b70 is reached by a jump at …

Detection

Executables written to the Windows root with this loader's names

KQL
DeviceFileEvents
| where ActionType == 'FileCreated'
| where FolderPath matches regex @'(?i)^c:\\windows\\(86|c64|iexplore)\.exe
    
| project Timestamp, DeviceName, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256

Catches the three drops in C:\Windows. A real iexplore.exe never lives in the Windows root, so a hit there is suspicious even if the domain changes.

Outbound HTTP to port 811 or the indexsinas.me domain

KQL
DeviceNetworkEvents
| where RemotePort == 811 or RemoteUrl has 'indexsinas.me'
| project Timestamp, DeviceName, RemoteUrl, RemoteIP, RemotePort, InitiatingProcessFileName, InitiatingProcessCommandLine

Flags the download traffic this DLL makes. Port 811 is unusual for web traffic, so it is a reasonable starting point for hunting related loaders.

Processes started from the Windows root with look-alike names

KQL
DeviceProcessEvents
| where FolderPath matches regex @'(?i)^c:\\windows\\(86|c64|iexplore)\.exe
    

    
    

        



| project Timestamp, DeviceName, FolderPath, ProcessCommandLine, InitiatingProcessFileName, SHA256

Catches the hidden WinExec launches of the downloaded payloads. Review the parent process to find what loaded the DLL.

YARA: Matches 56dededa09c6.bin

YARA
rule indexsinas_downloader_dll {
  strings:
    $d = "indexsinas.me" ascii wide
    $u1 = ":811/86.exe" ascii
    $u2 = ":811/iexplore.exe" ascii
    $u3 = ":811/c64.exe" ascii
    $p1 = "c:\\Windows\\86.exe" ascii nocase
    $p2 = "c:\\Windows\\c64.exe" ascii nocase
    $api = "URLDownloadToFileA" ascii
  condition:
    uint16(0) == 0x5A4D and $api and ($d or 2 of ($u*)) and 1 of ($p*)
}

Each YARA rule matched this sample and none of our clean test files when Caleb tested it.

These queries are starting points and have not been tested against production data. Tune them to your environment before alerting.

What we have not covered yet

The three payloads (86.exe, iexplore.exe, c64.exe) were not analysed because the emulator has no network and the server was not contacted, so what the operator finally does with the machine is unknown.

The emulation log excerpt we show covers runtime start-up; the download, file write and process creation events come from the full log and decompiled code summarised in our analyst's report.

We did not establish how the DLL was delivered or loaded on the honeypot.

No persistence, injection or encrypted configuration was seen in this DLL, and no family name appeared in any tool output.

One indicator our analyst named did not appear in any tool output and was left out.

What defenders should do

  1. Block the download hostBlock 2[.]indexsinas[.]me and outbound HTTP on port 811 at the proxy and firewall; this stage has no fallback server in its code.
  2. Check C:\Windows for the three filesLook for 86.exe, iexplore.exe and c64.exe in the Windows root. Any copy found should be treated as an unknown payload and collected for analysis.
  3. Find what loaded the DLLA DLL needs a loader. Since our honeypot caught it, we suggest checking exposed services and patch levels on any host where these files appear.

Want Research Like This Watching Your Environment?

Overwatch Console turns its own malware research into tested detections for your Microsoft Sentinel workspace, with AI agents triaging every incident and your team approving what happens next.

Book a Consultation