易搜關鍵詞排名優化 讓客戶更容易搜索到您!

立即致電: 體驗易搜關鍵詞排名優化為您帶來的高效服務。

當前位置:易搜網絡技術公司 >> 關鍵詞排名 >> 關鍵詞排名優化 >> 瀏覽文章

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

文章標簽:干貨,微軟,漏洞,中國,第一,第一人,一人,如何,何用

欣賞器就像一扇窗,通過這扇窗,黑客可以攻入電腦的心臟。

就像情場高手,通過眼睛,融化一小我的心靈。

黃正,百度安全實驗室 X-Team 掌門人。2016年,這個信奉“技術可以改變世界”的低調黑客大牛以一己之力發掘無數欣賞器漏洞,創下了排名微軟 MSRC 2016 年度黑客貢獻榜中國區第一(世界第八)的壯舉。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

從一個安全開發工程師華麗轉身,成為安全研究員,黃正最終站在了中國欣賞器漏洞發掘的巔峰。本期硬創公開課,我們將會請到黃正為小編宅客頻道的讀者童鞋們奉獻一場純干貨——如何用精確的姿勢發掘欣賞器漏洞。

從上萬萬行代碼中,精準地找到那個細小的漏洞,恰如站在萬里之遙,拉弓搭箭。正中靶心。

以下,是小編宅客頻道(公眾號:宅客頻道)誠意奉上的公開課全文及完備 PPT。

關于我本身

我是百度安全實驗室的黃正,在百度參與過網頁掛馬檢測、釣魚欺詐檢測、病毒木馬分析、偽基站檢測、泛站群襲擊、漏洞發掘和漏洞行使等。

在百度做惡意網頁檢測相干的開發工作,可以說是一個職業“鑒黃師”,其實“鑒黃”是一個特別很是有挑釁的事情,天天要檢測幾億/幾十億的網頁,怎樣設計存儲、調度、檢測算法,才能在有限的服務器、帶寬,在有限的時間內檢測完,還要去保證檢出率和誤報率。

所以惡意網頁檢測是一個比較偏工程的方向,我呢照舊有一顆黑客的心,還挑釁一些新的安全技術方向。想去挖漏洞,所以在早期組建安全實驗室團隊時就加入了 X-Team,從安全開發工程師切換到做欣賞器漏洞發掘,今天給大家分享的議題是欣賞器漏洞發掘,盼望大家能有所收獲。

今天先給大家科普一下欣賞器的一些基礎知識,再回顧看一下欣賞器漏洞類型,重點講怎么去做一個 Fuzz 體系,以及分享一些我們曾經發現過的一些漏洞POC,最后再分享一下怎么給微軟、GOOGLE、蘋果報告安全漏洞。

欣賞器基礎知識

首先,欣賞器是干嘛用的。大家都知道是用來看網頁用的,再往底層一點呢,它是把html代碼按照肯定的標準繪制成在屏幕上肉眼可見的圖像用的。

比如,像這段html代碼,欣賞器會按照肯定的標準去把他變成一張肉眼可見的網頁:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

欣賞器廣泛存在各個地方,Windows,Mac OS X,iOS/iPad,Android,Play station(PS 4),QT,ATM。微信里也有欣賞器,可能你天天都在用,但是你不知道。

那么欣賞器是怎么把 Html 代碼渲染成網頁的呢?來看一張欣賞器渲染引擎的結構圖:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

渲染引擎大致可以分成4塊:

HTML詮釋器:將HTML文本詮釋成DOM;

CSS詮釋器:解析CSS,為DOM中的各個元素計算樣式信息;

布局:根據元素與樣式信息,計算大小、位置、布局;

javascript引擎:詮釋js腳本,修改DOM、CSS。

最后使用圖像庫,將布局繪制成圖像效果,也就是人眼看見的網頁。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

什么是DOM樹呢?

DOM樹是把 HTML 文檔呈現為帶有元素、屬性和文本的樹結構。比如以下HTML將被解析成如下DOM樹:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

使用 DOM 給 JS 開放的接口,可以用用 JS 操作 DOM 對象的屬性。這里列舉一些常見的 DOM 方法:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

調用這些 DOM 方法,對 DOM 的修改,最終會表現在繪圖上,也就是肉眼可見的網頁轉變。DOM的標準也在賡續在升級:

DOM level 1、DOM level 2、DOM level 3、DOM level 4...

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

欣賞器是一個很復雜的工程,不僅要去支撐不同時候的DOM標準,而且不同的欣賞器為了讓解析的速度變得更快,讓用戶使用得更方便,在賡續地增長新功能。從13年的消息來看,Chrome 欣賞器的代碼應該至少有1000萬行。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

代碼越多,開發的人員越多,就容易出現安全題目。接著介紹一下欣賞器的漏洞類型,我本身的分類方法,不肯定合理。

欣賞器漏洞類型第一類漏洞是信息走漏漏洞,有以下幾種場景:
  • 比如老的IE欣賞器可以用 JS 檢測是否存在某文件。如許會走漏用戶是否安裝了殺毒軟件,以便進行下一步操作。
  • 有些信息走漏漏洞會走漏內存的信息,攻擊者可能使用走漏的信息來繞過操作體系的珍愛機制,比如:ASLR、DEP 等等。
  • 還有一類信息走漏漏洞:UXSS,通用跨域漏洞。這種跨越域隔離策略的漏洞,可以在后臺偷偷地打開其它域的網頁,把你在其它網站上的數據偷走。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

第二類漏洞是內存破壞漏洞:

內存破壞漏洞又可以細分為釋放后重用漏洞(UAF),越界讀寫漏洞,類型混淆漏洞。越界讀寫漏洞比較神,他也能用來走漏內存信息,所以越界讀寫漏洞特別很是好行使。

第三類漏洞,是國產欣賞器的一些神漏洞,特權域 XSS+特權域 API:

比如搜狗欣賞器欣賞網頁可下載任意文件到任意位置,重啟之后,電腦可能被完全控制。百度欣賞器可靜默安裝插件,且存在目錄穿越漏洞。解壓縮到啟動目錄,重啟之后,電腦被完全控制。

行使這些欣賞器漏洞可以做什么可怕的事情呢?

想像一下:

打開一個網頁,完全控制你的電腦,APT攻擊;

打開一個網頁,完全控制你的手機,監聽通話短信;

打開一個網頁,逃獄你的游戲機,玩盜版游戲;

打開一個網頁,偷走你京東帳號、控制微博帳號…….

我們曾經抓到一個打 DDoS 的懷疑人,他控制了200個肉雞,接單打 DDoS。這200個肉雞天天給他創造2000塊的收入,假如有一套組合的欣賞器0day+一個大站 Webshell,一天上千的肉雞特別很是簡單,日入萬元不是夢,哈哈。。。

欣賞器漏洞發掘方法

那怎么發掘欣賞器漏洞呢?

第一種方法,人工

像Chrome 和 Webkit 這些是開源的,通過理解代碼邏輯來找 Bug。比如 marius.mlynski 讀 Chrome 代碼發現數十個 UXSS 漏洞,每個漏洞Google獎勵 7500 美元。

國產欣賞器的漏洞大多是人工測試出來的,用本身的經驗,逆向分析,手工測試。

第二種方法,主動化 Fuzz

用機器代替身來主動化挖漏洞。

有一些開源的框架可以學習:Grinder、Fileja、funfzz等。我們來看一下一個Fuzz框架是怎樣實現的。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

簡單地說就是控制欣賞器去加載你生成的測試樣本,捕獲導致欣賞器崩潰的樣本,傳回服務器作下一步分析。今天給大家分享一個最簡單的Fuzz框架,一行代碼,啟動調試器打開樣本生成器網頁:

windbg -c “!py chrome_dbg_test.py” -o “C:\Program Files\Google\Chrome\Application\chrome.exe --js-flags=”--expose-gc" --no-sandbox --disable-seccomp-sandbox --allow-file-access-from-files --force-renderer-accessibility http://127.0.0.1/fuzzer.php

詮釋上面的飭令:

使用windbg調試啟動chrome打開樣本生成器http://127.0.0.1/fuzzer.php

http://127.0.0.1/fuzzer.php生成測試樣本并切換樣本。

一個最簡單調試器,十幾行代碼,pydbg 是 windbg 的一個插件,使用它可以編程控制 windbg。

比如用這段代碼,監控調試進程產生的調試事件:

while True:

exc = ?e(".lastevent")

print exc

if exc.find("Exit process") > 0:

os.system("taskkill /F /IM windbg.exe")

觀察windbg收到的調試事件,假如是退出進程事件,那么把windbg退出(同時chrome進程也退出了)。同理,假如windbg收到的調試事件是讀寫內存非常,那就是一個有用崩潰。

這時候你只必要實行windbg飭令r,k,把效果傳回服務器就完成了一個崩潰信息的收集了。

要想發掘欣賞器漏洞,保舉大家去分析以往欣賞器的漏洞,收集一些POC,如許能更好地理解欣賞器漏洞形成的緣故原由以及調試分析方法。來看一個典型IE漏洞的POC:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

所以我們的目標是怎樣去生成有用的、復雜的、測試用例,讓欣賞器崩潰。

我們必要去構建 fuzz 生成算法用的字典,通常可以寫爬蟲到 MSDN、MDN、W3C 去抓取,還有可以用 IDA 分析 mshtml 找隱蔽的屬性鍵值,還可以看欣賞器源碼的頭文件。我們必要去構建周全的字典,去覆蓋欣賞器的各個特征。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

網上也有些主動構建字典的方法,可以參考

var elements = [“abbr”, “acronym”, “address”, “article”, “aside”, “b”……];

for (var i = 0; i

var element = document.createElement(elements[i]);

for (var key in element) {

if (typeof element[key] == "function") {

function_list.push(key);

}

}

構建出來的字典像如許:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

再來一個生成算法,用一個CSS生成算法來舉例,使用剛才收集回來的字典,隨機生成測試用的CSS。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

好了,有了源材料和隨機生成方法,如今你可以生成測試樣本了。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

然而還有一個大題目:

假如只是如許隨機生成,跑一年有可能會出來一個有用的崩潰,這是個很可悲的事情。為什么????

一是由于測試的總樣本集特別很是大,比如一共有110個html標簽的類型,假如我們隨機創建10個,那就是110的10次方種可能,這是個超級大的數,大到你可能永久都跑不完,二是前輩們可能10年前就跑過了,能發現的題目早就報告修復完了。

所以FUZZ的核心是樣本生成算法。

我們必要新的樣本生成策略,去發現別人發現不了的漏洞。曲博在 2014 BlackHat 分享了一個故意思的故事:

曲博他老婆的iPhone屏幕壞了,讓曲博修,他拆開后,裝上了新屏幕,差不多快好了,發現多了兩個螺絲,攝像頭不見了……

最終iPhone廢了

QU BO 得出來的啟示是:

工程師把東西拆開的時候容易犯錯誤,工程師把東西恢復的時候容易犯錯誤。

應用到fuzz這塊,有兩個策略,去做相反的事情,去改變初始的狀況。比如:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

我們應用這種想法也找到了一些漏洞:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

其中在document.execCommand("undo");這塊我們至少收獲了5枚漏洞。但是也有不少撞洞的情況。

所以我們必要樣本生成策略,去發現別人發現不了的漏洞。

我們首先想的是把調用關系做得特別很是深,制造特別很是復雜的回調場景。比如以下這個POC,我們多次在事件相應函數中去觸發另一個事件相應函數,最終導致解析出錯:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

看下這個崩潰的調用棧:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

我們還可以去fuzz別人搞得少的方向。

Fuzz 別人搞得少的方向,第一個是?OBJECT。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 應該是一個欣賞器控件,欣賞器控件是有本身自力的前進、后退功能的,假如與父頁面的前進后退功能混用,會導致題目。

我們整頓了體系中所有clsid:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

在OBJECT這塊我們至少也收獲了5個漏洞。

Fuzz 別人搞得少的方向,第二個是unicode。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

很少看見有人做fuzz的時候會隨機的用一些unicode字符串來測試,我們在這塊收獲了EDGE一個越界讀漏洞。

Fuzz 別人搞得少的方向,第三種是正則表達式。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

fuzz別人搞得少的方向,第四種是JS解析引擎。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

如今JS引擎的內存破壞漏洞越來越多了。我們在這塊也挖到不少漏洞,因為目前還都是 0day 的狀況,所以不拿我們本身發現的 POC 舉例,拿一個 Google Project Zero 分開的 POC 給大家看看長什么樣:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

Fuzz 別人搞得少的方向,第五種是混合生成。

如今許多人生成的fuzz樣本都是用JS生成的,但是對HTML的初始狀況關注并不多,比如我們在初始狀況時加了N個復雜的表格嵌套,也發現了不少的題目。

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

去fuzz特別很是復雜的元素,比如表格、表單、Frame。

表格相干的各種元素都有特有方法,比如insertRow、moveRow、deleteRow,還有表單的特有的屬性和方法,假如跟CSS結合,那么渲染起來就更加復雜了,比如下面這個POC:

純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

通過fuzz特別很是復雜的元素,我們至少收獲了10個漏洞。

去fuzz特別很是復雜的元素,還有CSS。CSS也有許多種操作方法,比如:

style,

obj.style.backgroundColor= "black";

.style1:hover{ background-color:#66B3FF; cursor:pointer;}

obj.style.cssText = "background-color:black; display:block;color:White;

obj.setAttribute("class", "style2");

  • obj.setAttribute("href","css2.css");document.styleSheetsCSS混合生成的方法,我們收獲了幾枚很好行使的類型混淆漏洞。

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課還有,可以去fuzz新的特征,Html5,SVG,WebGL,Chrome 原生支撐的 PDF。怎樣提交漏洞好了,POC分享完了,下面講一下怎么給產商報告漏洞。怎么給微軟提交漏洞

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課細致的是,假如空指針的題目導致體系藍屏的,微軟也會收的。怎么給Google提交漏洞

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課細致Chrome有許多個版本,只有stable版本的才會有CVE。(Canary、Dev、Stable)細致Chrome本身也有fuzz集群,假如你跟他撞洞,Sorry。。。怎么給蘋果提交漏洞

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課好了,我的分享就到這里了。以下是引用的一些參考資料,大家也可以學習一下。

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課Q&A小編()宅客頻道讀者:在欣賞器的漏洞發掘里先生用的最多的工具是神馬。黃正:大部分都是本身寫代碼寫出來的,沒有分外的工具,比如為了方便我們調試,我會寫一個工具來主動配置啟動欣賞器:

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課不知道是否回答了這位同伙的題目,其它的工具用的是 windbg,VS,python,php 等。都是用這些造出來的,沒有效現成的像 sqlmap, burpsuite 那樣的工具。小編宅客頻道讀者:如何評價Pwn2Own2016中360安全衛士11秒攻破chrome?黃正:其實11秒這個數字不緊張,關鍵是攻破了,360牛人多、積累多,從上次他們的博客可以看出,手里有大把的0day,攻破chrome必要許多個漏洞組合,不止是欣賞器漏洞,確實是能力超強啊。小編宅客頻道讀者:深度學習與網絡安全(比如反APT,漏洞發掘等)有沒有很好的結合點?黃正:這個百度已經有了一些嘗試了,百度手機衛士移動端病毒檢測使用百度開源的機器學習平臺paddle對病毒樣本的特性進行深度學習,檢出率在國際權威排名中已經多次世界排名第一,感愛好的可以看一下blackhat Europe 2016王磊的議題。另外,百度安全實驗室也在應用機器學習算法來做撞庫檢測、付出欺詐檢測,結果都很不錯,迎接來交流。小編宅客頻道讀者:八卦一下,黃正先生挖的第一個漏洞是什么?黃正:發現的第一個是釋放后重用漏洞,我可以細致說一下我從安全工程怎樣革本身的命要搞漏洞的,并最終搞出來的。成立安全實驗室后,我給本身定的KPI是半年內,要搞通欣賞器漏洞分析方法,搭建欣賞器 Fuzz,并且挖出一個欣賞器漏洞。壓力大啊,沒有人帶我,完全本身搞,天天都在賡續地學習,一直地嘗試修改生成算法,賡續地去網上爬資料找POC,3個月曩昔了,一個漏洞都沒發現,我想這下完了,年終獎要沒了。后來終于在使用 setTimeout 來改變 location 發現了第一個可以穩固崩潰的 POC。并且是可行使完全沒有任何珍愛機制防護的,下一步就是去精簡樣本,當時很土,手工慢慢刪,最終受不了了寫了主動化精簡樣本的腳本,然后就提交了,完成了半年發現一個漏洞 KPI。這是我的第一個漏洞:

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課小編:許多同窗都想成為黃正先生一樣的漏洞發掘大牛。對于這些同窗,黃先生有什么干貨的建議嗎?黃正:別停頓于想法,趕快去做,哈哈,網上資料多得是。看看我打印的學習資料,這還只是一部分:

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

    純干貨微軟漏洞中國第一人黃正——如何用精確姿勢發掘欣賞器漏洞附完備 PPT|硬創公開課

  • 注:相干網站建設技巧閱讀請移步到建站教程頻道。

    大圣捕鱼最新手机版下载 快乐10分奖金计算 大乐透复式投住方法 奥博真人龙虎斗注册 手机捕鱼送分可提现金 浙江快乐12彩开奖结果 广东36选7什么时候开奖 博远棋牌客户端 秒速飞艇全天计划群 德国乐透彩票大奖号码 上海时时乐走势图图感觉 当主播怎么这么赚钱 华东15选5开奖结果开奖直播 幸运pc蛋蛋走势图 黑龙江11选5前三直遗漏数据 双色球红球6分区基本走势图 真人龙虎斗怎么玩才能赢