图片来源图虫:已授tag知识库使用
累计赌资 42 亿余元
非法获利 7 亿多!
扣押服务器 55 台
抓获犯罪嫌疑人 23 名
冻结涉案资金1. 1 亿余元!
一般来说,一则黑产落网新闻吃瓜群众看到的只是媒体们大写加粗的震撼数字,殊不知,比起警察蜀黍坐了飞机、火车、汽车甚至马车从大洋彼岸或者偏远深山逮到搞黑产的马仔这件事,他们更感兴趣的是如何从赛博世界顺着网线逮到这些人。
就好像宫斗剧有意思的不是谁都能猜到的大结局,而是扑朔迷离的过程。追捕疑犯也是如此,摆在那里的数字吸引力远比不上中间的过程,越刺激越好。
但是,真相往往不尽如人意,你所期待的大片既视感可能不存在,存在的只有一台电脑和一位白帽子。
事发
白帽子 SkyMine 接到通知的时候正在打瞌睡,哦不,工作。挂了电话,SkyMine二话不说赶了过去。
有事,大事
某源清流洁的网页被篡改了,篡改内容还十分不和谐(请自行想象)。
到了现场 SkyMine 检查后发现出事的服务器是台虚拟机,操作系统是 Windows 2008 R2,网站使用了 phpstudy 集成环境进行部署。但是,Windows 事件日志服务并没有启用,更可能的是黑客大哥进来后顺手关闭了。
系统日志是个啥呢?他记录了系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
SkyMine 转念一想,这台服务器既然承载着 Web 服务,而且硬件防火墙只对外映射 80 端口,是不是有可能是以Web攻击作为入口的?可以一看。
但是,Nginx 的网站访问日志也已经遭到清除……双击666
不过幸运的是,网站访问日志配置了流式异地备份,SkyMine 也就能在另一台日志服务器上找到了完整且未失真的网站访问日志副本。
不过,任凭SkyMine反反复复把事发时间前后的网站访问日志分析了个遍,都没有发现任何web攻击的痕迹。
这就很奇怪了,这说明黑客并没有直接用网页木马发送篡改页面的指令。难道是通过NC之类的反向连接工具建立通道来进行控制的?
为了求证(打脸),SkyMine 通过调查开始时生成的虚拟机快照提取了内存镜像,为了有多个内存样本进行交叉分析,他又掏出“家伙”( 一款名为dumpit 的工具)提取了内核级的内存完整镜像,其中包括物理内存和页面交换文件。
提取了这些内存之后,SkyMine开始琢磨起来,如果黑客确实是通过反向连接通道来实施控制的,那肯定曾经建立过一个异常的网络连接,内存中很可能会保留着这个信息。
所以SkyMine通过内存分析框架对内存样本进行了网络连接分析,但在事发时间并没有可疑的网络连接。
得了,线索到这里又断了……
不过也不算一点收获都没有,SkyMine在提取了内存的历史进行信息时发现,有一个很可疑的程序在事发时间正在运行,这个程序名为update.exe,看起来相当正经。
但SkyMine留意到,这个进程足足运行了 3 天之久,谁家正常更新程序能更新三天?
从内存中提取出该进程的物理路径后,SkyMine找到了这个奇怪的程序,是位于C盘的一个很深的目录里的,而且在同目录下,SkyMine还发现了一个命名为 image.jpg 的篡改图片。SkyMine对这个程序进行逆向分析后发现是个易语言程序(就是以中文作为程序代码)。
再次对这个程序逆向分析后 SkyMine 发现,黑客这次利用了一个相对较少见的攻击方式——逻辑炸弹,程序代码中有一个条件判断,当前时间大于既定时间就会自动用该程序目录下的 image.jpg 替换掉网站根目录的 image.jpg,达到篡改的目的,在确认图片已经篡改成功后将自动退出程序。
这就等于一个自动定时炸弹,神不知鬼不觉就会爆炸。
找到了攻击方式,接下来就要寻找妖精洞了。
当确定这个易语言程序就是黑客用来篡改网页的关键代码以后,SkyMine开始调查这个程序是如何被传入服务器的。
因为这个web服务器只对外开放 80 端口,SkyMine猜测有很大可能是通过web应用漏洞来写入这个程序的。通过查看这个程序的创建时间,他得到了程序的传入时间点,这就可以进一步从网站访问日志中寻找这个时间点的web访问记录。
比如 SkyMine 就发现了在网站访问日志中有一些 POST 请求(菜刀连接特征),指向网站一个上传目录的 php 文件,而这个文件就是用于上传篡改程序的木马了。
当然,网站访问日志记录的来源IP是个美国的代理地址,不是真实地址。于是他接着调查起 webshell(黑客用于远程控制的网页木马)是如何被上传的。
在网站访问日志中以木马的文件名作为关键词进行搜索,很轻松的就定位到了木马的上传位置,通过对这个 POST 请求的分析,可以确认这个 web 应用是存在任意代码执行漏洞的,黑客通过这个漏洞写入了木马。
有趣的是,SkyMine还发现了个某云服务商的IP地址,而这个IP经查证发现正是攻击者所持有。
SkyMine的事到这里结束了,他伸了伸懒腰,把技术分析报告提交给了执法机关,至于案件的跟进就不是他这个白帽子的活儿了。
取证这件事
来,让我们重新整理一遍攻击者的骚操作。
黑客初次访问网站
黑客开始尝试进行渗透
黑客发现网站存在任意代码执行漏洞
黑客利用任意代码执行漏洞写入webshell
黑客webshell上传篡改程序
篡改程序自动执行网页篡改
安全专家(SkyMine本人)到场取证分析
取证分析结束提交报告
整个取证分析过程用时三个多小时,更像一场烧脑游戏。SkyMine也感叹,若不是黑客不小心留下了破绽,他也不可能那么快就完成工作。
SkyMine本名伍智波,是中国网安·广州三零卫士的安全专家,日常工作就是搬砖和处理广州市政务网的黑客入侵事件。
处理的事件也是各有不同,假如发生了网页篡改,就一步步进行溯源;如果受到了APT攻击,就需要根据每个APT组织的常用手法,结合威胁情报提供的攻击来源信息以及病毒样本进行识别;如果是数据泄露问题,可以通过数据库审计还原窃取过程。用SkyMine的话说,就是花式还原攻击链。
这些情景用到的取证手法都是一样的吗?当然不是。
据SkyMine说,针对Windows三大内存管理机制的取证手法有八种:
基于用户模式程序的内存获取
基于内核模式程序的内存获取
基于系统崩溃转储的内存获取
基于操作系统注入的内存获取
基于系统休眠文件的内存获取
基于系统冷启动的内存获取
基于虚拟化快照的内存获取
基于硬件的内存获取
但由于时间紧迫,根本不可能将八种手法一一试过,一般常用的就是三种:基于内核模式程序,系统崩溃转储和虚拟化快照内存提取方式。
发生了一起抢劫案,如何能快速找到作案者?SkyMine他们要做的就是通过观察抢劫犯的行为判断是否是惯犯,是否有案底,进一步查看嫌疑人是否有蹲点,蹲了多久。但如果疑犯作案是临时起意呢?这种反常行为就很难寻找线索,更何况去反向临摹用户画像。
“所以上面的案例用时三个小时还算快,如果没有攻击者的失误恐怕想要追踪到他们更慢甚至最后追踪不到。网络本身具有匿名性,一个代理跳到国外后就可能什么线索都断了。”
实施完美的网络犯罪是有可能的,进行完美的网络追捕也是有可能的,但最终结果如何,谁也不能肯定。
总之就是难难难。
不过SkyMine还挺喜欢做的,在他看来这种有挑战又炫技的操作很适合他“平淡”的生活。这可能就是每个白帽子都有的黑客情怀吧。
文章评论 本文章有个评论