今天发现全部网站的两步验证都过不了,检测后发现防火墙 DROP 了全部 UDP 外网出站请求(内网不影响,我无法操作这个防火墙)导致 Windows 时间无法同步,电脑时间已经偏差 2 分钟了,于是自己花 3 分钟时间糊(上 StackOverflow 抄了两段代码拼起来)了一个通过 HTTPS 获取网络时间来更新的程序,发现没有 UAC 权限无法更新 Windows 时间。试了下在 UI 手动改系统时间不需要 UAC 权限呀。如果为此把它做成服务 /计划任务(开启 UAC 的情况下要求 UAC 的程序不能作为普通自启项)感觉攻击面增加了。程序在没有 UAC 权限的情况有办法修改 Windows 时间吗?
1
cz5424 2022-03-21 01:19:24 +08:00 via iPhone
人工修改不需要 uac 的话,模拟鼠标就可以了
|
2
i0error 2022-03-21 01:27:05 +08:00 via Android
但是模拟鼠标会不会需要 uac 。。。
|
3
rv54ntjwfm3ug8 OP @cz5424 那就做不到无感同步了
|
4
ysc3839 2022-03-21 02:13:38 +08:00
> 在 UI 手动改系统时间不需要 UAC 权限
是需要的,这是 UAC 没有开到最高档,白名单直接授权了,在这种情况下有一大堆方法可以提权,做成服务不会增加攻击面。 另外根据微软员工在博客里的说法,UAC 不是安全特性。 https://devblogs.microsoft.com/oldnewthing/20160816-00/?p=94105 https://web.archive.org/web/20190315174844/https://devblogs.microsoft.com/oldnewthing/20160816-00/?p=94105 https://web.archive.org/web/20111216020913/http://channel9.msdn.com/Forums/Coffeehouse/473037-UAC-controversy-the-last-episode/773c9d79f8df4fa8bc489deb00e05c3d |
5
mingl0280 2022-03-21 04:03:37 +08:00 via Android
你可以在内网开个虚拟机,装啥系统随你……然后把内网的时间服务器指定为这台虚拟机。你的虚拟机就随便怎么草 https 服务了吧……
|
7
msg7086 2022-03-21 06:04:39 +08:00
https://github.com/twekkel/htpdate 你是重写了这个轮子吗。
|
8
yin1999 2022-03-21 06:41:04 +08:00 via Android
试试内网网关是否自带 NTP 服务器,如果有且时间相对正确的话,可以用那个
|
9
datocp 2022-03-21 06:41:27 +08:00 via Android
用 openwrt 网关就没这些事了。
直接 dnsmasq 指定 time.windows.com 为网关 ip 。网关做为 ntp 服务器。 Services.msc 不知道哪个服务用.cmd 重新启动一下,也有同步时间的效果,适合那些主板电池没电的电脑。 其它应该有个 net time 命令,通过其它电脑进行同步。 |
10
Tink 2022-03-21 08:50:15 +08:00 via Android
我觉得你有这功夫,不如在本地起一个 ntp 服务
|
11
rv54ntjwfm3ug8 OP |
13
3dwelcome 2022-03-21 12:48:12 +08:00
就是发一个 NTP 协议的 UDP 包,给 windows 。
让 windows 能知道当前的时间,算是很容易的一件事情吧。 平均也就 30 行代码,估计大家都懒得造轮子了。 |
14
3dwelcome 2022-03-21 12:52:34 +08:00
不对,我发现添加自定义 time ntp 服务器,还是需要先申请 UAC 权限。
而楼主的最大问题,就是没有 UAC 权限。那直接进入死循环了。 干脆用代码申请提权吧,修改本地时间又不是见不得人的事情,要求 UAC 权限一点不过分。 |
15
ragnaroks 2022-03-21 13:37:03 +08:00
windows 上自用的话,用 dotnet 起个 worker 模板,写完了直接安装到服务里面。
这玩意我以前也搞过,找个你认为准确的 http 目标,发一个 head 请求,响应里面就有 GMT 时间,除了被 httpclient 坑了一道以外前后不超过 10 分钟撸完 |
16
ragnaroks 2022-03-21 13:39:27 +08:00
补充:应用程序如果以 LocalSystem 用户运行是不需要经过 UAC 允许的
|
17
mmdsun 2022-03-21 20:13:59 +08:00 via iPhone
用计划任务启动就不需要 UAC 了,微软留的。貌似也不打算修复了
|