实战NPS内网穿透工具入门(三)

VSole2021-08-12 08:46:58

NPS工具

0x01 NPS工具介绍

NPS工具是一款使用go语言编写的轻量级、功能强大的内网穿透工具。支持TCP、UDP流量转发,支持内网HTTP、SOCKS5代理,同时支持snappy压缩(节省带宽和流量)、站点保护、加密传输、多路复用、header修改等。同时还支持web图形化管理。该工具使用简单,相比于FRP,NPS是图形化界面,因此配置更加简单。

NPS工具原理

注意:NPS工具的工作原理和FRP工具的工作原理相似,因此我们只需要对其中某一款工具的原理十分熟悉即可,由于之前写过一篇十分详细的FRP的工作原理和使用方法,因此,在这不再赘述,大家可以去看我昨天发的 实战FRP代理工具内网渗透入门(二)

下面提供NPS的使用文档和下载地址:

NPS官方使用文档:https://ehang-io.github.io/nps/#/api
NPS下载地址:https://github.com/ehang-io/nps/releases/tag/v0.26.9

NPS服务器端(Linux&Windows):

安装NPS服务器端

./nps install   #linux
nps.exe install #windows

进入到conf文件夹中查看nps.conf

appname = nps
#Boot mode(dev|pro)
runmode = dev

#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=80     #域名代理http代理监听端口
https_proxy_port=443   #域名代理https代理监听端口(一般会修改这两个端口,避免端口冲突)
https_just_proxy=true
#default https certificate setting
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key

##bridge
bridge_type=tcp      #客户端与服务端连接方式kcp或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=nps.log

#Whether to restrict IP access, true or false or ignore
#ip_limit=true      #是否限制ip访问,true或false或忽略

#p2p
#p2p_ip=127.0.0.1    #服务端IP,使用p2p模式必填
#p2p_port=6000       #p2p模式开启的udp端口

#web
web_host=a.o.com
web_username=admin   #web界面管理账号
web_password=123     #web界面管理密码
web_port = 8080      #web管理端口,通过访问该端口可以访问NPS后台
web_ip=0.0.0.0
web_base_url=        #web管理主路径,用于将web管理置于代理子路径后面
web_open_ssl=false
web_cert_file=conf/server.pem
web_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=test       #web api密钥
auth_crypt_key =1234567812345678    #获取服务端authKey时的aes加密密钥,16位

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

#Web management multi-user login
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       #debug pprof 服务端IP
#pprof_port=9999        #debug pprof 端口

#client disconnect timeout
disconnect_timeout=60   #客户端连接超时,单位 5s,默认值 60,即 300s = 5mins

注意:在上面的配置文件中,我们主要是要注意以下方面:

①:一般会修改域名代理的端口,避免端口冲突

②:NPS的web页面默认端口是8080,默认用户名密码是admin/123

③:NPS的服务端和客户端进行连接的默认端口是8024,这个端口可以进行修改,修改之后,在连接时注意使用修改后的端口

④:NPS服务端开启的端口(也就是我们需要访问的VPS的端口)不在配置文件中,需要我们web界面中进行配置

NPS客户端(Linux&Windows):

客户端共有两种连接方式,我们都会逐一讲述

①:使用vkey进行连接

Windows:npc.exe -server=ip:port -vkey=服务端生成的key
Linux:./npc -server=ip:port -vkey=服务端生成的key

②使用配置文件进行连接

windows:   npc.exe -config=npc配置文件路径
linux:     ./npc -config=npc配置文件路径

在客户端配置文件中,我们主要是修改以下三个参数

server_addr=127.0.0.1:8024   #服务端ip/域名:port
conn_type=tcp       #与服务端通信模式(tcp或kcp)
vkey=123           #服务端配置文件中的密钥

首先server_addr是需要填写NPS服务端的IP和端口,conn_type选择合适的类型(一般选择TCP),vkey的值设置为服务端配置文件的密钥。这样服务端和客户端就可以进行连接了。

实战环境

0x01

    攻击机:Windows10

   IP地址:192.168.92.11

   NPS服务器端:Linux Ubuntu

    公网IP:42.1X2.204.XX

    靶机内网存在多个服务器网段:

        10.130.1.0/16

        10.131.10.0/16

        10.133.3.0/24

        10.128.1.0/24  

修改服务器端配置文件中以下两行,以防端口冲突

http_proxy_port=8081
https_proxy_port=8443

修改完配置文件后,启动nps服务

./nps start    #启动nps服务
./nps stop     #停止nps服务
./nps restart  #重启nps服务

浏览器输入42.1X2.204.XX:8080访问NPS web管理端

输入admin/123登陆NPS管理界面

新增一个客户端,这块新建的客户端主要是要使用生成的唯一验证密钥,通过这个唯一验证密钥才能将NPS的服务端和客户端连接起来,因此至少需要添加一个客户端。

记住上面的ID为2,点击左侧SOCKS代理,再点击新增,客户端ID填上图中的ID

以上服务器端就配置好了!

实战渗透

0x02

我们上面介绍客户端共有两种连接方式

①:使用vkey进行连接,我们只需要执行以下命令

Windows:npc.exe -server=ip:port -vkey=服务端生成的key
Linux:./npc -server=ip:port -vkey=服务端生成的key

②使用配置文件进行连接

修改配置文件

执行如下命令

windows:   npc.exe -config=npc配置文件路径
linux:     ./npc -config=npc配置文件路径

使用以上任意一种方式即可,推荐使用第一张方便快捷。

接下来我们配置一下Proxifier,如果不知道Proxifier的话可以看一下这篇文章实战reGeorg+Proxifier内网渗透入门(一)

配置完成好我们就可以进行远程连接啦

接下来我们就可以进行内网渗透啦,扩大自己的资产,请开始你的表演吧!

端口转发nps
本作品采用《CC 协议》,转载必须注明作者和本文链接
一个内网安全攻防的知识仓库
隧道与端口转发
2021-11-18 08:26:13
如果想获得课程报名资格,请添加文末小助手微信咨询。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站协议。情况1:目标禁止出站ip如果目标主机设置了严格的策略,防火墙只允许目标内网机器主动连接公网指定的ip。这样的话,没法反弹shell。情况2:禁止出站端口Linux系统使用Linux系统自带命令探测出网端口
目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
0x00 前言本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。0x01 nps-npc1.1 简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。nps-npc简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持 tcp、udp 流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。 1.1 简介 nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
构建内网隐蔽通道,从而突破各种安全策略限制,实现对目标服务器的完美控制。
VSole
网络安全专家