在網路安全領域,社會工程學仍然是駭客利用人類弱點的有力工具。本文深入探討了我做過的一個社會工程實驗 ,該實驗強調了盲目信任和運行來自未經驗證來源的程式碼所帶來的風險,以及它會帶來多麼嚴重的後果。現在,讓我們回顧一下,問一個有趣的問題:你是否曾被貼上「腳本小子」的標籤,或者被指責過於熱衷於嘗試 GitHub 上最新的駭客腳本?對於許多網路安全愛好者來說,這都是常見的經歷,無論他們是新手還是經驗豐富的老手。我們都經歷過這種情況,興奮地下載工具和腳本,卻總是忽略了其中的細則。

想想看:當你偶然發現一個有趣的工具,聲稱可以破解 Instagram 密碼或解鎖 Facebook 的隱藏秘密時,你的好奇心會倍增。你下載它,運行命令,然後就大功告成了!但你有沒有想過:“這個工具真的像它宣傳的那樣好用嗎?”
說實話,我們大多數人都會跳過程式碼審查,一頭扎進新腳本的興奮中。這就像一盒巧克力,你永遠不知道會是什麼!而這正是樂趣的開始——或者說,在我們這次的駭客攻擊中,陷阱就是從這裡開始的。
想像一下:一個心懷叵測的駭客下載了他們自認為是 Instagram 破解工具的軟體,卻渾然不知自己即將成為受害者。這就像把自己的安全交給魔術師,希望魔術師能變出一隻兔子,結果卻意外地變出一隻兔子。

所以,在我們深入網路安全的「兔子洞」之前,讓我們記住這條黃金法則:始終驗證,始終仔細審查,切勿盲目信任腳本。讓我們相信「零信任規則」。畢竟,在駭客的世界裡,真正的魔力在於領先騙子一步。
透過這次駭客攻擊,我能夠讓 500 多個用戶成為我的受害者,我幾乎擁有他們所有的線上帳戶!
現在讓我們來看看我做了什麼。在我之前的文章 中,我提到我用類似的方法取得了1000多個Instagram帳號。然而,我開始思考為什麼要侷限於Instagram。如果我能存取一個人的所有可能的帳戶呢?起初,這似乎是一項不可能的任務,透過傳統的駭客手段(例如網路釣魚或其他任何手段)。然後,我突然想到——我們經常將線上帳戶憑證保存在瀏覽器中,我自己也不例外。即使人們只保存了部分帳戶,與僅僅一個Instagram帳戶相比,這也是一筆巨大的財富。如果我能使用一種技術來提取某人瀏覽器保存的憑證,我就能存取他們所有保存的帳戶,對嗎?
這就是我的簡單想法。我還有一個條件——我不會主動尋找受害者並鎖定他們。相反,受害者必須主動來找我。這就好比我只需要寫個腳本,坐在椅子上,喝杯咖啡,然後繼續我的日常生活。受害者自然而然地就會來找我,就像蟲子會被陷阱吸引一樣。首先,我需要了解瀏覽器保存密碼的位置及其儲存機制。我最初的研究重點是 Firefox 瀏覽器。我發現 Firefox 將憑證保存在兩個檔案中:logins.json和key4.db,這兩個檔案都以加密形式保存。我還發現它們儲存在 Firefox 的設定檔目錄中。我們可以在 Firefox 的目錄中找到一個名為profiles.ini的文件,並找到這兩個文件的位置。我們稍後會詳細討論這些內容。

「logins.json」檔案儲存與登入相關的訊息,包括網站URL、使用者名稱和加密密碼。另一方面,「key4.db」檔案包含解密「logins.json」中儲存的密碼所需的加密金鑰。這些文件共同構成了Firefox密碼管理系統的重要組成部分,確保使用者憑證得到安全儲存和保護。我假設,如果我取得了目標的這兩個文件,我就可以用自己的logins.json和key4.db文件替換它們,從而解密受害者的密碼和使用者名稱。
在您的收件匣中取得Sethu Satheesh的故事
免費加入 Medium 以獲取該作者的最新消息。訂閱
所以我需要受害者的logins.json和key4.db。所以我編寫了一個腳本來竊取這兩個文件(我們可能可以取得所有其他Firefox文件,例如Cookie資料和其他文件)。不僅可以竊取,還可以從它們那裡竊取資料並發送給我。我最初嘗試使用Telegram機器人發送和接收文件,但失敗了。然後我使用了Discord,效果很好。所以我的腳本會竊取這兩個檔案(logins.json和key4.db)並將其發送到我的Discord伺服器。

所以如果有人執行這個文件,它會迅速地將 login.json 和 key4.db 文件傳送到我的 Discord 伺服器。但我不能告訴任何人運行這個腳本來獲取它們。我使用了一個技巧。類似於上一篇文章的技巧,我編寫了一個惡作劇式的 Instagram 暴力破解模擬器。

乍一看,這是一個 Instagram 密碼暴力破解腳本。但其實這只是個惡作劇,只是把我硬編碼的所有內容都印出來而已。實際上,這背後是我的 Firefox 滲透腳本正在運行。執行這個 Instagram 破解模擬器時,受害者的 login.json 和 key4.db 檔案會很快發送到我的 Discord 上。
這個概念很簡單。透過將我的資料外洩腳本嵌入到看似無害的工具(例如 Instagram 駭客工具)中,我可以誘騙毫無戒心的用戶在不知情的情況下向我發送他們的敏感文件。隨著每次毫無戒心的用戶下載並執行該腳本,我獲得了越來越多用戶的帳戶憑證。
我還用了另一個技巧,有些人下載 GitHub 程式碼之前,只是翻翻白眼。所以我做的是混淆我的 Python 程式碼。
程式碼混淆是將原始程式碼轉換為人類難以閱讀、理解或修改的形式的過程。
因此,如果有人查看我的程式碼,他們只會看到:

這並非什麼硬編碼,很容易逆轉。然而,真正的挑戰在於人為因素。許多駭客新手懶得查看程式碼,即使查看了,由於缺乏編碼知識或從未聽說過混淆技術,也可能無法理解。即使是經驗豐富的駭客,也可能會忽略仔細檢查程式碼,或是懶得解碼混淆腳本。他們常常出於熱情或好奇心運行程式碼,而沒有完全理解其中隱藏的潛在風險。
我把這個腳本發佈到 GitHub 上,並提供了所有安裝和運行的命令。這樣一來,用戶就可以輕鬆複製貼上命令來運行該工具,而無需閱讀程式碼。這利用了人類普遍存在的懶惰心理,而懶惰是社會工程的另一個因素。我成功地將頁面設計得像 Instagram 駭客工具。我添加了主題(例如 YouTube 和 Instagram 上的主題標籤),它就登上了 Instagram 駭客工具搜尋結果的榜首。

如上圖所示,一位用戶從 GitHub 下載了我的工具,並以為它是用來攻擊 Instagram 的,然後運行它,文件很快就被發送到我的 Discord 上。這到底是怎麼回事?一個自以為是駭客的人從 GitHub 下載了一個所謂的駭客工具,用來攻擊他人帳戶,結果自己卻在不知不覺中成了受害者。他們要不是沒讀過,就是根本沒理解我寫的程式碼,落入了我的圈套。這正是這次事件中發生的事。
現在我拿到了這兩份文件,就準備解密了。我找到了一個叫Firefox-decrypt的工具,它可以解密這兩個檔案並顯示已儲存的憑證。用這個技巧,我成功解密並取得了很多人的網路帳號。

由於該工具在 GitHub 上排名靠前,受害者數量日益增加。經過研究和演示後,我已將其從 GitHub 上移除。
身為一個曾經掉進這個陷阱的人,我理解追求便利的誘惑和走捷徑的誘惑。然而,盲目地從 GitHub 頁面複製貼上命令而不驗證其真實性,後果可能不堪設想。在我進行的駭客攻擊中,我成功地利用了人類的這種傾向和心態——不加驗證就輕易相信,不加審查就採取行動。
這次實驗強調了在當今數位環境中提高對社會工程攻擊的警覺性的必要性。
現在你可能已經明白了,像腳本小子一樣,無視程式碼審查,不看程式碼內容就安裝花俏程式碼的嚴重性。攻擊者可能會對你做任何事,實際上,他會逼你這麼做。這就是社會工程的力量,也是人心的弱點。
希望這篇文章至少能讓網路上的某些人大開眼界。