鍵盤記錄器可能是要在計算機上使用的比較多的。不幸的是,這種程序通常被很好地隱藏起來,并且常常被受害者完全檢測不到。鍵盤記錄器的核心是一種設備或程序,可記錄您在計算機上鍵入的所有內容。這意味著惡意方可能會記錄和讀取每個密碼,您發送的每個私人消息以及您鍵入的每個搜索。那么如何用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的信息,請繼續關注中培偉業。