当年, APT 这个词刚出现的时候震慑了一大群安全同学, “ APT ( Advanced Persistent Threat )是指高级持续性威胁 ” ,这个专业定义让大家都无比崇拜。
随着逐步研究与接触,尤其是在处理过 APT 入侵后,慢慢明白,其实所谓 apt 攻击,就是一个黑客或黑客组织死心眼,一门心思要搞你。他们针对你使用专门的新技术,进来后耐心的收集信息,逃避检测长期潜伏,最终窃取最有价值的数据。其实这个过程和职业小偷一个道理,分析你家的基本情况,如作息时间、出门时间、资产情况、个人信息等,然后利用针对你家的专用信息,如你的生日,打开你家的密码门锁。进去不急着偷东西,而是装摄像头、监听器等,长期监视你的活动,获取银行密码、保险箱密码、各种找回密码的问题等等,最后再获取巨大的金钱利益。特点无非就是:
1 、隐蔽性强,就是利用针对性的高技术或偏门的方法,让你的防御、检测措施生效;
2 、耐心度高,长期潜伏不作恶,让你的行为检测无的放矢;
3 、高速收割,和检测、拦截系统打时间差,在被阻止前窃取完成;
针对以上三点,当前针对 apt 攻击主要从三个维度发现
1 、终端、网络行为异常;
2 、大数据分析,终端行为偏移正常、行为聚类后的终端孤点等;
3 、情报数据、情报关联数据,如历史用的病毒手法、 md5 、 url 、 ip 、域名和 ip 对应关系、历史关系等;
但其实这三个方案无论怎么检测发现,最终都只是发现疑似 apt 攻击,大量误报无法避免,如用户主动访问恶意 url 、用户今天无聊所以操作行为偏移正常逻辑等等。所以最终定性还是靠人工确定,说白了就是检测发现疑似被 apt 入侵的终端,安全人员还需要通过取证获取机器数据,最后分析取证后的数据才能最终定性是否存在 apt 入侵行为。
所以今天我们就来谈谈 APT 入侵的取证思路,先从整体看下:
如上就是 a pt 入侵的通用流程,我们结合此流程,根据黑客入侵的路径和动作,探讨下要采集哪些数据或日志来分析我们的终端是不是正在被入侵或被入侵过了。
Google 翻查各种工具,看的我一脸懵逼呀,各种介绍的高大上工具,什么 Autopsy 、 Volatility 、 redline 等一堆一堆的,本人才疏学浅,感觉要不就是专注于一个方面,如文件痕迹、内存分析等,要不就是各种基于已知的 ioc 分析,没找到任何一个完全适合 windows 入侵取证的工具。为了不至于无路可走,决定放飞思路, diy 一下。
根据日常我们要取证的场景:
终端出现异常点,或就是看它不爽,我们怎么取证什么数据才能定性是否被黑客入侵? 取证工具简单化,不考虑那么多 ui 、关联数据等问题,终端我们可以接触,所以复杂需要关联的或图形化的,我们直接在机器看,不必须让取证工具变得那么复杂。分析下,我们通过黑客入侵各个阶段的做法来看我们要取什么证据
进入/执行阶段 第一阶段:病毒文件或代码进入电脑(磁盘或内存)a) 攻击难度低:合法自动进入
1) 钓鱼邮件的附件,利用自动下载附件的功能,也可诱导用户下载
2) Im 工具等,利用自动下载,或诱导下载
3) U 盘插入,利用摆渡 u 盘,诱导使用被恶意丢弃的 u 盘等
4) 浏览器访问,这个大量文件到临时目录,只不过难于执行起来
5) 共享盘挂载,这个虽然不是本地磁盘,但是还是可以直接运行的
6) 各种同步盘,如云和终端同步,多终端同步等,例如攻破云盘上传恶意文件后,文件自动同步到终端。
7) P2p 下载方,修改资源块,替换正常块。(没遇到过,推测可行)
b) 攻击难度中:诱导用户直接下载(包括配置好自动下载地址)或拷贝病毒
1) 浏览器、下载工具等主动下载,多为捆绑病毒或替换正常软件(软件供应链),这也是当前感染病毒最多的渠道,互联网虽好,但也是到处有坑!
2) 应用软件,或应用软件组件更新等
3) 邮件、 im 、 word 等交流工具中的链接,诱导用户下载
4) U 盘文件拷贝
c) 攻击难度高:漏洞利用进入
1) 浏览器漏洞,各种 cve
2) 邮件漏洞,如打开触发漏洞的邮件本身,则会自动下载病毒(一个途径,笔者未遇到过)
3) 其他软件漏洞,这就比较广了,主要是各种常用软件,尤其是提供输入、网络接受数据等功能的,例如发送畸形包,让某软件下载病毒文件。
第二阶段:病毒文件或代码变为内存中可运行代码a) 诱导用户主动运行
1) Office 各种宏,利用自动宏或诱导用户启动宏拉取恶意文件或代码
2) 社工诱导,如 im 聊天诱导、邮件诱导、诱惑文件名诱导等等
3) 冒充正常文件名
b) U 盘自动运行
1) 这个就不解释了,这也是 u 盘被利用的原因,插入即可完成进入和执行两步,高效快捷!
c) 漏洞自动运行
1) 这个主要是代码类,漏洞利用直接注入 shellcode ,修改 ip 运行。
综上,在该阶段我们要获取
1 、邮件附件情况,包括下载和执行
2 、 im 接受文件情况,包括下载和执行
3 、 u 盘自动运行情况、拷贝情况
4 、 office 宏的执行情况
5 、浏览器临时文件情况
6 、共享挂载情况
7 、同步盘情况
8 、 p2p 下载情况
9 、浏览器、下载工具等下载情况
10 、应用软件的自动更新和更新配置情况
11 、浏览器、邮件、其他软件等的漏洞情况和漏洞触发(尽可能)情况
12 、程序启动情况
潜伏/控制阶段 第一阶段:提权a) 命令提权,网上很多,笔者研究不深,主要是利用 cmd 、 powershell 等
b) 漏洞提权
第二阶段:窃取a) 窃取单终端信息,如账户密码、本机敏感文档
b) 窃取沦陷终端可触达的网络信息、服务信息,如网络拓扑、内网 web 系统等
c) 窃取后续扩散必须数据,如其他终端或服务器的权限数据、登陆方法、弱点情况等
第三阶段:外传a) 传统 socket ,较少了
b) http 、 https 、 ftp 、 ssh 等通用协议外传,较普遍,但其普遍性造成被检测几率大
c) 隐蔽隧道,如 dns 、 icmp 、各种协议 over