Blog bannar

Spraying in the Andes: TeamFiltration Returns to Exploit Forgotten Service Accounts

Share with your network!

Key Takeaways

  • Proofpoint researchers identified an active TeamFiltration campaign - tracked as UNK_CondorFiltration, that targeted over 5,700 accounts across 28 Microsoft 365 tenants in Latin America, focusing intensively on Chilean organizations.
  • All 7 successfully compromised accounts were unmanaged functional/service accounts with no prior legitimate login baseline, strongly indicating default or predictable passwords that had never been rotated, with no MFA enforcement.
  • Several compromised accounts showed post-access activity beyond the initial credential validation: the attacker signed in from a German VPN node, attempted to authenticate to the corporate VPN, and accessed several Azure apps, including OfficeHome, Azure Portal, and SharePoint Online.

Intro

In late July 2026, Proofpoint threat researchers detected a concentrated Microsoft 365 brute-force campaign targeting Chilean organizations. The attacker's tooling left a familiar artifact: the hardcoded user agent unique to TeamFiltration  - a cross-platform offensive framework publicly documented by Proofpoint in the UNK_SneakyStrike blogpost.

The campaign was concentrated almost entirely on Chilean organizations, with a major retailer and multiple financial institutions among the primary targets. The attacker likely sprayed accounts with default passwords - credentials provisioned by IT and never rotated. Against personal employee accounts, this approach yielded no confirmed compromises, since users are required to change passwords from time to time. Against dormant service accounts, it worked. These accounts were provisioned to run business operations and then left unmonitored, still carrying their original credentials.  Every confirmed compromise traced back to the same likely root cause: a default password on a forgotten account.

Attack Tool Overview: What Is TeamFiltration?

TeamFiltration is a cross-platform offensive framework built by Joakim Kandefelt (@Flangvik / TrustedSec) for penetration testing Microsoft 365 environments. First used internally in January 2021 and publicly released at DEF CON 30 in a talk titled "Taking a Dump In The Cloud," it automates four attack phases that chain reconnaissance through exfiltration:

Module

Description

Enumeration

Validates account existence at ~300 emails/sec via the Teams API - without triggering account lockouts.

Spray

Systematically tests common or targeted passwords across enumerated accounts, rotating AWS regions via FireProx to evade IP-based blocking.

Exfiltrate

After access is obtained, harvests email, Teams chats, OneDrive/SharePoint files, and Graph API data automatically.

Backdoor

Grants interactive OneDrive access to browse, download, and silently replace files - enabling an attacker to plant malicious files in place of legitimate ones, triggering execution the next time the file is opened.

The Attribution Fingerprint

TeamFiltration's default configuration includes a hardcoded user agent string from a 2020 Microsoft Teams desktop client - a non-common version these days:

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Teams/1.3.00.30866 Chrome/80.0.3987.165 Electron/8.5.1 Safari/537.36"

Campaign Overview

The campaign was concentrated almost entirely on Chilean organizations - with one major retailer accounting for 78.3% of all observed events. This regional focus is a notable departure from the geographically distributed targeting seen in UNK_SneakyStrike.

Campaign Statistics

Metric

Value 

Total authentication events

32,825

Unique accounts targeted

5,714

Unique source IPs

1,487 (All AWS EC2)

Tenants targeted

28

Accounts compromised

7

Primary target sector

Retailer(53.2% of accounts)

image-20260919193556-1

Figure 1: Campaign Activity Timeline — daily unique accounts targeted, Jul 21–Aug 16

Activity Timeline

The campaign unfolded across three distinct bursts over a 26-day window:

  • Jul 21-24 A small-volume opening wave targeted approximately 100–120 unique accounts per day. This activity was directed primarily at two major Chilean banking institutions.
  • Jul 26-28 Spray volume surged to a peak of roughly 1,520 accounts on Jul 27 before collapsing sharply. This wave targeted another major Chilean financial institution.
  • Aug 13-16 After approximately two weeks of silence, the operator returned with a second high-volume burst, peaking at around 1,560 accounts on Aug 15 - marginally exceeding the July peak. This wave shifted focus to a major Chilean retailer, where all seven confirmed account compromises and the observed post-access activity occurred on Aug 14–15.

Target Landscape

Domain

Accounts

% Accounts

Events

% Events

Outcome

Major retailer

3,038

53.2%

25,715

78.3%

7 accounts compromised

Major financial institution #1

1,873

32.8%

3,776

11.5%

  N/A

Major financial institution #2

110

1.9%

1,536

4.7%

N/A

Other Chilean orgs

217

3.8%

464

1.4%

N/A

Other (non-Chile)

476

8.3%

1,334

4.1%

N/A

Notable Side Target

A major Chilean banking institution was targeted in 1,536 (Major financial institution #2) authentication attempts across the small amount of 114 accounts. Over half of those attempts (782) targeted 57 senior accounts, including multiple managers.

Dormant Accounts as the Attack Surface

The attacker targeted more than 5,700 accounts across 28 tenants and achieved zero compromises against personal employee accounts. Every confirmed breach involved a functional or service account.

A review of login telemetry for all 7 compromised accounts revealed a consistent and striking pattern: none had any prior legitimate user sessions in the period covered by our telemetry. These accounts were not used by humans. They were created to run business operations - managing tickets, approving vendor payments, operating a point-of-sale system, and handling requests - then left idle, still active in the tenant's identity plane, but belonging to nobody. Six of them compromised within 7 minutes during the campaign - strongly suggesting a shared or default password set consistent with an organizational provisioning process, not individually targeted credential stuffing.

Why Service Accounts Are the Perfect Target

Service accounts are particularly vulnerable due to a combination of predictable usernames, default passwords, and weak security controls in addition to lack of ownership of a human (sometimes). These accounts are usually being poorly managed and overlooked. These accounts usually lack MFA.

Post-Compromise: Beyond the Password

For most of the compromised accounts, the only post-login activity observed was access to “Microsoft Office” and “OneDrive” alongside “Teams”. This was done from the same AWS infrastructure. This matches TeamFiltration's -auto-exfil mode, which automatically pulls email, Teams conversations, and OneDrive files after a successful sign-in. Sign-in logs alone cannot confirm exfiltration occurred, but the access pattern points to it.

A Compromised Service Account: Case Study in Post-Compromise Activity

Within 90 seconds of the successful compromise, the attacker switched from the TeamFiltration infrastructure to a German VPN node and began a post-access sequence: probing the corporate VPN, accessing Azure Portal, browsing SharePoint, and triggering a Microsoft Graph API token request.

Time (UTC)

Application

IP / ISP

Action

18:41:41

Microsoft Teams

3.101.157.240 amazon.com

Initial compromise via password spray

18:42:30

Corporate VPN Portal (vpn.[redacted].cl/SAML20/SP)

149.88.104.19 cdn77.com/DE

Corporate VPN probe - FAILED (MFA/CA blocked entry). Telemetry records target_application_id = https://vpn.[redacted]/SAML20/SP

18:43:29

Azure Portal

149.88.104.19 cdn77.com/DE

Azure Portal access triggered an MFA enrollment prompt (userstrongauthenrollmentrequiredinterrupt), indicating the account had no MFA configured at the time of compromise.

19:03:59

OfficeHome

149.88.104.19 cdn77.com/DE

M365 Portal access

19:07:23

SharePoint Online

149.88.104.19 cdn77.com/DE

File system access - potential document reconnaissance, exfiltration or backdoor delivery

19:07:35

SharePoint Online Web Client Extensibility

149.88.104.19 cdn77.com/DE

Client-side code requested an access token to interact with Microsoft Graph or external APIs

 

Applications Accessed by the Attacker

Application

App ID

Accounts

Purpose

 TeamFiltration via AWS infrastructure

Microsoft Teams

1fec8e78-bce4-4aaf-ab1b-5451cc387264

All 7

Enumeration, credential spray, and Teams chat/file exfiltration

Microsoft Office

d3590ed6-52b3-4102-aeff-aad2292ab01c 

All 7

Email and calendar exfiltration (Outlook REST)

OneDrive SyncEngine

ab9b8c07-8f02-4f72-87fa-80105867a763

subset of accounts

File exfiltration and OneDrive backdoor

German VPN

Corporate VPN Portal (SAML)

https://vpn.[redacted]/SAML20/SP

subset of accounts

Corporate VPN access attempt

Azure Portal

c44b4083-3bb0-49c1-b47d-974e53cbdf3c

one compromised account

Azure Portal access

OfficeHome (M365 Portal)

4765445b-32c6-49b0-83e6-1d93765276ca

one compromised account

M365 Portal access

SharePoint Online

00000003-0000-0ff1-ce00-000000000000

one compromised account

File and document reconnaissance/exfiltration

SharePoint Online Web Client Extensibility

08e18876-6177-487e-b8b5-cf950c1e598c

one compromised account

Client-side code requested an access token to interact with Microsoft Graph or external APIs

IOCs

Type

Indicator

Description

User Agent

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Teams/1.3.00.30866 Chrome/80.0.3987.165 Electron/8.5.1 Safari/537.36

Hardcoded in TeamFiltration default config. Not seen in legitimate modern Teams clients.

IP Ranges

3.101.0.0/16

18.144.76.0/24

13.52.201.0/24

Primary spray infrastructure. All resolve to amazon.com (AWS EC2).

IP (Post-access)

149.88.104.19

cdn77.com / datacamp.co.uk German VPN that used for VPN probing, Azure Portal access, and SharePoint recon.

Conclusion

The UNK_CondorFiltration campaign is a reminder that one of the weakest links in an enterprise identity perimeter is often not a phished employee or a zero-day exploit. It is the forgotten account. Service accounts provisioned for convenience and never revisited are a structurally unprotected attack surface.