【DFIR】数字取证与事件应急响应---初识
应急响应
适用于负责现场应急,找出可疑的程序,恶意代码的安全工程师。这些可疑恶意程序或代码由另外的专家进行逆向分析。
前言
DRIR:Digital Forensics and Incident Response,翻译过来就是=>数字取证与事件应急响应。
概要
需要取证的点:
1、系统日志、网站访问日志(搜索log文件)、本地用户情况(是否有隐藏、克隆用户)。
2、保存系统当前信息:
systeminfo >c:\sysinfo.txt
netstat -ano >c:\net.txt
tasklist >c:\task.txt
net user >c:\user.txt
xcopy %systemroot%\system32\winevt\logs\* C:\eventlog
3、使用Process Monitor、Autorun、Tcpview等工具,保存记录文件。PClog和Process Explorer选择性保存。
可在现场简单检查,把可疑的程序打包回来分析。
4、检查webshell结果(最好能把网站整个文件夹拷贝回来)。
当发生安全事件时,我们去到现场需要做的有以下几个点:
1、查看杀毒软件、防护软件的查杀、隔离、告警日志。(如果有)
2、查看各种服务应用如:FTP、SSH、数据库、RDP。(是否攻击者开启及是否存在弱口令)
3、检查是否有防火墙、行为管理器等防御设备,查看相应告警。
这三个点我经常忘的,因此单独列出来做个记录。

2、TCPview
进程:
病毒文件在系统中运行必定依赖于exe可执行程序,主要有三种模式在系统中运行:
- 病毒自己的exe程序
- 注入到系统程序
- 其他方式
ps:当你在磁盘上发现一个恶意的DLL,并且想知道是否有运行进程使用了这个DLL时,可以使用Find => find Handle on DLL 功能。
一些常见的DLL:
- Ntdll.dll:如果一个可执行文件载入了这个文件,这意味着作者企图使用那些不是正常提供给windows程序使用的函数。如隐藏功能和操作进程等任务会使用这个接口。
- Wsock32.dll和Ws32.dll:这个两个是联网DLL,访问其中任一个DLL的程序非常可能连接网络,或是执行网络相关的任务。
- Wininet.dll:这个DLL包含了更高层次的网络函数,实现了如FTP、HTTP和NTP等协议。
这里需要说明记录一下这个工具和另外一个工具Process Monitor的区别:
- Process Explorer:进程浏览器,列出所有活跃的进程、被进程载入的DLL、各种进程属性和整体系统信息。
主要用于:查看进程的签名信息、进程的字符串信息、搜索加载恶意DLL的进程、分析恶意文档、通过属性窗口中的镜像(Image)标签来定位恶意代码在磁盘上的位置。
- Process Monitor:进程监视器,监控注册表、文件系统、网络、进程和线程行为。
主要用于:分析恶意代码,能够监控到运行了恶意代码之后,该恶意代码是否启动了其他的进程、是否进行了网络连接以及在系统上做了什么操作,包括注册表和文件访问。
2、D 盾 _web 查杀工具

3、PcHunter
功能齐全,可以查看网络连接情况,启动项和进程信息等。遇到一些隐藏的病毒木马,直接打开目录无法找到的,也可以用这个工具进行查找和定位,去除隐藏属性。也可尝试命令行查找。
实例测试MSF进程注入功能:
利用migrate命令将后门注入到其他进程
TCPView检测网络连接,根据可疑进程名和可疑网络连接可以定位到meterpreter后门进程。

但是查找对应的PID找不到相应的进程。

加载后,你可以开始搜索Meterpreter使用的关键指标,如ws2_32.dll和metsrv.dll。ws2_32.dll是用于处理网络连接的Window Sockets Library,而metsrv.dll是默认的Meterpreter服务。这两个dll是用于网络连接的,而everything这个进程是没有网络连接的,但是却调用了这两个dll文件,那么就有问题了。
针对MSF的后门,这里再推荐一款工具:Meterpreter_Payload_Detection.exe,可自行在GitHub上搜索下载。
利用Meterpreter_Payload_Detection.exe检测工具,通过扫描内存检测Meterpreter无法检测的有效负载。
启动项:
思路:检查启动项、计划任务、服务
1、检查服务器是否有异常的启动项。
检查方法:
a、登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。
b、单击开始菜单 >【运行】,输入 msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。
c、单击【开始】>【运行】,输入 regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:
HKEY_CURRENT_USERsoftwaremicorsoftwindowscurrentversionrun
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunonce
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。
d、利用安全软件查看启动项、开机时间管理等。
e、组策略,运行 gpedit.msc。
2、检查计划任务
检查方法:
a、单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便可以发现木马文件的路径。
b、单击【开始】>【运行】;输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
3、服务自启动
检查方法:
单击【开始】>【运行】,输入 services.msc,注意服务状态和启动类型,检查是否有异常服务。
这里推荐使用Autorun
内存:
略!待补充
最终需要拷贝回来取证的有如下:
附录:
以前做得一张思维导图,懒得改,直接参考上面的就行。
参考链接:
【主机应急响应与电子取证的经验分享】https://www.freebuf.com/vuls/182220.html
【windows 应急流程及实战演练】https://www.secpulse.com/archives/76534.html
笨鸟先飞早入林,笨人勤学早成材。 转载请注明出处:
撰写人:fox-yu http://www.cnblogs.com/fox-yu/
【DFIR】数字取证与事件应急响应---初识的更多相关文章
- Window应急响应(一):FTP暴力破解
0x00 前言 FTP是一个文件传输协议,用户通过FTP可从客户机程序向远程主机上传或下载文件,常用于网站代码维护.日常源码备份等.如果攻击者通过FTP匿名访问或者弱口令获取FTP权限,可直接上传 ...
- Linux应急响应姿势浅谈
一.前记 无论是甲方还是乙方的同学,应急响应可能都是家常便饭,你可能经常收到如下反馈: 运维同事 --> 服务器上存在可疑进程,系统资源占用高: 网络同事 --> 监控发现某台服务器对外大 ...
- 应急响应系列之OA被入侵挖矿分析报告
一 基本情况 1.1 简要 此事件是去年应急处置时完成的报告,距今有半年时间了.一直存在电脑里,最近准备完善应急响应中遇到的各类安全事件,这篇文章作为这一系列的开端. 对于 Linux 安全检查,个 ...
- 【命令汇总】Windows 应急响应
日期:2019-06-07 16:11:49 作者:Bay0net 介绍:Windows 应急响应.取证及溯源相关内容学习记录 0x00.前言 常见的应急分类: web入侵:网页挂马.主页篡改.Web ...
- 应急响应-PDCERF模型 (转)
目录 应急响应流程 防御模型 SDL 应急响应流程 很多人认为应急响应就是脸上被黑的机器去查查什么情况,是不是被中了botnet病毒.是不是被人中了rootkit等,是不是被挂了webshell等.应 ...
- 【应急响应】Windows应急响应入门手册
0x01 应急响应概述 首先我们来了解一下两个概念:应急响应和安全建设,这两者的区别就是应急响应是被动响应.安全建设是主动防御. 所谓有因才有果,既然是被动的,那么我们在应急响应的时候就得先了解 ...
- 一些关于Linux入侵应急响应的碎碎念
近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...
- Linux安全事件应急响应排查方法总结
Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...
- Windows应急响应常识
Windows 应急响应 常见事件ID 1102 清理审计日志 4624 账号登陆成功 4625 账号登陆失败 4672 授予特殊权限 4720 创建用户 4726 删除用户 4728 将成员添加到启 ...
随机推荐
- 《spring源码解读》 - IoC 之解析 import 标签
在上一文中我们分析了注册 BeanDefinition 的过程,在其中我们了解到在解析跟节点和子节点时分两种情况,对于默认名称空间的标签我们通过 DefaultBeanDefinitionDocume ...
- unity2D物理引擎之-Rigidbody 2D
虽然Rigidbody 2D大致上可以看成是Rigidbody的2D化,大部分功能也是一致的,但是还是有一些细节问题. 一些事项: 1.任何添加到同一个 GameObject身上或者其子物体身上的 2 ...
- P1073 最优贸易 分层图+最长路
洛谷p1073 最优贸易 链接 首先易得暴n2的暴力,暴力枚举就行 显然1e5的数据是会炸的 我们再分析题意,发现一共分为两个个步骤,也可以说是状态,即在一个点买入,在另一个点卖出,我们可以构建一个三 ...
- 如何设置Tomact的标题,运行Tomcat显示为自己程序的命名
当我们使用Tomcat部署好一个web系统后,在窗口处默认会显示Tomcat名字.但如果我们用多个Tomcat部署时,则需要区分这些窗口,这是需要修改Tomact的配置,来设置一个我们需要显示的标题. ...
- 当this碰到return会发生什么
当this碰到return时 function fn(params) { this.user = 'fzy' return {} } var a = new fn console.log(a.user ...
- webpack3.10.0(入门系列基本概念1)
一.概念 webpack的核心是一个用于现代JavaScript应用程序的静态模块打包程序.当webpack处理您的应用程序时,它会递归地构建一个依赖图,其中包含应用程序所需的每个模块,然后将所有这些 ...
- Agumaster 改善了pagination
页面越来越完善了.
- C#开发PACS医学影像处理系统(一):开发背景和说明
本系列文章将从以下模块和大家分享和讨论使用C#开发医学软件PACS和RIS系统, 国内相关资料比较少,也借此机会丰富一下医学软件开发生态,讨论技术难点,希望大家互相帮助共同进步. 章节介绍及截图预览: ...
- 详解 LeetCode_007_整数反转(Java 实现)
目录 LeetCode_007_整数反转 题目描述 总体分析 解决方案 小结 LeetCode_007_整数反转 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示 ...
- JDK1.7之前的Bug之静态代码块
程序的主入口是main方法,但是在jdk1.7之前,可以没有main方法也一样能运行,很是不可思议,到底是什么原因呢?,大家都知道在类中定义了静态代码块的话,是首先执行代码块里的语句的,如果把静态代码 ...