nps内网穿透-代理

前言

        nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理p2p等,并带有功能强大的web管理端。

         尝试使用本机作为攻击机,两台虚拟机来模拟内网环境。一台虚拟机one为内网环境的对外出口,攻击机可以访问,另外一台虚拟机two在内网,攻击机不能访问,而虚拟机one可以访问内网的虚拟机two,攻击机拿下了虚拟机one,要对虚拟机two进行攻击,故利用nps代理实现内网穿透。通过设置虚拟机two的ssh登录白名单来模拟以上内网环境,攻击机不能ssh登录虚拟机two,虚拟机one可以ssh登录虚拟机two,让攻击机能够ssh登录虚拟机two即内网穿透成功。

实验环境

虚拟机one(192.168.232.138),虚拟机two(192.168.232.156),攻击机(192.168.1.100)

实验目的

通过nps代理,实现攻击机ssh代理主机one登录主机two。

实验步骤

(1)two的ssh登录设置白名单

vim /etc/hosts.deny

7017e055fd2f4eebb39ffe3d2a70b129.png

sshd:ALL #ALL表示除了上面设置的IP。其他全部拒绝SSH登录

0234c94881d54ffdaf4ba1866d97f24a.png

wq保存退出。

vim /etc/hosts.allow

de84acb46a054aba81b5a8bf97726aa2.png

sshd:192.168.232.138:allow #只允许one主机登录

ba5088e904c34465afb0ac5fb26e46f4.png

wq保存退出。

重启ssh服务:

systemctl restart sshd

e1d78e32fafe4e1c9c08392756d441ee.png

(2)测试白名单是否设置成功:

攻击机ssh尝试连接:

a5d1d9ada6504ae39200e8a879d25910.png

连接失败。

one主机尝试连接:

321738f8a4844d788c239232ccb6802f.png

连接成功。

(3)代理实现

  通过nps代理,实现攻击机ssh登录到two主机。

nps下载地址:https://github.com/ehang-io/nps/releases/tag/v0.26.10

0f8219091083429cadf34d836c119dfa.png

 按需下载符合操作系统版本的nps即可,nps有服务端和客户端。

在攻击机上下载nps服务端(攻击机为windows),解压压缩包并进入文件夹对配置文件进行配置:

5ea90770efc54cdd82662c11e1172b50.png

7616e95c2dd1424ab47ee7ec4d0aea19.png

d81a529b6f5c40b38cd987d046ee45f4.png

打开nps.conf,可以配置服务端的web管理界面的账号、密码和端口。6a85a04a94674ca898ca5a640370481e.png可以看到上图nps服务端的web管理界面的账号是admin,密码是123456,web端口是8080.

启动nps服务端:

f2e00eab6fee4ca6ab44ab96b2673f19.png

浏览器访问本机8080端口:

2c92fd74e2914d6e82f10c48da735125.png

输入配置文件的账号密码即可登录:

17fb5428ed184c81a5488a5f684bbde2.png

点击客户端,新增客户端:

334418195ef545bc9562afa6f35e159a.png

使用默认配置创建一个客户端即可:

16e26d5d9fe54185aebbbacceebc38fa.png

a63eca7429744d1da6be77d036a1d08b.png

点击新增客户端左边蓝色的+号:

be2d085ab9264dccb8e7fe0d59fe1b8b.png

只要在one主机(linux主机)上传nps客户端,并执行客户端命令:./npc.exe -server=<服务端的IP地址>:8024 -vkey=usns0hhq8uwmpv40 -type=tcp(给的是windows环境下的命令。在Linux环境下把npc.exe改成npc即可)就能够使客户端上线。

8abd6ef431fa46a0941df8db3631fe63.png

5c3accedcd27441ea709446ec24f45bb.png

成功上线:

6baf5e4f246c4c569ce38426fd9d8b69.png

可以看到客户端列表连接那一列由离线变为在线。

点击右侧查看那一列的隧道选项,新建socks5隧道:

97435f82174a4323b46025d734ebaffa.png

4c2e8cab1459448e820da28a8375a803.png

选择SOCKS代理,然后设置⼀个服务端端口,这个服务端端口的意思是,如果要使用这个代理,就连接这个端 口,连上就能用了,我这里设置的是7788

f4d604f5150746f59615cff3a3a93022.png

利用proxifier代理到本机7788端口(proxifier是⼀个可以接管系统网卡,设置系统代理的软件)

4ed69bc0d98b453893d4608b5548437b.png

点击配置文件->代理服务器->添加:

eb5a858b307440ca8ccfc5a9d39cc16e.png

配置代理端口和地址,选择socks5协议:

20261cafb8a346b4abb673e15b15f6b3.png

然后添加⼀个规则,配置哪些请求通过代理,哪些请求不使用代理:

c77dc38a7c82429aac089f7a407d952f.png

ef8d5ba5cf3c432d995fd3a30257ae21.png

点击配置文件->代理规则->添加:

661a587c260e4e0da16cf5b5947c8300.png

one、two主机在192.168.232.1/24的网段下,故设置为在请求的目标主机为192.168.232.*时生效,动作设为刚配置的socks5代理服务器,即代理到127.0.0.1:7788。

0f3b64652f0545259d1ce1ce7c38a6f7.png

再次尝试ssh登录two主机:

e9b780fcd68c4f999cbf8ecb327fe1e3.png

成功登录,并可以看到代理进程:

0dd666fbf11b4ff8a30aa29e228848ba.png

总结        

        总的来说,攻击机尝试ssh登录two主机(192.168.232.156),由于属于192.168.232.*网段,proxifier会代理到本机的7788端口。本机的7788端口与one主机(192.168.232.138)建立了socks5隧道,故攻击机通过代理one主机(192.168.232.138)登录two主机(192.168.232.156)

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码别跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值