[工具学习]内网穿透工具nps初探
参考:Document
准备工作
win64位服务端
https://github.com/ehang-io/nps/releases/download/v0.26.10/windows_amd64_server.tar.gz
win64位客户端
https://github.com/ehang-io/nps/releases/download/v0.26.10/windows_amd64_client.tar.gz
Linux amd64服务端
https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
Linux amd64客户端
https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
可以通过uname -m
或者 arch
命令来查看CPU,如果显示x86_64 那么就是64 位的 x86 架构(即 amd64),而 aarch64
表示系统是 64 位的 ARM 架构(即 arm64)。
配置服务端
找到下载好的server端文件目录,在管理员权限的命令提示符环境下,执行安装命令
1 | nps install |
启动服务端,这个命令执行后没有回显信息,所以如果不报错就说明启动成功了
1 | nps start |
- 访问服务端ip:web服务端口(默认为8080)
- 使用用户名和密码登陆(默认admin/123)
配置客户端
找到下载好的client端文件目录,执行一条命令
Linux
1 | ./npc -server=ip:port -vkey=web界面中显示的密钥 |
Windows
1 | npc.exe -server=ip:port -vkey=web界面中显示的密钥 |
其中,ip:port
就是服务端的ip和port,这里的port要注意是管理页面中出现的客户端连接端口(默认为8024)
vkey需要在管理界面中点击客户端栏目,先添加一个客户端,多出来的一栏中的唯一验证密钥就是key,此时还没有被代理机连接,需要被代理机运行这段带key的命令才能上线
实战场景
环境
利用VMware仅主机模式的网卡特性,将宿主机(WIN10)作为对外服务对内网服务进行代理,Ubuntu作为内网服务提供者,Kali作为外网用户,只能访问WIN10宿主机
Kali配置
使用VMnet1网卡(仅主机模式),保证能与宿主机通信
VMnet1网卡地址:192.168.215.1,也是宿主机与该虚拟机通信用到的ip地址
宿主机WIN10配置
按前面步骤开启Server端。并添加一个客户端
Ubuntu配置
使用VMnet2网卡(仅主机模式),保证能与宿主机通信
下载client端,执行上线命令
1 | ./npc -server=ip:port -vkey=l54db69jk8yb8dfw |
这里的ip填VMnet2网卡在宿主机上的地址,我这里是192.168.52.1
上线成功如下图所示
然后,随便去个目录下面开启http服务,例如python3 -m http.server
,会在本地的8000端口开启一个目录文件服务
代理搭建
回到控制端->客户端->查看->隧道->新增
验证
Kali访问http://192.168.215.1:8888/
代理+穿透成功