如何用Python编写macOS的基本键盘记录器

网友投稿 912 2022-10-23

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

如何用Python编写macOS的基本键盘记录器

键盘记录器可能是要在计算机上使用的比较多的。不幸的是,这种程序通常被很好地隐藏起来,并且常常被受害者完全检测不到。键盘记录器的核心是一种设备或程序,可记录您在计算机上键入的所有内容。这意味着恶意方可能会记录和读取每个密码,您发送的每个私人消息以及您键入的每个搜索。那么如何用Python编写macOS的基本键盘记录器呢?

键盘记录器主要分为两类:硬件记录器和软件记录器。硬件记录器通常更易于检测。它们通常被描述为物理上位于有线键盘和计算机之间的小型设备。随着蓝牙键盘的出现,这种类型的记录器现在已经不那么普遍了,但是确实存在蓝牙嗅探攻击。

软件记录器通常隐藏得更好,并且是Rootkit中包含的常见功能。Rootkit是一种特别令人讨厌的恶意软件,它生活在非常低的计算机级别,通常低于操作系统或防病毒程序能够检测到的级别。Rootkit通常以很高的特权运行,以至于没有任何东西在其可见性之外。除了录制简单的击键外,更高级的rootkit可能还具有其他功能,包括拍摄屏幕截图,甚至使用计算机的摄像头和麦克风秘密录制视频和声音。

在本文中,我将演示如何使用python在macOS上设置简单的键盘记录程序。苹果公司针对macOS的安全性通常要保持较高的标准,因此,要使这样的程序运行,我们需要为此目的故意削弱macOS的安全性。

实际的恶意按键记录程序可能会利用某种漏洞来越过Apple的安全控制,而高级记录程序可能会利用其他隐藏机制来隐藏进程本身,并将收集的按键数据与远程命令和控制服务器进行通信。

禁用系统完整性保护(SIP)

苹果为其在OS X El Capitan中引入的macOS引入了系统完整性保护模式。SIP是macOS 10.12 Sierra和macOS 10.13 High Sierra中的一项众所周知的功能,可保护根级别的文件,目录和进程免遭修改。通过保护对系统位置的访问并限制运行时对系统进程的附加,它可以作为强大的防御性控件,防止对低级进程进行修改。

为了使示例键盘记录器正常工作,我们需要禁用此功能。去做这个:

1. 重新启动Mac。

2. 重新启动后,立即按住Command-R直到出现Apple徽标。

3. 等待macOS引导进入OS X Utility窗口。

4. 在“实用工具”菜单中,选择“终端”。

5. 键入csrutil disable,然后按Enter。

6. 键入reboot,然后按Enter。

7. 照常登录到Mac。

重要说明:为了您自己的安全,请记住在完成测试后重新启用此功能,请按照上面的步骤进行操作,但请输入csrutil enable步骤5。

Python代码

运行此示例按键记录器所需的python代码在很大程度上依赖于Apple自己的一些类,即NSApplication和NSEvent,我们将通过pyobjc库进行安装。完整的代码可在此处获得,但是我将在下面进行有趣的介绍。

希望使我的应用程序可配置,在这种情况下,我使用ConfigParser来配置我的设置,以将收集的数据写入何处。我还提供了一些默认值,以防配置丢失。

接下来,我们将创建Writer类。此类负责创建日志文件并记录所有收集的击键。

最后,我们来看一下AppDelegate类,该类实际上将收集keydown事件,以及处理程序,该处理程序将解释keydown事件并将结果发送到Writer类的“ write_to_log”方法。

启动脚本

为了确保我们的按键记录器可以运行,我们将使用方便的启动脚本来为我们完成一些设置。您可以在此处查看完整的脚本,出于我们的目的,我将介绍一些有趣的内容。

首先,我们检查macOS版本,以及是否启用了SIP,我们假设此脚本只能在运行10.12及更高版本的系统上运行,并且必须禁用SIP。

接下来,我们尝试将终端应用添加到macOS的辅助设备白名单中。为了使我们的脚本具有捕获通常无法访问的按键事件的权限,这是必需的。在此示例中,我同时添加了Terminal和iTerm2,这是我的选择。如果您使用其他Shell应用程序,则可以在此处添加它。

最后,我们将以静默方式安装python依赖项,并在后台启动python脚本。

测试并清理

查找记录的文件

杀死脚本

假设脚本成功运行,则应该只是在后台运行的python进程。如果您像我一样将python文件命名为“ pkl.py”,则可以运行以下命令将其杀死kill -9 $(ps aux | grep pkl.py | awk ‘{print $2}'。

清理辅助设备白名单

我喜欢通过修改包含这些权限的sqlite数据库来做到这一点,但也可以在“系统偏好设置”中轻松完成此操作。

1. 打开“系统偏好设置”。

5. 单击表下方的“-”按钮,列出具有可访问性的应用程序访问。

上一篇:武契奇:塞尔维亚走“欧洲道路”,将保持军事中立
下一篇:美国4月失业率维持在3.6%
相关文章

 发表评论

暂时没有评论,来抢沙发吧~