Category Archives

146 Articles

Sunshine 的許可權提升實現的坑

0   1269 轉為簡體

Sunshine 在進行許可權提升操作時,會用WTSGetActiveConsoleSessionId來獲取當前的活動會話,找到活動會話中的實際用戶,再從這個用戶來提升許可權。

但是當前會話是RDP時,Windows會分配一個nobody用戶,然後給WTSGetActiveConsoleSessionId里返回0。從而後面獲取不到用戶的token。

在這個貼子中,有人提到了遍歷所有的會話,過濾掉不活動的和獲取不到token的會話,從而一找到個實際登錄的用戶。

有了這個修復之後,只要使用物理顯示器登錄一次,或者用Sunshine 中的 Desktop 程序登錄之後,實際串流即可找到正確的用戶來提升許可權。

我把它和打包出來的二進位放到了這裡:

https://github.com/fffonion/Sunshine/releases/tag/0.21-fix

 

nginx配置HTTP/3的注意事項

0   1156 轉為簡體

因為OpenResty近期更新到了支持HTTP/3的nginx,需要注意以下事項。

打開reuseport

在多worker配置下需要打開HTTP/3埠的reuseport選項,否則會導致兩個UDP包被不同的worker處理,從而客戶端報ERR_DRAINING錯誤。

多個Host在同一個埠監聽的話,只需在其中的任意一個listen directive中添加reuseport。

把$http_host替換成$host

由於HTTP/3不再發送 Host 頭而改用 :authority 偽頭來,$http_host 變數變為空值。因此$http_host和ngx.var.http_host都需要改為$host和ngx.var.host。

添加Alt-Svc頭

瀏覽器不會默認通過 HTTP/3 連接,但在看到 Alt-Svc 頭後才開始嘗試使用 HTTP/3 協議。

另外,隨著http3的加入,http2從listen directive中被棄用,改為單獨的http2 on/off; directive。

我將以上更改寫成一個自動化腳本,用來批量更新多個nginx conf文件。

Do not set HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT when trying to enable ReFS

0   2168 轉為簡體

Lots of articles online indicates adding a AllowRefsFormatOverNonmirrorVolume DWORD key under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT in reigstry.

This is wrong. The MiniNT section is to indicate the system is a WinRE or WinPE system, thus certain USBccid devices’ driver won’t load. Including SmartCard reader, Windows Hello (mostly implemented as an internal USB camera).

很多教程提到在註冊表裡添加HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT項,並添加名為AllowRefsFormatOverNonmirrorVolume的DWORD值。

其實這是錯誤的利用了WinRE啟用了ReFS作為系統盤的功能。在正常的系統中出現MiniNT項會導致系統認為這是WinRE系統,從而不載入基於USB的驅動,包括智能卡讀卡器和Windows Hello 驅動(很多 Windows Hello 攝像頭是通過USB連接的)。

Windows Server 存儲池替換物理硬碟

0   1922 轉為簡體

現有兩個存儲池,分別叫StoragePool1和StoragePool2;兩個存儲池中各有兩塊磁碟(Disk1-1, Disk1-2, Disk2-1, Disk2-2),各組成Mirror分布的虛擬磁碟,分別叫VirtualDisk1和VirtualDisk2。

需要將 Disk2-2 退役,在StoragePool1 中加入 Disk1-3,將 Disk1-2 加入StoragePool2。

按如下操作