关于云函数无法回显的解答

admin 2024年12月28日22:36:24评论15 views字数 2210阅读7分22秒阅读模式
前两天笔者写了一篇文章:《RT又玩新套路,竟然这样隐藏C2(点击标题可查看原文)
有读者之后反馈,照着文中的方法做,虽然可以上线,但是发送命令不能正常回显。
笔者重新看了一下之后发现,确实存在这个问题,因此写出这篇文章,记录一下定位问题的过程,给出解决方案。

关于云函数无法回显的解答

有些童靴可能没时间细看,笔者在此总结下,主要是以下两个问题导致云函数不能正确回显数据(贴心如我 关于云函数无法回显的解答):
  1. 云函数自动编码
  2. 增加 post 参数传递
下面,我会详细写出问题的定位流程以及最后的解决方案。
关于云函数无法回显的解答
问题定位
关于云函数无法回显的解答
首先,访问下载配置文件的 URL,发现可以正常下载。通过主机可以正常上线可知,云函数的 get 转发应该是正常的。

打开 beacon 指令页面,发送一下数据看看。

关于云函数无法回显的解答

发现出现了如下字样:

关于云函数无法回显的解答

这意味着什么呢?意味着被控机已经收到了指令。
指令显示受控机已经呼叫了服务器,且发送了 19 byte 的数据。
但是在返回执行指令的结果数据时,转发出现了问题。

查看受控端发送的 post 数据包如下:

关于云函数无法回显的解答

发现受控端正常 post 了数据,云函数也正常返回状态 200。
那应该是云函数出现了问题。

查看了一下云函数的 post 日志:

关于云函数无法回显的解答

原来是云函数擅自将 body 字段的数据进行 unicode 编码了。
推测是因为 byte 的二进制字段没办法放入云函数的 dict 字典中。
所以,这里需要修改 post 上传包的 body 字段,自己手动编码一下,然后再解码后转发给 CS 服务器。(解决方案参见下文“修改方法”中的方法一
再试一下,发现还不行。

再次进行抓包,发现 CS 的上线包 post 是带参数传输的,如图所示:

关于云函数无法回显的解答

而我们在云函数中没有传递这个参数,导致虽然受控机接收到了命令,且正确发送了数据,但是云函数转发的时候丢失了这个参数,即 id=85774 这个参数。
在云函数中加上就好了。(解决方案参见下文“修改方法”中的方法一

这样之后就能正确回显了。

关于云函数无法回显的解答

另外,有读者表示,可以直接使用 api 网关进行转发。

关于云函数无法回显的解答

这个思路很好,也比较简单,相较于云函数来说更容易部署。
不过笔者没有时间去复现了,不知道会出现什么问题。
云函数有更多的可拓展性,因为原则上来说,云函数可以对数据进行任意变换,甚至可以加解密等,可以对流量有更好的保护。
关于云函数无法回显的解答
修改方法
关于云函数无法回显的解答
// 方法一
1. 开启网关 base64 编码,并在函数中 base64 解码,body=base64.b64decode(body) 。

在网关设置中开启 base64 编码,然后只设定特定 header 触发(不然会把 get 请求也进行 base64 编码)。

关于云函数无法回显的解答

然后在函数中解码传输就好了,如下:

关于云函数无法回显的解答

2. 增加参数传递函数。
params=event['queryString']resp=requests.post(cs_server_address+path,headers=headers,data=body,timeout=20,params=params)

如图所示:

关于云函数无法回显的解答

// 方法二(懒人版)

开启网关 base64 编码,在网关设置中开启 base64 编码,然后只设定特定 header 触发(不然会把 get 请求也进行 base64 编码)。

关于云函数无法回显的解答

然后直接复制(云函数)代码到云函数,记得更改自己的上线地址公众号内回复“云函数”,可获取完整云函数代码。
关于云函数无法回显的解答
总结
关于云函数无法回显的解答
笔者本意是想通过攻击复现,帮助大家明白 RT 的各种隐藏 C2 的技巧,方便之后做对应的防守策略。
其实,实际过程中 RT 可能使用各种方法综合进行隐匿, 详情可参见 https://www.anquanke.com/post/id/239640,作者依然是我们的老朋友风起
文章发出后,有很多读者选择亲自动手去尝试,这个精神很好!笔者也是看到有些读者有疑问,不想直接无视,所以在某个下午继续探究了下这些问题并做出解答。
然而,不希望大家在尝试成功之后,将该类攻击用作除了 Red vs Blue 外的其他用途。若有用作任何违法用途,与本文无关。互联网并非法外之地,即使使用该方法隐藏 C2,我们依然有方法溯源到人,望耗子尾汁。

关于云函数无法回显的解答

公众号内回复“云函数”,可获取完整云函数代码。

- END -

关于微步在线研究响应团队

微步情报局,即微步在线研究响应团队,负责微步在线安全分析与安全服务业务,主要研究内容包括威胁情报自动化研发、高级 APT 组织&黑产研究与追踪、恶意代码与自动化分析技术、重大事件应急响应等。

微步情报局由精通木马分析与取证技术、Web 攻击技术、溯源技术、大数据、AI 等安全技术的资深专家组成,并通过自动化情报生产系统、云沙箱、黑客画像系统、威胁狩猎系统、追踪溯源系统、威胁感知系统、大数据关联知识图谱等自主研发的系统,对微步在线每天新增的百万级样本文件、千万级 URL、PDNS、Whois 数据进行实时的自动化分析、同源分析及大数据关联分析。微步情报局自设立以来,累计率先发现了包括数十个境外高级 APT 组织针对我国关键基础设施和金融、能源、政府、高科技等行业的定向攻击行动,协助数百家各个行业头部客户处置了肆虐全球的 WannaCry 勒索事件、BlackTech 定向攻击我国证券和高科技事件、海莲花长期定向攻击我国海事/高科技/金融的攻击活动、OldFox 定向攻击全国上百家手机行业相关企业的事件。

内容转载与引用

1. 内容转载,请微信后台留言:转载+转载平台+转载文章

2. 内容引用,请注明出处:以上内容引自公众号“微步在线研究响应中心”

↑ 戳这个名片关注我们 ↑ 

都看完了,不如点个“在看”再走~

关于云函数无法回显的解答

原文始发于微信公众号(字节脉搏实验室):关于云函数无法回显的解答

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月28日22:36:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   关于云函数无法回显的解答https://cn-sec.com/archives/1987730.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息