999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

突破防護措施的shellcode技術(shù)研究

2007-12-31 00:00:00王永杰肖順平
計算機應(yīng)用研究 2007年11期

摘要:緩沖區(qū)溢出漏洞是軟件系統(tǒng)中存在的最普遍的安全漏洞之一。各種防護措施大大增加了緩沖區(qū)溢出攻擊利用的難度,但是它們沒有從根本上解決問題,攻擊者利用各種手段仍可使攻擊成功。從攻擊者的角度出發(fā),總結(jié)了近年來緩沖區(qū)溢出漏洞攻擊利用技術(shù)發(fā)展的情況,主要對溢出后突破防護措施的shellcode技術(shù)進(jìn)行了詳細(xì)介紹和分析。

關(guān)鍵詞:緩沖區(qū)溢出; 凈荷; 多態(tài)外殼碼; 堆棧保護

中圖分類號:TP393.08文獻(xiàn)標(biāo)志碼:A

文章編號:1001-3695(2007)11-0146-04

緩沖區(qū)溢出漏洞(buffer overflow flaw)是軟件系統(tǒng)中存在的最普遍的安全漏洞之一。自1998年開始,CERT/CC所發(fā)布的公告中,緩沖區(qū)溢出漏洞都要占漏洞總數(shù)的50%以上。更為嚴(yán)重的是,緩沖區(qū)溢出攻擊占了遠(yuǎn)程網(wǎng)絡(luò)攻擊的絕大多數(shù)[1]。攻擊者若成功利用這類漏洞可以取得被攻擊程序的運行權(quán)限,從而有可能獲得系統(tǒng)的root權(quán)限或為進(jìn)一步攻擊提供基本的訪問權(quán)限。

緩沖區(qū)溢出漏洞的大量存在、攻擊利用非常簡單、攻擊效果十分明顯對信息系統(tǒng)的安全構(gòu)成了重大的威脅。安全研究人員對緩沖區(qū)溢出漏洞的檢測和防護進(jìn)行了廣泛和深入地研究,安全廠商也生產(chǎn)了相應(yīng)的產(chǎn)品。這些技術(shù)產(chǎn)品有效阻止了此類漏洞的攻擊利用或給攻擊利用增加了極大的難度。然而在過去的十多年里,在緩沖區(qū)溢出攻擊方面,攻擊者陸續(xù)發(fā)現(xiàn)了一些新的方法;在溢出后利用方面主要指shellcode,針對各種防護措施進(jìn)行了不斷的改進(jìn)。

1緩沖區(qū)溢出漏洞的攻擊技術(shù)發(fā)展

早在20世紀(jì)80年代初,國外就有人開始討論溢出攻擊。1988年的Morris蠕蟲就利用了UNIX系統(tǒng)上Fingerd守護進(jìn)程的緩沖區(qū)溢出[2]。溢出漏洞是由于向固定長度緩沖區(qū)寫入數(shù)據(jù)時編程人員未對此進(jìn)行邊界檢查或邊界檢查錯誤產(chǎn)生的。一旦發(fā)現(xiàn)漏洞,攻擊者會寫出相應(yīng)的攻擊代碼(exploit)。攻擊代碼的工作主要是向緩沖區(qū)中輸入精心構(gòu)造的代碼(shellcode),對一些重要的系統(tǒng)數(shù)據(jù)(如返回地址和堆管理數(shù)據(jù)結(jié)構(gòu))進(jìn)行改寫,控制程序的流程跳轉(zhuǎn)到那段代碼上來執(zhí)行,完成攻擊者預(yù)先設(shè)定的任務(wù)。因此從功能角度攻擊代碼可分為三個部分[3], 即攻擊向量(attack vector)、溢出方法(exploitation technique)、溢出負(fù)載(exploitation payload)。

通常意義的攻擊向量指的是攻擊者用來獲得對計算機或者網(wǎng)絡(luò)服務(wù)器非正常訪問的一種手段,從而可在目標(biāo)主機中植入攻擊負(fù)載進(jìn)行破壞活動。從這個意義上,可以把攻擊向量比做彈體,攻擊負(fù)載比做彈頭。彈體的目的是為了把彈頭運輸?shù)街付ǖ攸c,而真正起破壞作用的部分還在彈頭部分。攻擊向量通常包括漏洞、電子郵件附件、網(wǎng)頁、即時消息、聊天室以及其他的欺騙方法;而最常見的攻擊負(fù)載就是病毒,如特洛伊木馬、蠕蟲以及間諜軟件。

上面提到的攻擊向量是與整個攻擊過程相對的概念,它包括了漏洞。這里所指的攻擊向量是與漏洞相關(guān)的概念,實際上這時可以稱之為攻擊點或攻擊路徑。通常一個漏洞對應(yīng)一個攻擊向量,但有時也可對應(yīng)多個攻擊向量。微軟在2003年7月16日發(fā)布了MS03-26的公告和修補程序以修正Windows分布組件對象模型(DCOM)遠(yuǎn)程過程調(diào)用(RPC)接口中的安全漏洞[4]。RPC是Windows 操作系統(tǒng)使用的一種遠(yuǎn)程過程調(diào)用協(xié)議,RPC提供進(jìn)程間交互通信機制。由于Windows RPC DCOM接口對報文的長度缺乏檢查從而導(dǎo)致基于堆的溢出,遠(yuǎn)程攻擊者成功利用此漏洞可以本地系統(tǒng)權(quán)限在系統(tǒng)上執(zhí)行任意指令。攻擊者可以從多條路徑即多個攻擊向量利用此漏洞,攻擊者只要能夠?qū)⑻刂普埱蟀l(fā)送到遠(yuǎn)程計算機上的端口135、139、445或任何其他專門配置的RPC端口,就可能成功利用此漏洞以本地系統(tǒng)權(quán)限執(zhí)行任意指令。

溢出方法即漏洞利用方法,用于控制目標(biāo)進(jìn)程轉(zhuǎn)到指定位置。經(jīng)過十多年的發(fā)展,出現(xiàn)了許多新的緩沖區(qū)溢出漏洞利用方法。根據(jù)漏洞利用產(chǎn)生的先后順序,通??砂丫彌_區(qū)溢出分為三代[5]:a)第一代為棧溢出(stack smashing)。利用的是位于棧上的緩沖區(qū)。這種形式出現(xiàn)最早,存在最廣泛,利用也最簡單。由于各種檢測和防護技術(shù)的使用,棧形式的溢出漏洞越來越少、利用的難度越來越大。b)第二代主要包括堆溢出(heap smashing)、指針改寫(pointer subterfuge)和off-by-one錯誤利用。c)第三代主要是格式化串(format string)漏洞利用。這種漏洞很容易在源代碼級被檢測出來,因此使用相對較少。

溢出負(fù)載是溢出之后執(zhí)行的一段機器指令,也稱為shellcode。Shellcode的概念[6]最早出現(xiàn)于1996年。文獻(xiàn)[6]詳細(xì)描述了Linux系統(tǒng)中棧的結(jié)構(gòu)和如何利用基于棧的緩沖區(qū)溢出。Aleph One還給出了如何寫打開一個shell(命令解釋器)的payload的方法,并給這段代碼賦予shellcode的名稱。由于被廣泛應(yīng)用于攻擊代碼中,shellcode已經(jīng)成為了payload的代名詞。

攻擊向量和溢出方法的多樣化,只是從一方面反應(yīng)了攻擊技術(shù)的發(fā)展。從上面的分析可以看出,它們只解決了如何注入和如何截取目標(biāo)進(jìn)程控制權(quán)的問題。在CERT/CC、BugTrap等的漏洞公告中,通常會有漏洞測試代碼(proof-of-concept exploit)的鏈接。這些測試代碼就是最簡單的攻擊代碼。它們一般只是在溢出后打開一個綁定端口的shell(bind shell)。然而由于各種防護措施的阻礙,這些測試代碼往往不能奏效。從最早的payload如添加用戶或修改配置文件發(fā)展到shellcode,避免了修改系統(tǒng)文件從而減少了被管理員發(fā)現(xiàn)的可能,是一個很大的進(jìn)步。但隨著網(wǎng)絡(luò)攻擊事件越來越多,造成的損失越來越大,個人、企業(yè)的安全意識大大加強。個人工作站上往往裝有個人防火墻、殺毒軟件等;企業(yè)在網(wǎng)絡(luò)邊界上也安裝有防火墻和入侵檢測系統(tǒng)(IDS)。如今僅打開shell的payload已不能滿足攻擊者的需要。比如目標(biāo)主機有防火墻的保護,攻擊者就不能連接到綁定端口的shell上,從而導(dǎo)致攻擊失敗。因此攻擊者對shellcode的編寫進(jìn)行了不斷地改進(jìn)以繞過各式各樣的防護措施,使得這些防護措施失效,不能對目標(biāo)系統(tǒng)進(jìn)行保護?;诰彌_區(qū)溢出的攻擊要想獲得成功,必須考慮的防護措施包括防火墻、基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)(NIDS)、應(yīng)用過濾、堆棧保護和基于主機的入侵檢測系統(tǒng)(HIDS)[7]。下面分別就shellcode對抗防火墻、IDS和堆棧保護三種最常見的安全措施進(jìn)行詳細(xì)的介紹和分析。

2Shellcode滲透防火墻

Shellcode按發(fā)生地點可分為本地shellcode和遠(yuǎn)程shellcode。在攻擊者與目標(biāo)之間建立連接是遠(yuǎn)程shellcode的基本要求。可用下面幾種方式實現(xiàn)[8]:

a)監(jiān)聽端口。

可細(xì)分為監(jiān)聽新端口即綁定端口,它打開一個新端口進(jìn)行監(jiān)聽;重新使用原端口,包括端口復(fù)用和重新綁定原端口。

b)反向連接。

由攻擊者打開一個端口等待目標(biāo)主機連接。

c)復(fù)用當(dāng)前連接套接字(socket)。

使用getpeername或字串匹配查找socket。

綁定端口的shellcode被廣泛使用于漏洞測試代碼中。它新建一個socket,把它綁定在一個指定端口并在上面監(jiān)聽。一旦有連接接入這個端口,shellcode就創(chuàng)建一個輸入/輸出句柄為新建socket的shell,從而使攻擊者能夠與目標(biāo)主機實現(xiàn)最簡單的交互。而真實環(huán)境中由于受到防火墻的阻礙,攻擊者不能連接到新建的端口上。除非這些端口是防火墻允許的如21、53、80等端口,但它們通常已經(jīng)綁定了服務(wù)程序。反向連接的shellcode不打開新的端口,而是主動連接到由攻擊者事先打開的端口,但如果目標(biāo)主機在非軍事化區(qū)(DMZ)內(nèi),并且通常防火墻規(guī)則設(shè)置了阻止DMZ中主機主動向外的任何連接,這時反向連接仍不能成功。事實上,由于邊界防火墻的隔離,攻擊者通常不能直接接觸到企業(yè)或組織的內(nèi)網(wǎng)主機,而只能直接訪問DMZ中放置的公開服務(wù)器設(shè)施如Web服務(wù)器、FTP服務(wù)器等。因此對于處在DMZ的服務(wù)器,防火墻規(guī)則設(shè)置得最嚴(yán)格,不但阻止除訪問企業(yè)提供的基本服務(wù)以外的所有外來連接,而且阻止服務(wù)器主動向外的所有連接。面對這樣的防火墻規(guī)則,傳統(tǒng)的綁定端口和反向連接的方法都將失效。為此攻擊者提出了各種方法來突破防火墻。例如針對Web服務(wù)器在溢出后創(chuàng)建PHP/ASP/CGI后門、紅色代碼2蠕蟲病毒使用的針對微軟Internet信息服務(wù)器(IIS)創(chuàng)建的后門等,但這些方法針對特定服務(wù)不具有通用性。為了達(dá)到通用性,shellcode只能使用漏洞服務(wù)程序的端口進(jìn)行通信,稱此類shellcode為one-way shellcode[9]。實現(xiàn)方法包括上面提到的端口復(fù)用、重新綁定原端口以及復(fù)用當(dāng)前連接socket。

通常,socket不能綁定在一個已經(jīng)被服務(wù)程序使用的端口上。但是如果服務(wù)程序創(chuàng)建的socket沒有設(shè)置SO_EXCLUSIVEADDRUSE(獨占模式使用端口),并且服務(wù)程序由于方便的原因在綁定時(通過bind系統(tǒng)調(diào)用)只指定端口而不指定IP地址(使用INADDR_ANY即指定地址為0.0.0.0,該地址實際上表示不確定地址或任意地址)時,則可以在服務(wù)進(jìn)程監(jiān)聽的端口上綁定多個的socket。當(dāng)然每個socket綁定的IP地址不同。此時,shellcode中設(shè)置socket的選項SO_REUSEADDR(通過setsockopt系統(tǒng)調(diào)用)并且指定目標(biāo)主機的具體IP,然后把它綁定在服務(wù)端口上即可實現(xiàn)端口復(fù)用。當(dāng)服務(wù)程序的soc ̄ket設(shè)置了SO_EXCLUSIVEADDRUSE選項,則多個socket不能綁定在同一個端口上,端口復(fù)用不能實現(xiàn)。這時可以使用重新綁定原端口的辦法把端口暴力搶奪過來。首先在服務(wù)進(jìn)程中fork一個新進(jìn)程,并在分配的內(nèi)存地址中寫入指令;然后讓新進(jìn)程獲得執(zhí)行;最后結(jié)束服務(wù)進(jìn)程。新進(jìn)程執(zhí)行寫入的指令中會循環(huán)綁定服務(wù)端口,一旦服務(wù)進(jìn)程結(jié)束,新進(jìn)程就把端口搶奪過來了。之后發(fā)送到這個端口的數(shù)據(jù)將會被shellcode處理。如果重新綁定的是Web服務(wù)端口,目標(biāo)主機就不能向外提供Web服務(wù)。

復(fù)用當(dāng)前連接socket方法的關(guān)鍵在于要找到這個socket,可以使用getpeername或字串匹配的方法查找socket。Getpeername查找socket方法最早由LSD使用。攻擊程序首先與服務(wù)進(jìn)程建立連接,然后用getsockname獲得這個連接中本地所使用的端口并把它寫到shellcode中;shellcode在服務(wù)端得到運行后從第1號描述符開始遞增查找socket,并用getpeername獲得socket(對應(yīng)為連接)中遠(yuǎn)程使用的端口。如果與預(yù)先寫入的端口相同,就認(rèn)為找到了當(dāng)前連接的socket。之后就可以使用這條連接來進(jìn)行通信交互。這種方法有一個限制在于攻擊者不能處在NAT網(wǎng)絡(luò)環(huán)境中。因為連接時是由NAT網(wǎng)關(guān)代表攻擊者主機進(jìn)行的,在攻擊者主機取得的端口號與連接使用的端口號一般不同。字串匹配方法[10]可以解除這個限制。字串匹配方法在發(fā)送完攻擊包后,還要繼續(xù)發(fā)送一些約定字節(jié)(通常四個)。Shellcode查找時只對接收到數(shù)據(jù)的socket進(jìn)行處理,如果接收到數(shù)據(jù)的字節(jié)數(shù)為4且與約定字節(jié)匹配一致,就認(rèn)為是所要的socket。

3Shellcode繞過NIDS

基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)通過在計算機網(wǎng)絡(luò)中的某些點被動地監(jiān)聽網(wǎng)絡(luò)上傳輸?shù)脑剂髁浚瑢Λ@取的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行處理,從中獲取有用的信息,再與已知攻擊特征相匹配或與正常網(wǎng)絡(luò)行為原型相比較來識別攻擊事件。由于誤報率高,基于攻擊特征匹配的IDS使用得不多,廣泛使用的是基于特征碼檢測。而基于特征碼的檢測方法有很大的局限性。可以使用多態(tài)shellcode使特征串“消失”從而繞過NIDS。

多態(tài)shellcode出現(xiàn)之前,shellcode通常包括兩個部分:

a)NOP sled。當(dāng)shellcode不能準(zhǔn)確定位時,為了使執(zhí)行路徑“滑行”到shellcode而填充的一串無意義的指令串,通常為一串連續(xù)的NOP指令。

b)Shellcode payload。這一部分進(jìn)行打開shell并綁定到端口等實際工作。 

這種shellcode非常容易被基于特征碼檢測的IDS檢測到。對于以一串NOP指令為內(nèi)容的NOP sled,IDS只要搜索到大于設(shè)定閾值個數(shù)的NOP指令就觸發(fā)shellcode警報;shellcode payload部分可能包含有的“shell”或“cmd”等字符串或一串指令也可作為IDS的特征碼而被用來檢測shellcode。

為了使shellcode繞過基于網(wǎng)絡(luò)的入侵檢測系統(tǒng),2001年Shane Macaulay在CanSecWest安全會議上提出了多態(tài)(polymorphism)及代碼混淆(code obfuscation)的概念。多態(tài)shellcode的設(shè)計思想來源于病毒逃避(virus evasion)技術(shù)。使用這種技術(shù)構(gòu)造的shellcode更為危險,對付基于特征碼的檢測系統(tǒng)非常有效。多態(tài)shellcode結(jié)構(gòu)如圖1所示。

NOP sleddecoderencrypted shellcode payload

多態(tài)shellcode的shellcode payload部分是經(jīng)過編碼(常用的編碼機制為xor或double xor)后得到的,當(dāng)中的特征字符串經(jīng)過編碼就被“消除”了。進(jìn)程流程轉(zhuǎn)到shellcode時,decoder部分對編碼過的shellcode payload進(jìn)行解碼后payload才能正常執(zhí)行。NOP sled部分也不再是簡單的NOP指令串了,它可以任意組合指令,只要不對后面部分的運行產(chǎn)生影響即可。

現(xiàn)在已經(jīng)有很多編解碼算法以及專門的程序?qū)hellcode進(jìn)行處理。Macaulay發(fā)布的AMDmutate程序就可以很方便地把原始shellcode處理為多態(tài)shellcode。多態(tài)shellcode可以逃過大部分基于特征碼檢測的NIDS。如果NIDS依靠提取溢出程序的shellcode代碼中的解碼器的特征碼,因為解碼器不是固定的,并且會有一些無用的垃圾指令填充,有很大的難度;至于用NOP匹配的辦法也有難度,可以替換NOP的指令有很多,而且長度不同;用匹配shellcode的辦法更不可行,因為每次編碼后的shellcode都是不同的。

4Shellcode突破堆棧保護

攻擊代碼的工作過程一般主要包括兩個部分:

a)在被攻擊程序的地址空間注入代碼。

b)通過覆蓋指針(返回地址、函數(shù)指針等)讓程序跳轉(zhuǎn)到注入的代碼上執(zhí)行。

堆棧保護機制針對上述兩點通常在系統(tǒng)底層通過改變程序編譯方式和修改程序運行環(huán)境等辦法來防御緩沖區(qū)溢出攻擊。現(xiàn)在存在許多可用的堆棧保護方法,一些常用的方法可分為[11]:

a)編譯器擴展方法。包括StackGuard(由Immunix所使用)、Propolice(由OpenBSD所使用)和Microsoft的/GS編譯選項。

b)不可執(zhí)行棧方法。如Solar Designer’s non-exec stack補?。ㄓ蒓penWall所使用)、Exec Shield(由Red Hat/Fedora所使用)、OpenBSD’s W^X、XP SP2 NX。

c)其他方法。包括 libsafe(由Mandrake所使用)和堆棧分割方法。

StackGuard修改C編譯器(gcc)將一個canary值插入到返回地址的前面。當(dāng)函數(shù)返回時,如果檢查發(fā)現(xiàn)這個canary的值被改變了,就證明可能有人試圖進(jìn)行緩沖區(qū)溢出攻擊,程序會立刻響應(yīng),發(fā)送一條入侵警告消息給syslogd,然后終止進(jìn)程。這種方法只對返回地址進(jìn)行了保護,因此無法防御通過改寫返回地址附近其他值如幀指針(EBP)和局部變量對系統(tǒng)的攻擊。Propolice(已更名為SSP)對StackGuard進(jìn)行了極大的增強,與StackGuard一樣通過修改過的編譯器在函數(shù)調(diào)用中插入一個canary值,但這個值放在幀指針前,從而使返回地址和幀指針均受到保護;此外,它對存儲局部變量的位置進(jìn)行重新排序,確保指針變量在數(shù)組之前。這樣增強了propolice的保護能力,它意味著緩沖區(qū)溢出后不會修改到指針值,即減少了通過改變局部變量進(jìn)行攻擊的可能。通過組合插入canary值和調(diào)整局部變量位置方法,propolice可以防御大部分緩沖區(qū)溢出攻擊,但在一些情況下攻擊仍可以成功。在一定的編碼情況下,通過溢出直至覆蓋到函數(shù)參數(shù)可以使緩沖區(qū)溢出轉(zhuǎn)換為write-anything-anywhere錯誤。盡管修改了canary值,但精心構(gòu)造的參數(shù)在函數(shù)中先被使用而保護措施發(fā)生在函數(shù)調(diào)用后(確切地說在函數(shù)的epilogue中),這里留下了一個窗口(code window)給攻擊者利用,從而使保護措施失效[12]。Microsoft的/GS編譯選項結(jié)合了xor canary和propolice方法,由于Windows操作系統(tǒng)的特有性質(zhì)存在許多方法,如利用異常處理函數(shù)(SEH)等突破Windows的堆棧保護機制[13]。

不可執(zhí)行棧方法通過去掉堆棧的執(zhí)行權(quán)限來禁止堆棧段執(zhí)行,使得注入到堆棧空間(緩沖區(qū)變量或環(huán)境變量中)的shellcode不能執(zhí)行。操作系統(tǒng)為了實現(xiàn)更好的性能和功能,往往在數(shù)據(jù)段中動態(tài)地放入可執(zhí)行的代碼。設(shè)定堆棧數(shù)據(jù)段不可執(zhí)行,在最大限度地保證程序兼容性的同時增加了溢出攻擊的難度。但是為了保持程序的兼容性不可能使所有程序的數(shù)據(jù)段不可執(zhí)行,所以如果把shellcode注入到這些數(shù)據(jù)段中攻擊也能成功。更有甚者,可以不需要注入任何代碼和數(shù)據(jù),而使進(jìn)程調(diào)轉(zhuǎn)到某個現(xiàn)有的子例程即return-into-libc[14],如跳轉(zhuǎn)到C庫中的某個子例程system,這足以滿足本地權(quán)限提升的要求。

Libsafe由Lucent Technologies 開發(fā),對像strcpy()這樣對stack-smashing攻擊很脆弱的標(biāo)準(zhǔn)C庫函數(shù)進(jìn)行了包裝。這些函數(shù)的libsafe版本執(zhí)行相關(guān)的檢查,確保數(shù)組改寫不會超出堆棧楨。然而這種方法僅保護那些特定的函數(shù),而不是從總體上防止堆棧溢出缺陷,并且它僅保護了堆棧,而不保護堆棧中的局部變量。

5結(jié)束語

在不可能要求程序員消除所有編碼錯誤的情況下,防護措施必不可少。本文從攻擊者的角度對溢出后shellcode突破各種防護措施的技術(shù)進(jìn)行了詳細(xì)介紹和分析。從上面的分析可以看出,盡管防護措施的存在一定程度上增加了溢出攻擊利用的難度,但這些措施方法都有弱點,攻擊者可以利用各種技術(shù)突破它們。而只有認(rèn)識到每種防護措施的弱點以及攻擊者使用的最新技術(shù),才可以對已有的防護措施進(jìn)行綜合和改進(jìn),從而進(jìn)一步增加緩沖區(qū)溢出攻擊利用的難度,進(jìn)一步減少溢出攻擊成功的可能。

參考文獻(xiàn):

[1]COWAN C,WAGLE F, BEATTIE C P,et al.Buffer overflows: attacks and defenses for the vulnerability of the decade[EB/OL].(2000).http://www.immunix.com/pdfs/discex00.pdf.

[2]CERT advisory CA-1990-02 Internet intruder warning[EB/OL].(1990).http://www.cert.org/advisories/CA-1990-02.html.

[3]ARCE I. The shellcode generation[J].IEEE Security Privacy,2004,2(5):72-76.

[4]Buffer overrun in RPC interface could allow code execution, Microsoft Security Bulletin MS03-0262003[EB/OL].(2003).http://www.microsoft.com/technet/security/bulletin/MS03-026.mspx.

[5]CHIEN E, SZOR P.Blended attacks:exploits,vulnerabilities, and buffer-overflow techniques in computer viruses[EB/OL].(2002).http:// www.symantec.com/avcenter/reference/blended.attacks.pdf.

[6]ALEPH O.Smashing the stack for fun and profit[EB/OL].(1996). http://www.phrack.org/show.php?p=49a=14.

[7]Plan9,高級shellcode設(shè)計技巧[EB/OL].(2004).http:// www.forcus.net/projects/Xcon/2004/Xcon2004_plan9.pdf.

[8]San.滲透防火墻的shellcode技術(shù)[EB/OL].(2004).http://www.forccus.net/ projects/Xcon/2004/Xcon2004_san.pdf.

[9]sk.history and advances in Windows shellcode[EB/OL]. (2004).http://www.phrack.org/show.php?p=62a=7.

[10]許治坤,王偉,郭添森,等.網(wǎng)絡(luò)滲透技術(shù)[M].北京:電子工業(yè)出版社,2005:175-176.

[11]WHEELER D A.Secure programmer:countering buffer overflows[EB/OL].(2004).http://www-128.ibm.com/developerwork-s/library/l-sp4.html.

[12]RICHARTE G.Four different tricks to bypass stackshield and stackguard protection[EB/OL].(2002).http://www.coresecurity.com/files/files/11/StackguardPaper.pdf.

[13]LITCHFIELD D.Defeating the stack buffer overflow prevention mechanism of microsoft Windows 2003 server[EB /OL].(2003).http://www.nextgenss.com/papers/defeating-w2k3-stack-prote-ction.pdf.

[14]NERGAL.The advanced return-into-lib(c) exploits[EB/OL].(2001).http://www.phrack.org/show.php? p=58a=4.

“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”

主站蜘蛛池模板: 宅男噜噜噜66国产在线观看| 在线国产91| 国产精品一区二区国产主播| 日韩成人在线网站| 中文字幕在线一区二区在线| 久青草网站| 欧美成人午夜影院| 999在线免费视频| 国产精品无码在线看| 亚洲综合色区在线播放2019| 极品国产在线| 人人看人人鲁狠狠高清| 亚洲天堂精品在线| 91毛片网| 国产精品久久国产精麻豆99网站| 美女被操91视频| 欧美成人午夜视频免看| 99精品免费在线| 久久亚洲黄色视频| 色亚洲激情综合精品无码视频 | 亚洲天堂网在线观看视频| av一区二区三区高清久久| 欧美午夜久久| 亚洲精品男人天堂| 超碰aⅴ人人做人人爽欧美| 曰AV在线无码| 久热中文字幕在线| 亚洲黄色片免费看| 国产黄在线观看| 中国美女**毛片录像在线| 欧美成人午夜影院| 欧美精品在线免费| 国产精品三级av及在线观看| 高清国产va日韩亚洲免费午夜电影| 干中文字幕| 国产成人精品一区二区| 久久久久人妻一区精品| 91日本在线观看亚洲精品| 欧美激情综合一区二区| 91年精品国产福利线观看久久| 国产美女精品人人做人人爽| 免费人成又黄又爽的视频网站| 香蕉视频国产精品人| 嫩草国产在线| 欧美人人干| 2021国产精品自拍| 五月天在线网站| 又爽又黄又无遮挡网站| 午夜欧美理论2019理论| 免费看美女自慰的网站| 日韩无码真实干出血视频| 国产主播一区二区三区| 日韩午夜片| 亚洲色欲色欲www网| 中文天堂在线视频| 国产熟睡乱子伦视频网站| 婷婷午夜天| 亚洲欧美在线综合图区| 成年人国产网站| 国产美女视频黄a视频全免费网站| 真人免费一级毛片一区二区| 一级做a爰片久久毛片毛片| 东京热高清无码精品| 99热最新网址| 激情综合五月网| 欧美午夜精品| 国产国产人在线成免费视频狼人色| 92午夜福利影院一区二区三区| 国产精品性| 亚洲一区二区三区麻豆| 深夜福利视频一区二区| 婷婷六月综合网| 亚洲天堂.com| 欧美高清三区| a亚洲天堂| 日本国产精品一区久久久| 国产精品无码在线看| 久久综合色视频| 99久久国产综合精品2020| 午夜成人在线视频| 欧美成人国产| 久久99久久无码毛片一区二区 |