目錄
前言
第1章 網絡安全綜述 1
1.1 網絡安全概述 1
1.1.1 網絡安全概念 1
1.1.2 網絡安全體系結構 2
1.1.3 網絡安全的攻防體系3
1.2 計算機網絡面臨的安全威脅4
1.2.1 TCP/IP網絡體系結構及計算機網絡的脆弱性 4
1.2.2 計算機網絡面臨的主要威脅5
1.3 計算機網絡安全的主要技術與分類6
1.3.1 網絡偵察 6
1.3.2 網絡攻擊 7
1.3.3 網絡防護 8
1.4 網絡安全的起源與發展11
1.4.1 計算機網絡的發展11
1.4.2 網絡安全技術的發展12
1.4.3 黑客與網絡安全 12
習題 13
上機實踐 13
第2章 基礎知識 14
2.1 常用的Windows命令 14
2.2 常用的Linux命令 21
2.3 批命令及腳本文件 25
2.3.1 批處理文件 25
2.3.2 VBS腳本文件 27
2.4 網絡端口、服務、進程27
2.4.1 網絡端口 27
2.4.2 服務與進程 29
2.4.3 Windows終端服務 30
2.5 網絡編程技術基礎知識31
2.5.1 套接字 31
2.5.2 網絡編程庫 33
2.5.3 用Windows Sockets編程 33
2.6 網絡安全實驗環境的配置33
2.6.1 安裝VirtualBox虛擬機 33
2.6.2 配置多個虛擬網卡,模擬多個網絡交換機 34
2.6.3 安裝和配置新的虛擬機系統34
2.6.4 導入和導出安裝好的虛擬機37
習題 38
上機實踐 38
第3章 密碼學基礎 39
3.1 密碼學概述 39
3.2 對稱密碼技術 42
3.2.1 DES算法的安全性 42
3.2.2 DES算法的原理 42
3.2.3 DES的各種變種 43
3.3 RSA公開密鑰密碼技術 43
3.3.1 RSA算法描述 44
3.3.2 RSA算法舉例 44
3.3.3 RSA算法的安全性 45
3.3.4 RSA算法的速度 45
3.3.5 RSA算法的程序實現 45
3.4 信息摘要和數字簽名 45
3.4.1 信息摘要 45
3.4.2 數字簽名 46
3.5 公鑰基礎設施及數字證書47
3.5.1 PKI的定義和組成 47
3.5.2 數字證書及其應用48
3.6 PGP及其應用 50
3.6.1 PGP簡介 50
3.6.2 Windows環境下PGP的實現案例Gpg4win 50
3.7 使用OpenSSL中的密碼函數 54
3.7.1 在命令行下使用OpenSSL54
3.7.2 在Windows的C程序中使用OpenSSL 57
3.7.3 在Linux的C程序中使用OpenSSL 58
3.8 Windows系統提供的密碼算法 59
3.8.1 密碼服務提供者CSP60
3.8.2 使用CSP提供的密碼技術實現保密通信 62
習題 62
上機實踐 63
第4章 虛擬專用網絡VPN 64
4.1 概述 64
4.1.1 VPN的功能和原理 64
4.1.2 VPN的分類 66
4.2 基于第2層隧道協議的PPTP VPN和L2TP VPN 67
4.2.1 PPTP VPN67
4.2.2 L2TP VPN68
4.3 基于第3層隧道協議的IPSec VPN 68
4.3.1 IPSec的組成和工作模式 69
4.3.2 認證協議AH 69
4.3.3 封裝安全載荷ESP70
4.3.4 安全關聯與安全策略71
4.4 Windows環境下的VPN 72
4.4.1 用Windows 2003實現遠程訪問VPN 73
4.4.2 用Windows 2003實現網關-網關VPN 81
習題 89
上機實踐 89
第5章 防火墻技術 90
5.1 防火墻概述 90
5.2 防火墻的功能和分類 91
5.2.1 防火墻的功能 91
5.2.2 防火墻的分類 92
5.3 包過濾防火墻 93
5.3.1 靜態包過濾防火墻93
5.3.2 動態包過濾防火墻 94
5.4 應用級網關防火墻 96
5.5 防火墻的典型部署 97
5.5.1 屏蔽主機模式防火墻97
5.5.2 雙宿/多宿主機模式防火墻 97
5.5.3 屏蔽子網模式防火墻98
5.6 Linux防火墻的配置 99
習題 99
上機實踐 99
第6章 入侵檢測技術 100
6.1 入侵檢測概述 100
6.1.1 入侵檢測的概念及模型100
6.1.2 IDS的任務 101
6.1.3 IDS提供的主要功能 102
6.1.4 IDS的分類 103
6.2 CIDF模型及入侵檢測原理 104
6.2.1 CIDF模型 104
6.2.2 入侵檢測原理 105
6.3 基于Snort部署IDS 106
習題 108
上機實踐 108
第7章 Windows和Linux系統的安全109
7.1 計算機系統的安全級別109
7.2 Windows系統的安全防護 110
7.2.1 使用NTFS 110
7.2.2 防止窮舉法猜測口令110
7.2.3 使用高強度的密碼(口令)112
7.2.4 正確設置防火墻112
7.2.5 路由和遠程訪問中的限制112
7.2.6 系統安全策略 113
7.2.7 重要文件的權限設置114
7.2.8 安裝第三方安全軟件,及時打上補丁115
7.2.9 斷開重要的工作主機與外部網絡的連接(物理隔離) 116
7.3 入侵Windows系統 116
7.3.1 密碼破解 116
7.3.2 利用漏洞入侵Windows系統 116
7.3.3 利用黑客工具進行入侵119
7.4 Linux(UNIX)的安全機制及防護技術 120
7.4.1 Linux的安全機制 120
7.4.2 Linux的安全防護 123
7.5 入侵Linux系統 125
7.5.1 破解口令 125
7.5.2 通過系統漏洞進行入侵125
7.5.3 幾種典型的數據驅動攻擊125
習題 126
上機實踐 126
第8章 Linux系統的緩沖區溢出攻擊 127
8.1 緩沖區溢出概述 127
8.2 Linux IA32緩沖區溢出 128
8.2.1 Linux IA32的進程映像 128
8.2.2 緩沖區溢出的原理130
8.2.3 緩沖區溢出攻擊技術133
8.3 Linux intel64緩沖區溢出 136
8.3.1 Linux x86_64的進程映像 136
8.3.2 Linux x86_64的緩沖區溢出流程 137
8.3.3 Linux x86_64的緩沖區溢出攻擊技術 139
習題 142
上機實踐 142
第9章 Linux Shellcode技術 143
9.1 Linux IA32中的系統調用 143
9.2 編寫Linux IA32的Shellcode 146
9.2.1 編寫一個能獲得Shell的程序 146
9.2.2 用系統功能調用獲得Shell147
9.2.3 從可執行文件中提取出Shellcode 149
9.3 Linux IA32本地攻擊 150
9.3.1 小緩沖區的本地溢出攻擊151
9.3.2 大緩沖區的本地溢出攻擊153
9.4 Linux IA32遠程攻擊 154
9.5 Linux intel64 Shellcode 156
9.5.1 一個獲得Shell的Shellcode 156
9.5.2 本地攻擊 159
習題 161
上機實踐 161
第10章 Windows系統的緩沖區溢出攻擊 162
10.1 Win32的進程映像 162
10.2 Win32緩沖區溢出流程 165
10.3 Win32緩沖區溢出攻擊技術 171
10.4 Win32緩沖區溢出攻擊實例 172
10.5 Win64平臺的緩沖區溢出 174
10.5.1 Win64的進程映像 175
10.5.2 Win64的緩沖區溢出流程 176
10.5.3 Win64的緩沖區溢出攻擊技術 178
習題 179
上機實踐 180
第11章 Windows Shellcode