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).

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.
- 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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
| Stage | What runs | What looks normal about it |
|---|---|---|
| Delivery | RAR archive named like a PDF, with a .uu ending | A purchase order in the recipient's language |
| Script | wscript.exe runs a JScript Encoded file | A built-in Windows script host |
| Loader | PowerShell with execution policy bypass runs stagers from C:\Temp\ | PowerShell is in daily use by administrators |
| Injection | ALTERNATE.dll is hollowed into aspnet_compiler.exe | A signed .NET Framework component |
| Payload | Agent Tesla loads from memory | No payload file on disk to scan |
| Exit | Cleartext FTP upload of a PW_ file | FTP 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.
| Category | Reported count |
|---|---|
| Web browsers | More than two dozen |
| Email clients | More than twenty |
| VNC servers | Thirteen |
| FTP clients | Nine |
| Messaging applications | Several |
| VPN clients | Five |
Source: ANY.RUN, 14 May 2026. Counts are the report's own, with its hedges kept.
The reported timeline
| When | What was reported |
|---|---|
| September 2024 | The earliest of 80 malicious files that VirusTotal shows communicating with the FTP server |
| March 2026 | ANY.RUN finds the archive during routine threat hunting; the captured upload carries a 27 March 2026 stamp in its file name |
| 14 May 2026 | ANY.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.
| Control | What it sees in this campaign | Result |
|---|---|---|
| Attachment filter by extension | A .uu ending, which is not a known archive or executable type | Passes |
| Static scan of files | A protected loader and a payload that exists only in memory | Little to match |
| Process-name allow list | wscript.exe, powershell.exe, aspnet_compiler.exe | Passes |
| HTTP and HTTPS egress monitoring | The upload goes over FTP | Does not see it |
| Reputation check on the destination | A legitimate hospitality website, compromised | Weak |
| Interactive sandbox of the attachment | The full chain, the FTP login and the PW_ upload | Can be flagged |
| Outbound FTP alerting from workstations | Cleartext login and a STOR PW_ command | Can be flagged |
| Reading the message that carries the archive | A purchase order in Spanish with an archive that has an unusual extension | Can 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 IntelligenceWhat 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.
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.
| Type | Indicator | Role |
|---|---|---|
| Domain | ftp.horeca-bucuresti[.]ro | Compromised website used as the FTP drop |
| IP address | 89[.]39[.]83[.]184 | FTP exfiltration server |
| FTP account | americas2@horeca-bucuresti[.]ro | Operator drop account |
| File | Orden de compra_pdf.uu | RAR archive with a .uu extension |
| File | ALTERNATE[.]dll | Agent Tesla loader, .NET Reactor 6.x |
| File | 7bcd610d-7af6-4dc2-875b-dc4fec91463c[.]exe | GUID-named persistence copy |
| Pattern | PW_[username]-[hostname]_[timestamp].html | Exfiltrated report name sent with STOR |
| SHA-256 | 948c8c69fe02eda9231aebfa5c626335307058ac74a5c3c40b346179a1bfc982 | RAR archive |
| SHA-256 | 7929355856a2a85d48f95d230cd74fbb5ad554bed49e73b1800136c4bcccd1a8 | JScript Encoded dropper |
| SHA-256 | cd83f5ceb2d014badfa991106a9d37a6aeab9043d60d796ad0f16d36cdfa5703 | PowerShell stager variants |
| SHA-256 | 96ad1146eb96877eab5942ae0736b82d8b5e2039a80d3d6932665c1a4c87dcf7 | PowerShell stager template |
| SHA-256 | 43d09743a69c9afa7156bf4e2bf7423b3d5f5ad7d54c4c3fb8a698d526778057 | Unpacked 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.
| ID | Name | Use in this campaign |
|---|---|---|
T1566.001 | Phishing: Spearphishing Attachment | A RAR archive with a financial lure, reported as delivered by email. |
T1027 | Obfuscated Files or Information | A JScript Encoded dropper and a .uu extension on the archive. |
T1059.007 | Command and Scripting Interpreter: JavaScript | wscript.exe runs the JScript Encoded dropper. |
T1059.001 | Command and Scripting Interpreter: PowerShell | Stager scripts run with execution policy bypass. |
T1055.012 | Process Injection: Process Hollowing | ALTERNATE.dll is hollowed into aspnet_compiler.exe. |
T1027.002 | Obfuscated Files or Information: Software Packing | The loader is protected with .NET Reactor 6.x. |
T1555.003 | Credentials from Password Stores: Credentials from Web Browsers | ANY.RUN reports Chrome and Firefox credential store access as confirmed. |
T1048.003 | Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 Protocol | Cleartext 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 demoRelated posts
More from the AegisAI blog.

