红蓝对抗——「Golang」应用攻击手段实例分析

新形势下,红蓝对抗变成了关键信息系统网络安全保护工作的重要组成部分,以实际运行的信息系统为保护目标,最大限度地模拟真实的网络攻击,以此来检验信息系统的实际安全性和运维保障的实际有效性。

近期,安恒信息威胁情报中心已经陆续监测捕获了一些红蓝对抗行动相关的样本,其中猎影实验室对这些样本进行了分析和关联,并对之进行一定的总结,将分为几期展开叙述。

本期为第一期,就Golang在红蓝对抗中的应用攻击手段进行实例分析。

Golang概述

Go又称Golang是谷歌开发的一种编译语言,2007年开始设计,2009年正式推出,并且开源开放,还具有跨平台特性,对多种操作系统都可以很好的支撑。

Golang在恶意软件中的应用

很早就已经出现了Golang编译的恶意软件,只是并没有广泛关注,近些年来,又开始逐步进入公众视野,无论是在APT攻击、僵尸网络还是勒索软件中都存有一席之地。

为何Golang会被一些攻击者青睐,大致有以下几点:

1.跨平台特性

支持Windows、Linux、OSX等主流操作系统,代码复用能力强,无需对跨平台修改做过多关注。

2.适应性强

程序在编译时会嵌入依赖库,使在目标机器上运行时无需其它依赖就能很好的执行,适应性强。但是由于这个原因会导致样本体积过大,在某些应用途径上存在一定缺陷。

3.免杀效果好

由于软件体量,代码体量,关注度等问题,导致杀软对Golang恶意程序的检测效果并不出色,甚至可以做到0查杀。

在APT攻击中,也有多个组织对Golang进行了应用,如APT28 Golang版本的Zebrocy Loader,APT34使用的VALUEVAULT(Golang版本的凭据窃取工具)。以及前段时间SSL VPN事件中使用的WellMess恶意软件,则直接对国内产生影响。

Golang在红蓝对抗中的应用

Golang在红蓝对抗行动中也展露锋芒,我们捕获到了一些与之相关的Golang样本,包括开源的、基于开源修改的以及非开源的。如:

1.GECC(Cobalt Strike-Go External C2 Client)项目

使用Golang实现的Cobalt Strike External C2客户端。

打开凤凰新闻,查看更多高清图片

2.ShellGo项目

使用Golang写的shellCode Loader。

3.Golang Downloader

Golang程序下载远程载荷并执行。

4.Golang Scanner

端口、弱口令扫描器。

可以发现golang在各方面都有所应用。

并且还有许多开源程序覆盖远程控制、凭证窃取、Payload装载机、扫描爆破、代理工具等可能会陆续涌现出来,当然基于开源修改或自写的也是一样。

如何防御

安恒APT预警平台,安恒APT预警平台能够发现已知或未知的威胁,APT预警平台的实时监控能力能够捕获并分析邮件附件投递文档或程序的威胁性,并能够对邮件投递,漏洞利用、安装植入、回连控制等各个阶段做强有力的监测。结合安恒威胁情报系统,可将国内外的威胁数据进行汇总,并分析整个攻击演进和联合预警。

安恒威胁情报中心,拥有专业威胁情报分析团队,分析安全威胁数据、跟踪APT事件,以及多源情报数据的分析,形成了高价值的威胁情况库。分析的情报包括恶意文件、僵尸网络、C2、扫描IP、黑产IP、挖矿等60余类情报数据等。通过提供威胁情报数据与服务,可为用户提升区域安全态势感知、未知威胁检测、威胁溯源分析、主动防御等场景的智能化程度;依托该核心数据能力,提供威胁情报数据,威胁情报检测等专业能力。

下期预告

《红蓝对抗——「钓鱼伪装」攻击手段实例分析》