欧美乱码精品一区二区三区,风流少妇又紧又爽又丰满,被债主在夫面前人妻被强,国产精品视频永久免费观看

?
內(nèi)容中心
按關(guān)鍵字查找
利用mysql組合漏洞可獲取系統(tǒng)最高權(quán)限
作者:思成 發(fā)布時(shí)間:2016-11-15

背景介紹

近期白帽黑客達(dá)吾德·古倫斯基連續(xù)發(fā)布了三個(gè)Mysql的安全漏洞——CVE-2016-6662、CVE-2016-6663、CVE-2016-6664,導(dǎo)致Mysql和Mysql的分支MariaDB、Percona Server、Percona XtraDB Cluster主流版本紛紛中招。這三個(gè)安全漏洞單看起來危害程度一般,不過一旦組合使用則威力大增,就算擁有的是操作系統(tǒng)低權(quán)限用戶、數(shù)據(jù)庫低權(quán)限用戶的雙低身份,也可以通過組合利用漏洞獲取數(shù)據(jù)庫服務(wù)器的全部控制權(quán)。

比如,CVE-2016-6663和CVE-2016-6664的組合利用,可以逐步獲得數(shù)據(jù)庫服務(wù)器的root權(quán)限;CVE-2016-6662和CVE-2016-6663的組合利用,同樣可在低權(quán)限情況下獲得root權(quán)限

漏洞利用

如果我們想通過CVE-2016-6662、CVE-2016-6663這兩個(gè)漏洞的組合獲取數(shù)據(jù)庫服務(wù)器的控制權(quán)限,我們需要對(duì)這兩個(gè)漏洞的目標(biāo)稍加分解:CVE-2016-6662的目標(biāo)是通過Mysql權(quán)限拿到rootshell,CVE-2016-6663的目標(biāo)是通過低權(quán)限用戶拿下Mysqlshell。

若想通過CVE-2016-6662拿到rootshell,需要滿足兩點(diǎn):1. Mysql權(quán)限下允許對(duì)my.cnf文件進(jìn)行寫操作。2.my.cnf的寫入內(nèi)容需要追加在后面。不考慮用戶設(shè)置的權(quán)限發(fā)生錯(cuò)誤這種情況,雖然my.cnf文件有多個(gè),但基本都需要在root權(quán)限下方可允許進(jìn)行讀寫操作,Mysql權(quán)限下都無法改寫my.cnf,唯一的特例是data目錄下的my.cnf(盡管目前很多版本已經(jīng)沒有這個(gè)文件了,但Mysql啟動(dòng)的時(shí)候還是會(huì)加載)。這一my.cnf的讀寫權(quán)限是Mysql,且加載順序靠后,里面的配置內(nèi)容不會(huì)被輕易沖掉。

那么,如何在data目錄下創(chuàng)建屬于Mysql權(quán)限的惡意my.cnf文件呢?方式有兩種:

1.通過SELECT '惡意配置內(nèi)容' INTO OUTFILE '/var/lib/mysql/my.cnf' 這種形式創(chuàng)建my.cnf。創(chuàng)建后my.cnf權(quán)限為666,但是Mysql一旦檢測到666權(quán)限則不會(huì)在啟動(dòng)中加載my.dnf文件。只有將my.cnf權(quán)限改造為660,才能完成啟動(dòng)中的文件加載。

2.采用改寫log日志的方式追加

mysql> set global general_log_file = '/var/lib/mysql/my.cnf';

mysql> set global general_log = on;

mysql> select '

    '> 

    '> ; injected config entry

    '> 

    '> [mysqld]

    '> malloc_lib=/var/lib/mysql/mysql_hookandroot_lib.so

    '> 

    '> [separator]

    '> 

    '> ';

1 row in set (0.00 sec)

mysql> set global general_log = off;

這種方式可以直接解決上述方式中的666權(quán)限問題,但同時(shí)也帶來了一個(gè)新問題,即該漏洞需要Mysql的root權(quán)限,否則無權(quán)限執(zhí)行set global general_log等對(duì)全局日志操作的語句。

由此可見,cve-2016-6662漏洞雖然可以獲取root權(quán)限,但因?yàn)槠淇捎梅秶?、限制太多,所以給大家一種很雞肋的感覺。

但cve-2016-6662一旦與CVE-2016-6663結(jié)合發(fā)力,則會(huì)煥發(fā)全部能量。Cve-2016-6663扮演了一個(gè)松綁者的角色,可以幫助CVE-2016-6662解除諸多限制。Mysql在修表過程中,因?yàn)橄到y(tǒng)調(diào)用過程中未對(duì)賦值文件或目錄權(quán)限做全面檢查,導(dǎo)致低權(quán)限用戶控制了Mysqlshell,Cve-2016-6663正好可利用這一點(diǎn),讓黑客有機(jī)可乘,黑客僅需要有一組低權(quán)限操作系統(tǒng)賬號(hào)和一組可以創(chuàng)建表的低權(quán)限數(shù)據(jù)庫賬號(hào)即可。具體做法是:利用系統(tǒng)低權(quán)限賬號(hào)創(chuàng)建一個(gè)文件目錄,把該目錄指定為數(shù)據(jù)庫文件存儲(chǔ)的目錄,然后給這組目錄賦予低權(quán)限賬號(hào)的777權(quán)限,例如:

attacker@debian:~$ mkdir /tmp/disktable

attacker@debian:~$ chmod 777 /tmp/disktable/

接下來,低權(quán)限數(shù)據(jù)庫用戶創(chuàng)建表并修復(fù)表。

創(chuàng)建指定數(shù)據(jù)庫文件置于剛才的文件夾下:

CREATE TABLE poctab1 (txt varchar(50)) engine = 'MyISAM' data directory '/tmp/disktable';

修復(fù)剛創(chuàng)建的表系統(tǒng),會(huì)在不檢查poctab1.MYD表文件權(quán)限的情況下,直接調(diào)用復(fù)制在創(chuàng)建repaired表時(shí)的臨時(shí)文件chmod()權(quán)限。在repaired的過程中系統(tǒng)調(diào)用進(jìn)程 lstat("/tmp/disktable/poctab1.MYD", {st_mode=S_IFREG|0660,st_size=0, ...}) = 0和chmod("/tmp/disktable/poctab1.TMD", 0660) = 0之間產(chǎn)生了條件競爭漏洞。此時(shí)攻擊者只要?jiǎng)h除臨時(shí)表poctab1.TMD,然后通過符號(hào)鏈接在chmod()操作前替換/var/lib/mysql,就能夠完全控制Mysql的data目錄權(quán)限。但此時(shí)拿到的只能是mysqlshell,而非mysql用戶。接下來,通過chmod漏洞復(fù)制一份bash shell用以執(zhí)行命令。此時(shí)shell的權(quán)限是mysql權(quán)限,也就是說至此低權(quán)限用戶可以使用Mysql權(quán)限執(zhí)行命令。此時(shí)執(zhí)行CVE-2016-6662需要的mysql命令,則可以完成由mysqlshell向rootshell的提權(quán)。

安全防護(hù)

CVE-2016-6663和CVE-2016-6662打出的這套組合拳使得低權(quán)限用戶獲得操作系統(tǒng)全部控制權(quán)成為可能。

針對(duì)此次CVE-2016-6662、CVE-2016-6663、CVE-2016-6664的安全威脅,安華金和從專業(yè)角度提出了安全防護(hù)建議,很顯然防范本次mysql漏洞組合拳攻擊的最佳方案就是用戶能第一時(shí)間對(duì)可能存在問題的數(shù)據(jù)庫打補(bǔ)丁,但是鑒于生產(chǎn)系統(tǒng)以及場景的復(fù)雜多樣性,對(duì)數(shù)據(jù)庫進(jìn)行及時(shí)的補(bǔ)丁修正并非易事,所以,可以嘗試使用數(shù)據(jù)庫防火墻來保護(hù)數(shù)據(jù)庫。

大部分?jǐn)?shù)據(jù)庫防火墻擅長做sql語句級(jí)的安全防護(hù)工作,不過,這三個(gè)漏洞主要利用的是數(shù)據(jù)庫文件的某些漏洞,所以大多數(shù)數(shù)據(jù)庫防火墻無法有效應(yīng)對(duì)這種情況。而安華金和的數(shù)據(jù)庫防火墻因?yàn)榫邆淞藬?shù)據(jù)庫外聯(lián)防護(hù)功能,因此可以有效阻止這類漏洞所帶來的風(fēng)險(xiǎn)。當(dāng)黑客入侵后,拿到的只是操作系統(tǒng)的rootshell,而并非root賬號(hào),盡管黑客采用shell反射技術(shù)讓數(shù)據(jù)庫服務(wù)器的rootshell主動(dòng)向自己的機(jī)器發(fā)起請求,但防火墻的數(shù)據(jù)庫外聯(lián)防護(hù)功能可以及時(shí)阻斷異常tcp鏈接,阻止黑客遠(yuǎn)程獲得數(shù)據(jù)庫服務(wù)器的rootshell。

01.jpg

安華金和數(shù)據(jù)庫防火墻的工作模式為:首先捕獲數(shù)據(jù)庫服務(wù)器向外發(fā)送的TCP鏈接,然后通過判斷特征值和特定算法,對(duì)不符合預(yù)期的TCP鏈接確認(rèn)后,直接給數(shù)據(jù)庫服務(wù)器返回拒絕服務(wù),阻止該次shell的反射,防止黑客盜取或偷窺數(shù)據(jù)庫服務(wù)器上的敏感信息。同時(shí)數(shù)據(jù)庫防火墻會(huì)通過短信、郵件等方式向主管人員提交此次攻擊的行為特征、入侵者特征以及安全分析報(bào)告等信息。


?
太保市| 安溪县| 芜湖县| 泽普县| 高尔夫| 双鸭山市| 云霄县| 苏尼特左旗| 密山市| 岳西县| 洛浦县| 弥渡县| 岚皋县| 濉溪县| 开阳县| 两当县| 富裕县| 凤凰县| 邯郸市| 吴川市| 囊谦县| 厦门市| 得荣县| 阆中市| 绵阳市| 东方市| 新化县| 吉安市| 冀州市| 呼玛县| 夏河县| 通化市| 平和县| 行唐县| 库车县| 东阳市| 略阳县| 宁安市| 长宁县| 青浦区| 绥宁县|