第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 TCPIP协议编程 20
2.1.2 NetBIOSNetBEUI协议编程 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章TCPUDP端口扫描器的设计 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 W W W服务器的安装与配置 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 CIntemetConnection类 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单机模式或CS模式的攻击 398
11.1.4 BS模式下扫描程序设计 401
11.2主机弱密码扫描 412
11.2.1 网络连接的API 412
11.2.2密码穷举分析 416
11.2.3程序主界面 418
11.2.4程序代码 419
11.3 DOSDDOS攻击 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实时监测本地所有TCPUDP连接及端口 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