基于SQL觸發(fā)器的服務(wù)器后門 |
發(fā)布時間: 2012/8/11 17:34:17 |
很多東西如果不經(jīng)常去用,沉積在腦袋里的東西就會慢慢沉寂.這個手法很久以前就存在了.昨天寫代碼的時候不得不用到觸發(fā)器實(shí)現(xiàn)某些功能,才想起來利用這個自從觸發(fā)器功能被開發(fā)出來就存在的后門,mssql里其實(shí)可以放置很多后門,比如在sql里創(chuàng)建一個始終存在的遠(yuǎn)程連接之類,當(dāng)然了,今天的題目是觸發(fā)器,其他的暫且放在一邊. 這個后門其實(shí)可用度極廣,通常管理員會把主要精力放在查詢系統(tǒng)用戶,或者是否有黑客添加了sql用戶等狀態(tài)的查詢上,然而對某些庫的權(quán)限做出了改動,往往不是他們注意到的重點(diǎn),我們利用的也正是這一點(diǎn). 假設(shè)我已經(jīng)拿到一臺數(shù)據(jù)庫服務(wù)器,這時我們當(dāng)然可以對數(shù)據(jù)庫完全操作,我們首先需要對master表里的某些我們需要使用的擴(kuò)展存儲過程作出修改,這里當(dāng)然要先用SA身份來執(zhí)行:
語句都很簡單,僅僅是對sp_oamethod賦予guest組用戶的執(zhí)行權(quán)限,這里由于SQL的特殊機(jī)制(我這里是SQL2000 SP4),即使我們賦予了XP_CMDSHELL的執(zhí)行權(quán)限,依然無法在普通用戶下運(yùn)行,若是打算使用,猜想應(yīng)該要重新修改xplog70.dll并創(chuàng)建存儲過程,這是大牛該做的事,與我們無關(guān).暫且略過. 雖然網(wǎng)站和數(shù)據(jù)庫分離的狀況很常見,我們這里先說不分離的時候,我們拿到數(shù)據(jù)庫服務(wù)器權(quán)限,這里當(dāng)然可以隨意查看網(wǎng)站代碼,我以本機(jī)為環(huán)境給大家比較直觀的展示. 存在一個admin表,是存放用戶帳戶的地方,當(dāng)然了,可以是user或者其他表,只是給出一個演示,結(jié)構(gòu)如下: 通常我們以自身的帳戶登陸網(wǎng)站后,都會提供密碼修改的服務(wù),我們這里僅以這點(diǎn)來演示,其他方式可以根據(jù)實(shí)際情況自行研究.我假設(shè)我注冊了一個用戶名為hacker的用戶(這里用戶名越特殊越好,萬一帳戶被刪除,別人搶注的幾率也低),我想通過這里的密碼修改來做一個系統(tǒng)后門,可以先在SQL創(chuàng)建一個觸發(fā)器,內(nèi)容如下:
當(dāng)用戶名為hacker這個用戶把密碼修改為backdoor的時候(這里不要照貓畫虎,我這里密碼直接進(jìn)的數(shù)據(jù)庫沒有經(jīng)過加密,一般的網(wǎng)站代碼會把密碼經(jīng)過加密再寫進(jìn)數(shù)據(jù)庫,可能是md5或者其他加密手段,就需要修改一下了),實(shí)現(xiàn)2個功能: 2.使用sp_oacreate和sp_oamethod創(chuàng)建一個新的用戶名和密碼皆為huangzi的管理員帳戶,這里可以做許多變化,自行研究,這里僅僅是給出方法. 我沒有觸發(fā)條件以前:
隨便修改下密碼,但不觸發(fā)條件:
接下來是把用戶hacker的密碼修改為backdoor,觸發(fā)了條件
可以看到,管理員admin的原始密碼被寫進(jìn)了name字段,現(xiàn)在的密碼為hacker,更重要的是,系統(tǒng)用戶已經(jīng)添加進(jìn)去了. 如果數(shù)據(jù)庫和網(wǎng)站分離的話,可以上網(wǎng)的話比較好辦,寫下載者上遠(yuǎn)控或者端口轉(zhuǎn)發(fā)出來.不可上網(wǎng)的話,我們之前修改了管理員的密碼可以進(jìn)后臺看看有沒有機(jī)會,當(dāng)然了變化很多不是一時半會能講完的,關(guān)鍵看環(huán)境,再決定手法. 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |