Redian新闻
>
NPS内网穿透工具使用详解

NPS内网穿透工具使用详解

科技

0x01 前言

在红队HW中通过前期的打点获得shell后通常下一步就是对内网进行横向,获得shell进想要行横向的前提是我们必须有代理可以访问内网中的资产,这时候我们就需要通过拿到shell的那台机器权限,在此台机上传代理工具进行配置搭建内网代理,目的达到内网出网的效果,使我们能够进行下一步的内网横向渗透。在hw中经常用到的代理工具有很多,根据不同之需和个人不同的使用习惯选择不同工具进行使用,本文主要对NPS这款代理工具进行介绍。

0x02 简介

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
工具获取:https://github.com/ehang-io/nps
特点:
  1. 支持多种协议,兼容几乎所有常用协议,例如tcp,udp,http(s),socks5,p2p,http代理…
  2. 全面的平台兼容性(Linux,Windows,MacOS,Synology等),仅支持将安装作为系统服务进行。
  3. 全面控制,允许客户端和服务器控制。
  4. Https集成,支持将后端代理和Web服务转换为https,并支持多个证书。
  5. 只需在Web ui上进行简单配置即可完成大多数要求。
  6. 完整的信息显示,例如流量,系统信息,实时带宽,客户端版本等。
  7. 强大的扩展功能,一切可用(缓存,压缩,加密,流量限制,带宽限制,端口重用等)
  8. 域名解析具有诸如自定义标题,404页面配置,主机修改,站点保护,URL路由和全景解析之类的功能。
  9. 服务器上的多用户和用户注册支持。

0x03 实验环境

NPS代理需要借助VPS进行中转,首先我们要根据VPS的系统和内网客户端系统下载对应的nps程序。这里我使用腾讯云的VPS作为服务端,系统为Ubuntu 18.04,内网分别采用VMware中centOS 7和Windows 7进行模拟,将内网代理到本地。

环境模拟1-客户端配置文件模式

环境拓扑:



  1. 服务端部署

根据vps的系统下载服务端程序并上传至vps,本文中使用的腾讯云Ubuntu18.04作为vps下载使用了安装包linux_amd64_server.tar.gz


解压文件包结构如下:
linux_amd64_server/ - conf ##配置文件目录 - web ##web文件目录 - nps ##nps运行文件
进入conf目录,可编辑nps.conf配置文件对部分选项进行配置,默认运行不需要进行任何配置即可运行
默认配置运行nps服务端启动会占用80,8080,8024端口,可根据需求对配置进行修改。
appname = nps#Boot mode(dev|pro)#启动模式runmode = dev
#HTTP(S) proxy port, no startup if empty#HTTP(S)代理端口,如果为空则不启动http_proxy_ip=0.0.0.0http_proxy_port=8081 #http监听端口,默认80https_proxy_port=443https_just_proxy=true#default https certificate setting#默认HTTPS证书设置https_default_cert_file=conf/server.pemhttps_default_key_file=conf/server.key
##bridge##桥接bridge_type=tcpbridge_port=8024 ##客户端与服务端连接端口bridge_ip=0.0.0.0
# Public password, which clients can use to connect to the server# 公共密码,客户端可以使用它连接到服务器# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.# 连接完成后,服务器就可以打开相关端口,根据自己的配置文件解析相关域名。public_vkey=123
#Traffic data persistence interval(minute)#流量数据持续时间间隔(分钟)#Ignorance means no persistence#flow_store_interval=1
# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7# 日志等级设置log_level=7#log_path=nps.log
#Whether to restrict IP access, true or false or ignore#是否限制IP访问,true、false或ignore#ip_limit=true
#p2p代理#p2p_ip=127.0.0.1#p2p_port=6000
#webweb_host= ##web管理端登录地址URLweb_username=admin ##web管理端登录名web_password=123 ##web管理端登录密码(注:正式环境建议更改)web_port = 8080 ##web管理端访问端口web_ip=0.0.0.0 ##web管理端登录地址默认0.0.0.0不需要修改web_base_url= ##管理端web路径,默认不需要指定web_open_ssl=false #管理端是否开启sslweb_cert_file=conf/server.pemweb_key_file=conf/server.key# if web under proxy use sub path. like http://host/nps need this.#web_base_url=/nps
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)#Remove comments if needed#auth_key=testauth_crypt_key =1234567812345678
#allow_ports=9001-9009,10001,11000-12000
#Web management multi-user login#Web管理多用户登录allow_user_login=falseallow_user_register=falseallow_user_change_username=false

#extensionallow_flow_limit=falseallow_rate_limit=falseallow_tunnel_num_limit=falseallow_local_proxy=falseallow_connection_num_limit=falseallow_multi_ip=falsesystem_info_display=false
#cachehttp_cache=falsehttp_cache_length=100
#get origin iphttp_add_origin_header=false
#pprof debug options#pprof_ip=0.0.0.0#pprof_port=9999
#client disconnect timeout#客户端断开连接超时disconnect_timeout=60
运行服务端./nps


访问服务端



2.客户端部署

客户端使用虚拟机win7模拟内网,下载对应版本客户端程序windows_amd64_client.tar.gz上传至内网主机


解压文件包结构如下:
- conf #客户端配置文件夹 - npc.exe #客户端运行程序
下载好客户端程序后解压压缩包,在客户端配置文件夹conf中找到npc.conf配置文件进行编辑。
这里我们使用客户端配置文件模式将客户端内网3389映射到公网vps43389端口实现远程访问内网主机。

3.客户端详细配置

在配置文件中将[common]和[tcp]之外的参数项删除,本次通过TCP代理实现内网3389端口映射,配置如下:
[common]server_addr=1.1.1.1:8024 ## 服务端vps ip/域名:portconn_type=tcp ## 通信模式与服务端配置bridge中bridge_type=tcp设为一致vkey=w4c7qokkqsfqzxeg ## 端配置文件中的服务密钥,手动指定auto_reconnection=true ## 断线重连max_conn=1000 flow_limit=1000rate_limit=1000basic_username=11 ## 代理认证用户名basic_password=3 ## 代理认证密码web_username=userweb_password=1234crypt=true ## 加密传输compress=true ## 压缩传输#pprof_addr=0.0.0.0:9999disconnect_timeout=60
[tcp]mode=tcptarget_addr=192.168.138.135:3389 ##内网服务地址 ip:portserver_port=43389 ##映射到vps端口


4.建立连接

登录服务端web控台,在“客户端-客户端列表”添加新增


添加设置如下图所示,注意:basic用户名和密码需与上文客户端配置中basic_username/basic_password一致、唯一验证秘钥有客户端配置中vkey一致。


保存后,继续新建连接隧道


在隧道列表中新增


设置代理模式、服务端口和内网地址


完成如上配置后,在客户端运行npc.exe


访问测试连接成功



通过客户端配置文件进行连接的方式需要修改配置文件的相关参数项,上文模拟中介绍了通过TCP代理内网3389的方式,在实际使用需求中对于其他代理模式配置大同小异,只需要在客户端配置选项中保留需要使用的代理模式参数进行配置,删除其他模式参数,在web管理端新建隧道选择相对应的代理模式即可。其他代理模式详细配置不再详细描述。


环境模拟2-客户端无配置文件模式

环境拓扑:


1.服务端部署

服务端的部署与上文相同不再重复说明。
在服务端web管理新建一个客户端连接。


填写新建参数,选择不通过客户端配置文件连接


新建完成后点击列表中的“+”号展开详情


在详情中给出客户端连接命令,注意这里给出的命令为linux运行命令,如果客户端使用Windows客户端时运行npc.exe

./npc -server=81.0.0.0:8024 -vkey=qwertasdfg -type=tcp ##linuxnpc.exe -server=81.0.0.0:8024 -vkey=qwertasdfg -type=tcp ##windows

2.客户端部署

下载客户端对应的版本


上传至客户端进行解压
tar -zxvf linux_amd64_client.tar.gz
解压后不需要对配置文件进行修改。

3.建立连接

在客户端执行连接命令
./npc -server=81.0.0.0:8024 -vkey=qwertasdfg -type=tcp


刷新web管理页面查看连接成功


新建隧道设置代理模式使用TCP代理,设置服务端映射端口,内网ip服务端口



配置完成后本地使用vpsip映射端口访问内网ssh进行测试,如下图代理成功


其他代理模式设置在新建隧道时选择进行配置即可,不再一一列举

0x04 总结

使用nps时需要注意的问题:服务端默认配置启用了8024、80、443端口,如果端口冲突将导致无法启动,请注意修改配置。注意检查安全组防火墙规则,在nps使用过程中放相应的端口。
nps代理工具的部署使用配置相对于其他代理工具来说操作简单,nps服务端支持多客户端连接能够实时统计流量情况,通过web管理端更友好的管理。

E

N

D



Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章400余篇,自研平台达到31个,目有18个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
穿透历史迷雾!科技诠释“何以中国”广场舞 《对面的小姐姐》使用 Linux 上的开源财务工具 Skrooge 管理你的预算 | Linux 中国npj Computational Materials: 胡建军打造新材料发现的百宝工具箱:MaterialAtlas.org估值34亿美元,MoonPay是PayPal for Web3吗?看了一下最近的报道,希望这件事很快有个结果。记一次实战攻防(打点-Edr-内网-横向-Vcenter)用AI打败职业冠军,为游戏创造沉浸式NPC:解析这家创企背后的神秘技术 | GGV投资笔记第一百一十五期npj Flexible Electronics: 激光诱导石墨烯柔性可拉伸电子器件乌克兰战争给习近平的启示从弱口令到内网生产区npj Comput. Mater.: 分子动力学兼得“鱼与熊掌”—高精度、高速度!Funplus杨超:Funplus如何打造次世代服务器框架?npj: 挖掘热电材料—无需标签的无监督学习爬虫必备Beautiful Soup包使用详解【译者课堂119】Ottomanpower | 订阅礼包最后三天固态电池三大技术路线争霸,谁能穿透迷雾看到终局?| 【经纬科创汇*动力电池】npj Computational Materials: 华人教授曹晔提升金属氧化物忆阻器—导电细丝的形成与优化npj: 最低未占据轨道与缓蚀效率—有何秘密关系?npj: 二维五边形结构:极化材料设计的新架构智能MCU成大势,恩智浦推出首款集成NPU的通用MCU汽车规制从购买转为使用环节,可增加销量与使用者获得感|自由谈npj: 纳米发电机—基于2D材料层间滑移诱发铁电-反铁电相变Science:宾大推动CAR-T创新,走向癌症和其他疾病的应用;充分运用了mRNA编码和LNP两项新冠疫苗的关键技术ESI 集团同 ENSAM 合作,开源其 Inpsector 软件 | Linux 中国Npj Comput. Mater.: 非晶材料中热输运—同济大学陈杰教授疑惑到底靠粒子还是波?俄乌战争对台湾的启发npj: 新型光催化剂开发—使用会解释的机器学习npj: 碳化硅的新表现—双空位量子点的偶极自旋弛豫里尔克诗选:天鹅 - The Swan澳洲top5酒店与休闲管理硕士项目详解FunPlus孵化、前腾讯字节Meta老兵组团,他们要挑战承接下个世代的游戏成立5个月月销破千万,Pinpoint的"爆品公式"与"营销法则"NetOps、DevOps、NetSecOps有什么区别?金融商行BNP Paribas已开放金融2022 Internship!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。