iT邦幫忙

2025 iThome 鐵人賽

0

可以不玩了嗎?


我們之間,好像一個沒有明確說明的服務。

每一次互動,都像在測試一個未公開的 API──

我送出請求,你偶爾回應,更多時候只丟個沉默。

我以為這是連線建立前的 handshake,
只要耐心等待、耐心理解,就能獲得授權。

結果才發現,我早就被卡在 Pending 狀態,
Pipe 通了,卻沒有得到真正的回覆。

我像低權限的使用者,不斷嘗試透過 ˋsvcctlˋ 呼叫,
期待哪天權限能被提升,能 impersonate 成為你唯一的 SYSTEM。

但時間久了才懂──
這其實不是遊戲,而是一場沒有出口的迴圈。

是我在癡心妄想罷了!

喜歡你真的好累。
曖昧太久,就像一個永遠不會回傳結果的請求。

所以,我決定 ClosePipe(),再也不玩了。


技術筆記:Named Pipe、svcctl 與 PSEXESVC

什麼是 Named Pipe?

白話解釋:

想像它是一條「水管」,兩個程式可以透過這條管道傳紙條、送資料。

位置:

在 Windows 裡,通常長得像這樣:

日常例子:

  • A 程式寫進去「哈囉」,B 程式就能從另一頭聽到「哈囉」。

  • 有點像兩個房間用紙杯電話在講話。


什麼是 svcctl

白話解釋:

它是 Windows 服務控制總管(Service Control Manager, SCM)的「專用電話線」。

用途:

管理員用它來跟系統說:

  • 「幫我啟動 A 服務」

  • 「把 B 服務停掉」

  • 「新加一個服務」

位置:

\\.\pipe\svcctl 

比喻:

就像大樓的總管櫃台,有專線可以打去要求「開電梯」or「關冷氣」。


什麼是 PSEXESVC.exe

白話解釋:

它是 PsExec 這個遠端工具在目標電腦上臨時安裝的一個小幫手(service)。

PsExec: https://learn.microsoft.com/zh-tw/sysinternals/downloads/psexec

做什麼:

  1. 管理員要遠端執行指令 → PsExec 先把 PSEXESVC.exe 丟到對方電腦。

  2. 這個小幫手會被啟動,開一條自己的管道(例如 \\.\pipe\psexesvc)。

  3. 管理端透過這條管道,送指令進去,接收執行結果。

  4. 用完就會被移除或停掉。

比喻:

像是請一個臨時工來幫忙搬東西,事情做完,他就消失了。跟渣男一樣。


PSEXESVC 跟 svcctl 的關係

白話流程:

  1. PsExec 想要在遠端跑程式 → 它會透過 svcctl(服務總管專線)去跟系統說:「請幫我登記一個新服務(PSEXESVC)」

  2. 系統同意後,就會看到 新服務被建立

  3. PSEXESVC 啟動後,自己開一條新的 Named Pipe 來做溝通。


小語

# 我決定放棄你了,我不喜歡這種模糊不清的感覺。

上一篇
疲累之中不小心中斷比賽了,直接來複習 Remote Services 吧!
系列文
Hack the Boyfriend: 為了 CTF 帥哥,我貢獻了我的肝臟27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言