Analysis

  • max time kernel
    149s
  • max time network
    134s
  • platform
    windows11-ltsc_2024_x64
  • resource
    win11ltsc2024-20260709-en
  • resource tags

    arch:x64arch:x86image:win11ltsc2024-20260709-enlocale:en-usos:windows11-ltsc_2024-x64systemwindows
  • submitted
    10/08/2026, 02:38

General

  • Target
    2026-08-10_50097a6475bac2593bdfe608600f5589_akira_glassworm_rusty-stealer.exe
  • Size 7.5MB
  • Sample260810-c48faazcnh
  • SHA256 954ad8bbe523755d78ae1a2ac475752193238d5afa27bdfb371261c4e8a6dab9
  • MD5 SHA1 SHA512 SSDEEP TLSH

Malware Config

Signatures

  • Drops file in Drivers directory 1 IoCs
  • Command and Scripting Interpreter: PowerShell 1 TTPs 1 IoCs

    Run Powershell to get system information.

  • Hide Artifacts: Ignore Process Interrupts 1 TTPs 1 IoCs

    Command interpreters often include specific commands/flags that ignore errors and other hangups.

  • Gathers network information 2 TTPs 1 IoCs

    Uses commandline utility to view network configuration.

  • Suspicious behavior: EnumeratesProcesses 36 IoCs
  • Suspicious use of AdjustPrivilegeToken 64 IoCs
  • Suspicious use of WriteProcessMemory 3 IoCs

Processes

  • C:\Users\Admin\AppData\Local\Temp\2026-08-10_50097a6475bac2593bdfe608600f5589_akira_glassworm_rusty-stealer.exe
    "C:\Users\Admin\AppData\Local\Temp\2026-08-10_50097a6475bac2593bdfe608600f5589_akira_glassworm_rusty-stealer.exe"
    1⤵
    • Drops file in Drivers directory
    • Suspicious behavior: EnumeratesProcesses
    • Suspicious use of WriteProcessMemory
    PID:604
    • C:\Windows\System32\ipconfig.exe
      "C:\Windows\System32\ipconfig.exe" /flushdns
      2⤵
      • Gathers network information
      PID:948
    • C:\Windows\System32\pnputil.exe
      "C:\Windows\System32\pnputil.exe" /enum-drivers
      2⤵
        PID:3824
      • C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
        "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -NonInteractive -Command " $ErrorActionPreference = 'Stop' $adapterLabel = 'Ethernet' $adapterHint = 'Ethernet' $adapterIfIndex = 3 $repairBinding = $false function Add-BindingCandidate([System.Collections.Generic.List[object]]$Candidates, [string]$Selector, [string]$Value, [string]$DisplayName) { if ([string]::IsNullOrWhiteSpace($Value)) { return } $normalizedKey = ($Selector + '|' + $Value).ToLowerInvariant() foreach ($candidate in $Candidates) { if ($candidate.Key -eq $normalizedKey) { return } } $Candidates.Add([PSCustomObject]@{ Selector = $Selector Value = $Value DisplayName = $DisplayName Key = $normalizedKey }) | Out-Null } function Get-LegacyAdapterMetadata { if ($null -eq $adapterIfIndex) { return $null } $legacyAdapter = $null try { $legacyAdapter = Get-CimInstance -ClassName Win32_NetworkAdapter -Filter ('InterfaceIndex = ' + $adapterIfIndex) -ErrorAction Stop | Select-Object -First 1 } catch { try { $legacyAdapter = Get-WmiObject Win32_NetworkAdapter -Filter ('InterfaceIndex = ' + $adapterIfIndex) -ErrorAction Stop | Select-Object -First 1 } catch { $legacyAdapter = $null } } if (-not $legacyAdapter) { return $null } return [PSCustomObject]@{ Name = [string]$legacyAdapter.NetConnectionID InterfaceDescription = [string]$legacyAdapter.Name IfIndex = $legacyAdapter.InterfaceIndex } } function Resolve-WinpkFilterCandidates { $candidates = [System.Collections.Generic.List[object]]::new() if ($null -ne $adapterIfIndex) { Add-BindingCandidate $candidates 'InterfaceIndex' ([string]$adapterIfIndex) $adapterLabel } if (-not [string]::IsNullOrWhiteSpace($adapterHint)) { Add-BindingCandidate $candidates 'Name' $adapterHint $adapterHint Add-BindingCandidate $candidates 'InterfaceDescription' $adapterHint $adapterHint } $legacyAdapter = Get-LegacyAdapterMetadata if ($legacyAdapter) { $displayName = if (-not [string]::IsNullOrWhiteSpace($legacyAdapter.Name)) { $legacyAdapter.Name } elseif (-not [string]::IsNullOrWhiteSpace($legacyAdapter.InterfaceDescription)) { $legacyAdapter.InterfaceDescription } else { $adapterLabel } Add-BindingCandidate $candidates 'Name' $legacyAdapter.Name $displayName Add-BindingCandidate $candidates 'InterfaceDescription' $legacyAdapter.InterfaceDescription $displayName } return $candidates } function Get-WinpkFilterBinding([object]$Candidate) { if ($Candidate.Selector -eq 'InterfaceIndex') { return Get-NetAdapter -InterfaceIndex ([int]$Candidate.Value) -ErrorAction SilentlyContinue | Get-NetAdapterBinding -ComponentID 'nt_ndisrd' -ErrorAction SilentlyContinue | Select-Object -First 1 } if ($Candidate.Selector -eq 'Name') { return Get-NetAdapterBinding -Name $Candidate.Value -ComponentID 'nt_ndisrd' -ErrorAction SilentlyContinue | Select-Object -First 1 } if ($Candidate.Selector -eq 'InterfaceDescription') { return Get-NetAdapterBinding -InterfaceDescription $Candidate.Value -ComponentID 'nt_ndisrd' -ErrorAction SilentlyContinue | Select-Object -First 1 } return $null } function Enable-WinpkFilterBinding([object]$Candidate) { if ($Candidate.Selector -eq 'InterfaceIndex') { $adapter = Get-NetAdapter -InterfaceIndex ([int]$Candidate.Value) -ErrorAction Stop | Select-Object -First 1 if (-not $adapter) { throw ('Could not resolve adapter by interface index: ' + $Candidate.Value) } Enable-NetAdapterBinding -Name $adapter.Name -ComponentID 'nt_ndisrd' -Confirm:$false -ErrorAction Stop | Out-Null return } if ($Candidate.Selector -eq 'Name') { Enable-NetAdapterBinding -Name $Candidate.Value -ComponentID 'nt_ndisrd' -Confirm:$false -ErrorAction Stop | Out-Null return } if ($Candidate.Selector -eq 'InterfaceDescription') { Enable-NetAdapterBinding -InterfaceDescription $Candidate.Value -ComponentID 'nt_ndisrd' -Confirm:$false -ErrorAction Stop | Out-Null return } throw ('Unsupported WinpkFilter binding selector: ' + $Candidate.Selector) } function Start-NDISRDService { $service = Get-Service -Name 'NDISRD' -ErrorAction SilentlyContinue if (-not $service) { throw 'NDISRD service is not installed.' } if ($service.Status -ne 'Running') { Write-Output 'Starting NDISRD service before WinpkFilter binding validation' Start-Service -Name 'NDISRD' -ErrorAction Stop $deadline = (Get-Date).AddSeconds(10) do { Start-Sleep -Milliseconds 250 $service = Get-Service -Name 'NDISRD' -ErrorAction Stop } while ($service.Status -ne 'Running' -and (Get-Date) -lt $deadline) if ($service.Status -ne 'Running') { throw 'NDISRD service did not reach Running state.' } } } try { $candidates = Resolve-WinpkFilterCandidates if ($candidates.Count -eq 0) { throw ('Could not resolve any adapter identifiers for WinpkFilter validation. ifIndex=' + $adapterIfIndex + ', hint=' + $adapterLabel) } $bindingCandidate = $null $binding = $null foreach ($candidate in $candidates) { $binding = Get-WinpkFilterBinding $candidate if ($binding) { $bindingCandidate = $candidate break } } if (-not $bindingCandidate) { throw ('winpkfilter_binding_missing: nt_ndisrd is not bound to adapter ''' + $adapterLabel + ''' (ifIndex=' + $adapterIfIndex + '). SwiftTunnel will repair the binding automatically, then try again.') } $adapterName = if ($binding.Name) { [string]$binding.Name } elseif ($bindingCandidate.DisplayName) { [string]$bindingCandidate.DisplayName } else { $adapterLabel } $adapterDescription = if ($binding.InterfaceDescription) { [string]$binding.InterfaceDescription } else { '' } Write-Output ('Using adapter ''' + $adapterName + ''' via ' + $bindingCandidate.Selector + ' (ifIndex=' + $adapterIfIndex + ', description=' + $adapterDescription + ') for WinpkFilter validation') Start-NDISRDService if (-not $binding.Enabled) { if (-not $repairBinding) { throw ('winpkfilter_binding_disabled: nt_ndisrd is disabled on adapter ''' + $adapterName + ''' (ifIndex=' + $adapterIfIndex + '). SwiftTunnel will enable it automatically, then try again.') } Write-Output ('Enabling WinpkFilter binding on adapter: ' + $adapterName) Enable-WinpkFilterBinding $bindingCandidate Start-Sleep -Seconds 2 $binding = Get-WinpkFilterBinding $bindingCandidate if (-not $binding) { throw ('WinpkFilter binding nt_ndisrd could not be queried after enabling on adapter: ' + $adapterName) } if (-not $binding.Enabled) { throw ('WinpkFilter binding nt_ndisrd is still disabled on adapter: ' + $adapterName) } Write-Output ('WinpkFilter binding enabled on adapter: ' + $adapterName) } else { Write-Output ('WinpkFilter binding already enabled on adapter: ' + $adapterName) } } catch { $errorText = $_.Exception.Message if ([string]::IsNullOrWhiteSpace($errorText)) { $errorText = ($_ | Out-String).Trim() } if ([string]::IsNullOrWhiteSpace($errorText)) { $errorText = 'PowerShell command failed without an exception message.' } if ($errorText -like 'winpkfilter_binding_missing:*' -or $errorText -like 'winpkfilter_binding_disabled:*') { [Console]::Error.WriteLine($errorText) } else { [Console]::Error.WriteLine('winpkfilter_binding_validation_failed: adapter ''' + $adapterLabel + ''': ' + $errorText) } exit 1 } "
        2⤵
        • Command and Scripting Interpreter: PowerShell
        • Hide Artifacts: Ignore Process Interrupts
        • Suspicious behavior: EnumeratesProcesses
        • Suspicious use of AdjustPrivilegeToken
        PID:2524

    Network

          MITRE ATT&CK Enterprise v16

          Replay Monitor

          Loading Replay Monitor...

          Downloads

          __PSScriptPolicyTest_k1dcwe3v.kll.ps1

          • Path C:\Users\Admin\AppData\Local\Temp\__PSScriptPolicyTest_k1dcwe3v.kll.ps1
          • Size 60B
          • SHA256 96ad1146eb96877eab5942ae0736b82d8b5e2039a80d3d6932665c1a4c87dcf7
          • MD5 SHA1 SHA512 TLSH

          memory/2524-18-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-13-0x000001FCB64D0000-0x000001FCB64EE000-memory.dmp

          memory/2524-8-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-7-0x000001FCB6150000-0x000001FCB6172000-memory.dmp

          memory/2524-9-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-10-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-2-0x00007FF83E9BF000-0x00007FF83E9C0000-memory.dmp

          memory/2524-14-0x000001FCB64F0000-0x000001FCB65A2000-memory.dmp

          memory/2524-15-0x000001FCB65B0000-0x000001FCB65BA000-memory.dmp

          memory/2524-17-0x000001FCB6740000-0x000001FCB6764000-memory.dmp

          memory/2524-6-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-16-0x000001FCB6740000-0x000001FCB676A000-memory.dmp

          memory/2524-23-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-20-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-21-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-22-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-19-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-24-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-25-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-26-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-27-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-5-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp

          memory/2524-30-0x000001FCB6730000-0x000001FCB674E000-memory.dmp

          memory/2524-32-0x00007FF83E830000-0x00007FF83F1D4000-memory.dmp