首页
社区
课程
招聘
[原创]应急服务辅助工具与系统溯源思路
发表于: 2019-12-16 11:34 7412

[原创]应急服务辅助工具与系统溯源思路

2019-12-16 11:34
7412

一、引子:

     写这篇帖子源于带过的实习生和打ctf认识的高校朋友,想给刚入门安全或入门病毒、安服朋友们分享点内容,希望有所帮助。


     因为人员不多应急服务理应都在这边来做,后面随着产品推进与客户量上升,多次磨合后基于Web开发了一套半自动化应急响应平台,后期如果引擎比较完善,对接威胁数据准确,基本实现相对的自动化服务流程,这东西不是产品,只是为了内部工作与产出积累才诞生的。


     假设客户种了勒索、挖矿。日常手法,简单了解网络top,pc内存转储同时隔离节点。拖工具pchunter、procexp等,从日志、最近改动文件、进程、自启动、网络端口初步探测。通过时间节点脑补整个感染过程,dump内存与提取样本,简单IDA分析找URL或环境变量路径,分析脚本提取关键数据。公司一般都有自己的一套常见的专杀工具,针对病毒进行扫、匹配、清理、加固。做了这些事之后上msf或cs来做渗透检测,专业点的在做一下内网横向检测,找一些poc复测,通过跳板顺藤摸瓜排查,针对活跃的回连ip进行溯源,端口进行探测与反弹shell,分析样本,最终综合产出各类报告。


    很多东西还得给客户解释清楚,搞安全不能以暴治暴,不能被D了入侵了,你找到回连,上去就是一顿2&C+D,而且都是IDC跳板没有啥用的。


二、工具

    工具初版是C写的,只是为了辅助快速工作,第一个版本成型,只有采集模块,数据采集上来后,用sql来看其实程序里面写了规则链,关联检测,其实我感觉sql高效,在部分实战中也很有成效。内网环境下,采集后生成xx.docx文档,传递过来就可以分析了, 可以远程支撑不用跑来跑去, 原框架如下:


    

    采集模块:系统信息采集(systeminfo)这是程序里面唯一调用的_popen指令实现的,因为一开始图方便,后面考虑兼容win7~win10,如计划任务检测,task se api全是用的2.0,抛弃了win api 1.0的的接口。

    上述采集其实都不难,如果你用心两天开发量估计都不到,一天就可以搞定。要思考的数据提取后如何站在应急的角度去利用,找到线索。写很多条规则,如自启动 --> 进程 ---> 端口 --> 文件,排查一条线索,也可以是进程 --> 端口 --> 自启动 --> 文件 --> 注册表,这里数据还没有涉及日志分析,你可以根据这些链做多条匹配。

    当你要脚本做成工具的时候,linux就跑python就好了,虽然我感觉go更好...... 很少有人写个QT,一键检测跑到Censtos上。但是win下特别是政府之类的,可以用图形库写个界面,当时我给否决了,Web做到炫酷就够了,mfc写个交互其实已经够用,每一个环节,最终闭环都呈现在Web,基于原来有平台更合适,初版信息采集工具诞生了,当然你要带上界面引导与良好的交互可以是文档,下面把图标之类的都替换了:

    这样你的基础算是完成了,而且根据一些情况编写一些规则或者直接用SQL做,我认为最灵活的方式,采集数据到云端mogdb or mysql,做sql直接展示到WEB最合情合理,无网络下生成数据报告与sql数据字段,直接导入到数据库写个定时器直接产出。

    剩下考虑如何系统内部溯源,个人喜欢跑个kail上nmap、msf开是冲,针对445一系列的端口,有些是从OA系统等应用爆发的,基本以日志时间节点为主,被清理那就只能根据网络环境,从外网尝试撕口开测。但是想做自动化溯源,其实还是基于log来做才行,后来写dll插件用于检测内部溯源,以Time为时间节点进行排查,假设rdp 10点被爆破成功,10:1执行了创建了进程,powershell同时间阶段有600 EventID,包括文件IO等操作,可以基于时间梳理一条或者多条链接,组织成不同的规则,大致如下,包括常见的日志分析:

 

事件响应:EventID

4624  --登录成功   
4625  --登录失败  
4634 -- 注销成功
4647 -- 用户启动的注销   
4672 -- 使用超级用户(如管理员)进行登录

mstsc登陆日志事件: 4776(失败)、4648(登陆)、4624、4672

4688:进程创建
4689:进程终止

4658:注册表
1102:日志清除

    在进行规则处理的时候,以结构体EVENTLOGRECORD.EventID and EVENTLOGRECORD.EventType and EVENTLOGRECORD.TimeWritte三要素或者四要素梳理链,然后在根据采集信息进行综合匹配。程序就不仍dll了,因为自己做的引擎...还是说日志分析工具,数据做规则匹配,总的来说想做一个初版本、非产品化的工具是够了,在常年的积累中,你的规则会越来越多,相对越来越精准,最后总会以一种合适的方式去工作,描绘整个流程,大体效果,把日志与事件节点数据展示到ListContrl中,项目中就不仍dll,因为大家有思路就都会写,只是给入门的朋友提供一些思路:


    整个项目难度在几天内,量不大,因为本身写的不太完善,rdp检测的dll插件就不仍Git了,只是分享给入门的朋友,多一些玩法与思路,祝那些还没踏出大学的少年,年少有为。

git: https://github.com/TimelifeCzy/windows-emergency-servicetools


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-6-15 18:32 被一半人生编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (7)
雪    币: 1134
活跃值: (2476)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2019-12-16 14:24
0
雪    币: 1700
活跃值: (676)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
写勒索病毒,盗取虚拟币,最近国家不是要上线虚拟币么,你可以搞区块链安全啊,一次都得不少钱
2019-12-16 14:49
0
雪    币: 5883
活跃值: (12394)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
4
弱冠甕卿还仓 写勒索病毒,盗取虚拟币,最近国家不是要上线虚拟币么,你可以搞区块链安全啊,一次都得不少钱
不不,钱不钱的还好
2019-12-17 08:36
0
雪    币: 4634
活跃值: (936)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2019-12-19 01:32
0
雪    币: 310
活跃值: (2227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark
2019-12-21 11:20
0
雪    币: 119
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢分享!
2020-1-3 18:08
0
游客
登录 | 注册 方可回帖
返回
//