黑客攻防實戰編程

黑客攻防實戰編程

《黑客攻防實戰編程》是2009年6月1日電子工業出版社出版的圖書,作者是鄧吉。本書是筆者通過多年的研究與實踐,在把握國內外安全領域研究的熱點及難點的基礎之上,進行歸納總結所完成的一本黑客編程入門及提高書籍,這一點是本書區別於其他同類書籍的根本之處。

基本介紹

  • 書名:黑客攻防實戰編程
  • 作者:鄧吉 編著
  • ISBN: 9787121085376 
  • 頁數:376頁
  • 定價:48.00元
  • 出版社電子工業出版社
  • 出版時間:2009-6-1
  • 開本:16開
內容簡介,編輯推薦,前 言,目 錄,

內容簡介

《黑客攻防實戰編程》一書作為《黑客攻防實戰入門》、《黑客攻防實戰詳解》和《黑客攻防實戰進階》的提高篇,仍然以黑客“攻”、“防”的視角,針對目前國內外安全研究的熱點和難點問題進行研究,內容涵蓋了Web入侵腳本、病毒、木馬、網馬、加密解密、Shellcode、漏洞溢出滲透、以及漏洞挖掘等相關領域的程式開發研究。

編輯推薦

本書適合信息安全領域研究人員、機構、網管和那些對網路感興趣的在校學生作為參考及教學之用,也適合防毒軟體、木馬查殺軟體等相關網路安全工具的開發人員作為參考之用。

前 言

《黑客攻防實戰入門》、《黑客攻防實戰詳解》和《黑客攻防實戰進階》這3本書自面世以來,得到了廣大讀者的肯定與好評。其銷量一直排在同類書籍的前列,筆者在此深表感謝。與此同時,應廣大讀者的要求,筆者針對當前黑客編程領域的熱點及難點問題,撰寫了這本《黑客攻防實戰編程》一書。本書一如既往地保持著前3本書的“授之以魚,不如授之以漁”的風格,向讀者介紹黑客入侵及防禦相關編程技術的思考方法和思維方式,而不是單單介紹編程語法。
關於黑客
長期以來,由於諸多方面的因素,“黑客”這個字眼變得十分敏感。不同的人群對黑客也存在不同的理解,甚至沒有人願意承認自己是黑客。有些人認為,黑客是一群狂熱的技術愛好者,他們無限度地追求技術的完美;有些人認為,黑客只是一群擁有技術,但思想簡單的毛頭小伙子;還有些人認為黑客是不應該存在的,他們是網路的破壞者。這裡,我們沒有必要對這個問題爭論不休,也無須為黑客加上一個標準的定義,但從客觀存在的事實來看,黑客這類群體往往存在以下共同點。
(1)強烈的技術渴望與完美主義:驅動他們成長的是對技術的無限渴望,獲得技術的提高才是他們最終的任務。
(2)強烈的責任感:只有強烈的責任感才能使他們不會走向歧途,責任感告訴他們不要在任何媒體上公布成功入侵的伺服器;不要對其入侵的伺服器進行任何破壞;在發現系統漏洞後要立即通知官方對該漏洞採取必要的修補措施。在官方補丁沒有公布之前,絕對不要大範圍地公開漏洞利用代碼。一方面,黑客入侵可能造成網路的暫時癱瘓;另一方面,黑客也是整個網路的建設者,他們不知疲倦地尋找網路大廈的缺陷,使得網路大廈的根基更加穩固。
為什麼寫作本書
不容樂觀的事實是,一部分人歪曲了黑客的本質,被不良動機所驅使而進行入侵活動,威脅網路的健康發展。對於我國來說,形勢尤為嚴峻。我國信息化建設遲於美國等已開發國家,信息安全技術水平也相對落後。在幾次黑客大戰中,國區域網路站的弱口令及漏洞比比皆是。這種現狀實在令人擔憂,值得深思和反省,從中也可以看出傳統的計算機網路教學層次是遠遠不夠的。可能出於安全等其他角度的考慮,傳統教學往往只注重表面上的套用,而避開一些敏感的技術。構想一下,如果一個網站的管理員只學會架構網站,卻不關心如何入侵自己的網站,那么如何對自己網站的缺陷了如指掌?如何能夠及時地獲知最新漏洞的描述而提前做好抵禦?如果以上都做不到,那就更不要談日常的系統更新、維護和打補丁了。然而國內精通入侵的網管又有多少呢?長期以來,國區域網路管的潛意識裡都認為“入侵”是個不光彩的勾當,甚至嗤之以鼻。隨著信息化程度越來越高,信息技術與生活的聯繫越來越緊密,可以上網的電子設備逐年增加,電腦、PDA、手機,甚至家電。可以想像10年後,如果不了解入侵者的手段來採取必要的防禦措施,將要被入侵的設備不會僅僅限於電腦,也許還包括手機、家電和汽車等。因此在信息技術如此發達,溝通方式日益豐富和複雜的今天,我們不僅要學會如何正確使用網路,而且還需要學會如何防禦自己的網路被他人入侵,這也正是筆者寫作本書的初衷。
本書主要內容
作為《黑客攻防實戰入門》、《黑客攻防實戰詳解》和《黑客攻防實戰進階》的提高篇,本書以黑客“攻”、“防”的視角,針對目前國內外安全研究的熱點和難點問題進行研究,涵蓋了Web入侵腳本、病毒、木馬、網馬、加密解密、Shellcode、漏洞溢出滲透,以及漏洞挖掘等相關領域的程式開發研究。
本書分為內容獨立的7章,讀者可以根據實際需求有選擇跳躍式閱讀,各章的主要內容如下。
第1章“Web入侵腳本編程”從伺服器搭建開始,介紹目前網路上最為猖獗的“SQL注入”和“跨站腳本攻擊”入侵手段、原理與編程技術,以及防護手段。
第2章“病毒原理及代碼解析”在總結計算機病毒發展歷史、病毒種類及病毒命名方式之後,詳細地介紹計算機病毒原理,並對病毒原始碼進行了全面的剖析。
第3章“木馬網馬程式分析”針對木馬及網馬的原始碼進行解析、總結了其工作原理、啟動方式、隱藏與防殺等相關技術。
第4章“軟體加密與解密”介紹序列號保護、軟體加密狗、時間限制及Key檔案保護等目前常見軟體的加密方法,並分析註冊機等軟體的解密原理,以及跟蹤調試與反跟蹤調試技術。
第5章“shellcode原理與編寫”介紹了棧溢出、堆溢出等程式溢出原理,分析了PE檔案結構,以及如何針對已知漏洞編寫Shellcode。
第6章“漏洞溢出程式分析與設計”詳細介紹了緩衝區溢出原理、類Unix、Windows及遠程Windows程式溢出方法等滲透方法,並介紹一款自動化滲透測試工具Metasploit及其使用方法。
第7章“漏洞挖掘與Fuzzing程式設計”介紹一種行之有效的自動化漏洞挖掘技術“Fuzzing”,進而介紹如何挖掘已知系統中所存在的漏洞。
另外,本書中所使用的原始碼及動畫教程等相關資源下載,
本書的姊妹書籍
本書的姊妹書籍有《黑客攻防實戰入門(第2版)》、《黑客攻防實戰詳解》和《黑客攻防實戰進階》3本,在本書推出之後,這4本書便形成了一個由淺入深完整的知識體系。幾乎涵蓋了黑客安全領域由入門到專家所必需掌握的所有的知識與技術,以供不同層次的讀者學習。
(1)《黑客攻防實戰入門》:踏入網路安全之門,初窺黑客攻防實戰技巧。
(2)《黑客攻防實戰詳解》:透析網路安全內幕,詳解黑客攻防體系。
(3)《黑客攻防實戰進階》:深入網路安全技術,進階黑客攻防專家。
(4)《黑客攻防實戰編程》:把握網路安全方向,實戰黑客攻防編程。
致謝
感謝張毅編輯在我還是學生時代時就接受了我的《黑客攻防實戰入門》樣稿,才使得這么多年我都有機會和信心將自己的經驗通過電子工業出版社分享給廣大讀者朋友。
感謝畢寧編輯長年來的指導與支持,並推薦給我大量的朋友與學習機會。才使得我能夠陸續撰寫《黑客攻防實戰入門(第2版)》、《黑客攻防實戰詳解》、《黑客攻防實戰進階》和《黑客攻防實戰編程》這4本書。
感謝孫學瑛老師和黃愛萍助理的指導,以及為本書的出版所付出辛勤勞動的所有朋友。
感謝qixu.liu在技術方面給與我的支持。
感謝長期以來支持我的讀者朋友和網友們。
需要聲明的是,本書的目的絕不是為那些懷有不良動機的人提供支持,也不承擔因為技術被濫用所產生的連帶責任。本書的目的在於最大限度地喚起大家的網路安全意識,正視我們的網路世界所面臨的一場危機並採取相應的行動。
鄧 吉

目 錄

第1章 Web入侵腳本編程 1
1.1 SQL 注入攻擊研究 1
1.1.1 測試環境的搭建 1
1.1.2 一個簡單的實例 5
1.1.3 用瀏覽器直接提交數據 10
1.1.4 注入型攻擊原理 11
1.1.5 典型攻擊過程及代碼分析 15
1.1.6 Very-Zone SQL注入漏洞代碼分析 20
1.1.7 動易商城2006 SQL注入漏洞代碼分析 23
1.1.8 常見的SQL注入漏洞檢測工具 28
1.1.9 如何防禦SQL注入攻擊 34
1.2 跨站腳本攻擊 36
1.2.1 跨站攻擊的來源 37
1.2.2 簡單留言本的跨站漏洞 37
1.2.3 跨站漏洞腳本分析 39
1.2.4 預防和防禦跨站漏洞 47
第2章 病毒原理及代碼解析 49
2.1 計算機病毒基本知識 49
2.1.1 分類 50
2.1.2 傳播途徑 51
2.1.3 命名規則 52
2.2 病毒原理及程式分析 54
2.2.1 病毒原理與基礎知識 54
2.2.2 重定位變數 62
2.2.3 獲取API函式地址 63
2.2.4 檔案搜尋技術 69
2.2.5 病毒感染技術 69
2.2.6 實例分析 70
2.3 Auto病毒 78
2.4 小結 81
2.5 相關連結與參考資料 81
第3章 木馬網馬程式分析 82
3.1 木馬綜述 82
3.1.1 木馬的起源 82
3.1.2 木馬的種類 83
3.1.3 木馬技術的發展 85
3.2 木馬的工作原理及程式分析 87
3.2.1 木馬的運行機制 87
3.2.2 木馬的常見欺騙方式 88
3.2.3 木馬的隱藏及其啟動方式 89
3.2.4 木馬關鍵技術及程式分析 93
3.3 網頁木馬 130
3.3.1 概述 130
3.3.2 網頁木馬與漏洞 132
3.3.3 網馬程式分析 134
3.4 小結 136
3.5 相關連結 136
第4章 軟體加密與解密 137
4.1 軟體加密方法 137
4.1.1 序列號保護 137
4.1.2 軟體狗 138
4.1.3 時間限制 139
4.1.4 Key檔案保護 139
4.1.5 CD-Check 140
4.1.6 許可證管理方式 140
4.2 軟體加密技術和註冊機制 141
4.2.1 對稱密鑰密碼體制 141
4.2.2 非對稱密鑰密碼體制 142
4.2.3 單向散列算法 144
4.3 註冊機程式分析 144
4.3.1 工作原理 144
4.3.2 生成註冊碼 146
4.3.3 用戶註冊 148
4.4 軟體解密方法 150
4.4.1 使用OllyDbg 150
4.4.2 使用IDA 155
4.5 軟體解密實例分析 159
4.6 反跟蹤技術 166
4.6.1 反調試技術 166
4.6.2 斷點檢測技術 166
4.6.3 反靜態分析技術 167
4.7 小結 167
4.8 相關連結與參考資料 167
第5章 ShellCode原理及其編寫 168
5.1 緩衝區溢出 168
5.1.1 棧溢出 171
5.1.2 堆溢出 173
5.1.3 格式化字元串漏洞 175
5.1.4 整數溢出引發的緩衝區溢出 177
5.2 ShellCode 180
5.3 定位ShellCode 183
5.4 偽裝ShellCode 188
5.5 最後的準備 191
5.5.1 PE檔案分析 191
5.5.2 獲取Kernel32.dll檔案基址 196
5.6 生成ShellCode 201
5.7 ShellCode實例分析 211
5.7.1 漏洞簡介 211
5.7.2 WinXP SP1下的ShellCode 212
5.8 小結 216
5.9 相關連結與參考資料 216
第6章 漏洞溢出程式分析與設計 217
6.1 緩衝區溢出漏洞產生的原理 217
6.1.1 棧溢出 218
6.1.2 堆溢出 219
6.2 類Unix下本地溢出研究 220
6.2.1 ret定位 220
6.2.2 構造ShellCode 221
6.2.3 類Unix本地利用方法及實例 224
6.2.4 類Unix下獲得root許可權的方法 227
6.3 Windows下本地溢出研究 229
6.3.1 ret定位 229
6.3.2 構造ShellCode 230
6.3.3 Windows下本地利用實例 233
6.4 Windows下遠程溢出研究 235
6.4.1 Windows下緩衝區溢出 235
6.4.2 Windows下遠程溢出實例分析 240
6.5 自動化溢出測試工具Metasploit 245
6.5.1 簡介 245
6.5.2 msfweb模式 246
6.5.3 實例分析——ms03-026 254
6.5.4 msfconsole模式 256
6.6 防範溢出漏洞 262
6.6.1 編寫安全的代碼 262
6.6.2 堆疊不可執行 267
6.6.3 檢查數組邊界 268
6.6.4 數據段不可執行 268
6.6.5 硬體級別保護 268
6.7 小結 269
6.8 相關連結與參考資料 269
附表:Metasploit Payload列表 269
第7章 漏洞挖掘與Fuzzing程式設計 271
7.1 漏洞概述 271
7.2 Fuzzing技術簡介 272
7.2.1 黑盒測試與Fuzzing技術 272
7.2.2 Fuzzing漏洞挖掘實例分析 273
7.3 Fuzzing工具 285
7.3.1 Fuzz 285
7.3.2 Ftpfuzz 292
7.3.3 FileFuzz 303
7.4 Fuzzing程式設計 310
7.4.1 Python腳本語言 310
7.4.2 Fuzzing工具的開發 339
7.4.3 Python攻擊腳本編寫 350
7.5 小結 359
7.6 相關連結與參考資料 360

相關詞條

熱門詞條

聯絡我們