《Windows取证分析》

 封面

工具网站:http://www.ntsecurity.nu/toolbox/

命令行历史:命令行模式CMD中使doskey /history命令可以显示前面输入的命令情况(例如使用cls命令清屏之后可以用此察看之前的命令),但是如果是关闭CMD之后运行则无法查到关闭之前输入的命令。

共享:在系统注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares

(针对Windows XP系统,高于此版本的可能有些变化)可以获取到系统的共享信息。

清除页面交换文件:Windows使用虚拟内存架构,一些进程使用的内存内容会被交换出去,位于交换文件中。系统关闭时,交换文件中的信息会在硬盘上保持不变,其中可能会有解密的密码,聊天会话信息和其他字符串信息。如果关机时清除了交换文件则这些潜在的信息就很难被提取出来。在注册表中的ClearPageFileAtShutdown键值可以起到这个作用。以下引用自Microsoft知识库(http://support.microsoft.com/kb/314834/en-us/):

  1. Start Registry Editor (Regedt32.exe).
  2. Change the data value of the ClearPageFileAtShutdown value in the following registry key to a value of 1:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management

If the value does not exist, add the following value:

Value Name: ClearPageFileAtShutdown
Value Type: REG_DWORD
Value: 1

This change does not take effect until you restart thecomputer.

禁用文件最后访问时间的修改:Windows可以禁用文件最后访问时间的修改,这对于那些使用频繁的文件服务器有提高系统性能的好处,但对于日常使用的电脑则作用不大。以下引用自Microsoft知识库(http://support.microsoft.com/default.aspx?scid=kb;en-us;555041):

Created HKLM\System\CurrentControlSet\Control\FileSystem\Disablelastaccessand set to 1.
            This willdisable the last access information written to each file as it is          accessed. The result is faster harddisk file read-access. 

这只针对Windows XP和Windows 2003系统,而在Windows Vista系统中这个键值是默认激活的。

Windos XP程序预读机制:在%WINDIR%\Prefetch目录中有后缀为.pf的文件,其中存有程序的有关应用的信息。相同的程序名称会覆盖已有的.pf文件,这点可以通过文件属性中修改时间的变化看出来。

崩溃转储:当计算机以外停止或者出现较为严重的错误,XP时代最常见的就是蓝屏了(Blus Screen of Death,简称BSoD),这时候系统就会自动冻结,并且进行崩溃转储。崩溃转储有三种类型:小存储器转储,核心存储器转储,以及完全存储器转储。相关信息如下:

  • Windows 2000 Professional:小存储器转储 (64 KB)
  • Windows 2000 Server:完全存储器转储
  • Windows 2000 Advanced Server:完全存储器转储
  • Windows XP(Professional 和 Home Edition):小存储器转储 (64 KB)
  • Windows Server 2003(所有版本):完全存储器转储

详细信息参见http://support.microsoft.com/kb/254649

注意:“完全存储器转储”选项不适用于运行 32 位操作系统和具有 2 GB或更多 RAM 的计算机。详情参见http://support.microsoft.com/kb/274598

另在http://support.microsoft.com/kb/307973提供了如何在Windows中配置系统和恢复选项。

但是当不管以哪种途径设置成完全存储器转储之后,一旦计算机崩溃,在转储文件中就可能会包含一些敏感信息,例如口令,账号等。

如果已经把系统设置成了完全存储器转储,可以通过一些设置就可以根据需要随时生成内存转储,详情参见http://support.microsoft.com/kb/244139

休眠文件:当一个Windows系统(Windows 2000及后续版本)“休眠”的时候,系统的电源管理组件会将系统物理内存压缩后,存放到系统分区根目录下的Hiberfil.sys文件中。在系统的引导过程中,如果系统发现有效的Hiberfil.sys文件,NTLDR会将该文件的内容加载到物理内存,并且将系统的控制权交给内核中处理休眠恢复的代码。这是否可以为病毒程序制作提供一些切入口呢?

内存镜像获取与分析:通过一定的方式获取了内存镜像之后(无论从硬件方面获取或者是从软件方面获取,详细信息参见此书第3章 Windows内存分析),接下来的工作就是如何分析之,并从中获取有用的消息了,一些专业的信息就不一一列举了,具体信息参见此书第3章 Windows内存分析。从书中可以知道,通过内存分析至少可以获取到内存中的进程相关信息,包括进程ID(PID),父进程ID(PPID),进程创建时间,进程可执行文件的路径以及创建进程时的参数,操作系统类型,被内核模式rootkit隐藏的进程等。除此之外还有一定的可能性从内存镜像中找到一些类似口令,电子邮件地址,URL记录,即时聊天记录等信息。而且如果微软可以合作的话一定可以获取更多有用的信息(毕竟最了解Windows的还是制作它的人),什么情况下微软会合作呢,由于这属于Windows系统的机密信息,也许得靠FBI之类的组织交涉才可以吧。

注册表:注册表是一个中央分层的数据库,负责管理应用程序、硬件设备和用户的各种配置设定。(具体信息参见http://support.microsoft.com/kb/256986

每个配置单元的存储位置如下

---------------------------------------------------------------------------------------------------------------------------------

注册表路径                                 文件路径

---------------------------------------------------------------------------------------------------------------------------------

HKEY_LOCAL_MACHINE\System                %WINDIR%\system32\config\System

HKEY_LOCAL_MACHINE\SAM                   %WINDIR%\system32\config\SAM

HKEY_LOCAL_MACHINE\Security                %WINDIR%\system32\config\Security

HKEY_LOCAL_MACHINE\Software              %WINDIR%\system32\config\Software

HKEY_LOCAL_MACHINE\Hardware              可变配置单元

HKEY_LOCAL_MACHINE\System\Clone           可变配置单元

HKEY_USERS\User SID                        Documents andSettings/User/NTUSER.dat;

                                          Vista下目录变为“User/user

HKEY_USERS\.Default                        %WINDIR%\system32\config\default

---------------------------------------------------------------------------------------------------------------------------------

可以看出有几个注册表路径在硬盘上并不存在相对应的文件,这些配置单元是在系统启动过程中创建的,系统关机后就不复存在。

注册表支持多种数据类型,用于相同目的注册表键可能有不同的数据类型,因此在对注册表进行查找时就可能遇到问题。例如一个程序把它最近访问的文件列表储存为ASCII字符串类型,而另一个程序就可能存储为unicode字符串类型,这就意味着如果搜索ASCII字符就会漏掉unicode字符。注册表编辑器的查找工具只能用于查找ASCII字符(详细信息参见http://support.microsoft.com/default.aspx?scid=kb;en-us;161678)。

注册表键有几个和自身相关的特性,其中之一就是LastWrite时间,即键值的最后修改时间。这对于一些系统服务的判断非常有用。

审计策略:Windows的审计策略在注册表中也有相关设置,包括审计系统时间,审计登录事件,审计对象访问,审计特权使用,审计过程跟踪,审计策略更改,审计账户管理,审计目录服务访问,审计账户登录事件。具体信息参见原书P97.

无线SSIDs:在活动系统上(绝大部分是笔记本),Windows XP管理一个曾经接入过该系统的SSIDs(Service set identifiers)列表,此列表由下面的注册表键维护:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WZCSVC\Parameters\Interfaces\{GUID}

键中的GUID是无线网卡的GUID。在这个注册表键下有一个名为ActiveSettings的值,是二进制形式的,该数据包括任何曾经访问过的无线接入点SSIDs。从二进制数据偏移量为0x10位置开始的双字类型数据包含SSIDs的长度。SSID的名称紧接着这个双字。

对用户活动作出反应的注册表键值:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\open\command

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\comfile\shell\open\command

此类注册表键和其他类型文件的注册表键控制该类文件(exe文件,bat文件,com文件)打开时的动作。例如,在Windows资源管理器中,右击任何文件都会出现的快捷菜单中粗体显示的动作(一般为“打开”),表示双击文件执行的动作。双击此文件时,Windows就会扫描注册表,查找此文件的设置并判断所采取的动作。

另一个位置位于:HKEY_CLASSES_ROOT\exefile\shell\open\command下,还有就是打开Word文档时进行的动作,HKEY_CLASSES_ROOT\Word.Document.x\shell\open\command  (x为Word软件的版本号)。

还有就是命令行处理器(cmd.exe)运行时所运行的软件会在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun 下,HKEY_CURRENT_USER下也有同样的值,且优先级高于HKEY_LOCAL_MACHINE下的项目。

在GUI程序启动时,下面的注册表键就可将DLL加载到内存:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

Windows系统对特定事件的发生提供了外部报警功能,如用户登录、退出、屏幕保护启动等。这些通知事件由下述注册表键管理:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify

还有一种方法就是被滥用的映像劫持了(Image File Execution Options)。具体信息请参考原书P104。

U盘中的自动播放功能:除了常见的autorun.inf方式自动播放,还有一种就是通过软件在U盘起始部分建立一个标记为CDFS(CD文件系统)的小分区,因此Windows把这个分区识别为CD而不是移动设备。这意味着虽然关闭了移动存储介质的自动播放功能,由于默认CDFS分区的自动播放功能是打开的,同样可以自动运行程序。

UserAssist注册表键:在注册表中有跟踪用户活动的键值:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count

上述键值中的GUID是全局唯一标识符,一般有两个GUID键: 5E6AB780-7743-11CF-A12B-00AA004AE837和75048700-EF1F-11D0-9888-006097DEACF9。

5E6AB780-7743-11CF-A12B-00AA004AE837指向Internet工具条,75048700-EF1F-11D0-9888-006097DEACF9指向活动桌面。并且这两个键下的注册表项名称进行了Rot-13加密(即凯撒置换),可以轻易解密出来。具体的信息包含有程序运行的次数,最后运行时间等。解密后的名称大部分以UEME_开始,接着是RUNPATH(文件系统的绝对路径),RUNPIDL(控制面板程序),RUNCPL(IE命名空间的一部分,通常是快捷方式或者LNK文件)等。

MRU列表:即最近访问文件列表。注册表中比较出名的便是RecentDocs键:

\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs

这个键下的所有注册表项都是二进制数据类型。以数字命名的注册表项包含访问的文件名(unicode编码格式),以及MRU列表Ex命名的注册表项包含文件访问顺序(双字)。另一个常见的MRU列表位于RunMRU键下:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

此键记录了在“运行”对话框中输入的命令列表。

以下键值记录了在IE地址栏中输入的URL列表:

HKCU\Software\Microsoft\InternetExplorer\TypedURLs

以下注册表键记录通过Windows shell打开和另存为文件的MRU列表:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU

当用户利用网络驱动器映射向导连接到远程系统时,亦生成了MRU列表:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MapNetwork Drive MRU

且无论用户使用网络驱动器映射向导还是net use命令,用户增加到系统中的卷都会出现在线面的键值下:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2

Word文档:Word文档中包含了很多用户不可见的附加信息,例如保存过去的修订,最后10个修改文件的作者信息。Microsoft提供了下面的知识库文档:

223 790:WD97:怎样最小化Microsoft Word文档中的元数据

223 396:OFF:怎样最小化Microsoft Office文档中的元数据

223 789:XL:怎样最小化Microsoft Excel工作簿中的元数据

223 793:PPT97:怎样最小化Microsoft PowerPoint演示文档中的元数据

290 945:怎样最小化Word 2002中的元数据

825 576:怎样最小化Word 2003中的元数据

图像文件:JPEG图像中的元数据信息依赖于创建或修改图像文件的应用。例如,数码相机拍摄的照片嵌入了图像文件交换格式(EXIF)信息,其中包括相机的厂商和型号、缩略图和音频信息。EXifer,IrfanView等工具可以查看,修改嵌入的元数据信息。

NTFS分支数据流:分支数据流(Alternate Data Stream)是NTFS文件系统的一个特性,即可以在Windows系统中创建一个合法文件,该文件不仅包含数据,还包括脚本和可执行代码,这些文件可以被创建和执行,但操作系统并没提供工具检测可执行二进制代码的存在,这一特性便可以被用来隐藏工具,并且反病毒软件默认情况下不扫描ADS。此外,Windows SP2,IE和Outlook会为下载的文件和附件添加一个分支数据流,在下次用户执行或者打开文件时,系统会弹出一个警告框提示文件不安全。Lads.exe是可以显示ADS信息的工具之一,ADSSpy可以用来删除选中的ADS。

补充:

《Windows取证----企业计算机调查指南》部分摘录

Windows 2000/XP/2003中的一些特殊目录

%SYSTEMROOT%/Downloaded Installtions:

容纳Microsoft安装程序(MSI)。一些程序的安装文件甚至在删除后仍然存在此处的子目录中。

%SYSTEMROOT%/Downloaded Program Files:

容纳IE的插件程序。如果一个特定的网站需要下载,这是一个检查是否访问了这个特定网站的潜在位置。

%SYSTEMROOT%/Driver Cache:

容纳先前Windows所用的特定驱动文件。这个文件的特别价值在于表明有个特定的驱动器连结果计算机。

%SYSTEMROOT%/Offline Web Pages:

显示一些被存储下来供IE离线浏览的Web页面。

SET:在CMD中输入set,则出现相关环境变量,其中PATHEXT是Windows视为可执行文件得文件扩展名清单。不寻常的扩展名可能意味着系统中有带这些扩展名的隐藏文件。

注册表的最近使用项目键:

HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Wordpad\RecentFile List:

显示最近在写字板程序中打开的文件。

HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Paint\RecentFile List:

显示最近在画图程序中打开的文件。

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs:

在子键下按照特定扩展名列出最近资源管理器打开的文档。它和开始菜单的最近使用文档是分离的,在这里搜索给定文件或有特定扩展名的文件,可以找到最近用户打开的文件。

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU:

显示一个特定可执行文件最近打开的文件夹(用普通对话框打开)。

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU:

列出最近从一个普通对话框打开的文件,按扩展名分组。

HKCU\Software\Microsoft\MediaPlayer\Player\RecentFileList:

显示最近被Media Player打开的文件。

HKCU\Software\Microsoft\MSPaper\Recent FileList:

列出最近用Windows图片和传真查看器打开的扩展名为.tif的传真或图像。

HKCU\Software\Microsoft\Office\<VersionNumber>\Common\OpenFind\:

在每个微软Office应用程序下都将列出最近打开和保存的文件。

无线监控:Sniffer软件和AirMagnet产品都提供了这个功能,为此它们使用了定位天线和信号强度读取。只要瞄准定位天线、观察信号强度,就可以确定设备的相对位置和距离。访问www.turnpoint.net/wireless/cantennahowto.html可以阅读如何建立家用定位天线的指导。

打印队列文件:在Windows 2000/XP/2003中,通常有两类打印文件,一类是有关打印任务信息的SHD文件,另一类是包括实际打印任务本身及其相关头信息的SPL文件(还有一种是PRN文件,包括原始的打印机指令,用于明确打印输出到文件的时候。直接键入“copy filename.prn LPT1”命令就能打印文档类型的文件,其中filename是PRN文件的名称,LPT1是连接打印机的端口号)。

SHD和SPL文件可以从提供证据证明打印了什么、谁打印的、什么时候打印的、打印了多少份,甚至打印任务的内容。打印队列文件位于%SYSTEMROOT%/System32/Spool/Printers目录中,或者在打印服务器上指定的打印队列目录。

寻找打印任务信息的第一个地方就是SHD文件(按顺序命名,并与同样命名的SPL文件成对出现)。打印任务以Unicode格式存储。SPL文件格式取决于数据类型是RAW或者是EMF。RAW文件可以使用适当的浏览器(例如IrFanView)直接浏览。EMF格式的SPL文件包含了一个首先要进行解析的头。该文件头包含文档名和文档大小。方法如下:

(1)    在WinHex中打开文件并寻找EMF这个字。

(2)    往回选择41个字节,寻找首个有效的EMF文件字节(通常是01H),并记下其位置。

(3)    选择Edit->Define Block,并选定上面记下的开始位置和文件结束的终止位置。

(4)    选择Edit->Copy Block,并选择Into New File。用.emf作为扩展名命名该文件。

(5)    用IrFanView中即可打开浏览。

寻找压缩文件:因为加密文件和压缩文件都包含少量的重复信息,或者不包含。这些文件可以通过压缩或再次压缩来识别。最简单即用WinZip压缩,然后观察压缩率,压缩或加密文件的压缩比应小于5%。某些文件格式使用缺省压缩。多数常见图像格式,像JPG和PNG,已经被压缩过了,多数电影和音乐文件也是如此。同样PDF文件,一些可执行文件以及DLL文件都是已经压缩过的。

原文地址:https://www.cnblogs.com/kanone/p/1875340.html