使用注册表
研究者可以采用几种方法来使用注册表,两个最有用的方法是内置在注册表上基于图形用户界面(GUI)工具和reg命令行工具。注册表包含在Windows中已经十年多了,而注册表命令只包含在更现代化的Windows计算机中,比如XP Pro、2003 Server,、Vista 和2008 Server。这篇文章我们将着重研究reg命令,但是提供一些信息,主要是关于注册表GUI应当安置在何处才会有用。reg命令允许用户查看、更新、输入和输出注册表索引值。但是我们这里的重点是恢复有用的鉴别证据,这样我们将集中关注使用reg命令,从注册表中查询重要的信息。
确定用户已经做了什么事
Windows注册表被分类为hive,hive是注册表中的大部分,专用于电脑的特殊方面。HKCU hive存储了关于电脑上当前登录的用户。假设坏人是某个用户;也许是某个恶意雇员,他坐在计算机的本地控制台前面,并且走开了;或许是一个远程攻击者,他通过远程桌面、终端服务或者虚拟网络计算机(VNC),远程控制其GUI,危及系统安全。这样的攻击者可能已经通过启动→运行…,然后键入需要运行的程序的名称,使用了Windows GUI,在电脑上启动程序或者指令。Windows记录了大部分注册表中当前用户用这种方式执行的最近26项指令。为了得出这方面的信息,研究者应当运行:
C:\ reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
幸运的是,当涉及到注册表索引时,reg指令通常是不灵敏的,因此研究者不必记住大写字母属于哪个注册表索引的名称。在调用该reg指令时,我经常全部使用小写字母,因为这样的话打字快,而且我一般记不住哪个地方应该用大写字母。上述指令的输出,不论是否使用了大写字母,都可能会显示攻击者运行了sol.exe(即Windows纸牌游戏),接着是cmd.exe指令界面。攻击者随后可能会运行lusrmgr.msc GUI,以添加或删除用户;或者是services.msc控制面板,以改变服务的配置。我曾经历了这样的情况:攻击者输入这样的句型“net use * \\[machine]\[share] [password] /u:[user]”,使用“开始→运行...”来设置文件共享。在我们的调查研究中,注册表索引中的信息是有用的,可以找到黑客的目标是哪个系统。请注意,这部分注册表中的历史信息只存储了键入到“开始→运行...”中的那些项目,并且没有存储通过“开始>菜单”中的其它地方调用程序的历史记录。此外,cmd.exe的指令界面历史也没有存储在注册表中,并且这些指令也不是按时间顺序存储的。尽管这样,如果黑客控制了计算机的GUI,“开始→运行...”历史记录对于研究者而言仍然是非常有用的。
注册表中另一个附近的设置对研究者而言也是非常有用的,即RecentDocs值(存放在HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ RecentDocs),它可以显示当前登录到系统的用户最近所打开的文件名。这些文件是按扩展类型存储的,比如,Word文件存储为.doc格式,或者PowerPoint文件存储为PPT格式。不幸的是,文件路径和文件名称都以初始的二进制代码储存,而不是以无格式的ASCII码形式存储。因此,reg命令行工具将输出一系列十六进制的数值,不显示将其翻译为人类可读的文本。不使用reg指令,双击一个特殊设置,注册表编辑器GUI将会转换成二进制数值。举例来说,一名研究者可以使用注册表编辑器来浏览到:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.doc
在那里,系统会显示目前登录用户访问的最后十个 .doc文件。双击那里的任何一个值,研究者就可以使得注册表编辑器以可读的ASCII形式显示文件路径和名称。
来自存储在注册表中的用户活动的多余遗漏物与Internet Explorer有关。特别是,下面的指令会显示所有的URL,这些URL是用户键入到IE中,并使其登录到给定的网站。
C:\> reg query "hkcu\software\microsoft\internet explorer\typedurls"
注意:由于“internet”和“explorer”之间的间隔,需要将引号放在注册表名称的两边。此外,也要注意我已经回复到我的“正常”方式:使用所有带有reg指令的低端情况。有了这一指令的输出,研究者就可以收集到重要的信息,这些是关于用户在哪里上网的信息,键入一个URL,可能使系统进入色情或者其它罪恶的网站。
重要的是要注意,存储在注册表这一部分中的数值的局限性。浏览器输入的地址记录并不能显示全部的浏览历史,比如搜索引擎查询、点击链接内置网页,或恶意软件促使系统在没有键入URL的情况下访问的网址。不过,浏览器输入的地址记录的输出是非常有用的,可以帮助研究者确定嫌疑犯的动机。这是一个很好的迹象,如果用户特意在浏览器中键入URL,表明他希望系统进入一个特定的网址。
注册表中对研究者有用的另一个端口与WinVNC阅读器有关,WinVNC阅读器可用于远程控制其它系统的GUI。当用户调用VNC Viewer,与另一个机器进行连接并控制,WinVNC存储了系统名称或者IP地址(如果使用了一个除TCP5900的VNC默认端口以外的端口,它还会存储端口数值)。因此,研究者可以有黑客进入到的系统的历史记录,这些系统是黑客使用这条指令进而控制其可视的GUI。
C:\> reg query hkcu\software\realvnc\vncviewer4\mru
再次说明,我已经参加了研究,在研究中这条指令的输出真的有助于获得深入的信息,可以了解黑客突然袭击一个目标环境时,他都做了什么。
正如我们所看到的,实际上,对于当前机器的登录用户所采取的许多行动而言,注册表扮演的角色类似于一个日志。在这些简短的技巧中,我们涵盖了一些用于分析的最有用的领域,但是,我想要鼓励读者实施自己的注册表探索,以找到对研究者而言有用的信息。单击打开regedit.exe,并且查看HKCU\Software的内部,挖掘可能有助于解决鉴定研究之谜的“黄金”。在下个月的技巧中,我们将研究注册表的HKLM部分,进而找到整个系统的有用信息,这些信息是关于已经运行系统的,而不仅仅是当前登录用户的信息。
您现在的位置: 
