華文網

如何快速使用伏特自檢WebLogic安全性漏洞

科普下黑產攻擊者自動化

徐玉玉學費被騙致死,比特幣勒索病毒WannaCry全球爆發,網站木馬造成信用卡被盜刷……近年來,因網路漏洞導致的惡性安全事件時有發生,影響到人們生活的方方面面。

同時,蠕蟲病毒、勒索軟體、網站篡改、入侵物聯網設備等新的網路攻擊形式也在不斷變化和增加,破壞性加劇。

黑產攻擊者非常喜歡使用粗暴的漏洞進行批量化,從安識科技應急回應處理的數百個案例來看,攻擊者大多數是利用redis,docker等未授權,java RMI命令執行漏洞,反序列化漏洞,ssh,mysql,rdp,Tomcat等弱口令自動化攻擊,自動化執行DDOS或者挖礦程式,甚至是勒索軟體病毒加密,給企業造成巨大的危害。

越發嚴峻的資訊安全形勢,促使網路安全市場發展提速。部分中小企業,安全意識薄弱,預算少且缺乏運營團隊,面臨著突出的安全風險,進而對全行業構成隱患。如何打破邊界,開放合作,建立全產業聯動的安全生態新模式,成為業界關注的焦點,保護商業大環境的安全已經迫在眉睫。

簡介下WebLogic WLS 組件命令執行漏洞

漏洞名稱WebLogic WLS 組件命令執行漏洞漏洞描述CVE-2017-10271是一個最新的利用Oracle WebLogic中WLS 元件的遠端代碼執行漏洞,
屬於沒有公開細節的野外利用漏洞,大量企業尚未及時安裝補丁。官方在 2017 年 10 月份發佈了該漏洞的補丁。潛在危害該漏洞的利用方法較為簡單,攻擊者只需要發送精心構造的 HTTP 請求,就可以拿到目標伺服器的許可權,危害巨大。攻擊者能夠同時攻擊Windows及Linux主機,並在目標中長期潛伏。修復建議登錄Oracle官方網站,下載WebLogic十月份補丁並安裝

攻擊POC如下:

POST /wls-wsat/CoordinatorPortType?wsdl HTTP/1.1Host: www.secpulse.com:7001Accept-Encoding: identityContent-Length: 826Accept-Language: zh-CN,zh;q=0.8Accept: */*User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3Connection: keep-aliveReferer: http://www.baidu.comCache-Control: max-age=0Content-Type: text/xmlX-Forwarded-For: 127.0.0.1 /bin/bash -c curl http://www.secpulse.com:9090/

安識的老司機分分鐘就寫好了個py小工具,搭建了個漏洞環境進行了成功複現測試。

但是如何把這個外掛程式合理化、專業產品化輸出到伏特分散式漏洞掃描平臺給廣大廠商自檢自查呢?

突如其來的伏特簡介

文字太累,要說的話都在圖裡面啦。

快速使用伏特自檢WebLogic安全性漏洞

伏特分散式漏洞掃描雲平臺支援生態外掛程式功能,裡面有大量安全專家編寫的外掛程式功能,這些外掛程式在伏特後端智慧載入到主被動掃描引擎,從而為企業檢測出安全性漏洞並且提供專業修復意見協助漏洞修復。

企業可以快速方便的在伏特選擇某一個外掛程式進行批量高級掃描,或者選擇某一個埠進行弱密碼相關爆破。

如我們的demo外掛程式案例(Zookeeper未授權訪問漏洞)寫法:

#!/usr/bin/env python#coding:utf-8from dummy import *import socketclass TScript_Info(): def __init__(self, request=None, response=None): self.info = {} self.info['auther'] = "安識小王子" # 外掛程式作者 self.info['create_date'] = "2017-07-01" # 外掛程式編輯時間 self.info['algroup'] = "Zookeeper未授權訪問" # 漏洞名稱 self.info['affects'] = "資訊洩露" # 漏洞影響 self.info['parameter'] = "zookeeper_unaccess_script" # 外掛程式名稱 self.info['desc_content'] = "該漏洞會洩露伺服器環境變數配置資訊, 為攻擊者下一步提供資訊!" # 漏洞描述 self.info['impact_content'] = "洩露系統敏感資訊,如應用絕對路徑、代理配置資訊等。" # 潛在危害 self.info['recm_content'] = "設置IP白名單訪問或對進行授權限制。" # 修復建議 self.info['request'] = request # http請求資訊, 預設為空 self.info['response'] = response # http回應信息, 預設為空def assign(service, arg): # 此函數為檢測服務類型是否符合預期 """ 1. 系統調用payload前,首先會判斷服務類型(外掛程式調用前會進行cms指紋識別),如果符合服務類型,則會繼續進行檢查。 2. 如果目標為web服務,但未檢測出更精確cms指紋, 預設會給出www服務類型。 3. 如果目標為其他服務, 如ssh、mysql等,默認會給一個IP的服務類型。 4. 因此如果您的外掛程式需要檢測web相關漏洞,可指定對應的service為www或更精准的類型如phpmyadmin,如果不確定能識別到該cms指紋, 直接填www即可。 反之,如果是檢測服務漏洞,填寫service為ip即可。 """ if service.lower() == 'ip': # 這裡檢測的時目錄穿越漏洞, 屬於web漏洞, 因此這裡選擇servive為www return True, arg else: return False, Falsedef audit(arg): # 此函數為驗證具體漏洞 if arg: try: socket.setdefaulttimeout(2) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((arg, int(2181))) flag = "envi" s.send(flag) data = s.recv(1024) s.close() if 'Environment' in data: warning_info = arg + ' ' + "Zookeeper Unauthorized access" _t = TScript_Info(response=data) security_warning(warning_info, _t.info) print warning_info, data except: passif __name__ == '__main__': audit(assign('ip', 'www.secpulse.com')[1])

那如何寫好“WebLogic WLS 組件命令執行漏洞”外掛程式呢?

主要思路還是依據上述漏洞POC模擬發送curl命令,然後去我們的dnslog平臺捕獲結果自動化回饋確認。

部分代碼如下:

如下圖 我們在伏特分散式漏洞掃描平臺裡面成功使用該外掛程式發現WebLogic WLS 元件命令執行漏洞"漏洞,並且合理全面的告知企業。

目前伏特分散式漏洞掃描平臺已經集成數千枚專業的安全外掛程式。

so,快來體驗一下伏特分散式漏洞掃描平臺吧!

企業可以快速方便的在伏特選擇某一個外掛程式進行批量高級掃描,或者選擇某一個埠進行弱密碼相關爆破。

如我們的demo外掛程式案例(Zookeeper未授權訪問漏洞)寫法:

#!/usr/bin/env python#coding:utf-8from dummy import *import socketclass TScript_Info(): def __init__(self, request=None, response=None): self.info = {} self.info['auther'] = "安識小王子" # 外掛程式作者 self.info['create_date'] = "2017-07-01" # 外掛程式編輯時間 self.info['algroup'] = "Zookeeper未授權訪問" # 漏洞名稱 self.info['affects'] = "資訊洩露" # 漏洞影響 self.info['parameter'] = "zookeeper_unaccess_script" # 外掛程式名稱 self.info['desc_content'] = "該漏洞會洩露伺服器環境變數配置資訊, 為攻擊者下一步提供資訊!" # 漏洞描述 self.info['impact_content'] = "洩露系統敏感資訊,如應用絕對路徑、代理配置資訊等。" # 潛在危害 self.info['recm_content'] = "設置IP白名單訪問或對進行授權限制。" # 修復建議 self.info['request'] = request # http請求資訊, 預設為空 self.info['response'] = response # http回應信息, 預設為空def assign(service, arg): # 此函數為檢測服務類型是否符合預期 """ 1. 系統調用payload前,首先會判斷服務類型(外掛程式調用前會進行cms指紋識別),如果符合服務類型,則會繼續進行檢查。 2. 如果目標為web服務,但未檢測出更精確cms指紋, 預設會給出www服務類型。 3. 如果目標為其他服務, 如ssh、mysql等,默認會給一個IP的服務類型。 4. 因此如果您的外掛程式需要檢測web相關漏洞,可指定對應的service為www或更精准的類型如phpmyadmin,如果不確定能識別到該cms指紋, 直接填www即可。 反之,如果是檢測服務漏洞,填寫service為ip即可。 """ if service.lower() == 'ip': # 這裡檢測的時目錄穿越漏洞, 屬於web漏洞, 因此這裡選擇servive為www return True, arg else: return False, Falsedef audit(arg): # 此函數為驗證具體漏洞 if arg: try: socket.setdefaulttimeout(2) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((arg, int(2181))) flag = "envi" s.send(flag) data = s.recv(1024) s.close() if 'Environment' in data: warning_info = arg + ' ' + "Zookeeper Unauthorized access" _t = TScript_Info(response=data) security_warning(warning_info, _t.info) print warning_info, data except: passif __name__ == '__main__': audit(assign('ip', 'www.secpulse.com')[1])

那如何寫好“WebLogic WLS 組件命令執行漏洞”外掛程式呢?

主要思路還是依據上述漏洞POC模擬發送curl命令,然後去我們的dnslog平臺捕獲結果自動化回饋確認。

部分代碼如下:

如下圖 我們在伏特分散式漏洞掃描平臺裡面成功使用該外掛程式發現WebLogic WLS 元件命令執行漏洞"漏洞,並且合理全面的告知企業。

目前伏特分散式漏洞掃描平臺已經集成數千枚專業的安全外掛程式。

so,快來體驗一下伏特分散式漏洞掃描平臺吧!