内网穿透nps的魔改
字数 1260 2025-08-06 12:20:59
内网穿透工具nps的魔改与流量特征规避技术
1. 前言
nps工具是渗透测试和红蓝对抗中常用的内网穿透工具,但其默认流量特征明显,容易导致"落地秒"(即刚部署就被检测到并阻断)。本文档详细记录了对nps工具进行二次开发以规避检测的技术方法。
2. nps默认流量特征分析
2.1 客户端到服务器的流量特征
- TST字段:客户端会向服务器发送特定的TST字段
- version字段:客户端会发送version值
- 交互流量包:客户端与服务端之间的通信流量均为明文
2.2 服务器到客户端的流量特征
- 版本MD5值:服务器会向客户端发送一次版本的MD5值
- 后续通信:所有后续通信流量均为明文传输
3. nps魔改技术方案
3.1 特征替换技术
原理:替换明显的特征值以达到流量混淆目的
实施方法:
- 修改客户端向服务器发送的version值
- 将默认的version值替换为其他特定值或随机值
- 确保服务端能够识别修改后的version值
3.2 免杀环境检测规避
检测点:
- CPU检测
- 注册表检测
- 特定文件检测
- 内核检测
常见虚拟环境特征:
- VMware
- Parallels Desktop
规避方法:
- 实现环境检测功能
- 在检测到虚拟环境时改变行为模式或停止运行
- 移除或修改工具自身的特征标识
3.3 流量协议重构
原版协议问题:
- 使用特定字段进行C/S认证
- 认证过程完全明文
- 易于分析和溯源
改进方案:
- 重构认证交互协议
- 引入加密通信
- 修改或混淆认证过程中的特征字段
- 实现动态变化的认证机制
4. 魔改后检测结果
4.1 通信流量分析
- 修改后的流量特征明显减少
- 难以通过常规流量分析识别
4.2 安全产品检测结果
- 某社区沙箱:未检测到恶意行为
- VirusTotal:检测通过
- Windows Defender:
- 静态检测:通过
- 动态检测:通过
- 其他安全产品:
- 数字杀毒:未检测
- 火绒:未检测
5. 工具使用指南
5.1 服务端部署
- 配置文件启动:
- 修改配置文件中的相关参数
- 确保服务端能够识别魔改后的客户端
- 命令行启动:
- 支持通过命令行参数进行配置
- 可指定监听端口和其他关键参数
5.2 客户端使用
- 配置文件启动:
- 配置连接参数和特征值
- 设置环境检测和行为模式
- 命令行启动:
- 支持通过命令行指定连接参数
- 可动态修改部分特征值
6. 测试情况
- 成功规避主流安全产品检测
- 流量特征明显减少
- 在虚拟环境和真实环境中均能稳定运行
- 保持了原版nps的功能完整性
7. 工具获取
项目地址:https://github.com/Q16G/npsmodify
8. 注意事项
- 使用前请确保符合当地法律法规
- 仅限授权测试使用
- 建议在封闭测试环境中验证效果
- 持续关注安全产品更新,可能需要定期调整特征值
9. 后续改进方向
- 实现完全加密通信
- 增加流量伪装功能
- 开发动态特征变化机制
- 增强环境适应能力
- 优化性能表现
通过以上技术手段,可以有效规避nps工具的默认特征检测,提高在内网渗透测试中的隐蔽性和成功率。