freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

蓝队特征样本分析浅谈
面包and牛奶 2023-01-16 22:52:50 378265
所属地 湖北省

0X00前言

由于作者的朋友在某业务线的安服部门实习过一段时间,对蓝队安全方向有了强烈的兴趣。朋友对我说:由于现在的安服部门会在不同时期有不同的工作方向,在以往每年的某个时期都会承担一些蓝队的任务。因此,面试官在面试的时候都会考察个人的蓝队思维和应急水平。与朋友交流完后,他说这些话对我启发不小。于是就有了下面这篇文章。大纲如下图所示:

1673879149_63c55e6dece44346936f5.png!small?1673879150544

0X01攻击方式

众所周知,蓝队是指同时防御真正攻击者和红队的内部安全团队。蓝队应该与大多数组织中的标准安全团队区分开来,因为大多数安全运营团队没有时刻警惕攻击的心态,而这才是真正的蓝队的使命和观点。这就是蓝队和应急响应有不太一样的地方,尤其是在某时期蓝队成员激增原因了。

由于蓝队需要时时刻刻的面对红队攻击,并且需要解决掉这些威胁。知己知彼百战百胜,这句话的重要性就体现出来了。下面是红队常见攻击方法的总结和比较(如下表所示)。

攻击方式可执行文件钓鱼RCE(写入一句话)
可行性较高,大部分是在进入内网后,留存后门适中,容易在攻防演练中出现偏小,一般针对网站目标作为突破口
利用难点需要搭配C2工具使用需要利用社会工程学,获取目标信任(难点)需要网站源代码进行分析;与此同时还要绕过WAF,写入一句话木马
隐蔽性适中,由于存在白加黑等方法,较难被发现较强,并且office存在较多漏洞,方便搭配浏览器内核进行攻击较强,一般内存马运行在内存中,隐蔽性好,排查难度较大
易检测性较低,需要针敏感命令对杀软、EDR等安全设备做混淆处理适中,不过需要警惕邮件当中的安全检测设备较低,需要针敏感命令对杀软、EDR等安全设备做混淆处理



另外再提一句,我们首先可以关注VT沙箱(静态扫描+沙箱运行)、360红雨滴和微步沙箱(较弱)这类的网站或者公众号。我们可以通过样本下载去获取恶意软件样本,并进行逆向分析。

0X02钓鱼类型

Netcat(多用于linux)

Netcat 是一款简单实用的Liunx工具,它使用UDP和TCP协议,因此多用于网络安全中的渗透测试环节。 它是一个可靠且方便被其他程序所启用的后台工具,与此同时它也被用作网络的测试工具。所以,使用它你可以轻易的建立任何连接内建有很多实用的工具。

Netcat的内网小尝试(确定内网ip没有开启21端口):由于学习Namp所以难免和Nectcat搭上关系,这不用nc -v命令扫描靶机时后查找资料,发现了一些有意思的事情。事例如下(示例):1673879234_63c55ec2dadca24bbfe2c.png!small?1673879235485

1673879243_63c55ecbd1382d287c727.png!small?1673879244485

Flash插件(自解压)

我们需要知道是什么Flash?答:Adobe Flash自商业互联网诞生以来就已经存在。万维网的第一个版本是建立在一个非常不起眼的超文本标记语言 (HTML) 的基础上的,它无法以动画或脚本的方式做任何事情。Adobe 开发了Shockwave Flash,它变成了简单的Flash在后来的生活中,这为开发人员提供了一种将丰富内容带入静态网络的方法。Flash用于播放电影、创建在线视频游戏和显示烦人的广告。到 现在,Flash已安装在全球数百万台台式计算机上。这给黑客攻击提供了有一个好方法。

由于某时期的目标大多还是Win7和Win sever 2008版本,并且Flash当时还是较火爆的软件,于是攻击者通过构造XSS漏洞,弹框出"软件需要更新,请下载安装包",诱导人们点击恶意文件下载链接。由于搭配自解压,只要下载就会自己解压运行,攻击成功率很高。附上国外网站上的攻击事列图(如下图所示):

1673879304_63c55f08e92a202b793bb.png!small?1673879305455

宏文件

2017 年 10 月 10 日,卡巴斯基实验室的高级漏洞利用防御系统发现了一种新的 Adobe Flash 零日漏洞利用,该漏洞被用于攻击我们的客户。该漏洞是通过 Microsoft Office 文档传递的,最终有效负载是最新版本的 FinSpy 恶意软件。我们已将此错误报告给 Adobe,Adobe 将其分配为CVE-2017-11292,并于今天早些时候发布了补丁(如下图所示):

1673879427_63c55f83bf54846fdb97d.png!small?1673879428509

到目前为止,这种类型的攻击,虽然出现的攻击的数量较少,而且针对性很强,在前几年非常流行。对有效负载的分析使分析人员能够自信地将此攻击与跟踪为BlackOasis的攻击者联系起来。并且BlackOasis 还对FireEye于 2017 年 9 月发现的另一个零日漏洞 (CVE-2017-8759) 负责。当前攻击中使用的 FinSpy 有效负载 (CVE-2017-11292) 共享相同的命令和控制C2服务器作为与 FireEye 发现的 CVE-2017-8759 一起使用的有效负载。

EXE.PDF.EXE

我们可以参考这位师傅写的一篇文章(链接:https://blog.csdn.net/qq_44874645/article/details/118516254);但是我们这里需要注意如果为了防止exe后缀被发现我们可以使用超级长的"空格"然后达到一个隐藏.exe后缀的目的。

补充:但是这个建议在钓鱼的时候使用,效果较好!

0X03样本规则检测

特征码

应急响应人员可以使用的最有用的技术之一是散列对比法。散列算法是一种单向函数,它为每个文件生成唯一的校验和,很像文件的指纹。也就是说,通过该算法的每个唯一文件都将具有唯一的哈希值,即使两个文件之间只有一位不同。例如,在上一章中,我们使用SHA256哈希来验证从VirtualBox下载的文件是否合法。

在我写的《关于特征码查杀的回望与分析》(链接:https://www.freebuf.com/articles/system/355027.html)分析中,讲述了一些敏感的文件名和DLL名的哈希值也可以当做特征码去进行比对的方法。而且不仅是敏感字符,比如一些常见的Loader(加载器)如果其中出现print("xxcode!") 的字符串也可以当做是特征码,然后由杀软上传到云端,被VT检测定义为XXX家族木马变种。

编译残留

众所周知Go写的Loader编译的特性(即:使用go build 编译会有信息残留)会存在eg:debug信息、路径、用户名、混淆Go的包名.....

通过go build编译由导入路径命名的包及其依赖项,但不安装结果。如果 build 的参数是来自单个目录的 .go 文件列表,则 build 将它们视为指定单个包的源文件列表。编译包时,构建会忽略以“_test.go”结尾的文件。

当编译单个主包时,build 将生成的可执行文件写入以第一个源文件命名的输出文件(go build ed.go rx.go写入ed' 或 ed.exe)或源代码目录(go build unix/sam写入sam或 sam.exe),编写 Windows 可执行文件时会加“.exe”后缀。编译多个包或单个非主包时,build 编译包但丢弃生成的对象,仅用作是否可以构建包的检查。

如果是需要编写Shellcode,尽量使用虚拟机编译并且将用户改为Admin这种常见的用户以免暴露个人信息。与此同时我们也需要注意修改编译的残留,比如:我们可以使用-ldflags "-w -s"调试去除敏感信息;go-strip去除路径信息;利用garble混淆Go的包名(项目链接:https://github.com/burrowers/garble)等。为了更好的进行免杀,我们一般进行以下编译操作:

gobuild-ldflags="-w -s -H windowsgui"-xx.exe

eg:基于 Golang 的恶意软件在APT组织中越来越受欢迎 。我们可以看到一些APT 组织转移到Go平台。重要的原因原因有:1.与 C++ 或 C# 编译的二进制文件相比,Go二进制文件更难分析和逆向工程;2. Go 在跨平台支持和编译方面也非常灵活。恶意软件作者能够使用适用于多个平台(例如 Windows 和 *NIX 操作系统)的通用代码库来编译代码。与此同也有相应的规则,如下图所示:

1673879489_63c55fc169b74e074a6ac.png!small?1673879490347

C2工具特征

C2工具的开发难度大家都是知道的,所以二开C2就是大多数人较好的选择。比如开发Sleepmask....这些Kit套件,或者去重写Cobalt Strike中Beacon的源码。这可以极大的节省红队攻击的时间成本与代码成本。并且这类二开的C2实战适用性一点都不比Cobalt Strike这种商用软件差。

配置信息:主要对比默认配置的profile和配置修改后的profile。(提示:主要变化,http-get、http-post中把信息隐藏在jquery*.js中)我们可以将CobaltStrike.jar解压,后进行class的更改。

HTTP指令特征分析

心跳包特征:请求的url为/jquery-3.3.1.min.js,返回包的值为5543,返回包到下一个请求包之间的时间为心跳时间。


Sleep特征:请求的url为/jquery-3.3.1.min.js,返回包大小为5607,包含指令数据。执行完之后,下一个请求包按照新的时间发送心跳包。


Shell特征:这里的shell指令,对应“shell whoami”,其请求的url为/jquery-3.3.1.min.js,返回包大小为5628,包含指令数据。下一个包发送POST请求,url为/jquery-3.3.2.min.js,body部分包含指令执行的结果,大小为96。另外,接收到指令到执行完指令,并返回结果,时间间隔为0.1s。


File特征:示例中的流量包,包含两个指令内容,第一个指令其特征为,请求的url为/jquery-3.3.1.min.js,返回包大小为5607。随后,间隔0.01s后,发送POST请求,url为/jquery-3.3.2.min.js,body部分包含指令的结果,值为395。第二个指令其特征为,请求的url为/jquery-3.3.1.min.js,返回包大小为5607。随后,间隔0.01s后,发送POST请求,url为/jquery-3.3.2.min.js,body部分包含指令的结果,大小为75。


Hashdump特征:请求的url为/jquery-3.3.1.min.js,返回包大小为115580,包含指令数据,以及用于进行hashdump的dll。下一个包发送POST请求,url为/jquery-3.3.2.min.js,body部分包含指令执行的结果,大小为288。另外,接收到指令到执行完指令,并返回结果,时间间隔为1s。


Screenshot特征:请求的url为/jquery-3.3.1.min.js,返回包大小为268497,包含指令数据,以及用于进行screenshot的dll。下一个包发送POST请求,url为/jquery-3.3.2.min.js,body部分包含指令执行的结果,大小为304566。另外,接收到指令到执行完指令,并返回结果,时间间隔为30s左右。


0X04编译器残留分析

编译残留分析

语言类(c、go...),具体效果可以看上面列举的go语言的编译残留问题。下面让大家知道C语言开发怎么去除编译残留(如下图所示):

1673892193_63c591611f62a02ca51fd.png!small?1673892193896

文件加壳

首先我们通过查壳去分析壳的特征,然后准备相应的脱壳工具进行脱壳。常见的UPX、穿山甲.....我们通过PE工具去看一看入口函数。如果需要查看敏感函数,可以用IDA分析一下或者X64dbg调试确定文件编译日期、字符串等....

文件签名

pfx证书签名

我们可以使用以下命令使用存储在个人信息Exchange (PFX) 文件中的证书对名为MyControl.exe的文件进行签名:

SignToolsign/fMyCert.pfxMyControl.exe

以下命令使用存储在受密码保护的 PFX 文件中的证书对文件进行签名:

SignToolsign/fMyCert.pfx/pMyPasswordMyControl.exe

EV签名

EV代码签名证书除了验证企业的基本信息、税务信息外,还对企业的经营地址、申请人身份进行审查,区别于标准代码签名的重要特点是支持Windows 10内核驱动文件签名和消除SmartScreen筛选器安全提醒,此外EV代码签名针对内核模式的驱动文件需要进行微软的交叉签名。

1673879580_63c5601ce9048ad0fd506.png!small?1673879581859

0X05结尾

其实,如果我们认真思考的话,我们会发现上面那些检测的思路和方法,有很多都是简单学习就可以简单上手的,希望这篇文章可以拓宽师傅们的恶意文件检测的思路和方法。最后我的总结就到此为止啦,希望对大家以后的学习和工作有所帮助。同时,欢迎大家指出不足。

参考链接:https://securelist.com/blackoasis-apt-and-new-targeted-attacks-leveraging-zero-day-exploit/82732/

https://heimdalsecurity.com/blog/adobe-flash-vulnerabilities-security-risks/

https://www.vusec.net/projects/netcat/

https://cofense.com/knowledge-center/signs-of-a-phishing-email/

https://blog.csdn.net/qq_44874645/article/details/118516254

https://www.techtarget.com/searchsecurity/feature/Top-static-malware-analysis-techniques-for-beginners

https://www.securonix.com/blog/golang-attack-campaign-gowebbfuscator-leverages-office-macros-and-james-webb-images-to-infect-systems/

https://learn.microsoft.com/zh-cn/windows/win32/seccrypto/using-signtool-to-sign-a-file

# 恶意代码检测 # 恶意代码分析 # C2框架 # 蓝队视角 # 恶意代码分析实战
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 面包and牛奶 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
面包and牛奶 LV.5
低头赶路,敬事如仪!
  • 45 文章数
  • 139 关注者
Xeno RAT:一种具备高级功能的新型远程访问木马
2025-02-21
技战法|安全模型提升防御效果
2024-08-05
技战法 | 威胁情报驱动应急响应
2024-07-30
文章目录