軟件漏洞分析入門
[
引子
]
1?
引子
?
To?be?the?apostrophe?which?changed?“Impossible”?into?“I’m?possible”
?
——?failwest
?
?
涼風(fēng)有訊,秋月無邊。
?
您是否夢(mèng)想過能夠像電影上演的那樣黑進(jìn)任意一臺(tái)機(jī)器遠(yuǎn)程操控?您的夢(mèng)想是否曾經(jīng)被書店里邊滿架子的反黑,防毒,擒木馬的掃盲書強(qiáng)暴的體無完膚?
?
從今天開始,準(zhǔn)備陸續(xù)發(fā)一系列關(guān)于軟件漏洞方面基礎(chǔ)知識(shí)的帖子,包括軟件漏洞的研究?jī)r(jià)值,研究方法,堆棧利用的基礎(chǔ)知識(shí),shellcode的調(diào)試方法,漏洞調(diào)試方法,漏洞分析,漏洞挖掘,軟件安全性測(cè)試等等,此外還將介紹一些metasploit架構(gòu)和fuzz測(cè)試方面的入門知識(shí)。
?
軟件漏洞分析,利用,發(fā)掘是當(dāng)今安全技術(shù)界中流砥柱級(jí)別話題,如果您關(guān)注過black?hat或者defcon之類的頂級(jí)安全技術(shù)峰會(huì)的話,就知道我不是在吹牛了。可惜的是這方面的中文資料很少,偶爾有一篇比較優(yōu)秀的文章但又不夠系統(tǒng),目前為止也沒有形成像破解技術(shù)這樣的討論風(fēng)氣,菜鳥們?cè)诤跓粝够鸬囊雇硐拐垓v,沒有交流和指導(dǎo),興趣就像被拔了氣彌兒芯的車胎,很快就泄氣了。
?
雖然漏洞分析與利用與破解在技術(shù)上各有側(cè)重點(diǎn),但逆向基礎(chǔ)是共同的。以我個(gè)人的經(jīng)驗(yàn),能做crack的朋友只要稍加進(jìn)修就能入門。就算沒有任何匯編基礎(chǔ)和逆向經(jīng)驗(yàn)的朋友也不用擔(dān)心,因?yàn)檫@個(gè)系列的文章將完全面向菜鳥,只要會(huì)C語言,跟著文章用ollydbg調(diào)試幾次連猜帶蒙的也應(yīng)該能夠上手。
?
今天我們暫時(shí)不談堆棧這些技術(shù)細(xì)節(jié),先讓我們從比較宏觀的地方著手。
?
如果您經(jīng)歷過沖擊波蠕蟲病毒的攻擊話,應(yīng)該明白操作系統(tǒng)出現(xiàn)漏洞時(shí)的后果。
?
漏洞往往是病毒木馬入侵計(jì)算機(jī)的突破口。如果掌握了漏洞的技術(shù)細(xì)節(jié),能夠?qū)懗雎┒蠢茫╡xploit),往往可以讓目標(biāo)主機(jī)執(zhí)行任意代碼。
?
軟件漏洞的技術(shù)細(xì)節(jié)是非常寶貴的資料,尤其是當(dāng)軟件漏洞對(duì)應(yīng)的官方補(bǔ)丁尚未發(fā)布時(shí),只有少數(shù)攻擊者秘密的掌握漏洞及其利用方法,這時(shí)往往可以通過漏洞hack任意一臺(tái)internet上的主機(jī)!
?
這種未被公開的漏洞被稱作zero?day?
(
0?
day
)
。可以把
0day
理解成未公開的系統(tǒng)后門。由于
0day
的特殊性質(zhì)和價(jià)值,使得很多研究者和攻擊者投身于漏洞挖掘的行列。一個(gè)
0day
漏洞的資料根據(jù)其影響程度的不同,在黑市上可以賣到從幾千元到幾十萬元不等的價(jià)錢。因此
0day
一旦被發(fā)現(xiàn)往往會(huì)被當(dāng)作商業(yè)機(jī)密,甚至軍事機(jī)密~~~~如果把沖擊波蠕蟲的shellcode從原先的一分鐘倒計(jì)時(shí)關(guān)機(jī)改為窮兇極惡的格式化硬盤之類~~~~~那么花一百萬買這樣一個(gè)電子炸彈可比花一百萬買一枚導(dǎo)彈來得劃算~~~~~~試想一下某天早上起來發(fā)現(xiàn)全國(guó)的windows系統(tǒng)都被格式化,計(jì)算機(jī)系統(tǒng)完全癱瘓?jiān)斐傻挠绊懞鸵活w導(dǎo)彈在城市里炸個(gè)坑造成的影響哪個(gè)更嚴(yán)重?
?
在今天這一講的最后,讓我們回顧一下幾個(gè)可能曾經(jīng)困惑過您的問題:
?
我從不運(yùn)行任何來歷不明的軟件,為什么還會(huì)中病毒??
?
如果病毒利用重量級(jí)的系統(tǒng)漏洞進(jìn)行傳播,您將在劫難逃。因?yàn)橄到y(tǒng)漏洞可以引起計(jì)算機(jī)被遠(yuǎn)程控制,更何況傳播病毒。橫掃世界的沖擊波蠕蟲,slamer蠕蟲等就是這種類型的病毒。?
如果服務(wù)器軟件存在安全漏洞,或者系統(tǒng)中可以被RPC遠(yuǎn)程調(diào)用的函數(shù)中存在緩沖區(qū)溢出漏洞,攻擊者也可以發(fā)起“主動(dòng)”進(jìn)攻。在這種情況下,您的計(jì)算機(jī)會(huì)輕易淪為所謂的“肉雞”。
?
我只是點(diǎn)擊了一個(gè)URL鏈接,并沒有執(zhí)行任何其他操作,為什么會(huì)中木馬??
?
如果您的瀏覽器在解析HTML文件時(shí)存在緩沖區(qū)溢出漏洞,那么攻擊者就可以精心構(gòu)造一個(gè)承載著惡意代碼的HTML文件,并把其鏈接發(fā)給您。當(dāng)您點(diǎn)擊這種鏈接時(shí),漏洞被觸發(fā)從而導(dǎo)致HTML中所承載的惡意代碼(shellcod)被執(zhí)行。這段代碼通常是在沒有任何提示的情況下去指定的地方下載木馬客戶端并運(yùn)行。
?
此外,第三方軟件所加載的ActiveX控件中的漏洞也是被“網(wǎng)馬”所經(jīng)常利用的對(duì)象。所以千萬不要忽視URL鏈接。
?
Word文檔、Power?Point文檔、Excel表格文檔并非可執(zhí)行文件,他們會(huì)導(dǎo)致惡意代碼的執(zhí)行嗎?
?
和html文件一樣,這類文檔本身雖然是數(shù)據(jù)文件,但是如果Office軟件在解析這些數(shù)據(jù)文件的特定數(shù)據(jù)結(jié)構(gòu)時(shí)存在緩沖區(qū)溢出漏洞的話,攻擊者就可以通過一個(gè)精心構(gòu)造的word文檔來觸發(fā)并利用漏洞。當(dāng)您在用office軟件打開這個(gè)word文檔的時(shí)候,一段惡意代碼可能已經(jīng)悄無聲息的被執(zhí)行過了。
?
好,第一講暫時(shí)結(jié)束,如果您有興趣,不妨關(guān)注一下這個(gè)系列,說不定聽完幾講之后會(huì)深深的愛上這個(gè)門技術(shù)。
?
順便預(yù)告一下本系列講座的內(nèi)容:
2_
漏洞利用,分析,挖掘概述
3_
初級(jí)棧溢出A
4_
初級(jí)棧溢出B
5_
自制簡(jiǎn)單的shellcode
6_
初級(jí)棧溢出C
7_windows
下shellcode的開發(fā)
在后面嘛,還沒確定下來,大概會(huì)給幾個(gè)真實(shí)的windows漏洞調(diào)試案例,給大家一起交流
?
歡迎大家踴躍討論,積極討論,大肆討論,猛烈討論