Book a demo →
← All posts
Threat Watch

Agent Tesla: A Fake Purchase Order That Steals Logins Over Plain FTP

A Spanish purchase order in a renamed .uu archive hides Agent Tesla in aspnet_compiler.exe to send stolen logins over plain FTP (ANY.RUN report, May 2026).

Agent Tesla: A Fake Purchase Order That Steals Logins Over Plain FTP

AegisAI Threat Watch · Credential theft

Agent Tesla: A Fake Purchase Order That Steals Logins Over Plain FTP

In a May 2026 report, ANY.RUN traced an Agent Tesla campaign against Chilean and wider Latin American companies to FTP infrastructure active since at least September 2024.

TL;DR
What
A purchase order in a .uu archive starts a script chain that hides Agent Tesla in aspnet_compiler.exe and sends stolen logins over plain FTP.
Who it hits
Accounts payable and procurement staff at Chilean and wider Latin American companies, per ANY.RUN.
Why scanners miss it
The extension is not a known archive type, the final stage runs in memory, and FTP traffic is rarely watched.
Do today
Quarantine .uu, .jse and .vbe attachments and alert on workstations that open outbound FTP.

Reported by ANY.RUN, 14 May 2026.

An Agent Tesla campaign hides a Spanish purchase order in an archive with a .uu extension, then steals logins and sends them out over plain FTP.

Agent Tesla is a spyware Trojan written for the .NET framework that MITRE ATT&CK says has been observed since at least 2014. Process hollowing means starting a legitimate program in a suspended state, writing attacker code into its memory and resuming it, so the malware runs under a trusted name. FTP exfiltration means the stolen data leaves over File Transfer Protocol, which sends credentials and files without encryption.

Analysis based on ANY.RUN research published on 14 May 2026, which began with a sample found in March 2026. The same hiding place has appeared in Threat Watch before, in a Formbook campaign that hid inside the same Windows process, aspnet_compiler.exe.

18+ mo
as of March 2026, how long ANY.RUN says the same FTP infrastructure has been maintained
80
malicious files that VirusTotal shows talking to the FTP server
80+
applications the stealer targets, in six categories
46.8%
size cut when the protected loader was partly deobfuscated

Source: ANY.RUN, 14 May 2026. The 80 files are a VirusTotal count of samples that communicated with the server; ANY.RUN's text also says "80+ samples".

Key judgments

  • The file name lies twice. The attachment is a RAR archive named Orden de compra_pdf.uu: "_pdf" suggests a document and ".uu" is not an archive extension. ANY.RUN calls the extension deliberate obfuscation aimed at scanners and gateways that filter by extension.
  • Each stage hides in a different way. A JScript Encoded dropper runs through wscript.exe, PowerShell stagers sit in C:\Temp\, the loader is wrapped in .NET Reactor 6.x and hollowed into aspnet_compiler.exe, and the final payload loads from memory.
  • The theft leaves over FTP, not HTTPS. ANY.RUN says most organizations focus monitoring on HTTP and HTTPS, so an FTP upload of a file named PW_ followed by a user and host name can go unseen.
  • The drop server is a real business. ANY.RUN identifies it as a compromised Romanian hospitality website. AegisAI's reading is that a reputation check on the destination sees an ordinary domain.
  • The infrastructure outlived the lures. VirusTotal shows files talking to the same server since September 2024, while the lure names change between purchase orders, payroll lists and payment receipts.

Evaluating email security tools? The 2026 Buyer's Guide to Email Security has nine evaluation areas and the questions to ask vendors. Get the guide.

How does Agent Tesla hide inside aspnet_compiler.exe?

ANY.RUN describes one chain from the archive to the FTP upload. Steps 1 and 2 are the delivery and the script; steps 3 to 5 are the loader, the injection and the in-memory payload; step 6 is the theft.

  1. An accounts payable or procurement employee receives a Spanish-language purchase order. The analysed attachment is Orden de compra_pdf.uu, a RAR archive. ANY.RUN's evidence line says the archive was delivered by email and publishes no sender details.
  2. Extracting the archive gives a JScript Encoded file that wscript.exe runs. It downloads a decoy PDF to distract the victim, writes PowerShell stager scripts with random names into C:\Temp\, runs them with execution policy bypass and changes registry keys for persistence.
  3. A PowerShell stager loads ALTERNATE.dll, the Agent Tesla loader. The DLL is protected with .NET Reactor 6.x, and ANY.RUN lists a forged PE timestamp of 2066 among the protections.
  4. The stager finds aspnet_compiler.exe, a legitimate .NET Framework component, and starts it suspended. It then allocates memory in it (VirtualAllocEx), writes the payload (WriteProcessMemory), resolves the entry point and resumes the thread.
  5. The loader reads an AES-256 encrypted and compressed blob from its resources, decrypts it with a hardcoded key, decompresses it and loads Agent Tesla from a byte array in memory. ANY.RUN says no file is written to disk from this point forward.
  6. Agent Tesla collects credentials, keystrokes, clipboard text and screenshots into an HTML report named PW_[username]-[hostname]_[timestamp].html and uploads it over cleartext FTP to the compromised server.

Source: ANY.RUN, 14 May 2026. The report does not say how many messages were sent or which sender infrastructure carried them.

What a defender sees at each stage

The table lists what runs at each step and why a quick check passes it. It is AegisAI's reading of the reported chain.

StageWhat runsWhat looks normal about it
DeliveryRAR archive named like a PDF, with a .uu endingA purchase order in the recipient's language
Scriptwscript.exe runs a JScript Encoded fileA built-in Windows script host
LoaderPowerShell with execution policy bypass runs stagers from C:\Temp\PowerShell is in daily use by administrators
InjectionALTERNATE.dll is hollowed into aspnet_compiler.exeA signed .NET Framework component
PayloadAgent Tesla loads from memoryNo payload file on disk to scan
ExitCleartext FTP upload of a PW_ fileFTP to an ordinary business website

What the stealer targets

ANY.RUN reports that the unpacked payload targets more than 80 applications across six categories. It also runs a keylogger and a clipboard monitor, and the HTML report includes system details and base64-encoded screenshots.

CategoryReported count
Web browsersMore than two dozen
Email clientsMore than twenty
VNC serversThirteen
FTP clientsNine
Messaging applicationsSeveral
VPN clientsFive

Source: ANY.RUN, 14 May 2026. Counts are the report's own, with its hedges kept.

The reported timeline

WhenWhat was reported
September 2024The earliest of 80 malicious files that VirusTotal shows communicating with the FTP server
March 2026ANY.RUN finds the archive during routine threat hunting; the captured upload carries a 27 March 2026 stamp in its file name
14 May 2026ANY.RUN publishes its analysis

Source: ANY.RUN, 14 May 2026. ANY.RUN's own text gives both "mid-2024" and September 2024 as the start; the two are not reconciled.

How do I detect Agent Tesla process hollowing and FTP exfiltration?

Detect the chain, not the file name. ANY.RUN recommends interactive sandbox analysis for suspicious attachments and monitoring of outbound FTP, because static scanning and process names show little here.

Four signals from the report make workable hunting rules:

  • wscript.exe running a JScript Encoded file, followed by PowerShell with execution policy bypass that runs randomly named scripts from C:\Temp\.
  • aspnet_compiler.exe started suspended by PowerShell or another unexpected parent, with memory allocated and written in it. AegisAI's reading is that this is rare outside .NET development hosts.
  • A workstation opening an outbound FTP connection (port 21 by default) to an unfamiliar host and sending a file whose name starts with PW_. ANY.RUN published a Suricata rule that matches the STOR PW_ command.
  • A new Run key value, a copy in the Startup folder or a scheduled task, with the GUID-named copy 7bcd610d-7af6-4dc2-875b-dc4fec91463c.exe in the sample.

The FTP host is a compromised legitimate site, so ANY.RUN notes that blocking the IP address may affect a real business. The report also lists related subdomains on the same IP used as email relay infrastructure, patterns it calls consistent with mail relay abuse to improve phishing deliverability.

ControlWhat it sees in this campaignResult
Attachment filter by extensionA .uu ending, which is not a known archive or executable typePasses
Static scan of filesA protected loader and a payload that exists only in memoryLittle to match
Process-name allow listwscript.exe, powershell.exe, aspnet_compiler.exePasses
HTTP and HTTPS egress monitoringThe upload goes over FTPDoes not see it
Reputation check on the destinationA legitimate hospitality website, compromisedWeak
Interactive sandbox of the attachmentThe full chain, the FTP login and the PW_ uploadCan be flagged
Outbound FTP alerting from workstationsCleartext login and a STOR PW_ commandCan be flagged
Reading the message that carries the archiveA purchase order in Spanish with an archive that has an unusual extensionCan be flagged when it arrives by email

AegisAI's reading of the reported chain. The sandbox, FTP and extension rows follow ANY.RUN's reported guidance.

A purchase order, a renamed archive and a signed Windows tool. The only step that leaves the building does so over a protocol few teams watch.

AegisAI Threat Intelligence

What this means for a security team

This section is AegisAI's analysis. ANY.RUN describes purchase orders as expected, frequently shared by email and often opened without scrutiny by accounts payable and procurement staff, which is why the lure fits that desk. The campaign is also old: the same FTP server has been in use since September 2024 while the file names changed, so an indicator list from one week does not cover the next.

Three questions settle the exposure: whether archives with unusual extensions and script types such as .jse and .vbe reach finance and procurement inboxes, whether anyone watches outbound FTP from workstations, and whether credentials saved in browsers, mail clients, FTP clients and VPN clients can be reset quickly for a user who opened the archive.

Why standard controls miss it

This section is AegisAI's analysis. An extension filter has no rule for .uu, a static scanner meets a protected loader and a payload that never reaches disk, and a process-name check sees only Windows tools. The exfiltration then uses a protocol that many egress controls leave alone and a destination with a clean history. The remaining signal is the request itself: a purchase order that holds an archive with an odd extension, sent to someone whose job is to open purchase orders. That request is visible when the email arrives.

How AegisAI protects against it

AegisAI has not observed this campaign. ANY.RUN's evidence line says the archive was delivered by email but publishes no sender or volume details, so the approach below is how AegisAI treats an archive lure of this shape when it arrives by email. It does not cover what happens on an endpoint after the archive is opened, or the FTP traffic that follows.

AegisAI's agents evaluate the message and the destination it points to together, and pull a malicious message out of mailboxes before users see or click it. More on how that works: inbound email security.

When a lure or a compromised session is caught, the response compounds: the message is withheld at classification, copies already delivered are retracted, rewritten links refuse a late visit, the account's outbound and internal mail gets rescanned, and lateral phishing attempts to colleagues are blocked at the same bar rather than treated as a fresh, unrelated message.

How AegisAI stops credential phishing, 48 second video

How AegisAI stops credential phishing, 48 seconds

Recommendations for defenders

  • Quarantine archives with unusual extensions such as .uu, script files such as .jse and .vbe inside archives, and macro-enabled Office files such as .xlam from external senders in procurement mail, as ANY.RUN advises.
  • Add detections for wscript.exe followed by PowerShell with execution policy bypass, and for aspnet_compiler.exe started suspended by an unexpected parent.
  • Allow outbound FTP only from known servers. Alert on a workstation that connects to an unfamiliar FTP host or sends a file named PW_, and pivot on the reported IP address and host name in threat intelligence tools.
  • Detonate suspicious attachments in an interactive sandbox in addition to static scanning, because the loader is built to defeat static analysis.
  • Brief procurement, finance and HR staff that a purchase order is not an archive. Where a user opened one, isolate the host and reset the browser, mail, FTP and VPN credentials saved on it.

FAQ

What is the Agent Tesla campaign that uses a .uu purchase order archive?

It is a credential-theft campaign that ANY.RUN reported on 14 May 2026 against Chilean and wider Latin American companies. A Spanish purchase order arrives as a RAR archive with a .uu extension, and a script chain injects Agent Tesla into aspnet_compiler.exe. The stolen data goes out over FTP.

How does Agent Tesla exfiltrate stolen credentials over FTP?

ANY.RUN captured the payload logging in to ftp.horeca-bucuresti[.]ro and uploading an HTML report with the STOR command. The report is named PW_[username]-[hostname]_[timestamp].html and contains credentials, clipboard text and screenshots. FTP carries no transport encryption by default, so the login and the file were visible in the network capture.

How do I detect Agent Tesla process hollowing in aspnet_compiler.exe?

Look for PowerShell starting aspnet_compiler.exe in a suspended state, followed by memory allocation and writes into that process (VirtualAllocEx and WriteProcessMemory). Combine that with wscript.exe running a JScript Encoded file earlier in the chain. A single process name is not a reliable signal.

How long has this Agent Tesla campaign been active?

ANY.RUN says the same FTP infrastructure had been maintained for at least 18 months as of the March 2026 sample, based on VirusTotal files communicating with the server since September 2024. The report does not say whether the hosting business has been notified or whether the indicators are still live. Treat the indicators as historical.

For researchers

What the reporting does not tell us 4 gaps

Delivery. The report's evidence line says the archive was delivered by email. It does not publish sender addresses, message wording or volume, and it offers no mail sample.

Scale. ANY.RUN ties about 80 malicious files to the server but does not say how many organizations were compromised. Its Chile finding describes where sandbox submissions came from, not a share of victims.

Currency. The report is six months old at the time of writing. Whether the server, the hosting business and the indicators are still active is not stated.

Attribution. ANY.RUN names no threat actor. It calls the operation sustained and professional but gives no operator identity.

Reported indicators 12 items

Indicators from ANY.RUN's report, defanged. Infrastructure changes quickly: treat these as historical indicators, not a live blocklist.

TypeIndicatorRole
Domainftp.horeca-bucuresti[.]roCompromised website used as the FTP drop
IP address89[.]39[.]83[.]184FTP exfiltration server
FTP accountamericas2@horeca-bucuresti[.]roOperator drop account
FileOrden de compra_pdf.uuRAR archive with a .uu extension
FileALTERNATE[.]dllAgent Tesla loader, .NET Reactor 6.x
File7bcd610d-7af6-4dc2-875b-dc4fec91463c[.]exeGUID-named persistence copy
PatternPW_[username]-[hostname]_[timestamp].htmlExfiltrated report name sent with STOR
SHA-256948c8c69fe02eda9231aebfa5c626335307058ac74a5c3c40b346179a1bfc982RAR archive
SHA-2567929355856a2a85d48f95d230cd74fbb5ad554bed49e73b1800136c4bcccd1a8JScript Encoded dropper
SHA-256cd83f5ceb2d014badfa991106a9d37a6aeab9043d60d796ad0f16d36cdfa5703PowerShell stager variants
SHA-25696ad1146eb96877eab5942ae0736b82d8b5e2039a80d3d6932665c1a4c87dcf7PowerShell stager template
SHA-25643d09743a69c9afa7156bf4e2bf7423b3d5f5ad7d54c4c3fb8a698d526778057Unpacked Agent Tesla payload
MITRE ATT&CK mapping 8 techniques

ANY.RUN's report maps these techniques; IDs and names were checked against attack.mitre.org on 14 November 2026.

IDNameUse in this campaign
T1566.001Phishing: Spearphishing AttachmentA RAR archive with a financial lure, reported as delivered by email.
T1027Obfuscated Files or InformationA JScript Encoded dropper and a .uu extension on the archive.
T1059.007Command and Scripting Interpreter: JavaScriptwscript.exe runs the JScript Encoded dropper.
T1059.001Command and Scripting Interpreter: PowerShellStager scripts run with execution policy bypass.
T1055.012Process Injection: Process HollowingALTERNATE.dll is hollowed into aspnet_compiler.exe.
T1027.002Obfuscated Files or Information: Software PackingThe loader is protected with .NET Reactor 6.x.
T1555.003Credentials from Password Stores: Credentials from Web BrowsersANY.RUN reports Chrome and Firefox credential store access as confirmed.
T1048.003Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 ProtocolCleartext FTP to the compromised server on port 21.
References 2 sources
  • ANY.RUN (14 May 2026). LATAM Under Siege: Agent Tesla's 18-Month Credential Theft Campaign Against Chilean Enterprises. any.run
  • MITRE ATT&CK. Agent Tesla (S0331) and techniques T1566.001, T1027, T1059.007, T1059.001, T1055.012, T1027.002, T1555.003 and T1048.003. attack.mitre.org

Every email, investigated.

When a purchase order with an archive inside reaches a work inbox, see how AegisAI reads the request and where it leads.

Phishing that reaches the inbox, stopped before anyone clicks.

Book a demo