Category Archives

146 Articles

Sunshine 的权限提升实现的坑

0   1636 转为繁体

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   1524 转为繁体

因为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   2470 转为繁体

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   2157 转为繁体

现有两个存储池,分别叫StoragePool1和StoragePool2;两个存储池中各有两块磁盘(Disk1-1, Disk1-2, Disk2-1, Disk2-2),各组成Mirror分布的虚拟磁盘,分别叫VirtualDisk1和VirtualDisk2。

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

按如下操作