工具网站 : 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/ ):
- Start Registry Editor (Regedt32.exe).
- Change the data value of the ClearPageFileAtShutdown value in the following registry key to a value of 1 :
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/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 the computer.
禁用文件最后访问时间的修改 : Windows 可以禁用文件最后访问时间的修改,这对于那些使用频繁的文件服务器有提高系统性能的好处,但对于日常使用的电脑则作用不大。以下引用自 Microsoft 知识库( http://support.microsoft.com/default.aspx?scid=kb;en-us;555041 ):
Created HKLM/System/CurrentControlSet/Control/FileSystem/Disablelastaccess and set to 1 .
This will disable the last access information written to each file as it is accessed. The result is faster hard disk 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 and Settings/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/Windows NT/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/Internet Explorer/TypedURLs
以下注册表键记录通过 Windows shell 打开和另存为文件的 MRU 列表:
HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/OpenSaveMRU
当用户利用网络驱动器映射向导连接到远程系统时,亦生成了 MRU 列表:
HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Map Network 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。
<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-520092929 1073786111 9 0 415 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; mso-themecolor:hyperlink; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {mso-style-noshow:yes; mso-style-priority:99; color:purple; mso-themecolor:followedhyperlink; text-decoration:underline; text-underline:single;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:21.0pt; mso-char-indent-count:2.0; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:1850563938; mso-list-type:hybrid; mso-list-template-ids:1030157100 966169946 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-text:"/(%1/)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
补充:
《 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/Recent File List :
显示最近在写字板程序中打开的文件。
HKCU/Software/Microsoft/Windows/CurrentVersion/Applets/Paint/Recent File 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 File List :
列出最近用 Windows 图片和传真查看器打开的扩展名为 .tif 的传真或图像。
HKCU/Software/Microsoft/Office/<Version Number>/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 文件都是已经压缩过的。