最新新闻,最快送达

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

  • 发布时间:2020-10-19
  • 来源:中培教育网

  键盘记录器可能是要在计算机上使用的比较多的。不幸的是,这种程序通常被很好地隐藏起来,并且常常被受害者完全检测不到。键盘记录器的核心是一种设备或程序,可记录您在计算机上键入的所有内容。这意味着恶意方可能会记录和读取每个密码,您发送的每个私人消息以及您键入的每个搜索。那么如何用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代码中注意到了,我正在尝试将数据写入/Library/Caches/com.apple.pkl。这里的想法是尝试将数据写入不明显的地方,例如系统缓存所在的位置。大多数用户永远不会访问此位置,更不用说寻找任何可疑的东西了。

  杀死脚本

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

  清理辅助设备白名单

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

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

  2. 点击“安全和隐私”。

  3. 点击“隐私”标签。

  4. 点击左侧栏中的“辅助功能”。

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

  通过上述介绍,如何用Python编写macOS的基本键盘记录器的信息,相信大家已经请知晓了吧。不过这里需要提醒的是,本文仅用于教育目的,只能在自己的计算机上运行。完成运行后,请确保自己安全以重新启用SIP。想了解更多关于Python的信息,请继续关注中培教育。

近期开班

phone
全国报名服务热线: 400-626-7377
合作伙伴
  • 国际APMG组织
  • 思科(Cisco)
  • 国际OPEN GROUP组织
  • 国家外专局培训中心
  • 上海银行
  • 中国石油管道局工程有限公司
  • 朗新科技
  • 中国国家博物馆
金牌客户
  • 中国石油天然气集团公司
  • 中国农业银行
  • 中国建设银行
  • 波司登集团
  • 浙江移动
合作机构
  • 美国项目管理协会
  • 人力资源和社会保障部
  • 中华人民共和国工业和信息化部
  • 中国计算机技术职业资格网
  • CITIF中国电子信息行业联合会
  • PEOPLECERT
微信公众号
公众号

微信号:zpitedu

  • 中培教育 Copyright © 2006-2020 北京中培伟业管理咨询有限公司 .All Rights Reserved
  • 京ICP备13024721号  gonganimg  京公网安备11010602007294号  增值电信业务经营许可证:京B2-20201348  全国统一报名专线:400-626-7377