Nmap是知名的网络安全审计工具,可以帮助安全人员发现设备,探测开启的端口号,分析设备使用的操作系统和开启的服务,探测设备存在的漏洞。本书详细介绍如何使用Nmap工具实施渗透测试。
本书共19章,分为2篇。第1篇“Namp环境配置与网络扫描”,主要介绍Namp的环境配置,以及确定目标、发现主机、扫描端口、服务与系统探测、扫描优化、规避防火墙与IDS、保存和输出Nmap信息等基础知识;第2篇“Namp脚本实战”,涵盖探测网络基础环境、探测网络基础服务、探测Web服务、探测远程登录服务、探测数据库服务、探测应用程序及探测苹果操作系统等。
本书特别适合渗透测试人员、网络维护人员、信息安全爱好者阅读。通过阅读本书,读者可以了解和掌握网络运行的机制,熟悉网络扫描和探测的原理,并掌握大量的Nmap脚本的使用方法,从而保障网络信息的安全。
封面图
目录
- TCP发现51
- 3.3.1 TCP的工作原理51
- 3.3.2 TCP SYN发现52
- 3.3.3 TCP ACK发现54
- 3.4 UDP发现55
- 3.4.1 UDP发现的优点56
- 3.4.2 实施UDP发现56
- 3.5 ARP发现58
- 3.5.1 ARP的工作原理58
- 3.5.2 实施ARP发现59
- 3.6 SCTP发现61
- 3.6.1 SCTP的工作原理61
- 3.6.2 实施SCTP发现62
- 3.7 域名解析和反向解析63
- 3.8 路由跟踪65
- 3.9 跳过主机发现66
- 第4章 扫描端口68
- 4.1 端口简介68
- 4.1.1 端口类型68
- 4.1.2 端口状态70
- 4.2 指定端口71
- 4.2.1 手工指定71
- 4.2.2 使用预设端口80
- 4.2.3 排除端口84
- 4.2.4 顺序扫描85
- 4.3 TCP扫描87
- 4.3.1 TCP SYN扫描87
- 4.3.2 TCP连接扫描91
- 4.3.3 TCP ACK扫描93
- 4.3.4 TCP窗口扫描95
- 4.3.5 TCP NULL扫描97
- 4.3.6 TCP FIN扫描99
- 4.3.7 TCP Xmas扫描101
- 4.3.8 TCP Maimon扫描102
- 4.3.9 空闲扫描103
- 4.3.10 定制TCP扫描107
- 4.4 UDP扫描108
- 4.4.1 UDP端口扫描原理109
- 4.4.2 实施UDP端口扫描109
- 4.5 SCTP扫描111
- 4.5.1 SCTP INIT扫描111
- 4.5.2 SCTP COOKIE ECHO扫描112
- 4.6 IP扫描114
- 4.7 FTP转发扫描116
- 第5章 服务与系统探测118
- 5.1 开启服务探测118
- 5.1.1 服务探测原理118
- 5.1.2 服务探测文件120
- 5.1.3 实施服务探测124
- 5.2 服务探测模式125
- 5.2.1 探测所有端口125
- 5.2.2 探测强度126
- 5.2.3 调试信息127
- 5.2.4 RPC扫描129
- 5.3 系统探测130
- 5.3.1 开启系统探测130
- 5.3.2 探测模式134
- 第6章 扫描优化136
- 6.1 分组扫描136
- 6.2 发包方式137
- 6.2.1 并行发包138
- 6.2.2 优化发包延迟时间141
- 6.2.3 控制发包速率143
- 6.3 超时问题144
- 6.3.1 控制报文响应超时144
- 6.3.2 控制主机响应超时145
- 6.3.3 超时重试146
- 6.4 处理重置147
- 6.5 使用内置模板148
- 第7章 规避防火墙和IDS152
- 7.1 定制数据包152
- 7.1.1 使用信任源端口152
- 7.1.2 指定校验值154
- 7.1.3 指定IP选项154
- 7.1.4 附加数据载荷156
- 7.1.5 报文分段157
- 7.2 定制数据包传输路径159
- 7.2.1 使用代理159
- 7.2.2 指定TTL值160
- 7.2.3 目标随机排列161
- 7.3 隐藏自己163
- 7.3.1 诱饵扫描163
- 7.3.2 伪造源地址166
- 7.3.3 伪造MAC地址168
- 第8章 保存和输出Nmap信息171
- 8.1 报告格式171
- 8.1.1 标准输出171
- 8.1.2 XML格式173
- 8.1.3 脚本格式174
- 8.1.4 Grep格式175
- 8.1.5 所有格式177
- 8.2 报告内容177
- 8.2.1 详细程度177
- 8.2.2 追加内容179
- 8.3 利用扫描报告180
- 8.3.1 对比扫描报告180
- 8.3.2 Metasploit导入扫描报告182
- 8.3.3 Nessus导入扫描报告187
- 第2篇 Nmap脚本实战
- 第9章 执行脚本194
- 9.1 Nmap脚本简介194
- 9.1.1 脚本构成194
- 9.1.2 更新脚本数据库196
- 9.1.3 查看脚本帮助信息196
- 9.2 使用脚本197
- 9.2.1 指定脚本197
- 9.2.2 指定参数198
- 9.2.3 跟踪执行199
- 9.2.4 自动执行201
- 9.3 辅助脚本203
- 9.3.1 列出所有认证信息203
- 9.3.2 设置反向索引显示204
- 9.3.3 进行单元测试205
- 9.3.4 格式化未识别服务的指纹信息206
- 9.3.5 获取服务的标志206
- 第10章 探测网络基础环境208
- 10.1 探测网络208
- 10.1.1 嗅探目标208
- 10.1.2 监听广播包209
- 10.1.3 发现最大传输单元210
- 10.1.4 探测防火墙规则210
- 10.1.5 获取路由跟踪信息211
- 10.1.6 获取路由跟踪位置212
- 10.1.7 广播Ping发现主机213
- 10.1.8 探测目标是否启用了IP转发214
- 10.1.9 基于EIGRP获取路由信息215
- 10.1.10 借助OSPF2协议探测网络216
- 10.1.11 广播唤醒休眠主机216
- 10.1.12 发现多宿主主机216
- 10.1.13 利用clock skew分组目标217
- 10.1.14 利用IGMP发现主机217
- 10.2 广播发现PPPoE服务器218
- 10.3 获取ASN信息219
- 10.3.1 获取ASN列表219
- 10.3.2 获取IP地址的ASN编号219
- 10.4 提取IPv6地址的编码信息220
- 10.5 枚举EAP提供的认证方法221
- 第11章 探测网络基础服务223
- 11.1 探测DHCP服务器223
- 11.1.1 DHCP发现223
- 11.1.2 广播DHCP请求包224
- 11.1.3 广播发现DHCPv6服务器225
- 11.2 探测DNS服务器225
- 11.2.1 获取DNS信息225
- 11.2.2 广播发现DNS服务器226
- 11.2.3 使用字典暴力破解子域名226
- 11.2.4 利用DNS服务发现协议获取DNS服务信息228
- 11.2.5 探测主机是否允许DNS递归查询228
- 11.2.6 探测主机是否支持黑名单列表228
- 11.2.7 探测DNS区域配置229
- 11.2.8 探测DNS服务是否启用缓存功能230
- 11.2.9 检测DNS服务器随机端口可预测漏洞231
- 11.2.10 检测DNS服务器传输会话ID可预测漏洞231
- 11.2.11 利用DNS的ECS功能获取IP地址231
- 11.2.12 实施DNS Fuzzing攻击231
- 11.2.13 利用DNS PTR记录扫描IPv6网络232
- 11.2.14 利用NSEC3记录枚举域名哈希值232
- 11.2.15 利用DNSSEC记录枚举域名233
- 11.2.16 枚举域名的SRV记录233
- 11.2.17 尝试进行DNS动态更新234
- 11.2.18 Avahi DoS攻击234
- 11.2.19 利用区域传输功能获取域名信息235
- 11.2.20 执行FCrDNS查询235
- 11.3 探测RIP服务236
- 11.3.1 基于RIPv2广播发现主机236
- 11.3.2 基于RIPng广播发现主机236
- 11.4 探测其他服务237
- 11.4.1 通过UPnP广播包获取设备信息237
- 11.4.2 通过DAYTIME服务获取时间信息238
- 11.4.3 查看Gopher目录信息239
- 11.4.4 利用Finger服务查询用户信息239
- 11.4.5 获取NTP服务信息240
- 11.4.6 广播发现NCP服务器241
- 第12章 探测Web服务242
- 12.1 探测HTTP服务242
- 12.1.1 探测基本认证信息242
- 12.1.2 探测默认账户243
- 12.1.3 检查是否存在风险方法244
- 12.1.4 探测访问一个网页的时间244
- 12.1.5 提取HTTP注释信息245
- 12.1.6 从HTTP服务中获取时间246
- 12.1.7 枚举HTTP服务网页目录247
- 12.1.8 收集网页敏感信息248
- 12.1.9 获取访问网站的错误页248
- 12.1.10 获取HTTP头信息249
- 12.1.11 获取HTTP的目录结构250
- 12.1.12 检测是否启用TRACE方法251
- 12.1.13 探测主机是否允许爬行253
- 12.1.14 搜索Web虚拟主机253
- 12.1.15 探测Web服务是否易受Slowloris DoS攻击254
- 12.1.16 根据WPAD获取代理服务器255
- 12.1.17 利用Web服务动态协议定位服务256
- 12.2 探测AJP服务256
- 12.2.1 获取AJP服务的头部信息257
- 12.2.2 在AJP服务上请求连接257
- 12.2.3 获取AJP服务的认证信息258
- 12.2.4 AJP认证信息暴力破解259
- 12.2.5 获取AJP服务响应头259
- 12.3 探测SSL/TLS协议259
- 12.3.1 枚举SSL密钥259
- 12.3.2 获取SSL证书261
- 12.4 获取Flume服务信息262
- 第13章 探测远程登录服务263
- 13.1 探测Telnet服务263
- 13.1.1 探测Telnet服务是否支持加密263
- 13.1.2 破解Telnet服务密码264
- 13.2 探测SSH服务264
- 13.2.1 查看SSH服务密钥信息264
- 13.2.2 查看SSH2支持的算法266
- 13.3 探测BackOrifice服务267
- 13.3.1 暴力破解BackOrifice远程控制服务267
- 13.3.2 获取BackOrifice服务信息268
- 13.4 获取VNC服务的详细信息268
- 13.5 广播发现pcAnywhere服务269
- 13.6 广播发现PC-DUO远程控制服务269
- 13.7 广播发现XDMCP服务269
- 第14章 探测数据库服务271
- 14.1 探测MySQL数据库服务271
- 14.1.1 检查MySQL空密码271
- 14.1.2 获取MySQL密码散列272
- 14.1.3 查询MySQL数据库信息272
- 14.1.4 查询MySQL数据库的用户273
- 14.1.5 破解MySQL数据库的用户密码274
- 14.1.6 枚举MySQL数据库的用户信息275
- 14.1.7 获取MySQL数据库信息275
- 14.2 探测SQL Server数据库服务276
- 14.2.1 破解SQL Server数据库的用户密码276
- 14.2.2 获取SQL Server数据库信息277
- 14.2.3 查询SQL Server数据库配置信息278
- 14.2.4 查询SQL Server数据库条目279
- 14.2.5 广播发现SQL Server数据库服务281
- 14.3 探测LDAP数据库服务281
- 14.3.1 获取LDAP根DSE条目281
- 14.3.2 查看LDAP条目282
- 14.4 探测CouchDB服务283
- 14.4.1 获取CouchDB服务的数据库列表283
- 14.4.2 获取CouchDB服务的统计信息284
- 14.5 探测Cassandra数据库284
- 14.5.1 暴力破解Cassandra数据库的用户名和密码284
- 14.5.2 获取Cassandra数据库信息285
- 14.6 探测DB2数据库服务器286
- 14.6.1 广播发现DB2数据库服务器286
- 14.6.2 获取DB2数据库服务器的概要信息286
- 14.7 广播发现SQL Anywhere数据库服务器288
- 14.8 监听发现VOD服务289
- 14.9 探测支持DRDA协议的数据库服务器289
- 14.9.1 暴力破解基于DRDA协议的数据库服务器认证信息289
- 14.9.2 获取支持DRDA协议的数据库服务器信息289
- 14.10 探测Hadoop服务290
- 14.10.1 获取Hadoop数据节点信息290
- 14.10.2 获取Hadoop作业信息290
- 14.10.3 获取Hadoop名称节点信息290
- 14.10.4 获取Hadoop辅助名称节点信息291
- 14.10.5 获取Hadoop任务信息291
- 第15章 探测文件共享服务292
- 15.1 FTP服务292
- 15.1.1 检查FTP匿名登录292
- 15.1.2 探测FTP端口反弹攻击的可行性293
- 15.1.3 暴力破解FTP认证信息294
- 15.1.4 检测FreeBSD FTP服务的OPIE认证漏洞295
- 15.1.5 通过FTP的SYST和STAT命令获取信息295
- 15.1.6 检测vsftpd后门漏洞296
- 15.1.7 检测ProFTPD后门漏洞296
- 15.1.8 检查ProFTPD的堆缓存溢出漏洞297
- 15.1.9 利用FTP Helper绕过防火墙297
- 15.2 探测SMB服务297
- 15.2.1 探测操作系统298
- 15.2.2 获取SMB安全模式信息298
- 15.2.3 获取Windows主浏览器的服务信息299
- 15.2.4 获取共享文件300
- 15.2.5 枚举系统域名302
- 15.2.6 检查SMB服务是否有漏洞302
- 15.2.7 枚举Samba用户303
- 15.2.8 SMB服务密码破解304
- 15.3 探测BT文件共享信息305
- 15.3.1 获取BT节点信息305
- 15.3.2 暴力破解Deluge RPC服务认证信息306
- 15.4 监听发现局域网dropbox客户端306
- 15.5 发现AoE存储系统306
- 15.6 广播发现EMC NetWorker备份服务307
- 第16章 探测其他应用服务308
- 16.1 探测SMTP服务308
- 16.1.1 枚举邮件用户308
- 16.1.2 收集目标主机支持的SMTP命令309
- 16.2 探测SNMP服务309
- 16.2.1 枚举网络接口310
- 16.2.2 获取网络连接状态311
- 16.2.3 枚举目标主机程序的进程312
- 16.2.4 提取系统信息313
- 16.2.5 枚举Windows服务314
- 16.2.6 枚举Windows用户315
- 16.2.7 枚举Windows共享文件315
- 16.2.8 枚举安装的软件316
- 16.2.9 破解SNMP服务密码317
- 16.3 探测NetBIOS服务318
- 16.3.1 获取NetBIOS名称和MAC地址318
- 16.3.2 浏览广播包发现主机319
- 16.4 探测打印服务319
- 16.4.1 获取BJNP的设备信息319
- 16.4.2 广播发现BJNP的设备320
- 16.4.3 查看CUPS打印服务信息320
- 16.4.4 查看CUPS打印服务队列的详细信息321
- 16.5 探测比特币服务321
- 16.5.1 比特币节点信息获取脚本321
- 16.5.2 获取比特币服务器信息322
- 16.5.3 基于JSON RPC接口获取比特币服务器信息323
- 16.6 探测授权服务324
- 16.6.1 获取运行端口监听的用户身份324
- 16.6.2 探测授权服务伪造响应324
- 16.7 探测CVS服务324
- 16.7.1 暴力破解CVS服务认证信息324
- 16.7.2 暴力猜测CVS仓库名325
- 16.8 获取词典服务信息325
- 16.9 获取RPC服务的详细信息326
- 16.10 获取AMQP服务信息327
- 16.11 获取CORBA对象列表328
- 第17章 探测网络应用程序329
- 17.1 探测Citrix应用程序329
- 17.1.1 通过XML Service获取Citrix发布的应用信息329
- 17.1.2 提取Citrix服务器信息330
- 17.1.3 通过XML Server获取Citrix服务332
- 17.1.4 暴力破解Citrix PNA认证信息333
- 17.1.5 获取ICA发布的应用334
- 17.2 探测Lotus Domino控制台335
- 17.2.1 暴力破解Lotus Domino控制台的用户名和密码335
- 17.2.2 借助Lotus Domino控制台执行命令336
- 17.2.3 获取Lotus Notes用户列表336
- 17.3 探测IBM客户信息控制系统337
- 17.3.1 枚举CICS事务ID337
- 17.3.2 获取CICS事务服务器信息338
- 17.3.3 基于CESL暴力破解CICS用户ID338
- 17.3.4 基于CESL/CESN暴力破解CICS用户ID338
- 17.4 探测其他应用程序339
- 17.4.1 VMware认证进程破解339
- 17.4.2 获取IRC服务信息340
- 17.4.3 从Ganglia中获取系统信息340
- 17.4.4 获取Freelancer游戏服务器信息341
- 17.4.5 获取Docker服务信息341
- 17.4.6 探测Erlang服务节点信息341
- 17.4.7 利用ClamAV服务漏洞执行命令342
- 17.4.8 利用Distcc端口探测漏洞342
- 17.4.9 利用Zeus Tracker验证IP地址343
- 17.4.10 探测Cccam服务343
- 第18章 探测苹果操作系统344
- 18.1 探测AFP服务344
- 18.1.1 获取AFP服务信息344
- 18.1.2 暴力破解AFP账号和密码345
- 18.1.3 查看苹果系统的AFP卷346
- 18.1.4 探测AFP目录遍历漏洞347
- 18.1.5 获取AFP共享的文件夹信息及用户权限348
- 18.2 获取DAAP服务音乐清单349
- 18.3 枚举Mac iPhoto服务账号信息350
- 18.4 获取Mac OS进程信息350
- 第19章 探测网络硬件351
- 19.1 广播发现支持PIM的路由器351
- 19.2 广播发现SonicWall防火墙351
- 19.3 利用GKrellM获取系统信息352
- 19.4 获取GPS信息352
- 19.5 获取ACARS服务端的ACARSD信息352
- 19.6 扫描CoAP终端资源353
- 19.7 获取基于Tridium Niagara服务的系统信息354
- 19.8 探测工控设备信息354
- 19.9 广播发现TellStickNet设备355
- 19.10 探测TP-Link路由器是否存在漏洞356
- 附录A Nmap图形化界面Zenmap360
- 附录B 服务暴力破解工具Ncrack374