網(wǎng)絡(luò)攻擊行為分析課件_第1頁
網(wǎng)絡(luò)攻擊行為分析課件_第2頁
網(wǎng)絡(luò)攻擊行為分析課件_第3頁
網(wǎng)絡(luò)攻擊行為分析課件_第4頁
網(wǎng)絡(luò)攻擊行為分析課件_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第02講網(wǎng)絡(luò)攻擊行為分析(一)基礎(chǔ)篇基本內(nèi)容網(wǎng)絡(luò)信息安全技術(shù)與黑客攻擊技術(shù)都源于同一技術(shù)核心,即網(wǎng)絡(luò)協(xié)議和底層編程技術(shù),不同的是怎么使用這些技術(shù)。很多軟件或設(shè)備可以為網(wǎng)絡(luò)管理和安全提供保障,但當(dāng)被別有用心的人所利用時,就成了黑客工具,就象刀具,是基本生活用具,又可成為殺人兇器。我們要做到“知己知彼”,才能“百戰(zhàn)不殆”,對黑客的攻擊手段、途徑、方法和工具了解得越多,越有利于保護網(wǎng)絡(luò)和信息的安全。在介紹信息安全技術(shù)以前,本章先來分析與黑客攻擊相關(guān)的知識。計算機網(wǎng)絡(luò)系統(tǒng)所面臨的威脅大體可分為兩種:一是針對網(wǎng)絡(luò)中信息的威脅;二是針對網(wǎng)絡(luò)中設(shè)備的威脅。影響信息安全的人員分析如果按威脅的對象、性質(zhì)則可以細分為四類:第一類是針對硬件實體設(shè)施第二類是針對軟件、數(shù)據(jù)和文檔資料第三類是兼對前兩者的攻擊破壞第四類是計算機犯罪。安全威脅的來源不可控制的自然災(zāi)害,如地震、雷擊惡意攻擊、違紀、違法和計算機犯罪人為的無意失誤和各種各樣的誤操作計算機硬件系統(tǒng)的故障軟件的“后門”和漏洞安全威脅主要來自以下幾個方面:安全威脅的表現(xiàn)形式偽裝非法連接非授權(quán)訪問拒絕服務(wù)抵賴信息泄露業(yè)務(wù)流分析改動信息流篡改或破壞數(shù)據(jù)推斷或演繹信息非法篡改程序?qū)嵤┌踩{的人員心存不滿的員工軟硬件測試人員技術(shù)愛好者好奇的年青人黑客(Hacker)破壞者(Cracker)以政治或經(jīng)濟利益為目的的間諜潛在的攻擊者競爭對手黑客政治家有組織的罪犯恐怖主義者政府雇傭殺手虛偽朋友不滿的員工客戶供應(yīng)商廠商商務(wù)伙伴契約者、臨時雇員和顧問攻擊者的水平腳本小孩(ScriptKiddies)普通技能攻擊者高級技能攻擊者安全專家杰出攻擊者兩個概念黑客能賦予計算機擴展的能力,使其超越最初設(shè)計的人黑客是英文“Hacker”的英文譯音,我國臺灣地區(qū)譯為“駭客”,它起源于美國麻省理工學(xué)院的計算機實驗室中。早期的黑客是指那些精力旺盛,智力超群,具有高超編程能力的計算機程序員。他們的行為主要包括設(shè)計黑客軟件、盜打長途電話以及利用電話進行欺詐。目前,按照公安部1997年4月21日發(fā)布的《計算機信息系統(tǒng)安全專用產(chǎn)品分類原則》中術(shù)語的定義,黑客是指對計算機信息系統(tǒng)進行非授權(quán)訪問的人員。也有人認為,黑客就是指那些利用通訊軟件、通過網(wǎng)絡(luò)非法進入公共和他人的計算機系統(tǒng),截獲或篡改計算機中的信息,危害信息系統(tǒng)安全的電腦入侵者,其入侵行為稱為黑客行為。計算機竊賊惡意攻擊計算機系統(tǒng)的人(Cracker)黑客的特點(1)充當(dāng)黑客的年輕人居多黑客年齡一般在10余歲到30歲之間,其中有許多未成年的小孩,如美國號稱“世界頭號計算機黑客”的KevinMitnick,13歲迷上計算機,15歲闖入“北美空中防務(wù)指揮系統(tǒng)”;英國的MathewBevan14歲侵入英國的電信公司;我國呼和浩特市一個10歲的初中生破譯了該市通信公司的系統(tǒng)管理員的賬號,等等。(2)人員的構(gòu)成相對集中70%以上的黑客事件是由內(nèi)部人員或外部與內(nèi)部合謀進行的。一般來說,外部黑客入侵的目的主要是破壞系統(tǒng),而內(nèi)部或內(nèi)外勾結(jié)的入侵多數(shù)是為了獲取信息;外部黑客對一個站點可能只入侵一次,內(nèi)部或內(nèi)外勾結(jié)的入侵可能會連續(xù)幾次。(3)黑客活動時間相對固定黑客活動主要是在晚上到凌晨、周末或節(jié)假日。因為職業(yè)化的黑客很少,一般黑客多有自己的工作,實施黑客活動需要利用休息時間,又因為在這些時間里,工作場所的人員少,便于隱蔽。(4)從發(fā)展趨勢看,黑客正在不斷地走向系統(tǒng)化、組織化和年輕化黑客甚至定期召開會議,如他們每四年在荷蘭舉行一次Hack-Tic會議、每年在紐約舉行“2600公文”、在拉斯維加斯舉行DefCon會議和在加利福尼亞的LakeTahoe舉行“黑客大會”。黑客攻擊危害程度的劃分黑客攻擊所使用的方法不同,產(chǎn)生的危害程度也不同,一般分為八個層次:第一層:郵件炸彈攻擊;第二層:簡單拒絕服務(wù);第三層:本地用戶獲得非授權(quán)的讀訪問;第四層:本地用戶獲得他們非授權(quán)的文件寫權(quán)限;第五層:遠程用戶獲得了非授權(quán)的賬號;第六層:遠程用戶獲得了特權(quán)文件的讀權(quán)限;第七層:遠程用戶獲得了特權(quán)文件的寫權(quán)限;第八層:遠程用戶擁有了根權(quán)限(黑客已經(jīng)攻克了系統(tǒng))。在這八層中,隨著層號增大,危害的程度加重。黑客攻擊的手段目前,黑客攻擊網(wǎng)絡(luò)的手段種類繁多,而且新的手段層出不窮,黑客攻擊可以分為以下兩大類:一類是主動攻擊,這種攻擊以各種方式獲取攻擊目標的相關(guān)信息,找出系統(tǒng)漏洞,侵入系統(tǒng)后,將會有選擇地破壞信息的有效性和完整性。例如:郵件炸彈。另一類是被動攻擊,這種攻擊是在不影響網(wǎng)絡(luò)正常工作的情況下,進行截獲、竊取、破譯以獲得重要機密信息,其中包括竊聽和通信流量分析。例如:掃描器。當(dāng)前黑客攻擊采用的主要手段是利用目前網(wǎng)絡(luò)系統(tǒng)以及各種網(wǎng)絡(luò)軟件的漏洞,比如基于TCP/IP協(xié)議本身的不完善、操作系統(tǒng)的種種缺陷等;防火墻設(shè)置不當(dāng);電子欺詐;拒絕服務(wù)(包括DDoS);網(wǎng)絡(luò)病毒;使用黑客工具軟件;利用用戶自己安全意識薄弱,比如口令設(shè)置不當(dāng);或直接將口令文件放在系統(tǒng)等等。幾種黑客常用的方法(1)掃描器所謂掃描器,實際是一種自動檢測目標計算機安全性弱點的程序。黑客通過使用掃描器,可以不留痕跡的發(fā)現(xiàn)遠程服務(wù)器的各種TCP端口的分配及提供的服務(wù)、使用的軟件版本以及其他一些服務(wù)信息。(2)口令破解黑客進行攻擊常常是從破解用戶口令開始的。(3)炸彈攻擊與病毒炸彈攻擊是指黑客利用自編的炸彈攻擊程序或工具軟件,集中在一段時間內(nèi),向攻擊的目標機器發(fā)出大量信息,使機器出現(xiàn)負載過重、網(wǎng)絡(luò)堵塞,最終使系統(tǒng)崩潰的一種網(wǎng)絡(luò)攻擊手段。(4)電子欺騙(Spoofing)幾種黑客常用的方法電子欺騙一般包括任何使用計算機進行欺騙的行為。(5)監(jiān)聽法網(wǎng)絡(luò)監(jiān)聽是局域網(wǎng)中的一種黑客技術(shù),由于在進行監(jiān)聽時,不與其他主機交換信息,也不修改密碼,因此,網(wǎng)絡(luò)監(jiān)聽是一種被動的攻擊方式,僅用于局域網(wǎng)中。(6)拒絕服務(wù)攻擊(DenialofService)拒絕服務(wù)攻擊是指攻擊者占有大量的共享資源,使系統(tǒng)無法為其他用戶提供資源或以過多的請求造成“溢出”,便服務(wù)器或路由器過載,甚至迫使服務(wù)器關(guān)閉,終止為用戶提供服務(wù)的一種攻擊方法。拒絕服務(wù)攻擊是一種主動的破壞性攻擊。從造成的危害上劃分,拒絕服務(wù)攻擊可分為兩類,一是破壞或毀壞系統(tǒng)資源,使用戶無法使用;第二類是過載系統(tǒng)服務(wù)或消耗系統(tǒng)資源,阻止其他用戶使用這些服務(wù)。網(wǎng)絡(luò)攻擊的途徑針對端口攻擊針對服務(wù)攻擊針對第三方軟件攻擊DOS攻擊針對系統(tǒng)攻擊口令攻擊欺騙網(wǎng)絡(luò)攻擊的層次(P22)網(wǎng)絡(luò)攻擊的層次第一層攻擊:第一層攻擊基于應(yīng)用層的操作,這些攻擊的目的只是為了干擾目標的正常工作。第二層攻擊:第二層攻擊指本地用戶獲得不應(yīng)獲得的文件(或目錄)讀權(quán)限。第三層攻擊:在第二層的基礎(chǔ)上發(fā)展成為使用戶獲得不應(yīng)獲得的文件(或目錄)寫權(quán)限。第四層攻擊:第四層攻擊主要指外部用戶獲得訪問內(nèi)部文件的權(quán)利。第五層攻擊:第五層攻擊指非授權(quán)用戶獲得特權(quán)文件的寫權(quán)限。第六層攻擊:第六層攻擊指非授權(quán)用戶獲得系統(tǒng)管理員的權(quán)限或根權(quán)限。網(wǎng)絡(luò)攻擊階段及工具攻擊的階段性偵察掃描決絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)網(wǎng)絡(luò)攻擊階段及工具(續(xù))偵察掃描決絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)偵察偵察是攻擊的第一步,這就如同匪徒一般偵察是利用公開的、可利用的信息來調(diào)查攻擊目標偵察包括以下技術(shù)低級技術(shù)偵察Web搜索Whois數(shù)據(jù)庫域名系統(tǒng)(DNS)偵察通用的目標偵察工具低級技術(shù)偵察社交工程

在黑客理論中,指利用人性弱點、利用人際交往上的漏洞來非法獲取資料的行為。物理闖入垃圾搜尋你能找出垃圾搜尋的例子嗎?Web搜索搜索一個組織自己的web站點有電話號碼的職員聯(lián)系信息關(guān)于公司文化和語言的信息商務(wù)伙伴最近的合并和兼并公司正使用的技術(shù)使用搜索引擎搜索論壇BBS(電子公告欄)Usenet(新聞組)Whois數(shù)據(jù)庫搜索什么是whois數(shù)據(jù)庫:包括各種關(guān)于Internet地址分配、域名和個人聯(lián)系方式的數(shù)據(jù)庫

WHOIS是一種由防御數(shù)據(jù)網(wǎng)(DDN)信息中心(NIC)維護的關(guān)于用戶、主機系統(tǒng)、網(wǎng)絡(luò)和域的Internet數(shù)據(jù)庫。該數(shù)據(jù)庫的信息只包括已經(jīng)通過NIC在因特網(wǎng)上注冊的用戶和主機系統(tǒng)的信息??梢圆檎疫@個數(shù)據(jù)庫,以確定用戶的電子函件地址。該處理過程是首先在nic.ddn.mil的WHOIS數(shù)據(jù)庫進行登錄,然后用WHOIS命令進行查詢。在提示符下鍵入HELP可以得到更多的信息。(百度)研究.com,.net,.org域名研究非.com,.net和.org域名國家代碼:教育(.edu):軍事代碼(.mit):whois.nic.mit政府(.gov):Whois數(shù)據(jù)庫搜索(續(xù))搜索目標域名Whois數(shù)據(jù)庫搜索(續(xù))搜索目標IP美國Internet注冊局:/whois/arin-whois.html歐洲網(wǎng)絡(luò)協(xié)調(diào)中心:亞太網(wǎng)絡(luò)協(xié)調(diào)中心:中國互聯(lián)網(wǎng)絡(luò)信息中心:亞太網(wǎng)絡(luò)信息中心DNS搜索Nslookup使用DNS的排錯工具nslookup,你可以利用從whois查詢到的信息偵查更多的網(wǎng)絡(luò)情況。例如,使用nslookup命令把你的主機偽裝成secondaryDNS服務(wù)器,如果成功便可以要求從主DNS服務(wù)器進行區(qū)域傳送。要是傳送成功的話,你將獲得大量有用信息,包括:a)使用此DNS服務(wù)器做域名解析到所有主機名和IP地址的映射情況b)公司使用的網(wǎng)絡(luò)和子網(wǎng)情況c)主機在網(wǎng)絡(luò)中的用途。許多公司使用帶有描述性的主機名,像,和。DNS搜索使用nslookup實現(xiàn)區(qū)域傳送的過程(1)使用whois命令查詢目標網(wǎng)絡(luò),例如在提示符下輸入whois(2)你會得到目標網(wǎng)絡(luò)的primary和slaveDNS服務(wù)器的信息。例如,假設(shè)主DNS服務(wù)器的名字是

(3)使用交互查詢方式,缺省情況下nslookup會使用缺省的DNS服務(wù)器作域名解析。鍵入命令server定位目標網(wǎng)絡(luò)的DNS服務(wù)器;(4)列出目標網(wǎng)絡(luò)DNS服務(wù)器的內(nèi)容,如ls。此時DNS服務(wù)器會把數(shù)據(jù)傳送給你,當(dāng)然,管理員可以禁止DNS服務(wù)器進行區(qū)域傳送,目前很多公司將DNS服務(wù)器至于防火墻的保護之下并嚴格設(shè)定了只能向某些主機進行區(qū)域傳送。一旦你從區(qū)域傳送中獲得了有用信息,你便可以對每臺主機實施端口掃描以確定它們提供了那些服務(wù)。如果你不能實現(xiàn)區(qū)域傳送,你還可以借助ping和端口掃描工具,當(dāng)然還有traceroute。通用工具SamSpade工具/ssw/Netscantools基于web的工具.......網(wǎng)絡(luò)攻擊階段及工具(續(xù))偵察掃描決絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)掃描掃描是在偵察之后,企圖發(fā)現(xiàn)目標的漏洞掃描需要花費許多時間掃描內(nèi)容戰(zhàn)爭撥號網(wǎng)絡(luò)測繪端口掃描漏洞掃描躲避IDS戰(zhàn)爭撥號戰(zhàn)爭撥號是搜尋調(diào)制解調(diào)器查找電話號碼:電話薄、Intenet、whois、web站點、社交工程工具THC-scan2.0網(wǎng)絡(luò)測繪網(wǎng)絡(luò)測繪是繪制目標的網(wǎng)絡(luò)拓撲結(jié)構(gòu)發(fā)現(xiàn)活躍主機PingTCP或UDP數(shù)據(jù)包掃描跟蹤路由:Traceroute(UNIX)Tracert(Windows)網(wǎng)絡(luò)測繪工具Cheops:/cheops/端口掃描端口掃描類型TCP連接掃描:三次握手TCPSYNTCPFINXma:發(fā)送TCPURG、PSH等TCP空掃描TCPACKFTP跳躍UDPICMP工具:nmap掃描的目的發(fā)現(xiàn)活躍的主機發(fā)現(xiàn)開放的端口確定目標使用的操作系統(tǒng)協(xié)議棧指紋(Fingerprint)漏洞掃描漏洞掃描尋找以下漏洞一般的配置錯誤默認的配置缺點知名系統(tǒng)的漏洞漏洞掃描的組成漏洞數(shù)據(jù)庫用戶配置工具掃描引擎當(dāng)前活躍的知識庫結(jié)果庫和報告生成工具漏洞數(shù)據(jù)庫用戶配置工具掃描引擎活躍的知識庫結(jié)果庫和報告生成漏洞掃描工具SARA,/sara.SANT,/saint/Nessus,......躲避NIDSNIDS是NetworkIntrusionDetectionSystem的縮寫,即網(wǎng)絡(luò)入侵檢測系統(tǒng),主要用于檢測Hacker或Cracker通過網(wǎng)絡(luò)進行的入侵行為。NIDS的運行方式有兩種,一種是在目標主機上運行以監(jiān)測其本身的通信信息,另一種是在一臺單獨的機器上運行以監(jiān)測所有網(wǎng)絡(luò)設(shè)備的通信信息,比如Hub、路由器。

NIDS的功能:網(wǎng)管人員對網(wǎng)絡(luò)運行狀態(tài)進行實時監(jiān)控,以便隨時發(fā)現(xiàn)可能的入侵行為,并進行具體分析,及時、主動地進行干預(yù),從而取得防患于未然的效果。

目前,NIDS產(chǎn)品可分為硬件和軟件兩種類型。

上述掃描均存在“網(wǎng)絡(luò)噪音”,易被NIDS識別出來如何躲避NIDS?NIDS如何工作?如何躲避?IDS如何躲避IDS?弄亂流量改變數(shù)據(jù)的結(jié)構(gòu)或語法弄亂上下文IDS無法識別完整的會話方法:網(wǎng)絡(luò)層躲避應(yīng)用層躲避網(wǎng)絡(luò)層躲避只使用片斷發(fā)送片斷泛洪以意想不到的方式對數(shù)據(jù)包分段微小片段攻擊片段重疊工具:fragrouteFragrouter應(yīng)用層躲避躲避IDSCGI:whisker()URL編碼/./目錄插入過早結(jié)束的URL長URL假參數(shù)TAB分隔大小寫敏感Windows分隔符(‘\’)空方法會話拼接(在網(wǎng)絡(luò)層分片)第03講網(wǎng)絡(luò)攻擊行為分析(二)技術(shù)篇網(wǎng)絡(luò)攻擊階段及工具偵察掃描拒絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)在獲得目標潛在的漏洞之后,攻擊者將設(shè)法獲得對目標系統(tǒng)的訪問權(quán)腳本小孩的攻擊過程:查找漏洞數(shù)據(jù)庫下載工具發(fā)送攻擊真正的攻擊者:自己動手!常用的攻擊方法基于堆棧的緩沖區(qū)溢出密碼猜測網(wǎng)絡(luò)應(yīng)用程序攻擊基于堆棧的緩沖區(qū)溢出攻擊緩沖區(qū),簡單說來是一塊連續(xù)的計算機內(nèi)存區(qū)域,可以保存相同數(shù)據(jù)類型的多個實例.C程序員通常和字緩沖區(qū)數(shù)組打交道.最常見的是字符數(shù)組.數(shù)組,與C語言中所有的變量一樣,可以被聲明為靜態(tài)或動態(tài)的.靜態(tài)變量在程序加載時定位于數(shù)據(jù)段.動態(tài)變量在程序運行時定位于堆棧之中.溢出,說白了就是灌滿,使內(nèi)容物超過頂端,邊緣,或邊界.我們這里只關(guān)心動態(tài)緩沖區(qū)的溢出問題,即基于堆棧的緩沖區(qū)溢出.

基于堆棧的緩沖區(qū)溢出攻擊什么是堆棧?堆棧是一種數(shù)據(jù)結(jié)構(gòu),一個在計算機科學(xué)中經(jīng)常使用的抽象數(shù)據(jù)類型,用來存儲計算機上運行進程的重要信息堆棧的操作表現(xiàn)位LIFO:后進先出;最后一個放入堆棧中的物體總是被最先拿出來。堆棧中定義了一些操作。兩個最重要的是PUSH和POP。PUSH操作在堆棧的頂部加入一個元素。POP操作相反,在堆棧頂部移去一個元素,并將堆棧的大小減一。什么數(shù)據(jù)存儲在堆棧中?存放與函數(shù)調(diào)用有關(guān)的信息進程內(nèi)存布局內(nèi)存低端內(nèi)存高端文本區(qū)(包括程序代碼和只讀數(shù)據(jù))(已初始化區(qū))數(shù)據(jù)區(qū)(未初始化區(qū))棧區(qū)大小固定對應(yīng)可執(zhí)行文件的文本區(qū)大小可變對應(yīng)可執(zhí)行文件的數(shù)據(jù)區(qū)大小動態(tài)變化臨時存儲區(qū)典型操作為push,pop基于堆棧的緩沖區(qū)溢出攻擊為什么使用堆棧?現(xiàn)代計算機被設(shè)計成能夠理解人們頭腦中的高級語言,在使用高級語言構(gòu)造程序時最重要的技術(shù)是過程(procedure)和函數(shù)(function)。從這一點來看,一個過程調(diào)用可以象跳轉(zhuǎn)(jump)命令那樣改變程序的控制流程,但是與跳轉(zhuǎn)不同的是,當(dāng)工作完成時,函數(shù)把控制權(quán)返回給調(diào)用之后的語句或指令,這種高級抽象實現(xiàn)起來要靠堆棧的幫助。堆棧也用于給函數(shù)中使用的局部變量動態(tài)分配空間,同樣給函數(shù)傳遞參數(shù)和函數(shù)返回值也要用到堆棧。棧內(nèi)存低端內(nèi)存高端填充方向棧底是固定地址棧頂指針(棧指針)SP棧幀指針FP:指向棧的固定數(shù)據(jù)塊棧幀:包含函數(shù)的參數(shù)、局部變量以及恢復(fù)前一個棧幀的數(shù)據(jù)信息(如指令指針的值)堆棧區(qū)域堆棧是一塊保存數(shù)據(jù)的連續(xù)內(nèi)存。一個名為堆棧指針(SP)的寄存器指向堆棧的頂部。堆棧的底部在一個固定的地址。堆棧的大小在運行時由內(nèi)核動態(tài)地調(diào)整。CPU實現(xiàn)指令PUSH和POP,向堆棧中添加元素和從中移去元素。堆棧由邏輯堆棧幀組成。當(dāng)調(diào)用函數(shù)時邏輯堆棧幀被壓入棧中,當(dāng)函數(shù)返回時邏輯堆棧幀被從棧中彈出。堆棧幀包括函數(shù)的參數(shù),函數(shù)地局部變量,以及恢復(fù)前一個堆棧幀所需要的數(shù)據(jù),其中包括在函數(shù)調(diào)用時指令指針(IP)的值。堆棧既可以向下增長(向內(nèi)存低地址)也可以向上增長,這依賴于具體的實現(xiàn)。在我們的例子中,堆棧是向下增長的。這是很多計算機的實現(xiàn)方式,包括Intel,Motorola,SPARC和MIPS處理器。堆棧區(qū)域堆棧指針(SP)也是依賴于具體實現(xiàn)的。它可以指向堆棧的最后地址,或者指向堆棧之后的下一個空閑可用地址。在我們的討論當(dāng)中,SP指向堆棧的最后地址。除了堆棧指針(SP指向堆棧頂部的的低地址)之外,為了使用方便還有指向幀內(nèi)固定地址的指針叫做幀指針(FP)。從理論上來說,局部變量可以用SP加偏移量來引用。然而,當(dāng)有字被壓棧和出棧后,這些偏移量就變了。盡管在某些情況下編譯器能夠跟蹤棧中的字操作,由此可以修正偏移量,但是在某些情況下不能。而且在所有情況下,要引入可觀的管理開銷。而且在有些機器上,比如Intel處理器,由SP加偏移量訪問一個變量需要多條指令才能實現(xiàn)。

堆棧區(qū)域因此,許多編譯器使用第二個寄存器——FP,對于局部變量和函數(shù)參數(shù)都可以引用,因為它們到FP的距離不會受到PUSH和POP操作的影響??紤]到我們堆棧的增長方向,從FP的位置開始計算,函數(shù)參數(shù)的偏移量是正值,而局部變量的偏移量是負值。當(dāng)一個例程被調(diào)用時所必須做的第一件事是保存前一個FP(這樣當(dāng)例程退出時就可以恢復(fù))。然后它把SP復(fù)制到FP,創(chuàng)建新的FP,把SP向前移動為局部變量保留空間。這稱為例程的序幕(prolog)工作。當(dāng)例程退出時,堆棧必須被清除干凈,這稱為例程的收尾(epilog)工作。Intel的ENTER和LEAVE指令,Motorola的LINK和UNLINK指令,都可以用于有效地序幕和收尾工作。棧例子(1)voidfunction(inta,intb,inc) { charbuffer1[5]; charbuffer2[10]; }voidmain(intargc,char**argv) { charlarge_string[256]; function(1,2,3); }程序從此開始執(zhí)行程序流程轉(zhuǎn)到此函數(shù)Main函數(shù)棧Large_string(局部變量)保存的框架指針(上一個FP)返回的指令指針argv內(nèi)存低端內(nèi)存高端填充方向argcSPMain函數(shù)的棧幀首先,以從后往前的順序?qū)unction的三個參數(shù)壓入棧中:Function函數(shù)被調(diào)用后Large_string(局部變量)保存的框架指針(上一個FP)返回的指令指針argv內(nèi)存低端內(nèi)存高端填充方向argcSPMain函數(shù)的棧幀cba返回的指令指針(RET)上一個FP(SFP)(main函數(shù)的FP)buffer1buffer2Function函數(shù)的棧幀然后,調(diào)用function()。指令call會把指令指針(IP)也壓入棧中,將幀指針EBP壓入棧中。然后把當(dāng)前的SP復(fù)制到EBP,使其成為新的幀指針。接下來將SP的值減小,為局部變量保留空間。緩沖區(qū)溢出緩沖區(qū)溢出是向一個緩沖區(qū)填充超過它處理能力的數(shù)據(jù)所造成的結(jié)果。如何利用這個經(jīng)常出現(xiàn)的編程錯誤來執(zhí)行任意代碼呢?讓我們來看看另一個例子:棧例子(2)voidfunction(char*str) { charbuffer[16]; strcpy(buffer,str); }voidmain() { charlarge_string[256]; inti; for(i=0;i<256;i++) large_buffer[i]=‘A’ function(large_string); }程序從此開始執(zhí)行程序流程轉(zhuǎn)到此函數(shù)Function函數(shù)被調(diào)用后i,large_string(局部變量)保存的框架指針(上一個FP)返回的指令指針內(nèi)存低端內(nèi)存高端填充方向SPMain函數(shù)的棧幀*str返回的指令指針上一個FP(main函數(shù)的FP)bufferfunction函數(shù)的棧幀這個程序的函數(shù)含有一個典型的內(nèi)存緩沖區(qū)編碼錯誤。該函數(shù)沒有進行邊界檢查就復(fù)制提供的字符串,錯誤地使用了strcpy()而沒有使用strncpy()。如果你運行這個程序就會產(chǎn)生段錯誤。這里發(fā)生了什么事?為什么我們得到一個段錯誤?strcpy()將*str的內(nèi)容(larger_string[])復(fù)制到buffer[]里,直到在字符串中碰到一個空字符。顯然,buffer[]比*str小很多。buffer[]只有16個字節(jié)長,而我們卻試圖向里面填入256個字節(jié)的內(nèi)容。這意味著在buffer之后,堆棧中250個字節(jié)全被覆蓋。包括SFP,RET,甚至*str!我們已經(jīng)把large_string全都填成了A。A的十六進制值為0x41。這意味著現(xiàn)在的返回地址是0x41414141。這已經(jīng)在進程的地址空間之外了。當(dāng)函數(shù)返回時,程序試圖讀取返回地址的下一個指令,此時我們就得到一個段錯誤。因此緩沖區(qū)溢出允許我們更改函數(shù)的返回地址。這樣我們就可以改變程序的執(zhí)行流程。

strcpy函數(shù)被調(diào)用后AAAAAAAAAAAAAAAA內(nèi)存低端內(nèi)存高端填充方向SPMain函數(shù)的棧幀?AAAAAAAAAAAAbufferfunction函數(shù)的棧幀?返回的指令指針緩沖區(qū)溢出是黑客們喜歡利用的手段之一。絕大多數(shù)微軟提供的補丁修復(fù)程序并未檢查緩沖區(qū)問題,而應(yīng)用程序的內(nèi)部開發(fā)和商業(yè)應(yīng)用軟件一樣,對緩沖區(qū)溢出攻擊敏感。緩沖區(qū)溢出攻擊就是利用了程序等待用戶的輸入的缺點。在基于堆棧的緩沖區(qū)溢出攻擊中,被攻擊者利用的程序使用一個名叫堆棧的內(nèi)存對象來存儲用戶的輸入。通常情況下,在程序沒有用戶輸入以前,堆棧是空的。有用戶輸入時,程序先寫入一個返回內(nèi)存地址到堆棧,然后把用戶的輸入數(shù)據(jù)存儲在返回地址的上方。當(dāng)執(zhí)行堆棧時,用戶的輸入數(shù)據(jù)就被傳送到程序指定的返回地址中。然而,堆棧的大小都是有限的。開發(fā)代碼的程序員必須給堆棧保留一定數(shù)量的空間。如果用戶的輸入超出了在堆棧里為它預(yù)留空間的大小,那么堆棧會溢出。這本來不是一個很大的問題,但如果遇到惡意的輸入時,它就變成了一個巨大的安全漏洞。例如,假設(shè)某個程序正等待用戶輸入他或她的姓名。黑客可能會輸入長度超過堆棧大小的可執(zhí)行命令,而不是輸入的自己的姓名。而這條命令通常很簡短。例如,在Linux環(huán)境下,典型的如exec(“sh”)命令,它要求系統(tǒng)打開一個命令提示符窗口,使用Linux的人稱它為rootshell.。然而有可執(zhí)行指令的緩沖區(qū)溢出并不意味著指令就會被執(zhí)行。攻擊者必須為惡意指令指定一個返回地址。由于堆棧溢出,程序會部分崩潰。然后程序會試圖通過指向返回地址進行恢復(fù),但是返回地址已經(jīng)被黑客改變?yōu)橹赶驉阂庵噶睢.?dāng)然,這意味著黑客必須知道惡意指令將存儲的地址。為了省去尋找精確地址的麻煩,攻擊者可以通過對惡意指令的兩頭進行NOP指令(一種指針)填充。在不知道內(nèi)存精確范圍時,對堆棧兩頭進行填充是常見的技術(shù)。因此,如果黑客指定的地址中落在填充的范圍之內(nèi),惡意命令將可能會被執(zhí)行。最后一部分是可執(zhí)行程序的權(quán)限。如我們所知,大多現(xiàn)代化的操作系統(tǒng)都采用某種機制來控制當(dāng)前登錄用戶的訪問級別權(quán)限,而執(zhí)行程序通常需要更高級別的權(quán)限。因此,這些程序以內(nèi)核模式或以服務(wù)帳戶繼承權(quán)限模式運行。當(dāng)堆棧溢出攻擊執(zhí)行位于新的返回地址上的命令時,程序認為它仍然在運行。這意味著,命令提示符窗口同被攻擊的應(yīng)用程序一樣具有相同的權(quán)限。通常,這意味著攻擊者已經(jīng)完全取得了操作系統(tǒng)的控制權(quán)。緩沖區(qū)溢出攻擊組成發(fā)現(xiàn)緩沖區(qū)測試(Try!?。。┳址僮骱瘮?shù)Web搜索編寫shell代碼:將要被執(zhí)行的程序編寫exploit代碼(植入代碼):啟動shell代碼的程序緩沖區(qū)溢出之后一旦溢出并產(chǎn)生了一個命令外殼之后,攻擊者采取的動作可能有:使用inetd創(chuàng)建后門使用tftp或netcat進行后門攻擊回擊xterm密碼猜測攻擊猜測缺省密碼通過登錄腳本猜測密碼密碼破解Windows:L0phtCrackunix:: JohntheRipper關(guān)鍵:如何獲得密碼文件?網(wǎng)絡(luò)應(yīng)用程序攻擊收集帳號不斷輸入錯誤帳號和口令破壞web應(yīng)用程序的會話跟蹤猜測會話ID,通過獲取HTML頁面修改后重放修改cookies如果會話ID不能手工修改?Web代理工具:AchillesSQLPiggybacking網(wǎng)絡(luò)攻擊階段及工具攻擊的階段性偵察掃描拒絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)網(wǎng)絡(luò)攻擊方式嗅探嗅探是一種實現(xiàn)監(jiān)聽和協(xié)議分析的方式,工作在網(wǎng)絡(luò)的底層,捕獲所有網(wǎng)絡(luò)數(shù)據(jù)包。IP地址欺騙會話劫持多功能網(wǎng)絡(luò)工具攻擊:NetCat嗅探被動嗅探:通過集線器進行嗅探主動嗅探:通過交換機進行嗅探被動嗅探嗅探工具Tcpdump,Windump,netgroup-serv.polito.it/windump/Snort,Ethereal,Dsniff,/~dugsong/dsniff/SnifferPro主動嗅探被動嗅探僅對共享式網(wǎng)絡(luò)有效,如何在交換式網(wǎng)絡(luò)中進行嗅探呢?集線器交換機主動嗅探(續(xù))主動嗅探類型泛洪對付交換機用ARP欺騙信息對付交換機嗅探和欺騙DNS對HTTPS和SSH進行嗅探主動嗅探(續(xù))泛洪對付交換機(1)交換機主動嗅探(續(xù))泛洪對付交換機(2)交換機內(nèi)存耗盡??!主動嗅探(續(xù))用ARP欺騙信息對付交換機(ARPSpoof)交換機外部網(wǎng)絡(luò)LAN的缺省路由主動嗅探(續(xù))用ARP欺騙信息對付交換機(ARPSpoof)交換機外部網(wǎng)絡(luò)LAN的缺省路由1.配置IP轉(zhuǎn)發(fā)將數(shù)據(jù)包送到缺省路由器2.發(fā)送假的ARP回應(yīng),使受害者主機的ARP表中的條目被污染,將路由器的IP地址映射為攻擊者的MAC地址3.受害者的數(shù)據(jù)實際發(fā)向了攻擊者4.攻擊者進行嗅探5.攻擊者轉(zhuǎn)發(fā)數(shù)據(jù)包主動嗅探(續(xù))嗅探和欺騙DNS交換機外部網(wǎng)絡(luò)LAN的缺省路由1.攻擊者啟動DNS嗅探2.受害者發(fā)送DNS解析消息3.攻擊者截獲DNS解析消息4.攻擊者快速回送一個假的域名解析:225.受害者發(fā)送的數(shù)據(jù)將送往外部攻擊者22主動嗅探(續(xù))對HTTPS和SSH進行嗅探中間人中間人攻擊主動嗅探對HTTPS和SSH進行嗅探交換機外部網(wǎng)絡(luò)LAN的缺省路由1.攻擊者啟動DNS嗅探2.受害者發(fā)送DNS解析消息3.攻擊者截獲DNS解析消息4.攻擊者快速回送一個假的域名解析:55.受害者發(fā)送的數(shù)據(jù)將送往攻擊者56.攻擊者轉(zhuǎn)發(fā)SSL或SSH消息提示用戶使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)IP地址欺騙簡單IP地址欺騙復(fù)雜IP地址欺騙源路由欺騙

簡單IP地址欺騙IP:xIP:y偽造一個來自于IP地址為y的數(shù)據(jù)包

復(fù)雜IP地址欺騙5.使用猜測的序列號響應(yīng)BobEveAlice1.打開到Bob的TCP連接以觀察回應(yīng)中使用的初始序列號Bob2.對Alice發(fā)送拒絕服務(wù)攻擊,使得Alice不能響應(yīng)任何消息3.使用Alice的地址與Bob建立連接4.Bob的響應(yīng)被發(fā)送到Alice

使用源路由進行IP地址欺騙EveAliceBob3.Eve竊聽數(shù)據(jù),并修改后發(fā)送給Alice1.發(fā)送源路由數(shù)據(jù)包,其中從Bob到Alice的路徑包括Eve2.Bob發(fā)送到Alice的數(shù)據(jù)將經(jīng)過Eve使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)會話劫持EveAliceBob1.AliceTelnetBob2.Alice與Bob之間的Telnet連接3.Eve竊聽并分析TCP序列號4.Eve偽裝Alice的IP地址發(fā)送數(shù)據(jù)包給Bob會話劫持(續(xù))工具:DsniffIPWatcher:TTYWatcher:TTYSnoop:使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)多功能工具NetCat:

/兩種工作模式:客戶模式和偵聽模式通過標準輸入設(shè)備進行輸入客戶模式的netcat輸出被通過網(wǎng)絡(luò)發(fā)送到任意系統(tǒng)的TCP或者UDP端口輸出到標準輸出設(shè)備偵聽模式的netcat從任意TCP或UDP端口上收到的輸入客戶模式偵聽模式NetcatNetcat主要功能:文件傳輸端口掃描建立到開放端口的連接創(chuàng)建被動的后門命令shell主動地推動一個后門命令shell流量中繼網(wǎng)絡(luò)攻擊階段及工具偵察掃描拒絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)拒絕服務(wù)攻擊拒絕服務(wù)攻擊分類殺死進程重新配置系統(tǒng)使進程崩潰填充進程表填充整個文件系統(tǒng)惡意數(shù)據(jù)包攻擊(如Land攻擊,Teardrop攻擊)數(shù)據(jù)包泛洪(SYN泛洪,Smurf,DDoS)本地網(wǎng)絡(luò)停止服務(wù)消耗資源Land攻擊發(fā)送假的數(shù)據(jù)包,它的源IP地址和端口號與目標主機相同。舊的TCP/IP協(xié)議棧對這種未知情況就會造成混亂,甚至崩潰。Teardrop攻擊發(fā)送重疊的數(shù)據(jù)包碎片。在數(shù)據(jù)包頭內(nèi)碎片的長度被設(shè)置為不正確的值,所以主機對這些數(shù)據(jù)包碎片組裝時就不能對其正確排隊。一些TCP/IP協(xié)議棧收到這樣的碎片就會崩潰。還包括Newtear攻擊,Bonk攻擊,Syndrop攻擊SYN泛洪發(fā)送大量的SYN包無法接受正常的服務(wù)請求連接隊列被填滿Smurf攻擊放大器廣播假的Ping,源地址采用YIP地址為ySmurf攻擊是以最初發(fā)動這種攻擊的程序名“Smurf”來命名的。這種攻擊方法結(jié)合使用了IP欺騙和ICMP回復(fù)方法使大量網(wǎng)絡(luò)傳輸充斥目標系統(tǒng),引起目標系統(tǒng)拒絕為正常系統(tǒng)進行服務(wù)。Smurf攻擊通過使用將回復(fù)地址設(shè)置成受害網(wǎng)絡(luò)的廣播地址的ICMP應(yīng)答請求(ping)數(shù)據(jù)包,來淹沒受害主機,最終導(dǎo)致該網(wǎng)絡(luò)的所有主機都對此ICMP應(yīng)答請求做出答復(fù),導(dǎo)致網(wǎng)絡(luò)阻塞。更加復(fù)雜的Smurf將源地址改為第三方的受害者,最終導(dǎo)致第三方崩潰。DDoSMasterClientZombie網(wǎng)絡(luò)攻擊階段及工具偵察掃描決絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)維護訪問權(quán)木馬(TrojanHorse)BackOrifice2000(BO2K):.......后門(Backdoor)RootKits:修改系統(tǒng)命令甚至內(nèi)核dufindlsIfconfignetstatps網(wǎng)絡(luò)攻擊階段及工具偵察掃描決絕服務(wù)攻擊掩蓋蹤跡和隱藏使用應(yīng)用程序和操作系統(tǒng)的攻擊獲得訪問權(quán)使用網(wǎng)絡(luò)攻擊獲得訪問權(quán)維護訪問權(quán)掩蓋蹤跡和隱藏安裝RootKits或者backdoor修改事件日志W(wǎng)indows:*.evt工具:winzapper,ntsecurity.nu/toolbox/winzapper/UNIX:utmpwtmplastlog掩蓋蹤跡和隱藏(續(xù))利用秘密通道技術(shù)來隱藏證據(jù)隧道技術(shù)loki:ICMP隧道VanHauser:HTTP隧道隱蔽通道(CovertChannel)利用IP或者利用tcp頭IPidentifierTCPSequencenumberTCPacknumber工具:Covert_TCPCaseStudySourceCodeDBMonstrousSoftware電子辦公MonstrousSoftwareCaseStudyStep1:尋找跳離點跳離點(前蘇聯(lián))跳離點(日本)SourceCodeDBMonstrousSoftwar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論