默认广告
默认广告

进阶教程: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/
特点:
  1. 支持多种协议,兼容几乎所有常用协议,例如tcp,udp,http(s),socks5,p2p,http代理…
  2. 全面的平台兼容性(Linux,WindowsMacOS,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-客户端配置文件模式

环境拓扑:
进阶教程:NPS内网穿透工具使用详解-1
  1. 服务端部署

根据vps的系统下载服务端程序并上传至vps,本文中使用的腾讯云Ubuntu18.04作为vps下载使用了安装包linux_amd64_server.tar.gz
进阶教程:NPS内网穿透工具使用详解-1
解压文件包结构如下:
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.0
http_proxy_port=8081   #http监听端口,默认80
https_proxy_port=443
https_just_proxy=true
#default https certificate setting
#默认HTTPS证书设置
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key

##bridge
##桥接
bridge_type=tcp
bridge_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=.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

#web
web_host=            ##web管理端登录地址URL
web_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  #管理端是否开启ssl
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# if web under proxy use sub path. like http://host/ 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=test
auth_crypt_key =1234567812345678

#allow_ports=9001-9009,10001,11000-12000

#Web management multi-user login
#Web管理多用户登录
allow_user_login=false
allow_user_register=false
allow_user_change_username=false


#extension
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=false

#cache
http_cache=false
http_cache_length=100

#get origin ip
http_add_origin_header=false

#pprof debug options
#pprof_ip=0.0.0.0
#pprof_port=9999

#client disconnect timeout
#客户端断开连接超时
disconnect_timeout=60

运行服务端

./nps

 

进阶教程:NPS内网穿透工具使用详解-1
访问服务端
进阶教程:NPS内网穿透工具使用详解-1
进阶教程:NPS内网穿透工具使用详解-1

2.客户端部署

客户端使用虚拟机win7模拟内网,下载对应版本客户端程序windows_amd64_client.tar.gz上传至内网主机
进阶教程:NPS内网穿透工具使用详解-1
解压文件包结构如下:
- conf       #客户端配置文件夹  
- npc.exe    #客户端运行程序

 

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

3.客户端详细配置

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

[tcp]
mode=tcp
target_addr=192.168.138.135:3389  ##内网服务地址 ip:port
server_port=43389                  ##映射到vps端口

 

进阶教程:NPS内网穿透工具使用详解-1

4.建立连接

登录服务端web控台,在“-客户端列表”添加新增
进阶教程:NPS内网穿透工具使用详解-1
添加设置如下图所示,注意:basic用户名和密码需与上文客户端配置中basic_username/basic_password一致、唯一验证秘钥有客户端配置中vkey一致。
进阶教程:NPS内网穿透工具使用详解-1
保存后,继续新建连接隧道
进阶教程:NPS内网穿透工具使用详解-1
在隧道列表中新增
进阶教程:NPS内网穿透工具使用详解-1
设置代理模式、服务端口和内网地址
进阶教程:NPS内网穿透工具使用详解-1
完成如上配置后,在客户端运行npc.exe
进阶教程:NPS内网穿透工具使用详解-1
访问测试连接成功
进阶教程:NPS内网穿透工具使用详解-1
进阶教程:NPS内网穿透工具使用详解-1
通过客户端配置文件进行连接的方式需要修改配置文件的相关参数项,上文模拟中介绍了通过TCP代理内网3389的方式,在实际使用需求中对于其他代理模式配置大同小异,只需要在客户端配置选项中保留需要使用的代理模式参数进行配置,删除其他模式参数,在web管理端新建隧道选择相对应的代理模式即可。其他代理模式详细配置不再详细描述。
进阶教程:NPS内网穿透工具使用详解-1

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

环境拓扑:
进阶教程:NPS内网穿透工具使用详解-1

1.服务端部署

服务端的部署与上文相同不再重复说明。
在服务端web管理新建一个客户端连接。
进阶教程:NPS内网穿透工具使用详解-1
填写新建参数,选择不通过客户端配置文件连接
进阶教程:NPS内网穿透工具使用详解-1
新建完成后点击列表中的“+”号展开详情
进阶教程:NPS内网穿透工具使用详解-1
在详情中给出客户端连接命令,注意这里给出的命令为linux运行命令,如果客户端使用Windows客户端时运行npc.exe
./npc -server=81.0.0.0:8024 -vkey=qwertasdfg -type=tcp     ##linux
npc.exe -server=81.0.0.0:8024 -vkey=qwertasdfg -type=tcp    ##windows

 

2.客户端部署

下载客户端对应的版本
进阶教程:NPS内网穿透工具使用详解-1
上传至客户端进行解压
tar -zxvf linux_amd64_client.tar.gz

 

解压后不需要对配置文件进行修改。

3.建立连接

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

 

进阶教程:NPS内网穿透工具使用详解-1
刷新web管理页面查看连接成功
进阶教程:NPS内网穿透工具使用详解-1
新建隧道设置代理模式使用TCP代理,设置服务端映射端口,内网ip服务端口
进阶教程:NPS内网穿透工具使用详解-1
进阶教程:NPS内网穿透工具使用详解-1
配置完成后本地使用vpsip映射端口访问内网ssh进行测试,如下图代理成功
进阶教程:NPS内网穿透工具使用详解-1
进阶教程:NPS内网穿透工具使用详解-1
其他代理模式设置在新建隧道时选择进行配置即可,不再一一列举

0x04 总结

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

给TA打赏
共{{data.count}}人
人已打赏

【龙萱坤诺】声明:

龙萱坤诺所有资源来源于网络及用户分享或为本站原创,仅限用于学习和研究,如有侵权请邮件联系站长!不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站概不负责!

 

龙萱坤诺欢迎您投稿发表文章,更有龙萱坤诺奖励和额外收入!根据投稿内容质量,可获邀入驻本平台,开启您的站长之路!

 

如有链接无法下载、失效或广告,请到圈子反馈!

© 转载请声明:转载自“龙萱坤诺"

软件教程

NPC客户端Windows一键安装脚本

2022-5-14 19:25:18

软件教程

FreeFileSync 同步自动备份RealTimeSync(自动同步工具)

2022-6-4 17:48:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

热门专栏

文章发布排行

更多
  • 官方编辑

    仁师lv9

    文章

    6176

    评论

    4

    粉丝

    6

    关注

    0

    龙萱坤诺官方编辑员
  • 玩机技巧

    初学子lv0

    文章

    819

    评论

    2

    粉丝

    3

    关注

    0

    分享最新、最热的玩机教程。有需要的教程也可以圈子发帖提需求呦。
  • 微客创赢

    坛圣lv13

    文章

    337

    评论

    45

    粉丝

    16

    关注

    4

    程序员小白
  • wordpress建站

    俊才lv3

    文章

    216

    评论

    14

    粉丝

    3

    关注

    0

    Wordpress建站服务商
  • 龙萱坤诺

    坛圣lv13

    文章

    143

    评论

    83

    粉丝

    10

    关注

    5

    龙萱坤诺管理员