只用一個WiFi,滲透進企業全部內網

沉默術士發表於2017-07-03

近年來,黑客通過企業無線網路發起的企業內網滲透事件頻發,在某漏洞平臺檢索時發現僅2015年便發生了數十起知名企業因WiFi相關安全問題導致內網被入侵的事件,對企業造成了十分惡劣的影響。

到了2016年,無線網路已經成為企業移動化辦公的重要基礎設施,但這些無線網路普遍缺乏有效的管理,無線網路也越來越多的成為黑客入侵企業內網的突破口。

天巡實驗室在今年上半年對幾個大中型企業進行了基於無線的安全服務,發現實際情況比想象中更為嚴峻。本次,在得到了其中某一客戶授權情況下,我們將為大家分享一次由無線為入口的黑盒滲透測試。

攻擊過程

我們在目標公司附近發現存在兩個無線網路,經過確認一個是開放式的WiFi,通過Portal進行認證;另一個則是802.1X網路。我們來分別進行檢測。

Portal安全檢測

在連上這個開放式熱點後,跳轉到了Portal認證頁面。

很快我們就發現了一個很普遍的“漏洞”,通過Portal登入返回資訊,可以判斷使用者名稱是否存在。

使用者不存在如下:

使用者存在如下:

根據他們的測試規則,可以看到使用者名稱為姓名全拼。通過使用中國人姓名top1000,利用burp進行了爆破,抓取了一批存在的使用者。我們利用這些存在的使用者進行暴力破解。

可以從上圖看到,對爆破做了限制,但是可以使用“多使用者名稱,單密碼”這樣的策略,不會觸發他們規則。很快獲取到了一個賬戶密碼,登入成功。有很多的Portal的ACL有問題,接入Portal直接分配到的IP可以訪問內網的資源(對於對滲透人來說,能不能上網不關注,我只需要能接入你的內網就行了),如果存在這種情況,就不用非得獲取Portal的使用者名稱密碼。

經過分析發現,這個網路與企業的辦公網路隔離,大致是提供給員工進行日常上網用的。對於這次的滲透目的來說,此網段並不能接觸到我們的目標。我們將目光看向另一個無線網路,這個WiFi使用的是802.1x認證。

802.1x破解

企業在部署802.1X無線網路時,出於相容性及結合域賬戶便利性考慮,一般都會採用PEAP-MSCHAP v2的架構。PEAP的認證過程分為兩個階段:

階段一:伺服器身份驗證和建立TLS隧道。Server向Client傳送證照資訊實現“Client對Server的認證”。

階段二:客戶端身份驗證。在階段一建立的TLS隧道內通過多種認證方法(一般為EAP-TLS 或 EAP-MSCHAPv2)與PEAP共用實現“Server對Client的認證”。

PEAP的問題目前主要出在客戶端對伺服器證照的驗證上,它通過類似SSL機制為認證提供傳輸層的安全,需要企業去向CA購買證照,或者自建PKI系統,簽署用於無線的證照,同時將根證照部署到每個客戶端。大多數企業都選擇自簽名一個證照,但“將根證照部署到每個客戶端”過於繁瑣,被直接忽視。

攻擊手法為建立偽熱點騙取使用者連線建立TLS隧道,在階段二中獲取MSCHAP v2認證時傳輸的賬號hash值,利用字典破解出密碼。

在這裡我們利用hostapd-wpe建立一個1X的同名熱點,我們靜靜的等待周圍下樓來抽菸遛彎的魚兒上鉤即可。

不一會兒,就獲取到了8條hash值。我們先嚐試利用Top100W的字典跑一下,跑不出的話再花十幾元找人跑一下。

比較幸運的是,在嘗試第4條hash時,發現使用了top 100w裡的弱密碼。結合之前明文的使用者名稱,我們可以接入這個無線網路了。

資訊收集

前面說到了,採用PEAP-MSCHAP v2架構的原因之一是可以與域賬戶進行結合,這組賬號密碼同時也是這位員工的域賬號密碼。可以登入公司的OA、郵件等系統。但在其中並未發現到我們想要的一些資訊,暫時放放,看下網段的其他機器。下圖為掃描一下內網中開放http服務的主機。

Jenkins Hack

通過前期的資訊收集,在內網發現一個Jenkins程式。Jenkins是基於Java開發的一種持續整合工具,用於監控持續重複的工作。當jenkins配置不當時,會預設存在一個未授權命令執行漏洞,但經過檢驗管理員已經進行了限制,不能利用。所以為了執行命令,我們需要獲取一個能執行命令的賬戶。

由於配置不當的原因,在未登入的狀態下獲取到了使用者列表。抓取所有使用者名稱後,再次利用Burp來爆破弱密碼,過程略。成功獲取了3個賬號,利用獲取的使用者登入jenkins,訪問xxxx.com/script,如下圖:

可執行命令,低許可權,反彈shell回本地進行提權。由於環境中wget不能使用,使用了Groovy語法把反彈指令碼寫到伺服器。

利用Linux Kernel的本地提權漏洞,我們獲取到了root許可權。下一步便是:收集配置檔案、history、shadow等敏感檔案的資訊。

SSH Key

利用shadow中拿到的密碼,解密後利用Hydra進行網段的SSH批量登入嘗試。在登入到某臺機器之後,竟然發現了一個私鑰檔案。

如果本地用putty使用linux拷貝過來的私鑰檔案,需要使用puttygen.exe進行格式轉換,如上圖的aaaaaa.ppk檔案。

Zabbix

Zabbix是一個基於WEB介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案,常見的漏洞有弱口令(admin Zabbix)、CVE-2013-5743等。

為什麼說Zabbix我最喜歡呢,因為Zabbix在後臺中可自定義指令碼,執行命令(自身包含agent都可)。Zabbix就像一個網咖的網管工具,通過它可以向客戶端傳送任何指令並執行,以黑客的角度來講,這就是一個超級後門。所以,在網段隔離的情況下,只要能搞定Zabbix,幾乎就意味著拿下大批機器。

在利用私鑰登入的某臺機器上便發現存在Zabbix,在配置檔案中找到了Zabbix的server地址,這時候任務轉變為尋找Zabbix的賬戶密碼。我們通過收集之前拿下多臺機器的history中的資訊,對Zabbix進行賬號猜解,最終進入了Zabbix。(這裡為了避免洩漏敏感資訊,放上個來源網路的圖)

結論

1.未設定合理的域密碼策略,導致大量弱密碼存在。

2.內網vlan劃分不嚴格。

3.內網中大量系統補丁不及時。

4.運維人員各系統使用一套密碼。

這次的滲透測試,還做了大量其他的工作,但是因為涉及客戶一些敏感資訊,這裡就不再介紹的那麼詳細,只公開比較核心的地方,還有一些其他的漏洞沒有全部記錄,如ElasticSearch程式碼執行,內部系統SQL隱碼攻擊,共享碟符可寫,JavaDebug等。

但最值得注意的地方或許是文章開始部分的無線網路滲透。雖然針對802.1X的攻擊未在國內普及,但可預見的是缺乏對無線網路做安全防護的企業將會深受其擾。

本文轉自d1net(轉載)


相關文章