Attacker infrastructure, but vibe-coded: tracking the evolution of credential harvesting platforms | Datadog Security Labs

Attacker infrastructure, but vibe-coded: tracking the evolution of credential harvesting platforms | Datadog Security Labs
Datadog Security Research identified two unauthenticated credential-harvesting platforms, Loot and UltraVault, that inventory, validate, and operationalize stolen secrets, including AWS and AI service credentials. The activity shows AI-assisted attack workflows, active re-probing of credentials, and exploitation chains tied to vulnerabilities such as react2shell, wp2shell, xss2shell, and joomla2shell. #Datadog #Loot #UltraVault #AmazonBedrock #Anthropic #OpenAI #AWS #CVE-2025-55182 #CVE-2026-63030 #CVE-2026-60137 #CVE-2026-64638 #CVE-2026-48907

Keypoints

  • Datadog monitored two exposed platforms, Loot and UltraVault, that organized and validated harvested credentials without authentication.
  • Loot was a simpler plaintext credential catalog, while UltraVault added one-click validation, exploit recommendations, and post-exploitation operations.
  • Both platforms re-probed stolen secrets and categorized credentials as live, pending, or dead, indicating active operator use.
  • UltraVault tracked 42,286 secrets and showed only 2.7% as live, suggesting large-scale harvesting with limited validity.
  • The platforms contained AI-related credentials, including OpenAI, Gemini, Anthropic, and Amazon Bedrock access, and operators were observed testing Bedrock with API calls.
  • UltraVault grouped exploitation activity into chains such as react2shell, wp2shell, xss2shell, joomla2shell, and deep, with automated recommendations for local privilege escalation.
  • The research highlights LLM-assisted “vibe coded” attack infrastructure that combines reconnaissance, validation, credential minting, and persistence in a single console.

MITRE Techniques

  • [T1082 ] System Information Discovery – The platform queried cloud and host details to understand what the compromised environment could access (‘Confirm the identity works, enumerate what the account can reach, then start calling models.’).
  • [T1580 ] Cloud Infrastructure Discovery – The operator checked AWS and cloud reachability, including account and region details, before further actions (‘GetCallerIdentity, ListFoundationModels, ListInferenceProfiles’).
  • [T1528 ] Steal Application Access Token – The dashboards stored and displayed API tokens and minted credentials for later use (‘It lists relevant API tokens and minted credentials’).
  • [T1110 ] Brute Force – Credential Stuffing – The system repeatedly re-validated stolen secrets and tested credentials across categories (‘re-probe keys they have already stolen’, ‘validate_category’).
  • [T1059 ] Command and Scripting Interpreter – Backend actions and one-click operations were used to drive exploitation and validation workflows (‘dispatch of commands to web shells via its backend’).
  • [T1190 ] Exploit Public-Facing Application – The exploitation chains referenced WordPress, Joomla, XSS, and React-to-shell paths used to gain code execution (‘react2shell’, ‘wp2shell’, ‘xss2shell’, ‘joomla2shell’).
  • [T1068 ] Exploitation for Privilege Escalation – The LPE matrix recommended local privilege escalation vulnerabilities to expand access (‘walks through 14 LPE vulnerabilities and produces a final recommendation’).
  • [T1021 ] Remote Services – The panel supported one-click actions against services such as cPanel on port 2083 and WordPress targets (‘attack targets port 2083, associated with cPanel’).
  • [T1105 ] Ingress Tool Transfer – The platform enabled persistence and operational actions by copying, minting, and exporting credentials (‘copy credentials the attacker minted on the host’, ‘Easy export functionality’).
  • [T1649 ] Steal or Forge Authentication Certificates – The system reconstructed AWS access-key/secret-key pairs from separate dumps for account validation (‘correlating and validating AWS secrets’, ‘/api/pairs’).
  • [T1526 ] Cloud Service Discovery – The attacker enumerated available foundation models and inference profiles in AWS Bedrock (‘ListFoundationModels’, ‘ListInferenceProfiles’).
  • [T1552.001 ] Credentials In Files – The dashboards aggregated secrets collected from dumps and displayed them in plaintext (‘category-navigable index of credentials, all displayed in plaintext’).

Indicators of Compromise

  • [IP address ] Host used to validate and probe stolen credentials – the Loot/UltraVault server IP (not disclosed), AWS probing source IP (not disclosed)
  • [CVE IDs ] Exploitation chains and LPE recommendations – CVE-2025-55182, CVE-2026-63030, and 2 more CVEs
  • [API endpoints ] Credential validation and AWS pair processing – /api/credentials/validate, /api/credentials/validate_category, /api/pairs, /api/actions/aws_pair
  • [AWS API actions ] Bedrock and STS validation activity – GetCallerIdentity, ListFoundationModels, InvokeModel, and ListInferenceProfiles
  • [User agents ] Observed probing clients – Boto3/1.43.72 on Kali Cloud, Python-urllib/3.13
  • [Credential types ] Harvested secrets across services – AWS access keys, AWS STS temporary credentials, and AI provider keys such as OpenAI and Anthropic


Read more: https://securitylabs.datadoghq.com/articles/attacker-infrastructure-but-vibe-coded/