为什么要取证
附录2:取证思路
附录3:取证分析纲要
注:在上机取证的同时应该对操作的每个步骤进行截图保存,方便作为后续写报告的依据。
一、网络、进程检测
通过网络连接情况和程序进程对主机进行检测取证,直接定位出可疑文件。
1.1、网络情况查看
1.1.1 网络连接查看
使用netstat -ano查看当前所有的网络连接。通过对IP地址查看定位异常请求。
通过pid定位程序位置:wmic process |findstr pid
1.1.2 木马心跳或网络请求查看
可以使用LiveTcpUdpWatch对网络情况进行查看(可后台运行半小时查看结果),该软件能记录DNS请求(用于捕捉木马心跳—非持续性连接的网络进程),网络连接等情况,通过远程连接IP(流量获取或者其他途径)定位到木马的PID,结合PChunter或任务管理器进行木马定位。
1.1.3 全局流量查看
若有需要可以使用Wireshark对当前网络流量进行监控,主要是尽可能多的收集攻击者信息和潜在的木马连接信息。
1.2 进程检测
注意点:不建议使用任务管理器进行系统进程检查,因为可供分析的维度较少,且容易被进程名欺骗,操作系统允许相同名称但不同执行路径的进程同时存在。
查看本机所有进程建议使用PCHunter进行查看,信息比较全,可以同时看到进程名称和程序路径。
若不方便使用外部工具可以使用wmic命令查看进程信息:
wmic process get caption,commandline,creationDate,executablepath,handle,handleCount
在cmd命令行中复制以上命令并回车执行。
打开C:yanlianprocess.txt,可看到6列内容,含义如下所示:
可根据进程名、进程执行参数、进程启动时间、程序执行路径判断是否存在异常,并根据异常点进行深入分析。
1. 3 DLL劫持检测
木马程序通过服务、dll、com均可劫持注入到程序中启动。
示例:以svchost及dll劫持为例:
svchost.exe主要作用是将动态链接库(后缀为.dll的文件)以服务的方式运行。svchost.exe对系统的正常运行非常重要,是不能被结束的。
注意点:
存在异常监听端口,pid指向svchost.exe程序,需检查是否存在异常。通过第三方工具ProcessExplorer(简称pe)检查svchost.exe程序。
示例:
通过检查已监听端口,发现“异常”监听,pid指向800。
打开任务管理器,发现pid 800是svchost.exe程序,由于该程序的特性,需使用第三方工具pe进行检查。
通过pe工具可发现pid 800是由服务启动,根据启动路径可发现该程序是由正常路径启动,但程序是否被替换未知,启动的服务是netsvcs(小白杀手,当初虐了我n久),该服务下挂12个子服务。
在pe中双击该程序,点击【tcp/ip】,可发现49154端口是服务schedule监听。
点击【services】,可发现schedule服务启动的动态链接库绝对路径是c:windowssystemc32schedsvc.dll,从而发现49154端口是哪个程序正在监听。
通过点击pe的功能菜单模块(下图的齿轮图标)【view handles】可显示该程序所调用的clsid。
如存在启动、点击某个程序后恶意进程重新启动的情况,则可以对com劫持进行检查。
通过点击【view dlls】可显示该程序所调用的dll文件。
也可以通过排序可直观的看到是否存在dll劫持。
1.4 进程注入检测
进程注入是一种广泛使用的躲避检测的技术,通常用于恶意软件或者无文件技术。其需要在另一个进程的地址空间内运行特制代码,进程注入改善了不可见性,同时一些技术也实现了持久性。
进程注入检测通常情况需要对主机的网络情况进行检测发现,可以使用livetcpudpwatch工具进行监测。
通过其异常请求的pid,利用Process Explorer对该PID进行查看,并使用将该线程内存dump出来。
使用Process Explorer查看PID进程需要等待一段时间,当木马发起网络请求时才会出现以下TCP/IP信息。
使用strings、IDA或者其他内存分析工具进行线程分析。
二、可疑用户操作检测
2. 1 用户检测
wmic useraccount get name,SID
可以检测出影子用户和注册表隐藏的用户(net user命令搜索容易漏过这些特殊用户):
查看管理员分组有哪些用户 net localgroup administrators:
查看xxx用户的创建时间和上⼀次登陆时间net user xxx
进入C:/Users ⽂件夹,查看哪些用户登陆了系统,以及黑客没有清理干净的恶意用户。
进入C:Users%UserName%AppDataRoamingMicrosoftWindowsRecent
文件夹,查看当前用户最近的操作记录(可执行程序的执行情况不会被记录)
2.2 登陆检测
1. 什么时间谁连接了被黑主机
2. 什么时间被黑主机连接了谁
注意点:主机日志默认记录20Mb,达到最大值时优先覆盖旧事件,同时网络安全法要求日志至少保存6个月以上。
分远程桌面连接和IPC连接两种方式讨论。
远程桌面连接方式:
针对要点1,可以使用WinLogView工具,会列出系统中所有曾经登陆过的主机,包含本地登陆和远程登陆,针对原有的用户需要注意用户的登陆时间段是否在工作时间段内。(LogonType:10 表示远程登陆,2 表示本地登陆)。
针对要点2,可以使用查看注册表HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault(有空格,注意引号扩起来)展示最近10次本机成功建立的RDP连接。
IPC连接方式:
针对要点1,查看Windows安全日志,查找4624,登陆类型为3而且源网络地址不是来自于127.0.0.1的安全事件。
其实在这里登陆类型为 10 表示的是 RDP 登陆
也可以通过FullEventLogView批量加载主机日志,然后通过4624等时间ID进行日志筛选,相对主机直接查看日志更直观。
针对要点2,可以通过注册表进行查看
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerTypedPaths
2.3 文件检测
2.3.1 近期操作文件
利用AppCompatCacheParser工具检查近期的可执行文件操作(由于该记录以非文本方式保存在注册表中,很多攻击者不会清理该文件夹):
根据时间倒叙,重点排查近期或者被攻击时间段的程序执行记录。
近期的文件操作可以直接使用lastactivityview方便查看,优点是收集的信息很完整,可以导出html。
注意,进行C:/User/xxx/Recent目录也能看到用户最近频繁操作的一些文件,但并不是所有操作,信息不够全面
近期所有浏览器的操作记录使用BrowsingHistoryView⼀并查看,可以根据时间短对记录进行筛选。
2.3.2人工检查目录
这些路径经常作为攻击者内网渗透的临时工作目录,以及木马启动、解压路径可以重点检查。
C:Perflogs C:Perflogsadmin C:ProgramData C:UsersPublic C:Users当前用户 C:WindowsTemp C:Users当前用户AppDataRoaming C:Users当前用户AppDataLocalTemp C:Users当前用户AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp |
2.3.3 黑客工具
使用恶意软件全盘扫描工具比如睿眼主机取证溯源系统【商业化产品对系统进行全盘扫描,能探测出木马文件和黑客工具的所在位置。
进入对应的文件夹查看有无其他黑客工具,注意扫描到文件的创建时间,以及该文件对应的创建者信息,可以关联出黑客的作案时间以及黑客用户。
WebShell 文件可以使用D盾Webshell查杀工具
同时记录Webshell的名称,从Web访问日志中关联是否存在HTTP隧道脚本和其他WebShell文件。
三、持久化检测
持久化检测主要是检测木马的启动方式等。
3.1 启动目录
C:Users当前用户AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
3.2 注册表启动项
开机启动项直接运行msconfig进行查看,简单检查有无未知启动项。
如需要导出分析,使用以下命令将自启动项导出检查。
// 导出当前用户启动项
reg export HKCUSoftwareMicrosoftWindowsCurrentVersionRun c:yanlianautorun1.reg
// 导出系统启动项
reg export HKLMSoftwareMicrosoftWindowsCurrentVersionRun c:yanlianautorun2.reg
reg export HKLMSoftwareMicrosoftWindowsCurrentVersionRunonce c:yanlianautorun3.reg
示例:
输入命令将自启动项配置文件导出。
检查导出的自启动项配置是否存在异常。
3. 3 开机启动脚本
运行 gpedit.msc 查看组策略:
3.4 计划任务
计划任务直接使用AutoRuns 进行检测,根据 ImagePath 配合 Publisher 判断是不是木马程序。
3.5 映像劫持检测(Shift后门)
通过AutoRuns的ImageHiJack进行检测,被替换的setch.exe 会直接显示出来。
另外可以对程序提交VT进行检测:
根据VT的评分判定是否可能是木马程序。
3.6 环境变量检测
环境变量用于将系统路径变量化,如被黑客利用则会以最高权限运行恶意程序,例如将环境变量%systemroot%变更为其他路径,同时建立system32文件夹并将恶意程序通过服务启动。
注意点:环境变量%systemroot%修改后需进行恢复,否则系统无法正常重启。使用set命令将环境变量导出检查。
示例:
输入命令将环境变量配置文件导出。
检查导出的环境变量配置是否存在异常。
3.7 系统服务检测
查看本机所有的服务可以使用AutoRuns ,好处比较清晰列出了进程可执行程序路径和证书信息,此外还可以联动VT ,直接云判断(点击Option-Scan Option调用VT)可执行程序是否是恶意程序。