0x00 易失性数据
易失性数据:主要存在于被入侵机器的寄存器、缓存、内存中。主要包括网络连接状态、正在运行的进程等信息。
一、Windows 中的一些易失性数据及获取
[系统环境变量]
set
[系统日期和时间]
Date /t time /t
[当前运行的进程]
tasklist 所有正在运行的进程列表信息:
[当前登录的用户列表]
query user 查看本地连接和远程连接所有用户:
whoami 查看当前登录用户
[剪贴板数据]
clipbrd.exe 获取剪贴板内容
[网络信息] 当前打开的端口、当前的网络连接、监听套接字的程序
ipconfig /all 系统IP地址信息
arp -a 查看 arp 缓存表
nbtstat –c 列出10分钟内主机缓存中的 NetBIOS 连接
net 命令 列出 NetBIOS 连接、用户账号、共享文件夹等
netstat –ano 查看机器上的监听端口及端口的所有连接
[命令行记录]
doskey /history
[字符串查找]
findstr 'xxx'
取证环境中常常为了不破坏被取证机器的状态信息,把取证后的信息及其散列值通过网络传输工具存储到其他机器。并且也可编写简单脚本方便取证。
注:windows 下其他常用命令可看此博客:windows常用命令
0x01 日志取证
在 windows 日志取证主要包括三方面:Windorw 系统日志(由 windows 系统记录的日志),应用程序独自维护的日志,防火墙或入侵检测系统维护的日志。其中 Windows 操作系统维护三个相互独立的日志文件分别为:系统日志、应用程序日志和安全日志。日志文件位置:C:\Windows\System32\winevt\Logs\ 。审核开启:登陆事件、策略更改、账户登陆、系统事件的成功失败,那么任何成功的入侵都将在安全日志中留下痕迹。
一、系统日志
1.系统类型
包含系统进程,设备磁盘活动等。事件记录了设备驱动无法正常启动或停止,硬件失败,重复IP地址,系统进程的启动,停止及暂停等行为。文件名:System.evtx
2.安全类型
本类型日志是在取证中需要重点查看的日志。包含安全性相关的事件,如用户权限变更,登录及注销,文件及文件夹访问,打印等信息。文件名:Security.evtx
Windows 中登陆过程
SMSS.exe 会话管理进程是内核创建的第一个用户态进程,它启动后会创建 Windows 子系统服务进程 CSRSS 和 WinLogon 进程。 WinLogon 会创建登陆桌面以及服务系统管理进程 Servises ,在用户登录前,系统使用特殊帐户(NT AUTHORITY\SYSTEM (帐户域\帐户权限))先行登录处理 Servises。然后它会创建数个 svchost.exe子进程,而每个svchost.exe进程都会启动并运行一些基本的windows服务 。因为 CSRSS 和 WinLogon 对系统来说缺一不可,因此 SMSS 创建这两个进程遇到问题时便采取紧急措施,不会正常启动。
Explorer 进程是由 UserInit 创建的,UserInit 是由 WinLogon 进程创建的,在 Windows 去启动过程中,用户输入用户名和密码后,负责登陆的系统进程 WinLogon 将用户名和密码发送给负责安全认证的另一个系统进程 Lsass。Lsass 调用验证模块对用户名和密码进行验证,如果通过,则创建一个访问令牌对象。 WinLogon 去启动 HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\Winlogon 的 Userinit 表键下指定的程序(默认为 userinit.exe) 。UseInit 进程执行登陆和初始化脚本,然后启动 Shell 表键中定义的 Shell 程序(默认即 Explorer.exe)。
所有这些过程都会被记录进系统内置的"安全"类型日志,可以通过事件查看器浏览。
安全日志 ID 含义
登陆类型
3.应用程序类型
包含操作系统安装的应用程序软件相关的事件。事件包括了错误、警告及任何应用程序需要报告的信息,应用程序开发人员可以决定记录哪些信息。文件名:Application.evtx
二、应用程序日志
例如 IIS 日志等,主要掌握日志的存储位置,以及阅读日志的方法,开启日志管理等知识。
三、防火墙日志
学习方法同应用程序日志类似。
0x02 文件目录取证
一、启动目录
[用户开机启动文件路径]
C:\Users\xxxxxx(你的登陆用户名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
[系统开机启动文件路径]
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
二、用户目录
1.最近访问文档
当用户打开一个目录或文件,系统自动就在这个最近访问的文档目录中生成一个这个文档的快捷方式即使最近访问的文档已经被删除或者移走,但是通过快捷方式,仍然可以获取大量信息。
2.桌面目录
保存了Windows桌面上的所有文件,不仅有快捷方式,还有存储在桌面上的各种文件。
3.我的文档
4.发送到目录
集成在右键中的快捷指向。用户可以自定义发送到目录中的指向。通过研究这些指向,可以知道用户经常使用的文件存储位置。
三、交换文件
当内存少于系统应用的需求时,系统会生成一个交换文件来暂存内存数据,以释放部分内存来进行应用。这个交换文件又叫做页文件(Pagefile.sys),它存在于根目录中。它可以改变其大小和存储位置,这个文件的大小是自己系统虚拟内存设置的最小值通过检查交换文件,可以获取文件碎片以便进行分析。
四、休眠文件
计算机进入休眠状态时,所有内存信息被转储到硬盘上的休眠文件中,以便于系统被唤醒时迅速进入关闭前状态而不必重新加载系统。休眠文件保存在系统根目录中的 hiberfil.sys 中,休眠文件的大小等同于物理内存,win7 开始可以占物理内存的 50%-100% 。即使系统从未进入休眠状态,休眠文件也将存在,数据内容都为 0x00 。可以通过 powercfg 命令改变休眠文件的大小、开启关闭休眠功能。
五、假脱机打印文件
假脱机打印文件在后台以队列方式自动运行,以便用户不必等待打印结束就可以继续打印下一个文件。当使用网络打印机时,假脱机打印文件将被发送给连接打印机的服务器上。打印完成后,假脱机打印文件会被系统逻辑删除。假脱机文件大都保存在未分配空间、文件松弛区、交换文件、休眠文件中。但是只要对 EMF 文件头进行文件签名分析,就会提取到打印过的图像信息。
六、预读取文件
Prefetch 目录的作用是加快系统启动的进程,系统会自动记录下启动时运行的每一个程序预读信息(此信息是系统访问时自动生成的),并根据这些信息加快下一次的启动时间,这些文件以 pf 为后缀,预读取文件的目录位于 C:\Windows\Prefetch\ 。
七、删除文件的恢复
删除只是将文件放置在硬盘的特殊区域,可用一下方法对删除文件进行恢复。
- 使用恢复工具
- 还原存储在回收站里的文件
- 恢复.tmp文件
系统临时文件:C:\Windows\Temp
用户临时文件:C:\Users[用户名]\AppData\Local\Temp
浏览器临时文件:C:\Users[用户名]\AppData\Local\Microsoft\Windows\ - 使用低层工具修复文件系统
0x03 注册表取证
一、启动项
HKLM\SOFTWARE\Microsoft\Windows\CurrentVevsion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVevsion\RunOnce
HKLM\SOFTWARE\Microsoft\Windows\CurrentVevsion\RunOnceEx
HKLM\SOFTWARE\Microsoft\Windows\CurrentVevsion\RunServices
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\Winlogon\Userinit
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\Winlogon\Shell
Userinit.exe 运行登录脚本、建立网络连接和启动shell。很多木马程序和流氓软件选择它作为启动项
Autoruns工具:查看系统启动项的工具
二、用户与系统信息项
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\RegisteredOwner
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\Registeredorganizaion
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\ProductID
HKLM\SAM\SAM\Domains\Account\Users\Names
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\Winlogon
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVevsion\ProfileList
0x04 进程列表
一、系统进程
此类进程在系统中都会有固定的存放位置,假如在此存放位置之外发现此类程序,则有可能是病毒。据百度百科记载大多数此类文件都会存放在 C:\Windows\System32 不过根据自己亲自实验发现,在win 10 中每个此类文件的存放位置都会有四个,win 中自带有数字签名,此时只需要查看数字签名是否正常。而且据网上流传通过右键查看程序的版本信息是否存在也可以判断程序是否正常。并且大部分程序都会有自己固定的注册表信息,如果发现此时某程序对应的注册表信息不正确也极有可能是中毒情况。
[与其他应用程序相关]
1. iexplore.exe
描述: IE 浏览器进程,这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。
中毒: 浏览器被劫持,任务管理器中多出进程:IEXPL0RE.EXE,注意,这里是数字“0”,不是字母“O”,或任务管理器查看有多个 iexplore.exe。
2. wmplayer.exe
描述: Windows Media Player播放器的一部分,用于播放音频、视频文件。
3. spoolsv.exe
描述: 是Print Spooler的进程,管理所有本地和网络打印队列及控制所有打印工作。如果此服务被停用,本地计算机上的打印将不可用。
中毒: 多个相似名称进程,CPU 占用率高,文件位置不正确。
4. ctfmon.exe
描述: 是有关输入法的一个可执行程序。它可以选择用户文字输入程序,和微软Office 语言条。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。它监视活动窗口,并为语音识别、书写识别、键盘、翻译和其他中文可选用户输入方法技术提供文本输入服务支持。
中毒: 此进程占用资源太多
5. internat.exe
描述: 多语言输入程序。
中毒: 出现提示缺少 exe 文件问题的大部分原因是因该文件被木马病毒破坏导致系统程序找不到此文件,出现错误提示框,或程序无法运行,解决此问题只需找到专业的 exe 文件下载网站,下载该文件后,找到适合程序的文件版本,复制到相应目录。
6. conime.exe
描述: 输入法编辑器相关程序。允许用户使用标准键盘就能输入复杂的字符与符号。
7. wuauclt.exe
描述: 是Windows自动升级管理程序。该进程会不断在线检测更新。删除该进程将使计算机无法得到最新更新信息。
中毒: 该病毒自动修改原先的 wuauclt.exe 为 wuauclt1.exe ,并建立新的 wuauclt.exe 。建议关闭 wuauclt.exe 进程,删除 wuauclt.exe 进程,然后把 wuauclt1.exe 更改为 wuauclt.exe 。
8. alg.exe
描述: 它用于处理微软 Windows 网络连接共享和网络连接防火墙。
中毒: 系统文件 ALG.EXE 出错,极有可能是盗号木马、流氓软件等恶意程序所导致,其感染相关文件并加载起来,一旦杀毒软件删除被感染的文件,就会导致相关组件缺失,游戏等常用软件运行不起来,通常会伴随下几种情况:
1、桌面图标无法删除
2、网络游戏打不开
3、电脑无故蓝屏
4、电脑没声音
5、桌面无法显示
6、主页被修改为网址导航
[图形化相关]
1. csrss.exe
描述: 是微软客户端、服务端运行时子系统,windows 的核心进程之一。管理 Windows 图形相关任务,对系统的正常运行非常重要。csrss是Client/Server Runtime Server Subsystem 的简称,即客户/服务器运行子系统,用以控制Windows图形相关子系统,必须一直运行。
2. explorer.exe
描述: 是 Windows 文件资源管理器,它用于管理 Windows 图形界面,包括桌面和文件管理,删除该程序会导致 Windows 图形界面无法使用。
中毒: 查看文件位置是否正常,查看版本信息和数字签名值。
3. dwm.exe
描述: 桌面窗口管理器,跟桌面相关。 它建立在WPF核心图形层组件基础之上。 它的出现几乎改变了 Vista 中应用程序的屏幕象素显示方式。启用 DWM 后,提供的视觉效果有毛玻璃框架、3D窗口变换动画、窗口翻转和高分辨率支持 。其中最明显的特征有:任务栏窗口的实时缩略图;Alt-Tab 和 Win-Tab 组合键所看到的效果。
[登陆相关]
1. smss.exe
描述: 这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,包括已经正在运行的 Windows 登录程序 (winlogon.exe) ,Win32子系统(csrss.exe)线程和设定的系统变量作出反映。
中毒: 查看文件位置是否正常,查看版本信息和数字签名值。
2. winlogon.exe
描述: Windows 用户登陆程序,用于管理用户登录和退出。
中毒: 正常的winlogon系统进程,其用户名为 “SYSTEM” 程序名为小写 winlogon.exe 。而伪装成该进程的木马程序其用户名为当前系统用户名,且程序名为大写的 WINLOGON.exe。
3. lsass.exe
描述: 它用于本地安全和登陆策略,随着系统启动而自动启动。它提供本地的安全授权服务,并且它会为使用 winlogon 服务的授权用户生成一个进程。这个进程是通过使用授权的包,如果授权是成功的,lsass 就会产生用户的进入令牌,令牌别使用启动初始的 shell 。其他的由用户初始化的进程会继承这个令牌的。
中毒: 如果你的启动菜单(开始-运行-输入“msconfig”)里有个lsass.exe启动项,那就说明你中了LSASS.EXE木马病毒,中毒后,在进程里可以见到有两个相同的进程,分别是lsass.exe和LSASS.EXE,同时在windows下生成LSASS.EXE和exert.exe两个可执行文件,且在后台运行,LSASS.EXE管理exe类执行文件,exert.exe管理程序退出,还会在D盘根目录下产生和 autorun.inf两个文件,同时侵入注册表破坏系统文件关联。
[其他重要进程]
1. svchost.exe
描述: Windows 服务主进程,是通过动态链接库 (DLL) 运行的服务的通用进程名。许多服务通过注入到该程序中启动,所以会有多个该文件的进程。svchost 进程只作为服务宿主,它本身并不能实现任何功能,即它只能提供条件让其他服务在这里被启动。svchost通过系统服务在注册表中设置的参数找到某个服务的动态链接库。
中毒: 查看文件位置是否正常,查看版本信息和数字签名值。
2. rundll32.exe
描述: 用于在内存中运行DLL文件,它们会在应用程序中被使用。这个程序对你系统的正常运行是非常重要的。
中毒: 查看文件位置是否正常,查看版本信息和数字签名值。
3. taskmgr.exe
描述: 任务管理器。它显示系统中正在运行的进程。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。
中毒: 多个相似名称进程,CPU 占用率高,文件位置不正确。
4. services.exe
描述: 用于管理启动和停止服务。该进程也会处理在计算机启动和关机时运行的服务。
中毒: 多个相似名称进程,CPU 占用率高,文件位置不正确。
5. conhost.exe
描述: 即命令行程序的宿主进程。win7 之前的宿主程序是由 csrss.exe 来完成的,所有命令行进程都使用 session 唯一的 csrss.exe 进程。而到了 win7 则改成每个命令行进程都有一个独立的 conhost 作为宿主了。
6. mdm.exe
描述: Windows进程除错程序。用于使用可视化脚本工具对Internet Explorer除错。
🐖:木马病毒程序的惯用伎俩:伪装成与原进程相似的文件名;将原进程名改为其他进程,然后将病毒程序改为原进程进程名;而且中病毒时一般 cpu 的占用率会升高。
二、用户进程
三、开始运行处的进程
四、进程分析
takelist 显示进程列表
takekill 杀死进程
netstat 查看 TCP UDP 等连接情况
findstr 搜索字符串
0x05 网络轨迹
所谓网络轨迹,是指系统访问网络之后留下来的一些记录。犯罪嫌疑人在利用网络进行犯罪,或因为犯罪嫌疑人对计算机不是很了解,或因为犯罪嫌疑人的疏忽大意,会在Windows系统上留下一些记录。
网站访问下拉列表
网站访问的历史记录
网站收藏夹
网络聊天工具分析
QQ,微信,以及邮箱等
0x06 用户分析
Windows 具有完善的用户体系,它规定了系统中有哪些帐户,这些帐户分别属于哪些组,这些帐户有什么权限,这些帐户有哪些文件存放在哪些目录下,其他帐户对该帐户的文档有什么权限。攻击者通常会在他得到控制权的系统上添加一个管理员帐号,或者将克隆管理员帐户(Administrator)权限到来宾帐户(Guest)。
一、用户列表
通过查看用户列表,观察是否有可以用户。
[查看用户列表]
net user
[win 10 常见的用户]
xxxx: 自己创建的用户
Administrator: 管理计算机(域)的内置帐户
DefaultAccount: 系统管理的用户帐户。据说没什么用,可以删除。
Guest: 供来宾访问计算机或访问域的内置帐户
WDAGUtilityAccount: 系统为 Windows Defender 应用程序防护方案管理和使用的用户帐户。
[用户的启用和禁用]
net user xxx /active:yes 用户启用
net user xxx /active:no 用户禁
[用户的删除和创建]
注意只有 win 10 专业版及企业版 等高级版本才能进行一些账户的删除。
[查看组信息]
net localgroup
[查看某组详细信息]
net localgroup xxx 🐖:xxx 为组名
二、用户属性
在上一步之后对系统现存用户进行详细信息的查看,以此来深入的分析系统现存账户。
[查看命令]
net user xxx 注:xxx 为所要查看的用户的用户名。
三、用户相关的文档
1.查看文件所有权
2.查看用户、组信息
3.查看安全日志
[事件ID]
624 添加新帐号
626 启动用户帐号
636 改变帐号组
642 改变用户帐号
4.检查注册表中的安全标志符
安全标识符(SID),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。如果创建帐户,再删除帐户,然后使用相同的用户名创建另一个帐户,则新帐户将不具有授权给前一个帐户的权力或权限,原因是该帐户具有不同的 SID 号。在每个账户创建登陆后会生成对应账户的 SID 注册表信息,即使该账户之后被删除该信息也不会消失,所以可以利用此信息确定被删除的账户信息。
[Sid 查看方法]
1.whoami /user
2.通过注册表查看
3.vmic 工具查看
🐖:SID中各部分详细含义见:已知安全标识符
0x07 系统服务
Windows 上提供了很多服务,这些服务一方面使得合法用户可以访问,但另一方面也为有害的入侵者提供了一个接入口。net start 命令可以查看所有正在运行的服务。
一、计划任务服务
AT.exe schtasks.exe 程序。是安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划系统。用途广泛,使用高效,不仅能为本地计算机添加任务计划,而且还能通过某台计算机的操作,运行另外一台计算机的程序。可定时、定日、定月、定周、定年等让本机或局域网电脑启动软件。非系统进程。
二、共享服务
Server 服务。支持此计算机通过网络的文件、打印、和命名管道共享。如果服务停止,这些功能不可用。如果服务被禁用,任何直接依赖于此服务的服务将无法启动。可以通过 net share 命令进行管理。
[查看开启的共享]
cmd > net share
共享名 资源 注解
-------------------------------------------------------------------------------
C$ C:\ 默认共享
D$ D:\ 默认共享
E$ E:\ 默认共享
IPC$ 远程 IPC
print$ C:\Windows\system32\spool\drivers
打印机驱动程序
ADMIN$ C:\WINDOWS 远程管理
命令成功完成。
# 上述情况表示服务开启
[关闭的三种方法]
1.通过服务管理工具,找到 Server 服务进行关闭。
2.通过修改注册表,注意 C$ 、IPC$、ADMIN$、print$ 这几类关闭需要修改的注册表的值不完全相同。
3.通过命令 net share x$ /del
三、远程控制和远程访问服务
psservice 是一个服务管理程序。使用格式为:psservice [ \\远程机器ip [-u username] [-p password]] <command> <options >。