綜述
Pwnagotchi 是一個由 Bettercap 驅動的 A2C 的 「AI」,它能夠從周圍的 WiFi 環境中學習,以最大限度地利用它捕獲的可破解 WPA 密鑰材料(通過被動嗅探或執行解除身份驗證和關聯攻擊)。該材料作為可被 hashcat 破解的 PCAP 文件收集在磁碟上,包括完整和半 WPA 握手以及 PMKID。
簡單來說,Pwnagotchi 就是一個能夠幫助你捕獲附近破解WiFi需要的握手包的工具。它的亮點在於採用了不同的情緒和性格來表示程序當前的狀態,會在嗅探握手包時東張西望,會因為沒有收到新鮮的握手包而感到無聊,會因為交到新朋友而感到開心,當然了,偶爾也會摸摸魚......就好像養了一隻電子寵物一樣。
安裝
硬體要求
先按官網要求買一波設備,必備的是帶 WiFi 功能的樹莓派主板、8G 以上空間的 MicroSD 卡和一根 Micro-USB 數據線(不是 Type-C ),其他的可按需購買。
下面是我選用的硬體配置:
硬體要求 | 實際配置 | 價格 | 備註 |
---|---|---|---|
帶 WiFi 功能的樹莓派主板 | 樹莓派 Zero W 帶排針 | 250 | 帶排針後面可以直接接插腳 |
MicroSD 卡8G+ | 閃迪32GB A1 | 27.9 | |
Micro-USB 數據線 | 家裡原有的一根不知名數據線 | 0 | |
電源 | UPS-Lite V1.2 | 95 | 這個型號支持電源顯示 |
I2C 時鐘 | DS1307ZN+/SOIC-8 | 5.3 | 用於同步時間 |
屏幕 | 微雪2.13英寸電子墨水屏V3 | 118 | V3官方還沒支持,要改源文件 |
合計 | - | 496.2 |
Step1-刷入系統
- 下載最新的 Pwnagotchi .img 文件,解壓並驗證 .img 的 SHA-256 校驗和。
- SD卡插入讀卡器連接電腦。
- 使用SD卡刷入工具刷入系統。
不會操作的話,請看MicroSD卡輸入系統教程。
完成這一步就可以插入樹莓派開機了,但這之前還有可選的一步初始配置,同樣可以在讀卡器上進行操作,所以別急著拔卡。當然,這些配置以後也是可以修改的。
Step2-初始配置(可選)
通過讀卡器在SD卡的boot
分區根目錄下創建一個新的config.toml
的文件。該分區是一個簡單的 FAT32,所以基本上所有操作系統都能正常訪問。
在此過程中,你可以定義設備名稱、要列入白名單的網路以及使用的顯示器類型。 以下是帶有 Waveshare V2 顯示器的設備的示例配置:
main.name = "pwnagotchi" # 給它起一個名字
main.lang = "en" # 語言,暫不支持中文
main.whitelist = [ # 白名單設置,防止它攻擊家庭網路,值是WiFi名稱或MAC地址
"EXAMPLE_NETWORK",
"ANOTHER_EXAMPLE_NETWORK",
"fo:od:ba:be:fo:od",
"fo:od:ba"
]
main.plugins.grid.enabled = true # PwnGrid社區選項,類似Pokémon Go,有記分排名,發生一些簡單統計數據
main.plugins.grid.report = true # 完全加入選項,會向 PwnGrid API 發送一些網路的基本信息
main.plugins.grid.exclude = [ # 類似上面白名單,防止報告家庭網路數據
"YourHomeNetworkHere"
]
ui.display.enabled = true # 顯示屏設置
ui.display.type = "waveshare_2" # 微雪v2屏幕,也可以設置其他
ui.display.color = "black" # 黑色顯示,也支持彩色
這個文件會自動安裝到 /etc/pwnagotchi/config.toml
(它會在啟動過程中將其從 SD 卡中 移除 ) 。
第一次開機後,可以打開 /etc/pwnagotchi/config.toml
文件(通過 SSH 或通過帶有讀卡器的計算機直接編輯 SD 卡的內容)以使用自定義值覆蓋默認配置。
更具體的一些配置教程,後面會考慮出。
Step3-USB連接電腦
將MicroSD卡插入樹莓派,不會的話看下圖。
然後使用Micro-USB數據線將數據傳輸介面連接到電腦,見下圖向右數第二個口。
此時查看指示燈,綠燈閃爍或常亮為正常,閃爍說明是在正常讀取內存卡內容。如果是第一次啟動,可能要多等幾分鐘,請不要打斷它,因為它正在生成RSA密匙。
Windows系統
進入控制面板\網路和 Internet\網路連接
查看,此時正常來說會出現一個新的RNDIS網路,如下圖。
沒出現這個網路,有可能是你電腦上沒有這個驅動,請參考這篇文章進行排查:Windows安裝RNDIS驅動教程
請右鍵喚出菜單,依次點擊屬性
>Internet 協議版本 4 (TCP/IPv4)
,將它配置成如下靜態IP地址:
- IP:
10.0.0.1
- 掩碼:
255.255.255.0
- 網關:
10.0.0.1
- DNS(如果需要的話):
8.8.8.8
(或者別的)
然後嘗試ping 10.0.0.2
,如果通的話接下來就可以訪問Web介面或者通過SSH連接了。
Web 介面
瀏覽器打開10.0.0.2:8080
或你之前配置的名稱.local:8080
,這是會彈出驗證對話框,用戶名密碼都是changeme
,然後就進入Web UI界面了。
主頁會顯示當前的一些狀態信息,其他功能請根據官網介紹自行探索。
SSH 連接
PowerShell 下輸入以下命令:
ssh pi@10.0.0.2 # 默認密碼: raspberry
輸入passwd
修改初始密碼。
配置文件在/etc/pwnagotchi/config.toml
,可以根據需要修改。
共享網路
Pwnagotchi 的網卡默認用於監聽網路,因此如果需要連接到網路,需要將PC的網路共享給它。
Step4-插件配置(可選)
使用插件
使用 Web UI 中的插件欄
通過 Web UI 的Plugins
欄可以直接完成一些插件的操作,啟用/禁用、進入插件提供的介面界面。
使用命令行
pwnagotchi 提供了類似 apt 包管理的命令行介面,可以直接使用它完成插件配置,具體用法如下:
用法: pwnagotchi plugins [-h]
{search,list,update,upgrade,enable,disable,install,uninstall,edit}
...
位置參數:
{search,list,update,upgrade,enable,disable,install,uninstall,edit}
search 查找 pwnagotchi 插件
list 列出可用的 pwnagotchi 插件
update 更新插件資料庫
upgrade 更新插件
enable 啟用某個插件
disable 禁用某個插件
install 安裝某個插件
uninstall 卸載某個插件
edit 更改插件選項
可選參數:
-h, --help 顯示幫助選項並退出
插件介紹
默認插件
默認插件由 pwnagotchi
官方倉庫維護,新版可用時會通過 auto-update
插件功能自動更新。
可以在這裡看到它們的源文件:https://github.com/evilsocket/pwnagotchi/tree/master/pwnagotchi/plugins/default
有相關使用教程的插件名稱會在表格中用超鏈接標示出來。
插件腳本 | 描述 |
---|---|
auto-update.py |
當網路連接可用時,自動執行更新命令apt update && apt upgrade 。 |
bt-tether.py |
使顯示器可通過藍牙訪問。 |
gpio_buttons.py |
GPIO 按鈕支持插件。 |
gps.py |
每當捕獲握手包時保存 GPS 坐標。 |
grid.py |
向 api.pwnagotchi.ai 上的 PwnGRID 社區發送單元的加密身份和已加密網路列表(可選)。 |
led.py |
這個插件會根據事件以不同的模式閃爍 PWR led。 |
logtail |
可以通過瀏覽器查看日誌文件。 |
memtemp.py |
添加內存和溫度指示器。 |
net-pos.py |
每當捕獲到握手時保存 WiFi 位置,並在下次互聯網可用時檢索地理位置。 |
onlinehashcrack.py |
自動將握手包上傳到 onlinehashcrack.com 。 |
paw-gps.py |
每當捕獲握手時保存 GPS 坐標。 GPS 數據是從 Android 上的 PAW 獲取的。 |
session-stats.py |
以漂亮的小圖顯示當前會話統計信息。 |
switcher.py |
可以在一段時間內切換到一些非 pwnagotchi 活動。 |
ups_lite.py |
一個為 UPS Lite v1.1 添加電壓指示器的插件。 |
webcfg.py |
使用此插件,您可以通過瀏覽器更改配置。 |
webgpsmap.py |
在地圖上繪製捕獲握手。 |
wigle.py |
自動將收集到的 WiFi 握手上傳到 wigle.net 。 |
wpa-sec.py |
自動將握手上傳到 wpa-sec.stanev.org 。 |
社區貢獻的插件
這些是用戶為 pwnagotchi 貢獻的插件,其中一些還沒有經過開發團隊的完全測試, 使用它們需要自擔風險。
這些插件被收錄在 pwnagotchi-plugins-contrib 倉庫中。
插件腳本 | 描述 |
---|---|
aircrackonly.py |
驗證 pcap 是否包含足夠用於破解的信息(握手包和PMKID) ,否則刪除它。 |
auto_backup.py |
當互聯網可用時備份文件。 |
buttonshim.py |
Pimoroni Button Shim GPIO Button 和 RGB LED 支持插件,基於 pimoroni-buttonshim-lib 和 pwnagotchi-gpio-buttons-plugin。 |
christmas.py |
pwnagotchi 的聖誕節倒數計時器。 |
clock.py |
pwnagotchi 的時鐘/日曆。 |
gpio_shutdown.py |
GPIO 關機插件。 |
handshakes-dl.py |
從 web-ui 下載握手捕獲。 |
hashie.py |
嘗試自動將 pcaps 轉換為可破解的格式。 |
mostodon.py |
定期發布狀態更新。 基於 evilsocket 的 twitter 插件。 |
quickdic.py |
針對捕獲的握手運行快速字典掃描。 |
screen_refresh.py |
X 次更新後刷新電子墨水顯示。 |
telegram.py |
定期向 Telegram 發送有關 pwnagotchi 近期活動的消息。 |
twitter.py |
創建有關 Pwnagotchi 最近活動的推文。 |
Step5-破解WiFi密碼
本地破解
把捕獲的握手包拷貝到電腦上,捕獲的握手包放在 /root/handshakes/
上。
轉換為 hash 格式。
然後使用 hashcat 進行破解。
這裡講的比較簡略,需要的話可以另出教程。
在線破解
利用 onlinehashcrack 等提供 WPA 破解服務的網站進行在線破解。
可選步驟
安裝屏幕
按照你買的屏幕安裝教程進行安裝,部分屏幕 Pwnagotchi 官方做了支持,只需要在config.toml
中ui.display.type
指定配置即可。
目前支持:
waveshare_2
: 微雪 ePaper HAT V2(官方支持和推薦)waveshare_1
:微雪 ePaper HAT V1waveshare27inch
:微雪2.7 英寸墨水屏 HATwaveshare154inch
:微雪1.54 英寸墨水屏模塊 (B)inky
:Pimoroni's Inky pHATpapirus
: PaPiRus Zerooledhat
:Waveshare's OLED Hatdfrobot
:DFRobot 的 eInk Hat
另外,有人做了對微雪2.13寸顯示器V3的支持,具體教程見Add support for Waveshare 2.13inch V3 Rev2.1。
屏幕刷新率可通過ui.fps
指定,默認為0。
以下是以 微雪 2.13寸 顯示器 V2 為例的配置:
ui.display.type = "waveshare_2"
ui.display.color = "black"
本文鏈接:http://www.linuxstory.org/pwnagotchi-installation-tutorial/
轉載請註明出處,否則必究相關責任。