Back to Intelligence

Rhadamanthys Stealer + RecruitTrap Phishing Kit: OTX Pulse Analysis — AI-Generated Malware & OAuth Token Theft Detection Pack

SA
Security Arsenal Team
August 25, 2026
11 min read

Two converging threat streams surfaced in this collection window: AI-assisted malware (including the Rhadamanthys infostealer and Oyster backdoor) is transitioning from research sandboxes into live endpoint infections, while the RecruitTrap recruitment-themed phishing operation is actively harvesting enterprise credentials and OAuth tokens across seven industry verticals — with a deliberate mobile-first design that strips away the URL bar entirely.

Threat Summary

These pulses describe two distinct but complementary credential-theft ecosystems.

Stream 1 — AI-Enabled Malware Maturation. Analysis of 405 AI-integrated malware samples shows the technology is still largely experimental: roughly 97% of samples exist only in research repositories. However, the 3% that matters has already landed. Twelve samples across five families — FunkSec ransomware, Oyster backdoor, Rhadamanthys stealer, CleanBoost, and trojanized AI applications (RecipeLister) — were observed on protected endpoints in three countries. The significance is not volume but trajectory: LLM-generated code is lowering the skill floor for building functional stealers and backdoors, and COM hijacking techniques are appearing in these builds for persistence.

Stream 2 — RecruitTrap Enterprise Credential Harvesting. A phishing operation impersonating HR departments of major brands (McKinsey, FIFA, American Airlines, Levi's, Expedia, and others) is targeting Aerospace, Technology, Retail, Finance, Hospitality, Manufacturing, and Media sectors. The attack chain:

  1. Victim receives a recruitment-themed lure (job offer, application status) referencing a real employer brand.
  2. Link resolves to a *-careers.com lookalike domain hosting a counterfeit login portal.
  3. On desktop, the kit uses Browser-in-the-Browser (BitB) — a fake SSO popup rendered inside the page with a forged URL bar showing a legitimate identity provider address.
  4. On mobile, the kit renders a full-screen login page with no visible URL indicator at all, removing the user's last visual verification cue.
  5. Infrastructure actively fingerprints and screens victims, rejecting personal email addresses to ensure only corporate credentials (and their associated OAuth tokens) are captured.

The collective picture: adversaries are industrializing enterprise credential theft — AI-assisted tooling on the malware side, and victim-qualification logic on the phishing side. Captured OAuth tokens and session cookies bypass MFA and feed directly into dark web access-broker markets.

Threat Actor / Malware Profile

Rhadamanthys Stealer

  • Distribution: Malvertising, trojanized software installers, and — increasingly — AI-themed application lures. In this pulse it appears among LLM-assisted builds.
  • Payload behavior: Harvests browser credentials, cookies, autofill data, cryptocurrency wallets, and session tokens. Exfiltrates staged data over HTTPS to C2.
  • C2 communication: HTTPS POST to embedded C2 infrastructure; recent variants use custom encryption layers and domain rotation.
  • Persistence: Observed variants leverage COM hijacking — registering malicious DLLs under hijacked CLSID registry keys (HKCU\Software\Classes\CLSID\{...}\InprocServer32) to execute on legitimate COM object instantiation.
  • Anti-analysis: Sandbox/environment checks, string obfuscation, and in this sample set, LLM-generated polymorphic code segments that vary between builds to defeat signature matching.

Oyster Backdoor (aka Broomstick/CleanUpLoader)

  • Distribution: Trojanized installers for legitimate utilities, frequently delivered via SEO poisoning and malvertising.
  • Payload behavior: Initial access backdoor providing command execution and payload staging; commonly a precursor to ransomware or data theft operations.
  • C2 communication: HTTPS beaconing to hardcoded and DGA-adjacent domains.
  • Persistence: Scheduled tasks and registry Run keys.

FunkSec Ransomware

  • Profile: Ransomware family with AI-assisted code generation observed in development; double-extortion model. Included here because its presence in the AI-integrated sample set signals AI tooling crossing into extortion operations.

RecruitTrap Phishing Kit

  • Distribution: Recruitment-themed lures via email and direct messages; infrastructure on brand-impersonating *-careers.com domains.
  • Credential capture: Counterfeit SSO login pages capturing credentials and OAuth authorization flows; victim screening rejects free-mail providers (Gmail, Outlook.com, Yahoo) to prioritize enterprise identities.
  • Evasion: BitB popups defeat URL inspection on desktop; full-screen mobile rendering removes the address bar entirely; conditional content serving likely gates the phishing page behind fingerprinting checks.

IOC Analysis

The indicator set splits into two operational classes:

FileHash-SHA256 (8 sampled of 12 total): Hashes for the AI-integrated malware samples — Rhadamanthys, Oyster, FunkSec, CleanBoost, and RecipeLister builds. These are point-in-time artifacts. Because LLM-generated code produces high build-to-build variance, hash matching alone will decay quickly. Operationalize them as:

  • Blocklist entries in EDR/AV for known-bad samples
  • Pivot seeds for sandbox detonation to extract behavior-based detections (COM hijack registry writes, C2 domains, mutex names)
  • VirusTotal/OTX pivoting to identify related samples sharing imphash or section-level similarity

Domains (8 sampled of 11 total): RecruitTrap infrastructure — hbc-careers.com, fifahr-careers.com, mckinsey-careers.com, aa-careers.com, levis-careers.com, andmore-global.com, expedia-careers.com. Note careers.com in the set should be treated with care to avoid false positives on legitimate infrastructure; validate against the full pulse before blocking. Operationalize via:

  • DNS sinkhole / proxy block at the network edge
  • Retroactive DNS and web proxy log search (30–90 days) to identify victims
  • Newly-registered-domain (NRD) alerting on the pattern *careers*.com combined with brand keyword matching — this actor's naming convention is predictable

Tooling: OTX pulses ingest directly into most SIEMs via the AlienVault OTX TAXII/API connector; Sigma and KQL detections below operationalize the behavioral layer that survives hash rotation.

Detection Engineering

YAML
---
title: COM Hijacking Persistence via InprocServer32 Registration
description: Detects registration of DLLs under user-writable COM CLSID keys, a persistence technique observed in Rhadamanthys stealer and AI-generated malware variants
status: experimental
logsource:
  category: registry_set
  product: windows
detection:
  selection:
    TargetObject|contains:
      - '\Software\Classes\CLSID\'
      - '\WOW6432Node\Classes\CLSID\'
    TargetObject|endswith: '\InprocServer32'
  filter_known:
    Image|startswith:
      - 'C:\Program Files\'
      - 'C:\Windows\System32\'
  condition: selection and not filter_known
fields:
  - Image
  - TargetObject
  - Details
falsepositives:
  - Legitimate user-scope COM registrations by development tools
level: high
tags:
  - attack.persistence
  - attack.t1546.015
---
title: RecruitTrap Phishing Domain Resolution - Careers Impersonation
description: Detects DNS queries to recruitment-themed phishing domains impersonating enterprise brands, associated with the RecruitTrap OAuth credential harvesting campaign
status: experimental
logsource:
  category: dns
  product: windows
detection:
  selection_iocs:
    query:
      - 'hbc-careers.com'
      - 'fifahr-careers.com'
      - 'mckinsey-careers.com'
      - 'aa-careers.com'
      - 'levis-careers.com'
      - 'andmore-global.com'
      - 'expedia-careers.com'
  selection_pattern:
    query|endswith: '-careers.com'
  filter_legit:
    query:
      - 'oracle-careers.com'
  condition: (selection_iocs or selection_pattern) and not filter_legit
fields:
  - query
  - answer
falsepositives:
  - Legitimate third-party recruiting portals using careers.com subdomains
level: high
tags:
  - attack.initial-access
  - attack.t1566.002
  - attack.t1078
---
title: Infostealer Browser Credential Store Access
description: Detects suspicious process access to browser credential and cookie stores, behavior consistent with Rhadamanthys and related AI-generated stealer families
status: experimental
logsource:
  category: file_event
  product: windows
detection:
  selection_path:
    TargetFilename|contains:
      - '\AppData\Local\Google\Chrome\User Data\'
      - '\AppData\Local\Microsoft\Edge\User Data\'
      - '\AppData\Roaming\Mozilla\Firefox\Profiles\'
    TargetFilename|endswith:
      - '\Login Data'
      - '\Cookies'
      - '\Web Data'
      - '\cookies.sqlite'
      - '\logins.json'
  filter_browsers:
    Image|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
      - '\firefox.exe'
      - '\msedgewebview2.exe'
  filter_security:
    Image|startswith:
      - 'C:\Program Files\'
      - 'C:\Program Files (x86)\'
  condition: selection_path and not filter_browsers and not filter_security
fields:
  - Image
  - TargetFilename
  - User
falsepositives:
  - EDR and DLP agents scanning browser stores
  - Backup software
level: high
tags:
  - attack.credential-access
  - attack.t1555.003
  - attack.t1539
KQL — Microsoft Sentinel / Defender
// RecruitTrap phishing infrastructure + infostealer C2 hunt
// Covers: RecruitTrap domain resolution, OAuth token theft follow-on sign-ins, browser credential store access
let RecruitTrapDomains = dynamic(["hbc-careers.com","fifahr-careers.com","mckinsey-careers.com","aa-careers.com","levis-careers.com","andmore-global.com","expedia-careers.com"]);
let Lookback = 30d;
let DNSHits = DeviceNetworkEvents
| where Timestamp > ago(Lookback)
| where RemoteUrl has_any (RecruitTrapDomains) or (RemoteUrl endswith "-careers.com" and RemoteUrl !has "oracle")
| project DNSHitTime=Timestamp, DeviceName, DeviceId, InitiatingProcessFileName, RemoteUrl, RemoteIP;
let CredStoreAccess = DeviceFileEvents
| where Timestamp > ago(Lookback)
| where FolderPath has_any ("\\Google\\Chrome\\User Data\\","\\Microsoft\\Edge\\User Data\\","\\Mozilla\\Firefox\\Profiles\\")
| where FileName in~ ("Login Data","Cookies","Web Data","cookies.sqlite","logins.json")
| where InitiatingProcessFolderPath !has_any ("\\chrome.exe","\\msedge.exe","\\firefox.exe")
| where InitiatingProcessFolderPath !startswith @"C:\Program Files"
| project CredAccessTime=Timestamp, DeviceName, DeviceId, InitiatingProcessFileName, InitiatingProcessSHA256, FolderPath, FileName;
let COMHijack = DeviceRegistryEvents
| where Timestamp > ago(Lookback)
| where RegistryKey has @"\Software\Classes\CLSID\" and RegistryKey endswith @"\InprocServer32"
| where InitiatingProcessFolderPath !startswith @"C:\Program Files" and InitiatingProcessFolderPath !startswith @"C:\Windows\System32"
| project COMTime=Timestamp, DeviceName, DeviceId, InitiatingProcessFileName, RegistryKey, RegistryValueData;
DNSHits
| join kind=fullouter CredStoreAccess on DeviceId
| join kind=fullouter COMHijack on DeviceId
| extend SuspicionScore = (iff(isnotempty(RemoteUrl),1,0) + iff(isnotempty(FileName),1,0) + iff(isnotempty(RegistryKey),1,0))
| project DeviceName, DeviceId, SuspicionScore, RemoteUrl, RemoteIP, InitiatingProcessFileName, InitiatingProcessSHA256, FileName, RegistryKey
| order by SuspicionScore desc, DeviceName asc
PowerShell
# OTX IOC Hunt: Rhadamanthys/Oyster persistence artifacts + RecruitTrap network indicators
# Run elevated on endpoints; outputs findings to console and CSV
$findings = @()
$otxHashes = @(
    '4fb58687a364c3f6d6f7e0ca03654f9dec0f8832a499d61d40b0d424db1b1b14',
    'bb932056cae8940742e50b4f2b994a802e703f7bc235e7dd647d085ae2b2baf7',
    'c398b3e06ef860670b9597daed85632834fa961aea87164b8ba8bb2f094a14ef',
    '5226ea8e0f516565ba825a1bbed10020982c16414750237068b602c5b4ac6abd',
    'c233aec7917cf34294c19dd60ff79a6e0fac5ed6f0cb57af98013c08201a7a1c',
    '20ed21bfdb7aa970b12e7368eba8e26a711752f1cc5416b6fd6629d0e2a44e5d',
    '66dbf939c00b09d8d22c692864b68c4a602e7a59c4b925b2e2bef57b1ad047bd',
    'b1ef7b267d887e34bf0242a94b38e7dc9fd5e6f8b2c5c440ce4ec98cc74642fb'
)
$phishDomains = @('hbc-careers.com','fifahr-careers.com','mckinsey-careers.com','aa-careers.com','levis-careers.com','andmore-global.com','expedia-careers.com')

# 1. COM hijacking artifacts - user-scope CLSID registrations pointing to non-standard paths
Write-Host '[*] Checking COM hijack persistence (HKCU CLSID InprocServer32)...' -ForegroundColor Cyan
Get-ChildItem 'HKCU:\Software\Classes\CLSID' -Recurse -ErrorAction SilentlyContinue |
    Where-Object { $_.PSChildName -eq 'InprocServer32' } | ForEach-Object {
        $dll = (Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue).'(default)'
        if ($dll -and $dll -notmatch '^C:\\(Windows|Program Files)' ) {
            $findings += [pscustomobject]@{Type='COM-Hijack'; Path=$_.PSPath; Value=$dll}
            Write-Host "[!] Suspicious COM registration: $dll" -ForegroundColor Red
        }
    }

# 2. Oyster/Rhadamanthys persistence - Run keys and suspicious scheduled tasks
Write-Host '[*] Checking Run keys and scheduled tasks...' -ForegroundColor Cyan
foreach ($rk in 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run','HKLM:\Software\Microsoft\Windows\CurrentVersion\Run') {
    Get-ItemProperty $rk -ErrorAction SilentlyContinue | ForEach-Object {
        $_.PSObject.Properties | Where-Object { $_.Value -match 'AppData|Temp|Public\\' } | ForEach-Object {
            $findings += [pscustomobject]@{Type='RunKey'; Path=$rk; Value="$($_.Name)=$($_.Value)"}
            Write-Host "[!] Suspicious Run key: $($_.Name) = $($_.Value)" -ForegroundColor Red
        }
    }
}
Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object {
    $_.Actions.Execute -match 'AppData|Temp' -and $_.TaskPath -notlike '\Microsoft*'
} | ForEach-Object {
    $findings += [pscustomobject]@{Type='ScheduledTask'; Path=$_.TaskName; Value=$_.Actions.Execute}
    Write-Host "[!] Suspicious task: $($_.TaskName) -> $($_.Actions.Execute)" -ForegroundColor Red
}

# 3. Hash sweep of common staging directories
Write-Host '[*] Hashing staging directories against OTX IOCs...' -ForegroundColor Cyan
foreach ($dir in "$env:TEMP","$env:LOCALAPPDATA\Temp","$env:USERPROFILE\Downloads","C:\ProgramData") {
    Get-ChildItem $dir -Recurse -File -Include *.exe,*.dll,*.msi -ErrorAction SilentlyContinue | ForEach-Object {
        $h = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
        if ($otxHashes -contains $h.ToLower()) {
            $findings += [pscustomobject]@{Type='HashMatch'; Path=$_.FullName; Value=$h}
            Write-Host "[!!] OTX HASH MATCH: $($_.FullName)" -ForegroundColor Red
        }
    }
}

# 4. RecruitTrap phishing - DNS cache and active connections
Write-Host '[*] Checking DNS cache and connections for RecruitTrap domains...' -ForegroundColor Cyan
Get-DnsClientCache -ErrorAction SilentlyContinue | Where-Object {
    $n = $_.Name; $phishDomains | Where-Object { $n -like "*$_*" }
} | ForEach-Object {
    $findings += [pscustomobject]@{Type='DNS-Cache'; Path=$_.Name; Value=$_.Data}
    Write-Host "[!] Phishing domain in DNS cache: $($_.Name)" -ForegroundColor Red
}

# 5. Browser credential store access artifacts (prefetch of unusual processes touching profile dirs)
Write-Host '[*] Checking for stealer prefetch artifacts...' -ForegroundColor Cyan
Get-ChildItem 'C:\Windows\Prefetch' -Filter '*.pf' -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-14) -and $_.Name -notmatch 'CHROME|MSEDGE|FIREFOX' } |
    Sort-Object LastWriteTime -Descending | Select-Object -First 0 | Out-Null

$findings | Export-Csv -Path ".\OTX_Hunt_$(Get-Date -Format 'yyyyMMdd_HHmm').csv" -NoTypeInformation
Write-Host "[*] Hunt complete. $($findings.Count) finding(s)." -ForegroundColor Green

Response Priorities

Immediate (0–4 hours):

  • Block all RecruitTrap domains at DNS resolver and web proxy; add *-careers.com brand-impersonation pattern to NRD alerting
  • Push the 12 OTX SHA256 hashes to EDR blocklists; note hash-only coverage will decay against AI-regenerated builds — the COM hijack and credential-store-access detections are the durable controls
  • Retro-hunt DNS/proxy logs 90 days for RecruitTrap domains; any hit = presumed credential compromise
  • Deploy the Sigma and KQL detections above

24 Hours:

  • For any user who resolved or visited RecruitTrap infrastructure: force immediate credential reset, revoke all active sessions and OAuth refresh tokens, and review Azure AD/Entra sign-in logs for token replay from anomalous geographies or device fingerprints
  • Audit OAuth app consents in Entra ID for grants issued in the last 30 days — token theft via fake SSO flows frequently leaves a malicious consent grant behind
  • Check affected identities for MFA fatigue prompts or new MFA method registrations (adversary-in-the-middle follow-on behavior)
  • If any OTX hash match is found on an endpoint, isolate the host and assume all credentials stored in its browsers are compromised — reset accordingly

1 Week:

  • Deploy FIDO2/passkey authentication for high-value users; RecruitTrap's OAuth capture model is specifically defeated by phishing-resistant MFA
  • Implement Conditional Access token-binding and continuous access evaluation to limit replay value of stolen tokens
  • Restrict user-scope COM object registration via application control policy (WDAC/AppLocker) to kill the COM-hijack persistence class
  • Block browser credential store access by non-browser processes via EDR tamper/custom rules
  • Brief HR and recruiting teams: employees should verify recruiting communications through official portals only; publish the impersonated brand list internally
  • Enable mobile threat defense reporting — the mobile full-screen phishing variant leaves no desktop proxy telemetry

Related Resources

Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.