成為物理黑客吧!利用樹莓派實現P4wnP1專案進行滲透測試
*本文作者:Milu。,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。
看到標題的各位可能認為物理黑客是這樣的。
當然今天並不是說的上面這種~
大家在小的時候可能在電影中看到過,一個大黑闊從手裡掏出了一個U盤,然後噼裡啪啦的操作一番,某大BOSS電腦就被打開了。在電腦被破解的那一刻,大家是否也想過,總有一天我能不能也能這樣呢?
這樣的U盤就叫badusb,網上有國外團隊做好的成品( Bash Bunny ),然而這個價格實在是感人……
那麼問題來了,作為具有geek精神的(基)機佬,自然要用最低的成本來完成咯。所以筆者發現了P4wnP1這個開源專案。
P4wnP1 is a highly customizable USB attack platform, based on a low cost Raspberry Pi Zero or Raspberry Pi Zero W (required for HID backdoor). P4wnP1是一個高度可定製的USB攻擊平臺,基於低成本的Raspberry Pi Zero或Raspberry Pi Zero W(HID後門所需)。
廢話不多說,我們直接進入主題吧!
需要什麼
樹莓派 Pi Zero W (某寶上有Zero,Zero W,Zero WH,因為我們需要的只有藍芽和wifi故選擇Zero W )
一張microSD(TF)卡(8G就夠用了,大了也可以)
USB擴充套件板【選購】(這樣就可以直接插USB進行資料連線,如果不想買的話你拿micro usb的資料線也是一樣的)
系統:這裡有一個坑,我用最新版的映象系統安裝會出現問題(wifi無法配置連線)… 所以我選擇了2017年的raspbian jessie版本。下載地址: 點我下載 。下載字尾為zip的解壓成img即可
安裝
硬體安裝
由於本人比較嫌麻煩,所以就直接買了帶USB的擴充套件版。以下是安裝好之後的成品~
系統安裝
用到的軟體:win32diskimager 或者 rufus-3.4 ,兩個都可以,這裡貼一個rufus的下載連結。 rufus下載地址
同樣我們裡rufus為例,用讀卡器將TF卡插入電腦,開啟rufus,引導檔案選擇我們下載好的映象檔案,點選開始即可。
大概等個5分鐘左右,映象就寫入完畢了。
Wifi配置
注意: Pi Zero W 只支援2.4G頻率!
寫入映象之後,我們需要對樹莓派的網路連線進行配置。我們開啟boot分割槽,在其根目錄下建立 wpa_supplicant.conf 以及 ssh 檔案(注ssh檔案是沒有後綴名的)
在wpa_supplicant.conf 檔案中寫入你的網路配置,(這一步操作是為了讓你的電腦和樹莓派處於同一個網路環境下,這樣你才能通過ssh連線上),配置格式如下:
network={ ssid="WiFi_name" psk="mypassword" key_mgmt=WPA-PSK priority=1 } network={ ssid="WiFi_name2" psk="password" key_mgmt=WPA-PSK priority=2 scan_ssid=1 }
對以上Wifi配置名稱的解釋:
ssid - wifi名稱 psk - wifi密碼 key_mgmt - 如果你的wifi加密方式使用的WPA/WPA2,該型別為WPA-PSK,若為WEP加密或沒密碼,則為NONE。 priority - wifi優先順序,如果你怕某個WiFi連線不上,則可以配置多個wifi,樹莓派會按照優先順序進行連線。 scan_ssid - 如果你的wifi是隱藏的,則需要指定該值為1
在配置完Wifi後,我們還要在根目錄下建立一個名為 ssh 的空檔案(記住沒有後綴名),配置完後如下圖所示。
做完上述工作後,我們就可以將TF卡插入樹莓派,然後插入電腦。
SSH連線到樹莓派
當我們插上USB後,等待個1-2分鐘,我們就可以在路由器管理介面上找到名為raspberrypi的裝置,找到它的IP,記錄下來。
接下來我們用putty進行ssh連線,用別的ssh軟體也行,我這裡以PUTTY為例:
填上樹莓派的地址,然後連線。賬號為pi 密碼為raspberry。
配置安裝P4wnP1
建議連線後,先改下源。這樣速度快一點(針對國內使用者)
修改源的方法: sudo nano /etc/apt/sources.list 將 deb xxxxx 改成 deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi ctrl+o儲存,ctrl+x退出
配置環境
sudo apt-get update sudo apt-get install git john git clone --recursive http://github.com/mame82/P4wnP1
克隆完畢後,執行下列操作
cd P4wnP1/ ./install.sh
需要經過漫長的等待……在安裝的時候可能會遇到一些安裝詢問,均按預設情況執行即可。
出現這個介面時就代表安裝成功了!
使用
上述步驟完成之後,將樹莓派插入想要入侵的電腦。(這裡以一臺win10的桌上型電腦為靶機)。
連線到一個名為P4wnP1的wifi,初始密碼是:MaMe82-P4wnP1。
連線成功後,我們開啟PUTTY,連線到:172.24.0.1 埠22, 賬號密碼仍然是樹莓派的密碼。
輸入成功後有些會直接進入如下介面。
我們可以進入P4WNP1的安裝路徑,找到 setup.cfg payloads更換:
sudo nano /P4wnP1/setup.cfg
setup.cfg裡面有很多配置,你可以根據需要進行一些修改. 這裡可能會出現一些配置問題,你可以拉到最下面檢視解決方案。
payloads更換
更換payloads需要進入程式的安裝目錄進行更改,但是這裡可能會有一些問題出現,筆者曾經安裝過一次,它的安裝目錄會變到其他位置,但是後面幾次安裝它的安裝目錄仍然在當前目錄下,如果遇到找不到安裝路徑的情況,可以試試以下命令。
sudo find -name P4wnP1
進入到安裝目錄後,對setup.cfg進行修改。
sudo nano /P4wnP1/setup.cfg
到最底部,找到Payload selection:
這裡有很多以#號開頭的payload,意味著他們是未被使用的。該專案只能一次性載入一個payload,所以你選擇了network_only就不能選擇別的payload. 這裡我們以hid_backdoor_remote.txt為例。
首先在network_only前加上#號,再去掉backdoor_remote前的#號。
儲存,退出。 你可以直接reboot,或者拔了資料線再插上去。
當我們再次連線的時候,如果出現如下圖的情況,說明更換成功,你就可以開始搞事情了~
實戰(以hid_backdoor_remote為例)
在進入到P4wnP1 shell時,我們需要先輸入FireStage1,其對靶機進行連線操作。當出現”client connect”字樣時說明連線成功。
P.S:你可以輸入help檢視可以用的命令。
這裡以shell為例,我們輸入shell
可以看到我們正在以當前主機的身份進行了操作。
如果想要退出shell模式,按Ctrl+C即可退出。
以下對一些命令的解釋
SendDuckyScript 傳送鍵盤指令碼 SendMouseScript 傳送滑鼠指令碼 download 下載檔案到樹莓派 upload 上傳檔案到主機 shell 以靶機的身份訪問控制檯 CreateProc 建立程序 (開啟記事本的命令為: CreateProc notepad) sendkeys xxx 傳送‘xxx’鍵盤輸入
其它很多命令的解釋可以在 官方手冊 檢視
在上Win10破解密碼
這個是P4wnP1上比較特別的一個點。但是經過我個人測試之後,其實是存在一定限制的。
簡單的說一下原理,先插好裝置,在輸入密碼進去系統介面時,樹莓派會擷取到有密碼的hash值,然後暴力破解一個一個進行對比… 簡單的字母比如abc,123速度確實很快,但是如果是字母+數字或者又長又複雜的組合密碼可能要破解到猴年馬月了。
假如密碼是弱密碼
我們設定完payloads後,插入電腦。在受害者輸入密碼後,樹莓派會自己利用 John the Ripper 模組進行破解,這個作者在文件說明中也提到了。
you leave P4wnP1 plugged and the hashes are handed over to John the Ripper, which tries to bruteforce the captured hash. If the ´password of the user who locked the box is weakly choosen, chances are high that John the Ripper is able to crack it, which leads to…
例如,筆者靶機上密碼為abc,當插上樹莓派時等待一會,輸入密碼進入windows系統,此時我們用另一臺機子連線到樹莓派的熱點。執行以下命令
cd /P4wnP1/collected ls
在collected資料夾記憶體儲了竊聽到的hash值。如果是弱密碼,在後面會直接生成 .hashes.cracked .此時我們直接檢視即可獲得密碼。
假如密碼是強密碼,且知道密碼的組成
這裡就要推薦一個工具了。 叫hashcat 下載地址 ,它需要GPU進行運算。
將我們得到的hash值,運用下面的命令執行
hashcat64.exe -m 5600 hash.txt -a 3 ?d?d?d?d?d?l?l
解釋一下上面的命令,hash.txt是.hashes檔案中的內容。後面問號表示不同位置密碼的取值範圍。例如上面的例子,密碼的前五位是數字,後兩位是字母。
詳細的解釋可以看這個: 點我
在手機上進行滲透測試
推薦倆APP
安卓:JuiceSSH
蘋果:shelly
遇到的問題
如果真的嫌安裝過程麻煩
作者提供了一個打包好的系統映象,可以直接寫入tf卡。
SSH連線問題
如果遇到SSH拒絕連線,先想想你在配置完WiFi後有沒有建立ssh檔案,如果建立了但還是連不上,你可以重啟一下路由器,看下是否是路由器記錄出現了問題(這種情況會發生在你原來用這個樹莓派裝過系統,但是你重新安裝系統後導致連不上),最後還是不行的話,再重灌系統。
WiFi名設定問題
“為什麼我在 setup.cfg 中修改了wifi名為什麼加載出來的不是我修改的?”.
這是因為在載入payload的時候,專案會先從payload裡面載入一些配置,而payload設定是預設原來setup.cfg中的。如何修改? 註釋掉payload中相應的選項,只要程式發現payload中缺少一些選項的配置(如wifi名,密碼等),程式會自動到setup.cfg補上缺少的選項。
樹莓派沒有開啟熱點模式,仍然是作為wifi連線的情況
sudo -i nano /etc/network/interfaces
將圖中框住的部分刪掉即可
連線成功,但是彈不出主程式shell介面
在靶機上儘量選3.0介面,筆者用2.0的有時候就會出現這樣的情況。
win10破解密碼模式無法獲得hash值
筆者是在鎖屏的狀態下,插上樹莓派,等待了一會後才進入。 有時候會出現一定的延遲,或者壓根不擷取hash值,此時最好先清空collected檔案內的內容,然後將靶機登出再進行嘗試。
參考文件
Snag Windows Passwords With Pi Zero | P4wnp1
*本文作者:Milu。,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。