查看原文
其他

大话软件供应链攻击

听风安全 2023-11-28

The following article is from 虫洞小窝 Author 哈梅斯

免责声明
由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

公众号现在只对常读和星标的公众号才展示大图推送,

建议大家把听风安全设为星标,否则可能就看不到啦!

----------------------------------------------------------------------

0x01  何为软件供应链攻击

从今年大型红蓝对抗活动来看,供应链攻击已经成为红队突破目标最主流的方式之一了。

举个例子,你的源代码将存储在私有的Git仓库中,这可能是你的基础设施的一部分,也可能是供应商提供的 SaaS,还有编译器工具、基础容器镜像仓库等。而一些依赖项则托管在公开的代码库中,如 Docker Hub 或 Quay.io,可能会受到损坏。此外,我们也将我们的应用程序作为容器镜像发布在公开的代码仓库中。

那么,在供应链中其中一些组件在你的保护之下,比如你的私有源代码 git 仓库、应用程序代码本身以及最终生产出来的二进制文件或容器镜像。但许多其他的组件或服务是公开的服务和资源,或是由其他公司提供的,完全不在你的掌控范围之内。

所以软件供应链攻击可以直接瞄准你的软件,或它可以瞄准任意上游组件(比如外部的依赖项或第三方服务),进而你会成为受害者,要么直接遭受攻击,要么成为提供受损资源的供应商。

这种防不胜防的攻击思路其实很早就有。例如以下案例

0x02  攻防演练中的软件供应链攻击

在攻防演练中,常常会出现通过软件供应链攻击从而拿下目标的案例,攻击队为了在短时间内拿下目标,主要会采用以下3种手法对供应链进行攻击

1.获取源码

收集目标站点的供应商信息,通过攻击供应商或同源码站点获取目标系统源码,进行代码审计,最终获取目标权限

2.获取运维人员权限

由于企业内网中有许多供应商提供的系统,当没有供应商的驻场人员时,企业往往需要通过提供内网远程接入方式给供应商进行运维。

这时,攻击者会通过提前信息收集,确认目标企业的重要内网系统供应商,通过攻击供应商的运维人员,获取目标企业的VPN账号或跳板机权限,然后进一步进行内网横向获取目标权限;

3.升级包植入后门

通过信息收集获取目标系统托管在供应商的升级服务器地址,通过攻击获取升级服务器权限,并在升级包中植入后门定向推送到目标系统,进而获取目标系统权限。

典型案例

今年大型红蓝对抗,某国产化办公软件云端官方升级文件被投毒,升级包中包含某云助手软件(远控程序)某云端官方升级文件被投毒为攻击队注册的某云助手软件(远控程序),(进程名为x x x x x_assist_service ,文件名为xxxxx_agent_latest_setup.exe)

0x03 供应链资产和供应商的寻找

如何在攻防演练中定位攻击目标供应商

1.前端js中寻找

有时候,我们可以在前端代码中找到系统的供应商,找到是那家负责开发的

2.网站最下脚的支持地方

有时候我们可以在系统最底端找到对应的供应商

3.指纹识别与空间搜索引擎

某些系统可能无法通过页面确定供应商,但是提取出指纹之后通过搜索引擎有时候能发现其供应链公司的demo测试站,并且通过域名匹配到了该供应商。

4.说明文档处,各类特征

有时候我们可以扫目录,发现网站的说明文档,如doc.html,里面不仅会记录系统接口信息,还会记录系统是哪家开发的从而定位到供应商信息。

5.招投标信息

去找攻击目标的招投标采购公告,会定位到一些供应商信息,去筛选出提供信息技术支持的供应商。

0x04 突破供应链口子(一定要获得授权,否则是违法行为)

1.找代码托管平台

gitlab、Harbor,禅道等系统

可以结合漏洞例如harbor的未授权获取仓库

2.找寻公开库或试用产品

有时候供应商会提供一些公开库,或者试用产品,里面会配有账号密码,从而是个不错的突破口

3.网盘搜索

利用各大公开网盘进行供应商源码所有,偶尔员工会不注意上传这些,甚至有的会上传到github等平台

4.github等信息泄漏

某些网站报错,或者网站目录都很有特征,可以结合搜索引擎以及github去搜索,看看能不能定位到目标源码

5.信息泄漏,例如git源码泄漏漏洞,目录遍历等

当遇到git,svn源码泄漏时候,可进一步尝试了

6.找寻公开仓库

用google hack 语法尝试搜索无需认证即可访问的公开仓库,可以翻看这些仓库找找有无可利用信息

7.利用docker未授权漏洞接管镜像,从而获取源码

有时候我们遇到docker未授权便可以直接接管镜像,执行命令,从而进一步利用

0x05 供应链攻击维度

常规web攻击获取供应商源代码->代码审计->客户系统权限

社工钓鱼商用合作等途径获取源代码->代码审计->客户系统权限

供应链企业信息泄露->获取客户网络入口权限

伪造客户或厂商进行社工->获取系统应用权限

供应链企业内网网络权限->代码库、知识库等->客户源码或客户系统信息

供应链企业内网网络权限->客户系统部署文档或机器->客户vpn或堡垒机->客户内网

0x06 聊聊供应链攻击经典案例

SolarWinds事件分析

SolarWinds 旗下的Orion基础设施管理平台的发布环境遭到 黑客组织入侵,黑客篡改其中某个组件源码,添加了后门代码, 该文件具有合法数字签名会伴随软件更新下发。FireEye称已 在全球多个地区检测到攻击活动,包括北美、欧洲、亚洲和中 东的一些政府、咨询、技术公司。

SolarWinds更新包样本

攻击者在更新包的SolarWinds.Orion.Core.BusinessLayer.dll中插入了一个程序集,即远程控制代码

加载包含后门的dll的程序为SolarWinds.BusinessLayerHost.exe

后门恶意代码实际触发的依赖条件

后门恶意代码实际触发的依赖条件

后门恶意代码连接到攻击者服务器的DGA域名

0x07 总结

从今年的大型红蓝对抗活动来看,以某个国产化办公软件为例的上游供应链投毒案例可以看出,未来大型红蓝对抗活动的红队技战法,供应链攻击将会占据主流,无论是获取供应商源码,还是直接从供应商打入后摸到目标单位,都十分具有威胁性,未来对供应链攻击的防守工作会成为蓝方主要做的事情,也会成为和钓鱼攻击一样主流的突破手段。


不可错过的往期推荐哦


内网隧道技术,你知道几个?

某银行外网打点到内网核心区红队评估复盘

记对某Spring项目代码审计

记一次看似简单到处是坑的入口打点

无人机mavlink中间人攻击

APT是如何杜绝软件包被篡改的

利用sqlserver agent job实现权限维持

NPS反制之绕过登陆验证

区分Spring与Struts2框架的几种新方法

SRC挖掘葵花宝典

点击下方名片,关注我们
觉得内容不错,就点下“”和“在看
如果不想错过新的内容推送可以设为星标
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存