CVE-2025-12480 — Triofox Improper Access Control (auth bypass → RCE przez funkcję antywirusową) - Security Bez Tabu

CVE-2025-12480 — Triofox Improper Access Control (auth bypass → RCE przez funkcję antywirusową)

TL;DR

Krytyczna luka w Gladinet Triofox pozwala nieautoryzowanemu napastnikowi ominąć logowanie, wejść w strony konfiguracji początkowej i utworzyć konto administratora aplikacji. W zaobserwowanych atakach przeciwnik użył konta do wykonania kodu z uprawnieniami SYSTEM przez nadużycie wbudowanej funkcji „antywirus” (dowolna ścieżka skanera), a następnie wdrażał Zoho UEMS/Assist, AnyDesk, Plink/PuTTY i tunelował RDP. Załataj do ≥ 16.7.10368.56560 (zalecane 16.10.10408.56683) i monitoruj IIS pod kątem odwołań „localhost” do /management/*. W artykule: gotowa Sigma, SPL, KQL, EQL, playbook IR i artefakty.


Krótka definicja techniczna

CVE‑2025‑12480 to błąd kontroli dostępu w Triofox, który po sfałszowaniu nagłówka/odwołania HTTP z wartością localhost odblokowuje strony inicjalizacji (AdminDatabase.aspxAdminAccount.aspxInitAccount.aspx) mimo zakończonego wdrożenia. Skutkiem jest założenie natywnego konta „Cluster Admin”, a w łańcuchu realnych ataków — RCE jako SYSTEM przez wskazanie własnej ścieżki skanera w funkcji AV. Wersje podatne: < 16.7.10368.56560; poprawki dostępne (zalecana najnowsza gałąź).


Gdzie występuje / przykłady platform

  • Windows Server + IIS/ASP.NET (host aplikacji Triofox).
  • Active Directory (opcjonalnie – integracja z LDAP/AD do autoryzacji użytkowników aplikacji).
  • IaaS (AWS/Azure/GCP) — często za ALB/WAF/NGFW; problem dotyczy warstwy aplikacji webowej na VM/serwerze.
  • Bazy danych (PostgreSQL/MySQL) sterowane z panelu inicjalizacji Triofox.
  • K8s/ESXi/M365 – brak natywnego wektora; występują wyłącznie jako kontekst infrastrukturalny [nie wymagane].

Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)

  • Wejście (T1190): błędna logika sprawdzania dostępu do krytycznych stron instalatora Triofox. Zmiana Host/Referer → localhost skutkuje dopuszczeniem do ścieżki instalacyjnej mimo ukończonej konfiguracji.
  • Utworzenie admina (T1136): atakujący przechodzi flow inicjalizacji i tworzy natywne konto administracyjne („Cluster Admin”) w samej aplikacji.
  • Wykonanie (T1059.001) + RCE: po zalogowaniu do panelu używa funkcji „Anti‑Virus Engine Path” – wskazuje własny plik/skrypt; Triofox uruchamia go w kontekście SYSTEM, co daje pełne RCE.
  • Post‑exploitation: pobranie legalnych narzędzi zdalnego dostępu (Zoho UEMS/Assist, AnyDesk), Plink/PuTTY do tunelowania RDP (T1219/T1572/T1105), enumeracja SMB i zmiany haseł/grup. Kampanie obserwowane co najmniej od 2025‑08‑24.
  • Dlaczego skuteczna: brak walidacji źródła localhost w kodzie, zależność od opcjonalnego TrustedHostIp w web.config, możliwość uruchomienia arbitralnej ścieżki AV z uprawnieniami usługi.

Artefakty i logi (SOC cheat‑sheet)

Warstwa / źródłoEID / poleWzorzec / przykład korelacjiUwagi
IIS (W3C)cs-uri-stem, cs(Referer)Żądania do /management/AdminDatabase.aspx, /AdminAccount.aspx, /InitAccount.aspx, /CommitPage.aspx z Referer zawierającym http://localhostMandiant pokazał wpis z 302 do CommitPage.aspx z refererem localhost. Śledzić zewnętrzne IP jako źródło.
IIS/WAF/ALBHost/RefererNagłówek/odwołanie Host/Referer=localhost z adresów publicznychMożliwe także X-Forwarded-Host=localhost za proxy.
Windows Security4688 (Process Create)Uruchomienia powershell.exe, cmd.exe przez procesy Triofox/IIS tuż po dostępie do paneluKoreluj z logami IIS (ten sam host, ten sam czas ±5 min).
Windows Security7045 (Service Installed)Nowe usługi: Zoho UEMS/Assist, AnyDesk, nietypowe ścieżki w binPathCzęste w opisywanej kampanii.
Sysmon1 (Process Create)Image: *\\plink.exe, *\\putty.exe, *\\AnyDesk*.exe, *\\Zoho*Tunelowanie i dostęp zdalny.
Sysmon3 (Network Connect)Połączenia do zidentyfikowanych IP C2/hosting (np. 85.239.63[.]37, 65.109.204[.]197, 84.200.80[.]252, 216.107.136[.]46)IoC z raportu; utrzymuj listę deny/monitor.
Sysmon11 (File Create)C:\Windows\Temp\*.exe, C:\triofox\*.bat (np. centre_report.bat)Nazwy z raportu Mandiant.
Aplikacja Triofoxlogi aplikacyjneZmiany konfiguracji AV engine path, publikacja udziałów (pokazanie ścieżki na dysku)Krytyczne do triage’u RCE.
CloudTrail (IaaS)AuthorizeSecurityGroupIngressDopuszczenie 0.0.0.0/0 → 443/80 na SG przypiętej do hosta TriofoxPomocnicze: wykrywa niepożądane ekspozycje.

Detekcja (praktyczne reguły)

Sigma (IIS – próba obejścia z localhost)

title: Triofox CVE-2025-12480 - Localhost Referrer to Management Pages (IIS)
id: 2f47d6b5-9e2e-4f0b-9b7e-97b1e0e2f480
status: experimental
description: Wykrywa odwołania z 'localhost' do stron /management/* w Triofox (możliwa eksploatacja CVE-2025-12480).
references:
  - https://cloud.google.com/blog/topics/threat-intelligence/triofox-vulnerability-cve-2025-12480
  - https://nvd.nist.gov/vuln/detail/CVE-2025-12480
author: Badacz CVE
date: 2025/11/12
logsource:
  category: webserver
  product: windows
  service: iis
detection:
  selection_pages:
    http.request.target|contains:
      - "/management/AdminDatabase.aspx"
      - "/management/AdminAccount.aspx"
      - "/management/InitAccount.aspx"
      - "/management/CommitPage.aspx"
  ref1:
    http.request.referrer|contains: "http://localhost"
  ref2:
    cs-referrer|contains: "http://localhost"
  condition: selection_pages and (ref1 or ref2)
fields:
  - client.ip
  - http.request.method
  - http.request.referrer
  - http.request.target
  - http.response.status_code
falsepositives:
  - Testy administratorskie wykonywane lokalnie (żądania z 127.0.0.1)
level: high
tags:
  - attack.T1190
  - cve.2025-12480

Splunk (IIS/WAF)

index=web (sourcetype=iis OR tag=web)
(cs_uri_stem="/management/AdminDatabase.aspx"
 OR cs_uri_stem="/management/AdminAccount.aspx"
 OR cs_uri_stem="/management/InitAccount.aspx"
 OR cs_uri_stem="/management/CommitPage.aspx")
( cs_Referer="http://localhost*" OR referer="http://localhost*" )
| stats count min(_time) as first_seen max(_time) as last_seen by c_ip cs_uri_stem cs_Referer sc_status
| where c_ip!="127.0.0.1"

KQL (Microsoft Sentinel – W3CIISLog)

W3CIISLog
| where csUriStem has "/management/"
| where csUriStem has_any ("AdminDatabase.aspx", "AdminAccount.aspx", "InitAccount.aspx", "CommitPage.aspx")
| where csReferer has "http://localhost"
| extend isPrivate = ipv4_is_private(cIP)
| where isPrivate == false

CloudTrail (CloudWatch Logs Insights – „szerokie” otwarcie 80/443)

fields @timestamp, eventName, requestParameters
| filter eventName = "AuthorizeSecurityGroupIngress"
| filter requestParameters.ipPermissions.items[*].ipRanges.items[*].cidrIp like /0\.0\.0\.0\/0/
| filter requestParameters.ipPermissions.items[*].fromPort in [80,443]
| sort @timestamp desc

Uzupełniające: aws ec2 describe-security-groups i kontrola SG przypiętych do instancji Triofox.

Elastic / EQL (procesy i tunelowanie)

process where process.name in ("plink.exe","putty.exe","AnyDesk.exe","Zoho*","ZohoAssist*")
  and process.parent.name in ("w3wp.exe","svchost.exe") /* web worker / usługa */
  and host.os.type == "windows"
network where process.name == "plink.exe" and
  (destination.port == 22 and
   (exists(destination.ip) and source.ip == "127.0.0.1" or destination.ip != "127.0.0.1"))

Heurystyki / korelacje

  • IIS „localhost” + /management/ AND w krótkim czasie 4688 z powershell.exe/cmd.exe na tym samym hoście.
  • Nowe usługi (7045) zawierające Zoho, AnyDesk AND wcześniejszy dostęp do panelu Triofox.
  • Plink/PuTTY uruchomione na serwerze Triofox AND wzrost połączeń na 3389/TCP (tunel RDP).
  • Publikacja nowego „share” w Triofox AND zaraz potem wykonanie pliku ze ścieżki udziału (abuse AV‑Path).

False positives / tuning

  • Prawdziwi administratorzy mogą testować system lokalnie; żądania z 127.0.0.1 (loopback) i/lub z sieci zarządzającej można whitelistować.
  • Legalne użycie Zoho/AnyDesk – filtruj po znanych kluczach/tenantach, podpisach cyfrowych i źródłach instalacji (MSI z firmowego repo).
  • Proxy/health‑checki rzadko ustawiają Referer=localhost; jeśli tak – ogranicz do znanych adresów/LB.

Playbook reagowania (IR)

  1. Identyfikacja i blokada
  • WAF/NGFW: reguła drop dla Host/Referer=localhost na ścieżkach /management/*.
  • Tymczasowe geo/IP‑deny wg IoC (np. 85.239.63[.]37, 65.109.204[.]197, 84.200.80[.]252, 216.107.136[.]46).
  1. Triage
  • Przeskanuj IIS za zdarzeniami z sekcji 6; skoreluj z 4688/7045/Sysmon‑1/3/11.
  • W Triofox sprawdź: lista kont admin, historia zmian AV Engine Path, ostatnie publikacje udziałów.
  1. Eradykacja
  • Usuń nieautoryzowane konto aplikacyjne („Cluster Admin” itp.).
  • Dezinstaluj Zoho UEMS/Assist/AnyDesk zainstalowane spoza Twojej dystrybucji; zamknij plink/putty.
  • Cofnij zmiany haseł/grup, wymuś rotację sekretów.
  1. Odtworzenie i twardnienie
  • Patch: co najmniej 16.7.10368.56560; zalecany 16.10.10408.56683 (2025‑10‑14).
  • Skonfiguruj TrustedHostIp/sieci zarządzające, ogranicz dostęp do panelu tylko z MFA/VPN; logowanie na szczegółowym poziomie.
  1. Lessons learned
  • Dodaj detekcje z rozdz. 7, testy regresyjne, „table‑top” z łańcuchem nadużyć AV‑Path.

Przykłady z kampanii / case studies

  • UNC6485 (Mandiant/Google): eksploatacja co najmniej od 2025‑08‑24 na wersji 16.4.10317.56372; obejście autoryzacji (Host/Referer localhost) → utworzenie „Cluster Admin” → RCE przez ścieżkę AV → wdrożenie Zoho UEMS/Assist i AnyDesk, Plink/PuTTY do tunelowania RDP:3389. Wskazane przykładowe IP i artefakty (hashy, ścieżki).
  • Relacje prasowe: BleepingComputer i SecurityWeek potwierdzają łańcuch i zalecają aktualizację do najnowszej gałęzi Triofox.

Lab (bezpieczne testy)

Wyłącznie w izolowanym labie z testową instancją Triofox; nie instruujemy eksploatacji — generujemy sygnał do detekcji.

  • Generacja wpisu IIS przypominającego anomalię Referer (na testowym serwerze www, do niekrytycznej strony):
$h = @{ "Referer" = "http://localhost/test" }
Invoke-WebRequest -UseBasicParsing -Headers $h `
  -Uri "https://triofox-lab.local/management/AccessDenied.aspx"
  • Wpis 7045 (test instalacji usługi):
sc.exe create TestCVE125 path= "C:\Windows\System32\notepad.exe" start= demand
sc.exe delete TestCVE125
  • E2E sprawdzenie korelacji w Splunk/KQL: odpal test powyżej, a następnie uruchom reguły z sekcji 7 i zweryfikuj alerty.

Mapowania (Mitigations, Powiązane techniki)

Mitigations (ATT&CK):

  • M1051 Update Software — aktualizuj Triofox do ≥ 16.7.10368.56560 (zal. 16.10.10408.56683).
  • M1031 Network Intrusion Prevention — sygnatury/WAF blokujące Host/Referer=localhost na ścieżkach admina i wykrywanie tuneli.
  • M1030 Network Segmentation — strefa DMZ dla serwera Triofox; dostęp administracyjny tylko z sieci zarządzającej/VPN.

Powiązane techniki:

  • T1190 — Exploit Public‑Facing Application – Atak przez błąd logiczny w kontroli dostępu do stron /management/* (bypass auth).
  • T1136 — Create Account – Utworzenie natywnego admina („Cluster Admin”) w aplikacji dla utrzymania przyczółka.
  • T1059.001 — Command and Scripting Interpreter: PowerShell – Skrypty/batche wywołujące PowerShell downloader w łańcuchu RCE.
  • T1219 — Remote Access Software – Wdrożenie Zoho Assist/AnyDesk jako kanału C2/remote‑ops.
  • T1572 — Protocol TunnelingPlink/PuTTY do tunelowania RDP przez SSH.
  • T1105 — Ingress Tool Transfer – Pobranie narzędzi (Zoho/AnyDesk/Plink) na host Triofox.

Źródła / dalsza lektura

  • Mandiant/Google Cloud: No Place Like Localhost — techniczne omówienie, IoC, łańcuch ataku. (Google Cloud)
  • NVD: karta CVE (wersje podatne, CVSS, CWE). (NVD)
  • BleepingComputer: Hackers abuse Triofox antivirus feature to deploy RATs (RCE=SYSTEM, zalecenia). (BleepingComputer)
  • SecurityWeek: Critical Triofox Vulnerability Exploited in the Wild. (SecurityWeek)
  • Tenable / OpenCVE: status, streszczenie, SSVC. (Tenable®)
  • Check Point IPS Advisory (CVE‑2025‑12480). (Check Point Software)
  • MITRE ATT&CK v18 — wersje i aktualizacje. (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjnie):

  • Reguły z sekcji 7 wdrożone (IIS, EDR/Elastic, Sentinel, WAF).
  • Hunt: Referer/Host=localhost/management/* w IIS (30–90 dni wstecz).
  • Korelacja z 4688/7045/Sysmon‑1/3/11 i z procesami plink/putty/AnyDesk/Zoho*.
  • Przegląd kont admin w Triofox; inspekcja AV Engine Path.
  • Blokady IoC sieciowych i rotacja haseł/sekretów, jeśli wskazane.

CISO / właściciele usług:

  • Patch: ≥ 16.7.10368.56560 (preferuj 16.10.10408.56683).
  • WAF: deny Host/Referer=localhost dla /management/*.
  • Segmentacja: panel admin tylko z sieci zarządczej + MFA/VPN.
  • Polityka dopuszczalnych narzędzi zdalnych (Zoho/AnyDesk) i ich inwentaryzacja.
  • Przegląd ekspozycji w IaaS (SG/ALB) i CI/CD patch/release hygiene.

Uwaga o ryzyku: Luka była aktywnie eksploatowana i występuje prosta możliwość RCE jako SYSTEM przy wykorzystaniu funkcji AV w Triofox — traktuj priorytetowo.