NPS隧道工具流量识别分析

目前NPS代理工具和FRP代理工具在代理上网领域广受欢迎,因其功能强大、易用性高而得到了大量用户的青睐。然而,由于其受众群体庞大,也对恶意攻击者提供了可乘之机,用来进行各类不法活动的案例也屡见不鲜。本文针对NPS代理工具进行了详尽的分析
一、NPC和NPS的连接分析
通过\web\controllers\client.go代码功能新建客户端见下方图片:
NPC通过npc.exe –server=ip –vkey=key –type=协议的形式进行NPS的上线。
1、根据SetDeadline函数可知:客户端每10秒内完成一次发送请求(如字段TST硬编码+NPS主版本号+NPS具体版本号),接下来就是等待服务端接收请求之后进行验证了。
2、服务端获取客户端请求中的版本号信息,验证其字节数是否在规定范围内,并通过crypt.MD5函数计算自身主版本号MD5值发送到客户端。
3、客户端通过获取响应中的MD5值与NPS主版本号的MD5值进行验证。
4、客户端对NPS主版本号的MD5值验证成功之后,获取自身的Vkey秘钥值进行计算其MD5值并发送到服务端验证。
5、服务端通过GetShortContent函数获取客户端发送的32个字节,通过GetIdbyVerifyKey函数进行验证Vkey是否正确,进而判断是否发送“succ”标志。
6、在GetIdbyVerifyKey函数中引用了Getverifyval函数可获取Vkey=50jde9y1dvmedpvx,可返回该秘钥的MD5。
7、在Client/control.go 中通过ReadFlag函数可以读取服务端响应的flag,并判断其值是否为VERIFY_EER,如果不是则继续执行。下一步骤是发送“main”字符串ConnType标志值。
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录