近年來,黑客通過企業無線網絡發起的企業內網滲透事件頻發,在某漏洞平臺檢索時發現僅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的攻擊未在國內普及,但可預見的是缺乏對無線網絡做安全防護的企業將會深受其擾。
對于802.1X網絡滲透更詳細的介紹,可以參考之前所發的《企業級無線滲透之PEAP》
* 作者:360天巡實驗室(企業賬號),轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)