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