0x00 前言
官方介绍:NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。
当 nps.conf 中的 auth_key 未配置时,通过生成特定的请求包即可获取系统后台权限。本文主要说明如何判断目标是否存在未授权访问漏洞,以及自动化利用。
0x01 场景一
访问路由,如果 crypt_auth_key
参数等于 5acabcf051cd55abca03d18294422e01
,即可判断存在nps未授权访问漏洞
/auth/getauthkey
此时通过网上公开的利用脚本直接生成poc后,拼接访问登陆后页面即可
/index/index?auth_key=194b9a81f11384a087ca27f8e6cccc00×tamp=1698744652
打开 nps.conf 文件,可以看到在默认配置情况下,auth_key 参数是被注释掉的。
0x02 场景二
访问 /auth/getauthkey 接口,如果发现 crypt_auth_key 参数的值不等于 5acabcf051cd55abca03d18294422e01,此时利用网上的脚本发现无法利用了,看似漏洞被"修复"了,但并没有完全修复。
该值的加密方式为:AES/CBC/PKCS7Padding
在知道 auth_crypt_key 参数值(1234567812345678)的情况下,我们可以通过脚本对加密值进行解密
最后通过脚本生成新的poc即可利用
此时对应的配置文件为:将 auth_key
参数注释去掉,将默认值test修改为新的值,auth_crypt_key
参数仍为 1234567812345678
未改动。
如果 auth_crypt_key 参数的值也被修改了呢?那么我们可以在获取加密值之后,使用脚本在本地离线对 auth_crypt_key 参数进行枚举,只有 auth_crypt_key 正确时,才能解密成功。
0x03 场景三
访问 /auth/getauthkey 接口,发现响应结果如下。
此时对应的修复方式为:将 auth_key
参数注释去掉,并将默认值test修改为新的值,将 auth_crypt_key
参数注释掉。
这种情况下,可以直接利用脚本对 auth_key 参数值进行枚举。具体流程为读取密码字典,依次通过字典密码结合脚本生成poc去访问后台页面,如果访问成功,则说明 auth_key 参数枚举成功。
0x04 burp插件编写
生成的poc会在短时间内失效,需要不停的生成新的,此时就需要一个burp插件去方便利用。
具体的代码实现就是每次访问都生成一个新的poc去自动拼接在url后面即可。
在需要使用时,下载安装插件
安装插件时会默认生成一个空白的配置文件,windows系统生成在 C:UsersPublicnps_poc_config.txt,其他系统生成在 /tmp/nps_poc_config.txt
如果是场景一,则无须修改nps_poc_config.txt 文件,直接访问 /index/index 即可
如果是场景二,则可以将 /auth/getauthkey 接口得到的加密字符串,去AES在线解密网站解密,如果默认 auth_crypt_key (1234567812345678)可解密成功。
如:https://the-x.cn/cryptography/Aes.aspx
则将值复制到 nps_poc_config.txt 文件中,再访问 /index/index 即可
在利用结束后建议卸载插件,下次使用时再安装。如果 auth_crypt_key 不等于 1234567812345678 或是场景三,有必要的话则可以进一步编写脚本进行枚举。
公众号回复(1101)获取burp插件下载地址,以及本地解密和生成poc的demo
0x05 总结
1、不要忽略NPS默认密码(admin/123),遇到了先试一下。
2、默认情况下,通过NPS登录接口爆破错误10次锁定1分钟。
3、访问 /auth/getauthkey 接口,通过响应即可判断当前NPS对应的是哪种配置情况,从而判断是否存在漏洞。
4、测试发现若在配置文件中同时注释掉 auth_key 与 auth_crypt_key,访问 /auth/getauthkey 接口,响应也是 { "status": 0 } ,利用方式为场景一,大概没人会这样配置吧。
5、综合来看,比较稳妥的配置方式:修改后台默认账号密码,将 auth_key 设置为随机值,注释掉 auth_crypt_key。
0x06 参考文章
https://www.freebuf.com/vuls/374609.html
说明:文章不保证内容完全准确,文中如有错误还请多多指出,共同进步.
原文始发于微信公众号(XINYU2428):关于NPS未授权访问漏洞的三种场景(附插件)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论