基于“BucketShock”漏洞的远程管理工具

背景和启发难点和收益工具介绍被控端:服务端:Q&A工具的重要性项目github地址:
背景和启发

Lucian(中文名卢锡安)是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担并将追究其相关责任!

    最近腾讯安全玄武实验室负责人于旸(TK教主)在小米 IoT 安全峰会上“”发明“了“BucketShock”漏洞,声称所有云存储应用中可能超过 70% 存在该问题。CNVD 收录了这个云存储应用越权访问和文件上传漏洞(CNVD-2019-37364),原理是:可在获取用户对云存储的访问凭据的情况下,远程读取、修改云存储中的内容。应用访问对象存储时,如果访问权限不是公共读写,会通过账户和子账户的AccessKey和AccessKeySecret,或者搭配token访问Object对象。所以漏掉根本原因是开发没有合理设置权限、保护秘钥和指定失效时间,导致的云存储对象空间可控。 

    在渗透测试中安全人员在通过技术抓包、搜索配置文件取得对象存储ak、sk值的战果。这样以bucketshock漏洞的利用场景进行扩展和延伸,笔者认为获取了bucket访问权限后可以实现这样的稳控通道--针对应用对外连接云厂商的对象存储连接一定是在红队的白名单内,通过对象存储的http协议,夹杂在的交互隐藏在大流量中执行不规则的心跳,读取下发的命令,上报命令执行结果。

难点和收益

通过阅读本文对Lucian这款工具的诠释,你可以获得如下知识:

1.掌握快速借助云存储的服务,搭建基于HTTPS协议隧道的远控;2.在目标的受限云环境,通过可信bucket走南北向流量隧道命令交互;3.了解一种基于java的无文件,在内存中编译执行恶意代码的反调试技术;

工具介绍

被控端:

    在被控主机上运行java -jar client.jar -hidden file://payload,上线请删除payload文件即可实现配置隐蔽。

Client.jar是加载器,目的是获取到远程、本地、共享的真实的载荷文件,这里payload是指代码里的Lucian.java,请务必根据不同的对象配置存储类型,bucket名,endpoint地址。

不加入hidden命令即从client.jar读取Lucian.java内的配置信息上线。

client.jar里的loader使用java自举在进程内编译 payload里的文件内容, 然后运行payload同服务器端建立心跳连接,在对方进行ps -ef、jd-gui、javap、arthas进行调试时可以达到反调试效果。

控制端:

    支持多种云存储技术,目前支持S3(亚马逊云)\OSS(阿里云)\COS(腾讯云))等。使用java -jar manger.jar --help查看支持的命令

    首先通过config命令配置对象存储配置类型,bucket名,endpoint地址, 使用sessions命令列出全部的上线主机 使用session -i pid --cmd "whoami",执行命令,获取回显 使用session -k --pid pid,卸载被控端。

    由于是通过runtime执行命令,在进行base反弹等重定向操作时,请借助访问https://x.hacking8.com/?post=293 这个工具进行转码。    

Q&A

1.相比于传统的技术,Lucian这款工具有什么优劣?

    溯源难度大(小)。近日京麒国际安全峰会蔺毅翀提到,在混合云和公有云的情况下,云环境的溯源的安全技术还不够完善。基于对象存储的相关的隔离和检测机制和安全工具完全依赖于审计和日志。当然如果开启了日志,基于ak、sk认证的操作都是可以溯源的。

    同其他https远程管理工具相比搭建更为方便。从github找到一个开放的bucket(本代码里内置了个S3认证信息,供大家试用),就可以拥有稳定上线隧道。建议走两个通道。使用目标内网可信的ak、sk连接bucket用于稳控潜伏,绝不启用。使用外网自己搭建的bucket用于执行命令进行常规渗透测试。

    由于agent通过远程加载到内存运行的,无文件,无进程所以躲避了av类的工具检测,规避了工具敏感信息泄露的风险。

2.客户端是java的,有其他版本的吗?        按照西方现代阐释学的观点,作者写出代码后,经过读者的阅读理解进行互动才真正形成了作品,我尝试用dart语言写个跨平台版本,但是编译出来的跨平台可执行文件大小达7m左右,体积较大不符合实战,就不对外公开了。如果拥有线程、网络IO、云存储的基本知识,参加Lucian.java写出PHP、powershell、c版本的客户端都不是问题。服务器端主要做的是对各家云厂商的api支持,验签部分相对麻烦些。

工具的重要性

    我的一位朋友“航海家辛巴达”曾经说过:在我们这个行当,完整的安全行动需要不同的手艺人配合。十年前市面上搞web安全的作为先锋手很有成效,逐步转型或加入懂网络和系统的人切入工作组和域渗透,搭配成的攻击组,DMZ突破越来遇难后,有社工经验的钓鱼大佬来收集信息,采用迂回攻击的手法得到青睐;后来会配备外界称为工具链开发的专人,做二进制漏洞挖掘、逆向、免杀和根据目标环境适配趁手的工具。MITRE ATT&CK™可以整理出攻击政府的黑客组织,正是因为apt组织总是使用同样的工具,留下近似的特征,甚至使用同样的基础设施(域名、邮件、手法等等)。个人白帽子务必在整个入侵的过程中只使用了那些公开发布的工具,以及为了一次攻击专门编写的工具。同一个团队也要改变以往的做事风格,为的就是不留下特征标记,MuddyWater,方程式这样的APT团队也采取多重手段冒充别的组织,开源的Lucian工具同样提供了这样的可能。

    当下赛博空间里我们接受的安全信息及亲身经历的案例比传统因特网更多元更包容,但是氛围的沉淀和梳理不够。当然工具技术的沉淀是缓慢的过程,需要广泛分享形成可复制的DNA。面对不同环境的真实渗透测试流程的历程是饱满的,不是我们在freebuf上看到的简单找漏洞、获取权限的故事会,而是荡气回肠百转千回的史诗。从收集信息到反思复盘是抛物线的过程,并且这个过程是碰撞和连续的,如果不想变得颠沛流离的状态,离不开对抗的升级,这种在行动中总有不同工具的选取和适配开发的艺术是一种情操、风骨、智慧。所以安全界的某一项攻防技术永远不是勒名石碣,永世不落后的。本文所提供新通道的思路是将不同的真实以不同的角度展示给读者,按照伽达默尔哲学诠释论的理论,任何已知漏洞的艺术都是历史的,有限的。基于对象存储的隧道和基于其他https协议上线并无本质的区别,有兴趣的读者可以开发基于FTP, SFTP, WebDAV, Amazon S3, OpenStack Swift, Backblaze B2, Microsoft Azure & OneDrive, Google Drive 、Dropbox通道的工具,远程管理工具的目的是稳定性和可连通性,加密,持久化,反虚拟机调试都是次要的标准。

项目github地址:

https://github.com/Ramos-dev/lucian

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值