我的一个朋友刚开始在一家安全敏感的公司工作。他们为他提供了一台安装了 Windows XP Professional 的笔记本电脑。他从其他员工那里听说,笔记本电脑可能安装了键盘记录器。他有什么办法可以证实或反驳这一指控?这会像查看进程树或注册表一样简单,还是这些类型的键记录器会比这更好地隐藏自己?
他确实有管理员权限。
我的一个朋友刚开始在一家安全敏感的公司工作。他们为他提供了一台安装了 Windows XP Professional 的笔记本电脑。他从其他员工那里听说,笔记本电脑可能安装了键盘记录器。他有什么办法可以证实或反驳这一指控?这会像查看进程树或注册表一样简单,还是这些类型的键记录器会比这更好地隐藏自己?
他确实有管理员权限。
这在很大程度上取决于键盘记录器的实现。一些企业级产品确实包含使键盘记录器几乎无法检测到的 rootkit,除非您知道正在使用的产品及其配置。例如,查看Spector Pro *。此外,正如 syneticon-dj 所指出的,他们可能会改用硬件键盘记录器,该键盘记录器可以通过软件无法轻易检测到的方式实现。
如果他们已授予您的朋友在盒子上的完全管理员权限,他们要么对自己的监控和配置控制功能非常有信心,要么他们完全不知道将此类权限授予最终用户的含义。很多时候,是后者。但是,如果你认为是前者,那么你也应该认为他们的信心有一些坚实的理由。
无论如何,您的朋友很可能已经签署(并因此同意)可接受使用政策,其中包括放弃公司拥有设备的所有隐私权的条款。此外,任何担心在这些问题上合规的公司也会在系统上贴上警告横幅,提醒每次登录的用户他们可能会受到这些系统的监控。
底线:不要在公司设备上做任何你不想让他们看到的事情。始终假定他们正在记录击键、捕获屏幕截图(另一个常见的间谍软件功能),并可能包含 SSL 代理来监视网络流量。在商业硬件上保持业务,在个人硬件上保持个人物品,你应该没问题。
*注意:这不是对 Spector Pro 的认可。我与该公司没有任何关系,也没有使用过他们的产品。这只是作为公司可用的间谍软件工具的一个示例。
总的来说, Iszi给了你一些非常好的建议——如果他们使用监控软件,他们很有信心。
这会像查看进程树或注册表一样简单,还是这些类型的键记录器会比这更好地隐藏自己?
检测键盘记录程序就像在正确的位置查找一样简单(根据您的观点,这可能很简单,也可能不简单)。问题是知道要寻找什么以及在哪里寻找。以下是您可以做的一些非详尽的检查键盘记录模块的事情。
首先,构建键盘记录器最简单的方法是使用DLL 注入,它可以通过多种方式实现。其中大部分将导致 DLL 显示为映射到进程的地址空间。看看这张照片:
该列表中最上面的条目是什么?它是一个pyd
. 或 python 扩展名文件。我一直在搞乱由 python 实现的 COM 服务器,因此,DLL 被加载到 Windows 资源管理器的地址空间中。
键盘记录类型的 DLL 注入会将其 DLL 加载到所有目标地址空间中 - 如果您不这样做,则无法捕获所有内容。所以要注意的一件事是奇怪的 DLL,您不能将其归因于您知道其用途的产品。它们将显示在所有进程的此列表中。
在 wikipedia 上描述的技术中,我唯一没有看到的是CreateRemoteThread
品种——我不确定结果是将线程附加到图像还是执行具有 name 的线程DllMain
。感谢进程资源管理器,我们仍然可以看到哪些线程正在执行什么:
太棒了,对吧?好吧,它们很可能被命名为与明显的user32.dll
或类似的一致。如果是这种情况,我们可以进行许多实验来解决,如果我们愿意的话。这些留给读者作为练习(当人们这么说时,你不只是讨厌它!)。
这样就涵盖了用户模式显而易见的键盘记录模式。有一些不太明显的地方可以嵌入键盘记录器(但它们不太可能是全局的)。但是,当您开始谈论内核级挂钩时,事情会变得非常令人兴奋。Mark R 和 Bryce Cogswell有一篇关于这个主题的优秀文章,尽管它需要更新,但需要注意以下几点:
因此,如果您运行的是 32 位 Windows,您仍然可以安装并运行某种形式的内核级挂钩;如果您使用的是 64 位,则可能性要小得多 - 鉴于 KPP 之前已被绕过并且不断变化,我敢打赌您不会在 x64 上使用内核挂钩,因为 Windows 更新会定期使监控产品系统崩溃。软件只是不以此为基础销售。
与 32 位钩子相比,你能做什么?许多事:
bcdedit /copy {current} /d "Windows in debug mode"
在bcdedit /debug {id} ON
适当之后bcdedit /dbgsettings
),连接火线电缆(真的。不要使用串行。我使用串行电缆发现了这一点 - 火线的速度要快得多)。然后,在您的源计算机上,启动kd
并设置模块加载断点,然后单步执行所有加载的模块,并记下它们。在它开始之前,司机没有太多可以做的事情来隐藏自己。您甚至可以从这里开始检查它(g
继续,ctrl+c
随时中断)。当然,这里需要注意的是,没有直接修补任何 Windows 可执行文件,或者一些我们无法轻易检测到的渎职行为。
那是直接看系统,但不是一个完整的解决方案。如果您认为日志记录软件正在打电话回家,透明代理可能会帮助您确定位置 - 即您可能被拨入,vpn.mycompany.com
但您也可能会看到与monitorserver.mycompany.com
.
毫无疑问,您可以使用的许多技术取决于两件事:
简短的回答:没有万无一失的方法来检测任何类型的东西。但是,您可以在某些地方开始寻找证据。
各种免责声明:
some reports from %companyname%
,附加一些虚拟的 .docs 和 .pdf,在“To:”字段中输入“dave123@another-company-in-your-field.com”。点击“发送”。好吧,有些键盘记录器可以很好地隐藏它们,实际上有些可能像rootkit,您应该获得一个好的防病毒程序,可以检测并从计算机中清除rootkit和木马等,并且应该从CLEAN系统彻底扫描,否则您可能正在启动 rootkit 或其他令人讨厌的东西,这会使扫描看起来很干净,而实际上并非如此。一个很好的此类程序是 AVG Pro 防病毒和 antirootkit 程序,还有一些其他程序声称在对抗 rootkit 和所有其他类型的木马间谍软件蠕虫等方面做得很好......如果您不喜欢有人看的话,这是一项很好的投资一直在你的肩膀上,或者更糟糕的是捕捉到一个相当讨厌的“错误”,所以用 AVG 之类的东西从 CLEAN 系统进行扫描......