少妇尝试黑人粗吊受不了,久久精品免费久精品蜜桃,男受被做哭激烈娇喘gv视频,扒开女人狂c操

?
內(nèi)容中心
按關(guān)鍵字查找
Informix和DB2符號鏈接攻擊解析
作者:思成 發(fā)布時(shí)間:2018-12-27

前言

IBM下有兩款大型關(guān)系型數(shù)據(jù)庫,分別是Informix和DB2。早在2001年和2003年兩款數(shù)據(jù)庫就被爆出存在符號鏈攻擊提權(quán)的問題。尤其2003年Snosoft一口氣發(fā)布了DB2數(shù)個(gè)關(guān)鍵工具存在符號鏈接攻擊提權(quán)的問題。

符號鏈攻擊雖然是一種本地攻擊,但符號鏈攻擊會造成非常嚴(yán)重的安全問題。例如:替換SSH公鑰文件、操作系統(tǒng)敏感信息泄露甚至直接奪取操作系統(tǒng)root權(quán)限。

經(jīng)過十余年的發(fā)展IBM本應(yīng)該消滅了符號鏈攻擊問題。但根據(jù)我們安華金和攻防實(shí)驗(yàn)室研究,發(fā)現(xiàn)各種“姿勢”的IBM數(shù)據(jù)庫符號鏈接漏洞。我們發(fā)現(xiàn)的典型漏洞分別是CVE-2017-1508、CVE-2018-1799、CVE-2018-1780、CVE-2018-1781和CVE-2018-1784

1、符號鏈接簡介

符號鏈接最早出現(xiàn)在4.2的BSD版本中,發(fā)展至今日,基本所有的主流操作系統(tǒng)都在某種程度上支持符號鏈接。符號鏈接(也稱為軟鏈接)是用來讓用戶創(chuàng)建指向另一個(gè)文件或目錄的文件或目錄。例如管理員可以創(chuàng)建一個(gè)名為test的符號鏈指向系統(tǒng)文件/etc/hosts文件。管理員訪問test,等于訪問/etc/hosts文件。

符號鏈接文件實(shí)際上是一種文件系統(tǒng)中的特殊小文件。他們的inode(簡單可以認(rèn)為是linux系統(tǒng)中文件的唯一編號)被標(biāo)為符號鏈接類型。他們的實(shí)際文件內(nèi)容其實(shí)是文件路徑。當(dāng)內(nèi)核解析路徑名時(shí),如果遇到符號鏈接文件,他會讀取符號鏈接中的文件路徑,跟隨一層一層的符號鏈接文件路徑,最終到達(dá)文件。從而獲得到目標(biāo)文件的路徑。

整個(gè)符號鏈接流程如下圖所示:第一步訪問符號鏈接test.txt。第二步從符號鏈接中讀取到文件的路徑。第三步基于第二步拿到的路徑訪問下一個(gè)軟鏈接或文件。第四步經(jīng)過層層抽絲剝繭最終獲得真實(shí)路徑。第五步在獲得真實(shí)路徑后根據(jù)真實(shí)路徑跳轉(zhuǎn)到上級目錄。第六步再從上層目錄跳入下層目錄訪問到要訪問的真實(shí)文件。

 01.jpg

2、符號鏈接攻擊

符號鏈接攻擊的本質(zhì)就是欺騙程序訪問不應(yīng)該訪問的文件。最常見的是用來獲取敏感信息。有時(shí)候經(jīng)過精妙的設(shè)計(jì)可以突破權(quán)限的限制,最終達(dá)到覆蓋文件或奪取更高權(quán)限的效果。

假設(shè)有如下一段代碼,此代碼是用來在主目錄中查看該用戶是否有.optconfig文件。如果文件存在,程序?qū)⒋蜷_該文件并讀入配置條目。大多數(shù)程序員會認(rèn)為只要parse_opt_file()的文件解析功能是安全的,這種行為就是安全可靠的

02.jpg

但如果攻擊者在. Optconfig上做一些手腳。使用命令建立到/etc/shadow(存操作系統(tǒng)密碼的文件) 的軟鏈接(ln -s /etc/shadow ~/.optconfig)。此時(shí)攻擊者在使用上述程序。程序會去解析. Optconfig文件。由于. Optconfig是一個(gè)符號鏈接,所以最終文件解析的是存有密碼hash值的/etc/shadow文件。攻擊者很容易通過這種手段拿到密碼的hash值。威脅整個(gè)操作系統(tǒng)的安全。

3、提權(quán)C位-粘滯位

一次完美的符號鏈接攻擊,除了必須有符號鏈接外,更重要的是要有提權(quán)的渠道。利用程序的粘滯位,是常見的提權(quán)方法。粘滯位加符號鏈接有機(jī)會造成一次本地提權(quán)攻擊。

要解釋清楚懂粘滯位。首先簡單介紹幾個(gè)linux權(quán)限。SUID 是 Set User ID,作用是讓程序執(zhí)行者具有該程序所有者的權(quán)限;如果沒有設(shè)置,程序執(zhí)行者具有執(zhí)行用戶的權(quán)限。SUID 位可以通過 chmod u+s 設(shè)置。

舉個(gè)例子,在Linux中,所有賬號的密碼記錄在 /etc/shadow文件中,并且只有root可以讀寫這個(gè)文件。那么,一個(gè)普通用戶通過命令 passwd 修改自己密碼的過程中肯定就需要寫 /etc/shadow這個(gè)文件,之所以能這么做是因?yàn)?/usr/bin/passwd 設(shè)置了SUID位:

-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd

Linux 內(nèi)核主要是根據(jù) EUID(effective user id) 和 EGID(effective group id) 來確定進(jìn)程對資源的訪問權(quán)限。 如果進(jìn)程對應(yīng)的程序沒有設(shè)置 SUID 或 SGID 位,則 euid=uid egid=gid,分別是執(zhí)行這個(gè)程序的用戶的 uid 和 gid;反之,則 euid 和 egid 變?yōu)槌绦蛩姓叩?uid和 gid。

因此如果能攔截有粘滯位的程序在降低權(quán)限之前,實(shí)施越權(quán)訪問或操作,就很有可能最終獲得root權(quán)限或以root身份進(jìn)行越權(quán)操作。

4、經(jīng)典案例剖析(CVE-2017-1508)

理解了粘滯位和符號鏈接攻擊的原理后,咱們剖析一個(gè)informix的符號鏈接漏洞,來深入理解下這類漏洞的利用“姿勢”。CVE-2017-1508是一個(gè)標(biāo)準(zhǔn)的,通過低權(quán)限用戶越權(quán)非法寫文件,最終奪取操作系統(tǒng)root權(quán)限例子。

Informix中使用oninit程序可以啟動數(shù)據(jù)庫。Oninit啟動數(shù)據(jù)庫的時(shí)候會打開一個(gè)固定名稱為/tmp/jvp.log的文件。如果在這個(gè)被我們用符號鏈替換,就可能造成一次符號鏈接攻擊。更關(guān)鍵的是這個(gè)程序有粘滯位(下圖中權(quán)限S)。粘滯位是為了幫助程序在啟動時(shí)可以使用root權(quán)限完成一些操作。

 03.jpg

除了上述兩點(diǎn)外最重要的是oninit在訪問/tmp/jvp.log時(shí)。并未進(jìn)行降權(quán)處理。于是基于粘滯位、符號鏈接攻擊和未及時(shí)降權(quán)。我們可以對oninit實(shí)施符號鏈接攻擊。

根據(jù)逆向結(jié)果,可以看到訪問/tmp/jvp.log需要開啟環(huán)境變量GLSLOG = “on”。同時(shí)在打開fopen的時(shí)候未做符號鏈接文件的判斷。通過符號鏈接攻擊我們可以以root權(quán)限讀取或?qū)懭肴我馕募?/p>

 04.jpg

5、符號鏈接攻擊提權(quán)

至此符號鏈接攻擊主要還停留在創(chuàng)建、讀取和替換文件內(nèi)容階段。雖然符號鏈接可以通過讀取/etc/shadow獲得hash值。再嘗試通過字典來破解root密碼,但這種方法極不穩(wěn)定又麻煩。這里我給大家演示一種穩(wěn)定提權(quán)到root的方法。

Linux 系統(tǒng)有一個(gè)特點(diǎn),為了方便的給基礎(chǔ)庫或函快速修改的機(jī)會。所以在加載器上開了一個(gè)后門。加載器除了加載一個(gè)程序的動態(tài)庫外還會額外加載系統(tǒng)文件/etc/ld.so.preload 中的動態(tài)庫。而如果在額外加載動態(tài)庫中寫入和系統(tǒng)函數(shù)同名的函數(shù)。又會因?yàn)閘d.so.preload比其他庫早加載,最終導(dǎo)致ld.so.preload中庫的同名函數(shù)函數(shù)覆蓋真正系統(tǒng)上的同名函數(shù)。

05.jpg

由于可以覆蓋同名庫函數(shù),所以我們就可以實(shí)現(xiàn)自己想要實(shí)現(xiàn)的任意功能。有粘滯位的程序基本都會使用geteuid獲取當(dāng)前euid值。我們只要替換掉系統(tǒng)的geteuid。就可以在系統(tǒng)中實(shí)現(xiàn)自己想要執(zhí)行的任意代碼。

如下例利用geteuid實(shí)現(xiàn)一個(gè)永久的bash_shell

06.jpg

6、符號鏈接攻擊的防護(hù)手段

從符號鏈接漏洞到最終獲得root shell。經(jīng)歷了兩個(gè)關(guān)鍵點(diǎn):1.存在粘滯位。2.訪問文件前,未檢查是否是符號鏈接。

第一點(diǎn):粘滯位的問題主要看是否存在必要性如果無必要性就不要使用。SUID尤其是 SUID Root 程序是存在很大風(fēng)險(xiǎn)的。如果程序確實(shí)需要設(shè)置 SUID 位,代碼中不再需要高權(quán)限時(shí)盡快通過調(diào)用 setuid() 降低權(quán)限,也就是使 euid=uid egid=gid。盡量縮短,危險(xiǎn)代碼的時(shí)間。

第二點(diǎn):在需要寫文件時(shí),應(yīng)該先判斷要寫的文件是否是已經(jīng)存在的符號鏈接或硬鏈接文件。如果使用open() 函數(shù),oflag 設(shè)置成O_NOFOLLOW??梢员WC如果是符號鏈接文件,函數(shù)就會返回失敗。防止被符號鏈接攻擊。如果使用fopen()函數(shù)就必須在使用之前利用lstat() 判斷文件的類型。防止被符號鏈接攻擊。

做到上述兩點(diǎn)檢查,可以完全避免符號鏈接的攻擊。至少也能把符號鏈接攻擊限定在一個(gè)非常有限的范圍內(nèi)。


?
中文字幕日本久久2019| 丰满人妻老熟妇伦人精品| 欧美操大白胖逼淫乱视频| 欧美人与拘牲交大全视频| 亚洲中文久久久久久精品| 小雪被老汉玩遍各种方式| 侵犯の奶水授乳日本漫画| 天天爽夜爽免费精品视频| 国内自产少妇自拍区免费| 欧美日韩亚洲精品综合在线| 白洁一夜挨十炮二十章节| 十八禁久久成人一区二区| 国产激情区二区三区成人| 性感美女小逼被操操操操| 久久青青草原精品首页99| 啊啊啊啊,好痛好爽视频| 黄色视频操老师在线观看| 香蕉视频 操 逼 奶子| 国产亚洲欧美综合在线区| 99久久精品免费精品国产| 在线看午夜福利片国产片| 久久精品国产亚洲av波多| 看看男女大长腿操逼的事| av视频在线观看| 91精品全国免费观看青青 | 青青视频在线视频在线视频| 我吸着老师的白嫩大乳漫画| 外国人大鸡吧操女人的逼| 欧美精品1区 2区 3区| 日韩av在线 中文字幕| 草逼爽死+了视频黄片色| 亚洲国产拍拍拍拍久久久| 舔下面喷水视频| 男人插女人屁股视频漫画| 久久亚洲精品色噜噜狠狠| 亚洲精品国产一区二区电影| 国产亚洲欧美另类一级片| 久久久我不卡综合色一本| 99精品国产福利在线观看| 巨大黑人极品videos精品| 无人区码一码二码W358CC|