失控的助手 : 當駭客掌握了AI

2026 年 9 月 23 日,InTimeSec 全天候監控服務團隊(MDR Team)偵測到一波異常的 SQL Injection 攻擊。調查後確認,攻擊者從 Web 應用程式的 SQL Injection 弱點進入,開啟並濫用資料庫的 xp_cmdshell 功能,取得作業系統層級的指令執行權限。8 小時內共執行 4,283 筆有效指令,產生 300 多個檔案。

攻擊者的目的是把這台主機變成散布節點,竄改 FTP 更新派送目錄下的更新包與描述檔,植入自行編譯的後門,讓下游客戶端在例行更新時下載到被動過手腳的版本。影響範圍也因此從單一主機擴及各客戶端。

STAGE 1  –  入侵途徑

攻擊集中在凌晨時段。8 小時內送出 4,283 筆 xp_cmdshell,平均每小時 535 筆,指令內容幾乎不重複。這個速度已超出人工操作的範圍,應由自動化工具送出;而指令幾乎不重複這一點,也讓我們無法排除過程中有 AI 協助生成。

4,283 筆指令中有 81%(3,483 筆)採用一致的包裝格式,其中的 echo N 為盲注確認。此一致性顯示指令係由工具統一組裝,研判攻擊者使用半自動化操作框架,而非互動式 shell。

攻擊指令以四位數遞增標籤管理(i2601–i3453,共 43 個批次),各批次於 C:\Windows\Temp\i#### 建立專屬工作目錄,顯示攻擊者具備成熟的行動管理習慣。

攻擊呈現人工決策特徵(指令間隔 5–8 秒、可見試錯修正),惟其操作強度已超出人力持續負荷範圍,近 8 小時不間斷、無節奏衰減。研判操作過程中有 AI 輔助介入。

STAGE 2  –  攻擊行為分析

  • 偵察與組態蒐集
    • 通道驗證:攻擊者以 ping -n 與 timeout 指令測試回應延遲,確認盲注之可用性與時序基準;接著在 C:\inetpub\wwwroot、C:\wwwroot、D:\wwwroot 各寫入一個標記檔 i2601.txt,確認哪些 Web 目錄可寫。
    • 主機與網域盤點:攻擊者依序執行 whoami /priv、systeminfo、ipconfig /all、tasklist /svc、netstat -ano、route print 與 arp -a 等指令,蒐集受害主機之權限配置、系統資訊、網路組態、執行中服務、連線狀態、路由資訊及鄰近主機清單。
    • 組態與憑證蒐集:攻擊者針對 IIS 組態檔、各站台之 web.config、ASP.NET machineKey 設定值及憑證私鑰進行全面搜索,蒐集其中所含之連線字串、加密金鑰與憑證資料。
  • Webshell 後門植入
    • 攻擊者寫入 C# WebShell。該程式讀取 Request[“c”] 參數後,以 ProcessStartInfo 呼叫 cmd.exe /c 執行指令;若未帶入參數,則回應固定字串 i2653ok,用來確認後門是否還在。
  • 憑證與資料竊取
    • 本機憑證竊取:攻擊者匯出系統登錄檔 Hive 與 DPAPI 相關資料,以離線方式擷取本機帳號憑證及受 DPAPI 保護之機敏資料。
  • 供應鏈派送
    • 該主機同時為 FileZilla Server 之軟體更新派送來源,更新包與更新描述檔存放於 D:\FTP\。攻擊者依下列順序完成派送作業:
      • 分段把 Base64 內容寫進 C:\Windows\Temp\i2869\p.cs.b64,再用 certutil 或 FromBase64String 還原成 p.cs。
      • 以系統內建的 .NET 編譯器 csc.exe 在本機編譯,產出後門執行檔,全程沒有任何檔案下載行為。
      • 把原始更新包備份到 C:\Windows\Temp\i2869\bak\*.zip.bak,保留原檔。
      • 以 Compress-Archive 或 ZipFile::CreateFromDirectory 重新封裝,覆寫 D:\FTP 路徑下的兩份更新包。
      • 執行 manifest.ps1 改寫更新描述檔,讓它與換過的更新包對得上;再以 verify.ps1 計算 payload 的 SHA-256 雜湊值做自我驗證,並用 self2.ps1 進行實地測試。
      • 派送完成後,攻擊者反覆查看 FileZilla 記錄檔與 port 21 的連線狀態,從行為判斷,是在確認有多少下游端點已經下載到這份更新包。
  • 橫向移動
    • 攻擊者拿竊得的 Administrator NTLM Hash,透過 Invoke-TheHash 工具組存取內網主機的管理共用,試著寫入 WebShell 並遠端執行指令。
    • SSH 通道建立:在 C:\Windows\Temp\i3203\ 與 C:\Windows\Temp\i3313\ 兩處寫入 plink.exe,用來建立 SSH 通道。
    • Tomcat Ghostcat 弱點測試:放置 AJP 協定封包(指令碼 ajp_ghost.b64、ajp_ghost2.b64),針對內網主機之 8009 埠進行 CVE-2020-1938(Ghostcat)任意檔案讀取測試。
    • 內網掃描:以 PowerShell TcpClient 掃描 10.10.50.0/24、192.168.87–91.x 及 10.212.134.105,涵蓋 SMB、RDP、WinRM、資料庫與 Tomcat 等 17 個常見服務埠。
  • 資料外傳手法
    • 攻擊者沒有另外建立 C2 外連通道,而是直接沿用 SQL Injection 的回傳通道分段帶出檔案,因此在網路層很難察覺。
      • 外傳的做法是 [Convert]::ToBase64String([IO.File]::ReadAllBytes(<檔案>)).Substring(<位移>, 3800):檔案先轉成 Base64,再以固定位移逐段切取,分批經回傳通道送出。
      • 檔案較大時,會先用 GZipStream 壓縮再做 Base64 編碼,減少分段往返的次數。

STAGE 3 – MITRE ATT&CK Techniques

TacticsTechniquesNote
Initial AccessT1190 – Exploit Public-Facing ApplicationWeb 應用程式 SQL Injection
ExecutionT1059.003 – Command and Scripting Interpreter: Windows Command Shellsqlservr.exe執行cmd.exe
T1059.001 – Command and Scripting Interpreter: PowerShell-EncodedCommand / -ExecutionPolicy Bypass
T1505.001 – Server Software Component: SQL Stored Proceduresxp_cmdshell 取得系統指令執行
T1047 – Windows Management Instrumentationwmic process call create 脫離父程序行為樹
PersistenceT1505.003 – Server Software Component: Web Shell 
T1554 – Compromise Host Software Binary覆寫 D:\FTP\ 更新包與更新描述檔
Defense EvasionT1127 – Trusted Developer Utilities Proxy Executioncsc.exe 本機編譯 payload,無檔案下載行為
T1140 – Deobfuscate/Decode Files or Informationcertutil -decode、FromBase64String 分段還原
T1027 – Obfuscated Files or Informationbase64 分段寫入、GZip 壓縮編碼
T1070.004 – Indicator Removal: File Deletiondel /f /q *.b64 清除中間檔
Credential AccessT1003.002 – OS Credential Dumping: Security Account Managerreg save HKLM\SAM / SYSTEM / SECURITY
T1552.001 – Unsecured Credentials: Credentials In Filesfindstr 蒐集 web.config 連線字串與 machineKey
T1555.004 – Credentials from Password Stores: Windows Credential Manager蒐集 Credentials 與 DPAPI Protect 目錄
DiscoveryT1046 – Network Service DiscoveryPowerShell TcpClient 多網段連接埠掃描
T1018 – Remote System Discoverynltest / net view / nslookup 網域與主機列舉
T1083 – File and Directory Discoverydir /s /b、where /r 全碟搜尋組態與憑證
Lateral MovementT1550.002 – Use Alternate Authentication Material: Pass the HashInvoke-SMBClient / Invoke-SMBExec
T1021.002 – Remote Services: SMB/Windows Admin Shares 
T1021.004 – Remote Services: SSHplink.exe 連線
T1210 – Exploitation of Remote ServicesAJP 封包測試 Ghostcat (CVE-2020-1938)
Command and ControlT1105 – Ingress Tool Transfer自 GitHub 取得 Invoke-TheHash 工具組
ExfiltrationT1041 – Exfiltration Over C2 Channelbase64 / GZip 分段經 SQL外傳
T1048.003 – Exfiltration Over Alternative ProtocolFTP

STAGE 4 – 結論

  • 攻擊者取得指令執行通道後,45 分鐘內植入 WebShell、1 小時 28 分內竊得多組帳號密碼、2 小時 53 分內完成供應鏈派送檔案之替換。全程歷時約 8 小時,共執行 4,283 筆指令,產生300個檔案,指令間隔中位數為 5.5 秒。同一條攻擊鏈若以人工滲透方式進行,通常以「日」為單位計算。
  • 代理式操作並未使攻擊者更為隱蔽,AI 放大的是速度與廣度,而非隱蔽性。密集且重複的操作樣態反而成為明確的偵測訊號,這正是本次能在攻擊仍進行、攻擊者仍在線上時即予攔截的原因。