網路掃描技術揭秘

網路掃描技術揭秘

1.6.2 3.1.2 4.1.2

基本信息

作者: 李瑞民
出版社:機械工業出版社
ISBN:9787111365327

上架時間:2011-12-16
出版日期:2012 年1月
開本:16開
頁碼:1
版次:1-1
所屬分類: 計算機

內容簡介

網路掃描技術揭秘:原理、實踐與掃描器的實現》系統地介紹網路掃描器的概念、原理與設計方法,飽含作者十幾年來在網路技術套用實踐中不斷總結的經驗與技巧。作者從網路協定這樣的基本概念開始,細緻深入地分析了網路掃描器的原理,並用自己製作的大量工程代碼,揭示了網路掃描器的實現方法與最佳實踐。
《網路掃描技術揭秘:原理、實踐與掃描器的實現》首先介紹了網路掃描技術的概念、原理、算法等,以及網路協定的意義與編程概述,隨後系統分析了各種掃描器的原理與設計方法,包括tcp/udp連線埠、netbios、snmp、icmp、基於協定的服務、基於套用的服務、命名管道、服務發現、漏洞掃描器等。書中在介紹每一種掃描器的時候,都是先介紹相應協定,然後對掃描器中要使用的api函式進行詳細說明,使讀者知道該掃描器的各種技術細節;還介紹了windows中相關協定程式的安裝、配置、測試和驗證等,使讀者有了演習場地;最後展示了掃描器的編程實例。這種循序漸進、逐步深入的方式,使讀者不僅全面地了解掃描器的細節,而且在遇到新情況時,能舉一反三,對代碼進行修改或調整。隨書光碟還包含了作者精心製作與調試好的工程代碼,可幫助讀者快速上手,設計出自己需要的掃描器。
《網路掃描技術揭秘:原理、實踐與掃描器的實現》不僅是網管員和安全技術人員必備參考書,也適合於所有想深入理解計算機網路原理、全面了解網路掃描技術的學生、教師以及安全技術愛好者。

目錄

《網路掃描技術揭秘:原理、實踐與掃描器的實現》
前 言
第 1 章 緒論 / 1
1.1 網路安全的概念 / 1
1.2 網路掃描的概念 / 2
1.2.1 服務和連線埠 / 2
1.2.2 網路掃描 / 4
1.3 網路掃描原理概述 / 5
1.4 掃描編程與客戶端編程的區別 / 5
1.5 網路掃描的目的 / 5
1.6 網路掃描算法 / 6
1.6.1 非順序掃描 / 6
1.6.2 高速掃描 / 8
1.6.3 分散式掃描 / 8
1.6.4 服務掃描 / 8
1.6.5 指紋識別算法 / 8
1.6.6 漏洞掃描 / 9
1.6.7 間接掃描 / 9
1.6.8 秘密掃描 / 9
1.6.9 認證掃描 / 10
.1.6.10 代理掃描 / 10
1.6.11 手工掃描 / 10
1.6.12 被動掃描 / 10
1.7 網路掃描器的分類 / 11
1.8 網路掃描技術的發展史 / 12
1.8.1 手工掃描階段 / 12
1.8.2 使用通用掃描器階段 / 13
1.8.3 設計專用掃描器階段 / 14
1.9 掃描器的限制 / 14
1.10 當前網路常見的漏洞 / 14
1.10.1 dos和ddos / 15
1.10.2 緩衝區溢出 / 15
1.10.3 注入式攻擊 / 17
1.10.4 明文傳輸 / 17
1.10.5 簡單密碼 / 18
第 2 章 網路協定和網路編程例程 / 19
2.1 常用的網路編程 / 19
2.1.1 tcp/ip協定編程 / 20
2.1.2 netbios/netbeui協定編程 / 41
2.1.3 win inet高層編程 / 47
2.1.4 命名管道和郵槽高層編程 / 48
2.2 掃描器中公用編程示例 / 49
2.2.1 CTreeCtrl控制項的套用 / 49
2.2.2 CListCtrl控制項的套用 / 51
2.2.3 ini檔案的操作 / 53
2.2.4 資料庫ado的簡單套用 / 56
2.2.5 ip格式的互換 / 59
2.2.6 windows作業系統類型的判斷 / 62
2.2.7 多執行緒的局限性和使用方式 / 63
2.2.8 vc++下windows socket的使用 / 66
2.2.9 網卡的混雜模式 / 69
2.3 嵌入外部程式 / 71
2.3.1 可執行外部程式的幾個函式 / 71
2.3.2 編程實例:使用重定向接收外部程式運行結果 / 76
2.3.3 編程實例:使用管道接收外部程式運行結果 / 80
第 3 章 tcp/udp連線埠掃描器的設計 / 85
3.1 連線埠掃描的概念 / 85
3.1.1 連線埠的概念 / 85
3.1.2 連線埠掃描原理 / 87
3.2 連線埠掃描技術 / 87
3.2.1 網路通信實例分析 / 87
3.2.2 tcp掃描 / 90
3.2.3 udp掃描 / 92
3.3 手工掃描 / 93
3.3.1 檢測單主機單連線埠開與否 / 93
3.3.2 檢測單主機單連線埠是否有相應服務 / 94
3.3.3 檢測多主機或多連線埠 / 95
3.4 編程實例:tcp連線埠掃描器 / 98
3.4.1 程式主界面 / 99
3.4.2 程式代碼 / 100
3.5 編程實例:udp連線埠掃描器 / 112
3.5.1 程式主界面 / 112
3.5.2 程式代碼 / 113
第 4 章 netbios掃描器的設計 / 120
4.1 NetBIOS協定的使用 / 120
4.1.1 查看和修改netbios配置 / 120
4.1.2 查看netbios配置的命令 / 122
4.2 ip和主機名的互換 / 127
4.2.1 主機名轉ip地址 / 127
4.2.2 ip地址轉主機名 / 127
4.3 mac地址的讀取 / 128
4.4 本地域名、子網掩碼、網卡類型的讀取 / 129
4.5 用戶名、已分享資料夾、組列表的讀取 / 134
4.5.1 unicode編程與ansi之間的互換 / 134
4.5.2 用戶名列表的讀取 / 137
4.5.3 已分享資料夾的讀取 / 150
4.5.4 組列表的讀取 / 156
4.5.5 遠端主機時間的讀取 / 159
4.5.6 遠端服務支持類型的讀取 / 161
4.5.7 主機信息的讀取 / 163
4.6 netbios的安全性 / 166
4.7 編程實例:反“ip欺騙”—mac地址掃描器的設計 / 169
4.7.1 反“ip欺騙”的原理 / 169
4.7.2 mac地址掃描器的主界面 / 170
4.7.3 程式代碼 / 170
4.8 編程實例:netbios的通用掃描器 / 176
4.8.1 程式主界面 / 176
4.8.2 程式代碼 / 177
第 5 章 snmp掃描器的設計 / 186
5.1 snmp協定 / 186
5.1.1 管理信息結構 / 187
5.1.2 管理信息庫 / 187
5.1.3 通信協定 / 191
5.2 snmp的api / 193
5.2.1 數據類型和常用結構 / 194
5.2.2 管理程式api / 197
5.3 snmp安裝和驗證 / 204
5.4 編程實例:snmp通用讀設工具 / 207
5.4.1 程式主界面 / 208
5.4.2 程式代碼 / 209
5.5 編程實例:基於snmp的主機掃描器 / 213
5.5.1 程式主界面 / 214
5.5.2 程式代碼 / 214
第 6 章 icmp掃描器的設計 / 221
6.1 ICMP協定簡介 / 222
6.2 ping與TRACERT命令簡介 / 222
6.2.1 ping程式使用 / 222
6.2.2 tracert程式使用 / 224
6.3 icmp通信實例分析 / 226
6.4 icmp協定內容 / 227
6.4.1 目的不可達訊息 / 227
6.4.2 逾時訊息 / 228
6.4.3 參數問題訊息 / 229
6.4.4 源擁塞訊息 / 229
6.4.5 重定向訊息 / 230
6.4.6 回送請求或回送回響訊息 / 231
6.4.7 時間戳請求和時間戳回響訊息 / 231
6.4.8 信息請求或信息響應訊息 / 232
6.5 icmp掃描的安全性 / 233
6.6 編程實例:快速多ip的icmp掃描器 / 234
6.6.1 程式主界面 / 234
6.6.2 程式原理 / 237
6.6.3 程式代碼 / 238
第 7 章 基於協定的服務掃描器的設計 / 250
7.1 www服務掃描 / 251
7.1.1 www伺服器架構 / 251
7.1.2 協定訊息格式 / 254
7.1.3 www伺服器的安裝與配置 / 260
7.2 編程實例:www服務掃描器 / 264
7.2.1 掃描原理 / 265
7.2.2 程式主界面 / 266
7.2.3 程式代碼 / 266
7.3 ftp服務掃描 / 272
7.3.1 ftp簡介 / 272
7.3.2 ftp伺服器的安裝與配置 / 274
7.4 編程實例:ftp服務掃描器 / 278
7.4.1 程式主界面 / 278
7.4.2 程式代碼 / 278
7.5 telnet服務掃描 / 281
7.5.1 TELNET協定簡介 / 281
7.5.2 telnet的安裝與配置 / 284
7.6 編程實例:telnet服務掃描器 / 286
7.6.1 程式主界面 / 287
7.6.2 程式代碼 / 287
7.7 email服務掃描 / 291
7.7.1 電子郵件協定簡介 / 291
7.7.2 電子郵件伺服器的安裝與配置 / 299
7.8 編程實例:email服務掃描器 / 306
7.8.1 程式主界面 / 306
7.8.2 程式代碼 / 307
第 8 章 基於套用的服務掃描器的設計 / 314
8.1 win inet編程接口 / 314
8.1.1 CInternetSession類 / 315
8.1.2 cinternetconnection類 / 322
8.1.3 CHttpConnection類 / 323
8.1.4 CFtpConnection類 / 324
8.1.5 CInternetFile類 / 237
8.1.6 CInternetException類 / 329
8.2 編程實例:基於套用的www服務掃描器 / 329
8.3 編程實例:基於套用的ftp服務掃描器 / 330
8.4 網路資源協定 / 332
8.4.1 netresource結構 / 332
8.4.2 WNetOpenEnum函式 / 333
8.4.3 wnetenumresource函式 / 334
8.4.4 WNetCloseEnum函式 / 335
8.5 編程實例:網路資源掃描器 / 336
8.5.1 程式主界面 / 336
8.5.2 程式代碼 / 337
第 9 章 命名管道掃描器的設計 / 341
9.1 命名管道 / 341
9.2 命名管道api / 342
9.2.1 命名管道的unc格式 / 342
9.2.2 命名管道編程的api / 342
9.3 命名管道編程示例 / 349
9.3.1 命名管道伺服器端 / 349
9.3.2 命名管道客戶端 / 350
9.4 郵槽 / 352
9.4.1 郵槽的unc格式 / 352
9.4.2 郵槽編程的api / 352
9.5 郵槽編程示例 / 354
9.5.1 郵槽伺服器端編程 / 354
9.5.2 郵槽客戶端編程 / 355
9.6 編程實例:sql server命名管道掃描器的設計 / 356
9.6.1 microsoft sql server
簡介 / 356
9.6.2 程式主界面 / 359
9.6.3 程式代碼 / 360
第10章 服務發現掃描器的設計 / 364
10.1 服務發現簡介 / 364
10.2 upnp協定 / 365
10.2.1 定址 / 367
10.2.2 發現 / 367
10.2.3 描述 / 368
10.2.4 控制 / 369
10.2.5 事件 / 369
10.2.6 展示 / 370
10.3 xml協定 / 371
10.4 ssdp協定分析實例 / 373
10.4.1 設備類型 / 374
10.4.2 協定訊息格式 / 377
10.5 編程實例:服務發現掃描器 / 381
10.5.1 程式主界面 / 382
10.5.2 程式代碼 / 383
第11章 漏洞掃描器的設計 / 395
11.1 注入式漏洞掃描器 / 395
11.1.1 SQL注入式攻擊原理 / 396
11.1.2 注入式攻擊的局限性 / 398
11.1.3 單機模式或c/s模式的攻擊 / 398
11.1.4 b/s模式下掃描程式設計 / 401
11.2 主機弱密碼掃描 / 412
11.2.1 網路連線的api / 412
11.2.2 密碼窮舉分析 / 416
11.2.3 程式主界面 / 418
11.2.4 程式代碼 / 419
11.3 dos/ddos攻擊 / 425
11.3.1 程式主界面 / 427
11.3.2 程式代碼 / 427
11.4 明文密碼嗅探 / 432
11.4.1 程式主界面 / 433
11.4.2 程式代碼 / 434
11.5 連線埠對照 / 443
11.5.1 程式主界面 / 443
11.5.2 程式代碼 / 445
第12章 掃描防範技術的研究 / 451
12.1 更換連線埠 / 452
12.2 預留陷阱技術 / 453
12.3 基於哨兵的連線埠掃描監測 / 454
12.3.1 程式主界面 / 455
12.3.2 程式代碼 / 456
12.4 基於嗅探的連線埠掃描監測及ddos拒絕服務監測 / 460
12.4.1 程式主界面 / 461
12.4.2 程式代碼 / 462
12.5 實時監測本地所有tcp/udp連線及連線埠 / 467
12.5.1 程式主界面 / 467
12.5.2 結構與函式api / 468
12.5.3 程式代碼 / 471
12.6 如何關閉連線埠 / 478
12.6.1 ftp連線埠 / 478
12.6.2 www連線埠 / 480
12.6.3 telnet連線埠 / 480
12.6.4 netbios連線埠 / 481
附錄a 本書容易混淆概念解析 / 482
附錄b windows socket錯誤返回碼 / 486
附錄c win inet錯誤返回碼 / 491
附錄d http錯誤返回碼 / 493
參考文獻 / 498
後記 / 499

前言

計算機網路的普及,使人們越來越關注網路的安全。而網路安全又取決於網路管理員和網路用戶對網路的了解,這種了解不僅包括如何使用網路應用程式,還包括網路的配置甚至網路的技術細節。
網路中,協定是任意兩台主機之間進行通信的前提和始終貫徹的原則。因此本書首先在第1章中對網路掃描的概念、原理、目的、算法、歷史進行了綜述,然後在第2章著眼於現在網路,特別是互聯網中網絡協定的意義,以及如何通過協定進行編程,由淺入深,逐步分析了網路協定的各項技術細節。
網路服務是一台主機對外開放的最終目的,而連線埠又是服務的對外視窗。因此以前很多人對網路掃描的理解就是連線埠掃描。連線埠直接與服務對應的關係,使得連線埠越來越成為人們關注的目標,打開一種服務就意味著打開了一個或幾個連線埠,同時也打開了一扇“大門”,因此在第3章中,對連線埠掃描進行了全面詳細的論述。
協定不同,對連線埠的掃描也不同,因此在隨後的第4、5、6章中,分別介紹了基於NetBIOS、SNMP、ICMP掃描的協定、原理、掃描器實現方法等細節。
網路服務必然存在連線埠,但由於連線埠本身不具有強制性,所以即使掃描到連線埠,也不意味著必然對應某一服務,因此連線埠掃描只能作為初判,服務掃描才是真正判斷對方是否提供某服務的最終方式。在第7章中,詳細地介紹了完全基於服務的掃描方式,主要有WWW服務、FTP服務、Telnet服務、E-mail服務等套用層服務。這些服務極具掃描的普遍性,可以說,有了針對這些服務的掃描器設計框架和設計思路,任何一個新協定、新服務都可以用此方法做出相應的掃描器。在第8章中,介紹了另一種基於套用的掃描方式,在這裡,除了WWW服務、FTP服務之外,還包括了對網路資源的掃描。這種掃描由於使用了套用層的API,所以程式簡捷、透明性強,但對底層的控制不多。
在第9、10兩章中,介紹了幾種特殊套用領域的掃描方式:命名管道掃描器和服務發現掃描器。這兩種掃描器是較新的技術,並且可以使網路掃描從僅限於安全領域內的套用,轉換到生活領域內的套用。
第11章的漏洞掃描器則是對網路中存在的漏洞進行掃描,從而發現漏洞以及漏洞的位置。這種掃描方式具有很大的實用性,但這類漏洞掃描器的編制有一定的難度,且具有較強的時效性。
第12章介紹掃描防範技術,通過這些技術,可以檢測或防止別人對主機本身或網路進行掃描。
為了統一形式,書中在介紹各掃描器時都先介紹協定,使讀者對該協定有個初步的了解。然後對其API,特別是掃描器中要使用的API函式進行詳細介紹,使讀者知道該掃描器要實現的各種技術細節。再針對Windows中該協定程式的安裝、配置、測試和驗證進行詳述,使讀者有演習場地。最後是掃描器的編程實例。採用這種循序漸進、逐步深入的方式,讀者不僅能深入全面地了解掃描器細節,也能在遇到新情況時舉一反三,對代碼進行修改或調整。
在全書的組織上,雖然按技術人為地分了很多章,但實際上各章內容則是你中有我,我中有你,相互解釋,相互引用,建議讀者先讀第1、2章,第3~10章則可以按需要酌情選讀,最後再看第11、12章。
縱觀這些掃描器系統及掃描監測、防護系統,無論是“攻”,還是“防”,都不取決於程式的設計程度,而是取決於使用程式的人。對於黑客,會利用攻方系統刺探、入侵別人的系統,用防方系統保護自己不被發現或刺探;而對於網路普通用戶或網路管理員,則要通過攻方系統掃描自身缺點,防患於未然,同時利用防方系統及時發現別人的掃描操作。再安全的系統,都有漏洞,再全面的技術,都有不足,真正的網路安全,需要豐富的安全常識和強烈的安全意識。
全書中的說明和編程實例均以Microsoft Windows XP(SP3)作為默認的作業系統、以Microsoft Visual C++ 6.0(SP6)作為默認的開發環境。
本書附帶光碟,內容包括本書所有程式的源碼工程檔案,以及個別程式所需的必要支持檔案。
聲明
本書、光碟所有例程,其源碼部分著作權歸本書作者。本書、光碟的源碼、執行檔(包括由例程編譯生成的執行檔)不得用於以下目的:
>> 商業銷售。
>> 網站下載。
>> 攻擊任意對方未授權的網站。

相關詞條

相關搜尋

熱門詞條

聯絡我們