内网渗透之代理转发(2)--初级流量转发-端口对端口

有任何不懂可以回看上一节
内网渗透之代理转发(1)–认识ssh
这一节我们主要讲-L的使用,也就是流量的端口对端口转发

第一个跳板

实验环境介绍:
攻击机,ip是 10.186.20.101
跳板(这个跳板可能是出题人直接给你了,让你直接ssh进去然后内网渗透,或者直接让你打这个网段)ip是10.186.130.169
这里我们就略去了信息收集,渗透提权,假设我们这时已经控制了这台机器,发现要往他的下一个网段(192.168.1.0/24).进行渗透,这个往往会作为hint给出
在这里插入图片描述

可以结合上图,小的框代表我们电脑,大的框代表一个网段,这里先大概解释一下为什么一个机子可以出现在两个网段
1.两个网卡
2.虚拟网卡,比如说我的虚拟机环境
这个victim2实际上就是我nat环境下的metasplitable2
由于攻击机和victim1同处校园网,彼此是可以直接访问的,而这个metasplitable2和victim1又是同属一个nat网段,那么彼此是可以使用nat进行通信

注意,通信的话一定要在一个网段下
比如说attacker和victim1通信就要用到10.186.20.101和10.186.130.169这两个ip,即10网段下
而我的victim1和victim2通信就要用到192.168.1.129(victim2)和192.168.1.1(这个可以在你的电脑上自行查看你vmware对应的虚拟网卡的ip地址),即192.168.1.0/24

这里会有一个常见的误区,就是我的victim1既有192.168.1的ip,也有10.186.130的ip,那么为什么还要区分呢?
我们的通信协议不是人,他不知道这两个ip对应一个主机,他只知道他发现一个ip之后,如果是一个网段,就可以直接在网段内传递,如果不是一个网段的,那么交给网关
网关接受到这个包之后发现是个私有地址,但他又无法进行路由,所以就断掉了.
如果是公网的ip,他就会自动向下级进行转发,最后直到路由到服务器
所以如果我们在192.168.1.129的机器上直接访问10.186.130.129,虽然他确实是我们的victim1,他也确实有能力和victim1通信,但由于192.168.1.129的机器的网卡看到这个包的目标地址是10网段不是这个网段并且是私有地址,那么他就会因为无法路由而丢弃

好了理论部分到此,下面开始进一步渗透
当我们控制到10.186.130.169时候,我们要进一步渗透,但往往这个跳板在内网不能上网,我们工具什么的都不好下载,强行上传的话可能会遇到不兼容的问题,那么我们可否利用我们攻击机上自带的工具进行渗透呢?

当然可以,但也有前提,即你在victim1(跳板)上有绝对的权限
执行命令

ssh  -L 2121:192.168.1.129:80 root@10.186.130.169

上节已经讲过命令格式,但很多童鞋不会写,我们可以用完形填空的方式
这里可以使用两种格式
port:dest_ip:dest_port username@tiaoban_ip
local_address:dest_ip:dest_port username@tiaoban_ip
前面已经提到过,默认绑定为127.0.0.1,如果还不知道有什么区别请回看上一节
port是我们想要映射的本地端口,即访问本地的端口就会被自动转发,这个随便,我们就2121吧
dest:ip:dest_port当然是我们想要转发到的ip和端口,这里我们填写192.168.1.129:80(假设打http)
后面就是我们需要的跳板机子的认证模块,其实认证部分跟平常ssh一样
是不是就跟完形填空一样?
执行完自动跳到登录成功页面,当然也是可以避免的,不过不是重点
在这里插入图片描述
可以看到建立了一条隧道,那么访问我们的2121看看?
(注意,这种用法有缺陷,即你不可以关闭当前的连接,一旦你exit之后,这个转发也将被关闭,当然可以优化的,只不过之后会讲)
在这里插入图片描述
我天,这么给力的吗?
在这里插入图片描述
那么我们也可以直接在本地用你的工具箱,nikto,dirb大开杀戒了,妈妈再也不用担心我们没有工具了

注意
由于我们没有制定绑定的ip,他会只绑定到127.0.0.1上,可以看到我们使用本地的ip来访问是不可以的,至于原因可以回看上一节
在这里插入图片描述

第二个跳板

假设你很厉害,又把这个192.168.1.129的机器打下了,这时发现渗透还没有结束,还有一个网段
为了方便你们观看,我把同一个网段的ip框在了一起,同时对于存在两个网段的机器,上面的默认为前一个网段的,下面的默认为后一个网段的
在这里插入图片描述

相信通过上面的学习我们也发现了,我们现在可以跨越的范围是有限的,比如说从attacker可以跳到victim2,但还不会直接跳到victim3,至于怎么连跳的话后面我会进一步讲解
那么现在我们也可以从victim1跳到vimctim3,然后我们访问victim1,从而达到访问vimctim3的效果
这里我们先ssh进入victim1
这就是我所说的多端ip的设备,wlan就是我们真实网卡,而上面的是虚拟网卡
在这里插入图片描述
那么我们这里应该执行什么命令呢

ssh -L 10.186.130.169:2121:192.168.254.128:80 msfadmin@192.168.1.129

当然可以把10.186.130.169换成0.0.0.0
开始完形填空
首先格式为

ssh  -L ip1:port1:ip2:port2  username@ip3

ip1:port1我们绑定到本地的ip和端口
这里为了能让我们的attacker访问,所以绑定的ip应该是10网段的
即10.186.130.169:2121 端口随便,也可以是0.0.0.0:2121
ip2:port2,我们想要渗透的victim3,port2假设也是80,当然也可以是6379(redis)
那么就应该是192.168.245.128

接下来是 username@ip3
ip3应该填什么?
是192.168.245.129还是192.168.1.129?
注意:我们的原则是能访问
由于我们是在victim1上执行,他可以访问的是192.168.1.129,而不是192.168.245.129

总结:
ip1的设置是为了让attacker可以访问,所以本地绑定10.上
ip3的设置是作为跳板,所以必须要是我们执行命令的主机可以访问的ip,即192.168.1.0/24上
执行成功后我们进入到meta里面,现在查看当前windows端口情况
在这里插入图片描述
在这里插入图片描述
然后我们在attacker上访问
在这里插入图片描述
如果访问不了查看绑定设置

然后就是自行拓展,如果是很长的代理链我们可以这样
比如说有A-B-C-D-E-F-G
先在e上开启转发,转发到G
C在开启转发,转发到E绑定的端口
然后A开个转发,转发到C绑定的端口
这样相当于要在多个主机上执行命令,可能有点麻烦,之后我们会介绍简单的写法


版权声明:本文为azraelxuemo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。