nmap扫描教程_常涛版


Nmap扫描教程 常涛 勇为智者 信息展示的革命 Nmap的威名 课程内容大纲 Nmap的安装 http://nmap.org 扫描的原理 扫描的分解动作 第一,统一沟通语言 第四,通过对比刺激和反馈完成扫描 第一节结束 02_如何找到网络上的设备 第一小节:Nmap的输入和输出 常涛 勇为智者 信息展示的革命 Nmap扫描教程 找到设备地址 DNS解析 直接获取 如何将网络地址告知nmap • 用法: nmap [扫描类型] [设置] {设备地址} • 地址类型:主机名,IP地址,网段,等 •-iL <文件名>: 通过文件输入地址 •-iR •--exclude :排除主机或者网段 •--exclude :排除文件中的地址 了解一下Nmap的输出 Nmap输出的格式参数: • 命名中使用时间%H,%M,%S,%m,%d,%y 1. Nmap输出的格式 A. -oN <文件名字> B. -oX <文件名字> C. -oS <文件名字> D. -oG <文件名字> E. -oA <文件基础名字> 输出详细和调试设置 1. -v 2. -d[0~9] 3. --reason 4. --packet-trace 5. --open 6. --iflist 7. --log-errors 了解一下Nmap的输出 其他输出设置项 •--append-output •--resume<文件名> •--stylesheet<路径或者URI地址> •--webxml(导入从Nmap.org下载的stylesheet) 02_如何找到网络上的设备 第二小节:确定网络设备 常涛 勇为智者 信息展示的革命 Nmap扫描教程 命令行参数 Ping的类型 1. -sL(List Scan).不做扫描,只完成DNS解析和网址的 转换。 2. -sP(Ping Scan).默认发ICMP echo请求和TCP的 ACK请求80端口。 3. -PN(不用ping). 4. -PS<端口号列表>(TCP SYN Ping).发TCP协议SYN 标记的空包。默认扫描80端口 5. -PA<端口列表>(TCP ACK Ping).发TCP协议ACK标 记的空包。默认扫描80端口 6. -PU<端口列表>(UDP Ping).默认31338 7. -PE;-PP;-PM(ICMP Ping) 8. -PO<协议列表>(IP协议ping) 9. -PR(ARP ping) 其他设置项 •--traceroute •-n(不要做DNS解析) •-R(DNS解析所有的地址,默认不解析不在线的IP) •-system-dns(使用系统DNS) •--dns-servers [,[,…]](使用其 他DNS) 第二节结束 03_端口扫描概述 常涛 勇为智者 信息展示的革命 Nmap扫描教程 NMAP扫描的端口是什么 协议上的端口号——只是个标记 为什么要扫描端口 • TCP • UDP • 其他 端口 • http • ftp • 其他 服务 • apache • Server_U • 其他 程序 如何告诉NMAP扫描哪个端口 •-p<端口列表> 扫描结果——NMAP如何描述端口状态 1. Open,端口开启,有程序监 听此端口 2. Closed,端口关闭,数据能到 达主机,但是没有程序监听此 端口。 3. Filtered,数据未能到达主机。 4. Unfiltered,数据能到达主机, 但是Nmap无法判断端口开启 还是关闭。 5. Open|filtered,端口没有返回 值,主要出现在UDP,IP, FIN,NULL和Xmas扫描 6. Closed|filtered,只出现在IP ID idle 扫描。 第三节结束 04_端口扫描技巧 第一小节_TCP标志位扫描 常涛 勇为智者 信息展示的革命 Nmap扫描教程 TCP 建立连接和断开连接 三次握手 四次挥手 TCP SYN扫描(-sS) •-sS •匿名扫描 • 默认扫描模式(不加类 型) • 需要root权限 • 扫描速度快 端口开启状态(open) SYN(连接22号端口) SYN/ACK(端口开着呢,开始吧) RST(不连接了) nmap scanme nmap –p22 scanme.nmap.org 端口关闭状态(closed) SYN(连接113号端口) RST(不好意思,端口关闭了) nmap scanme nmap –p113 scanme.nmap.org 端口过滤(filtered) SYN(连接139号端口) SYN(再来一次) nmap scanme nmap –p139 scanme.nmap.org SYN扫描端口状态的具体意思 返回值 Nmap显示的端口状态 TCP SYN/ACK open TCP RST closed 没有返回值 filtered ICMP未达到错误(类型3,代码1,2,3,9,10或者13) filtered TCP全连接扫描(-sT) •-sT • TCP扫描的默认模式。 • 不需要特权用户权限 • 端口状态和SYN相同 全连接过程 SYN(连接22号端口) SYN/ACK(端口开着呢,开始吧) ACK(建立连接) nmap scanme nmap –p22 -sT scanme.nmap.org 数据:SSH banner 数据 RST(关闭连接) TCP FIN,NULL,Xmas扫描(-sF,-sN,-sX) 返回值 Nmap显示的端口状态 无返回值 Open|filtered 返回RST closed ICMP未达到错误(类型3,代码1,2,3,9,19或者13) filtered TCP扫描ACK(-sA) 返回值 Nmap显示的端口状态 无返回值 filtered 返回RST unfiltered ICMP未达到错误(类型3,代码1,2,3,9,19或者13) filtered TCP Window扫描(-sW) 返回值 Nmap显示的端口状态 RST返回,window区域非0 open RST返回,window区域为0 closed 没有返回值(重传之后) filtered ICMP未达到错误(类型3,代码1,2,3,9,19或者13) filtered TCP迈蒙尼德(Maimon)扫描(-sM) 返回值 Nmap显示的端口状态 无返回值 Open|filtered 返回RST closed ICMP未达到错误(类型3,代码1,2,3,9,19或者13) filtered 用户定制的TCP扫描(--scanflags) •--scanflags • 数字标记 • 字符标记 04_端口扫描技巧 第二小节_TCP Idle 扫描 常涛 勇为智者 信息展示的革命 Nmap扫描教程 基础理论——IP头 -sI <僵尸主机>[:<测试端口>](idle扫描) nmap 僵尸服务器 目标服务器 open——第一步,探测僵尸服务器IP ID nmap 僵尸服务器 目标服务器 open——第二步,伪造以僵尸身份的SYN包 nmap 僵尸服务器 目标服务器 伪造僵尸来的SYN包 open——第三步,再次探测僵尸服务器IP ID nmap 僵尸服务器 目标服务器 close——第一步,探测僵尸服务器IP ID nmap 僵尸服务器 目标服务器 close——第二步,伪造以僵尸身份的SYN包 nmap 僵尸服务器 目标服务器 伪造僵尸来的SYN包 没有响应 close——第三步,再次探测僵尸服务器IP ID nmap 僵尸服务器 目标服务器 filtered——第一步,探测僵尸服务器IP ID nmap 僵尸服务器 目标服务器 filtered——第二步,伪造以僵尸身份的SYN包 nmap 僵尸服务器 目标服务器 伪造僵尸来的SYN包 filtered——第三步,再次探测僵尸服务器IP ID nmap 僵尸服务器 目标服务器 Idle 扫描端口状态 返回值的IP ID 值 端口状态 ID+2 open ID+1 Close|filtered 04_端口扫描技巧 第三小节_其他模式扫描 常涛 勇为智者 信息展示的革命 Nmap扫描教程 UDP扫描(-sU) 返回值 端口状态 任何从udp返回的数据 open 没有任何返回(多次重传之后) open|filtered ICMP端口为到达错误(类型3,代码3) closed 其他ICMP端口为到达的错误(类型3,代码1,2,9,10 或者13) filtered -sUV 能增加udp扫描的准确性 协议扫描(-sO)获取服务器支持哪些协议 返回值 NMAP显示状态 任何来自目标主机的协议返回 open ICMP协议为到达(类型3,代码2) close 其他ICMP端口为到达的错误(类型3,代码1,3,9,10或 者13) filtered 无响应(多次重新请求之后) open|filtered FTP反弹扫描(-b) •-b •ftp代理扫描 第四节结束 05_优化NMAP性能_01 常涛 勇为智者 信息展示的革命 Nmap扫描教程 优化意味着什么——快速 优化意味着什么——等待 优化意味着什么——准确 优化的具体内容:不做无用功 1. 逐步分解任务 ① 首先确定是否在线。-sP ② UDP和TCP扫描不要同时进行。 2. 控制扫描的端口,默认nmap扫描1000多个端口。 ① -F (快速扫描100个常用端口) ② --top-ports<端口个数> ③ -p 3. 跳过高级扫描功能 ① -A ② -sV ③ -sC (--script=default) ④ -O ⑤ --traceroute ⑥ 可能话关闭DNS解析 –n / -R 第五节中场休息 05_优化NMAP性能_02 常涛 勇为智者 信息展示的革命 Nmap扫描教程 --top-ports<端口个数> 具体影响细节 有效性 Tcp 端口个数 Udp端口个数 10% 1 5 20% 2 12 30% 4 27 40% 6 135 50% 10 1075 60% 18 2618 70% 44 5157 80% 122 7981 85% 236 9623 90% 576 11307 95% 1558 13035 99% 3328 15094 100% 65536 65536 优化的具体内容:优化时间参数和并行 功能 参数 一次扫描多少个主机(对主机探 测没有,-sP) --min-hostgroup<主机个数>,--max-hostgroup<主机个数> 一次开多少个并行扫描 --min-parallelism<并行个数>,--max-parallelism<并行个数> 主机在线和重传等待 --min-rtt-timeout<毫秒数>,--max-rtt-timeout<毫秒数>, --initial-rtt-timeout<毫秒数>(可以使用单位s,m,h) 最大重传次数 --max-retries<最大重传次数> 每个主机最大的耗时 --host-timeout<毫秒数>(可以使用单位s,m,h;) 主机每个请求的间隔时间 --scan-delay<毫秒数>,--max-scan-delay<毫秒数>(可以使用单位s,m,h;多个 端口累计无响应) 直接控制发包速度 --min-rate<每秒的发包次数>,--max-rate<每秒的发包次数> 不关心服务端的rst包,不关心 close类型 --defeat-rst-ratelimit 优化时间参数和并行:NMAP提供的时间和并行模板 T0 T1 T2 T3 T4 T5 模板名字 死磕模式(paranoid) 癞皮狗模式(sneaky) 君子模式(ploite) 正常软件模式(Normal) 侵略模式(Aggressive) 狂人模式(insane) Min-rtt-timeout 100 100 100 100 100 50 Max-rtt-timeout 300,000 15,000 10,000 10,000 1,250 300 Initial-rtt-timeout 300,000 15,000 1,000 1,000 500 250 Max-retries 10 10 10 10 6 2 Initial(and minimum)scan delay(--scan-delay) 300,000 15,000 400 0 0 0 TCP最大等待时间 300,000 15,000 1,000 1,000 10 5 UDP最大等待时间 300,000 15,000 1,000 1,000 1,000 1,000 Host-timeout 0 0 0 0 0 900,000 Min-parallelism 动态的,不受时间模板控制 Max-parallelism 1 1 1 动态 动态 动态 Min-hostgroup 动态的,不受时间模板控制 Max-hostgroup 动态的,不受时间模板控制 Min-rate 没有限制 Max-rate 没有限制 Defeat-rst-ratelimit 默认没有开启 端口扫描的参考步骤 • 主机发现 • 端口扫描 • 服务确定 • 等 明确目标 • 带宽 • 质量 • 等 确定网络 换 • 独立主机 • 整体 • 等 计算和测 试扫描时 间 • 使用模板 • 自行设计参 数 确定各个 参数 第五节结束 06_确定服务和服务程序的版本 常涛 勇为智者 信息展示的革命 Nmap扫描教程 1,操作参数? 端口扫描,nmap给出服务准确吗? 端口扫描,nmap是如何得出应用版本的? 服务和版本相关的参数 1. -sV:探测开放端口的服务和版本信息 2. --version-intensity<0-9>:设置探测深度 3. --version-light:相当于0-2 4. --version-all:相当于0-9 5. --version-trace:显示版本扫描详情(用于调试) 2,服务版探测细节? 服务和版本相关识别的技术细节 深入学习两个文件 1. 安装目录 2. 编译安装/usr/local/share/nmap 3. rpm安装/usr/share/nmap 4. nmap-services 5. nmap-service-probes nmap-services nmap-service-probes 3,nmap-service-probes文件编写? Nmap-service-probes 文件格式 功能模块 指令格式 功能解释 Excude Directive Exclude 一个文件只出现一次,为隐身和提速 Probe Directive Probe 发送数据指令 Match Directive match [] Softmatch Directive softmatch Ports and sslports Dirctive ports sslports Totalwaintms Directive totalwaitms Rarity Directive rarity 探测级别 Fallback Directive fallback 指明哪些探测需要回归分析 Probe :Probe • 例子:Probe TCP GetRequest q|GET / HTTP1.1\r\n\r\n| ① :只能是TCP或者UDP协议 ② :只是个英文名字,方便调试的时候打出对应的信息。 ③ :发送的真正数据,格式,q| | ,其实只要 q 大头,前后两个相同的分隔符 就可以。 Match:match [] • 例子:math ftp m/^220.*Welcome to PureFTPd (\d\S+)/ p/PureFTPd/ v/$1/ • :只是个名字,命名可以使用“/”做多级命名。 • :m/ /,(PCRE)perl语言的正则。 • :下面的内容 Versioninfo field formats and values Field format Value description p/vendorproductname/ 供应商或者服务商的名字,如”Sun Solaris rexecd”, “Apache httpd” v/version/ 版本号,有时候也不只是数字。 i/info/ 其他信息 h/hostname/ 主机名字 o/operatingsystem/ 操作系统 d/devicetype/ 设备类型 第六节结束 07_操作系统版本的识别 常涛 勇为智者 信息展示的革命 Nmap扫描教程 1,操作参数? 操作参数 1. -O:启动操作系统识别。 2. --osscan-limit:限定只识别有端口开放的主机,提高-O和-A参数时的扫描速度。 3. --osscan-guest:给NMAP建议的操作系统。类似于sqlmap的参数。 4. --max-os-tries <次数>:设置重试次数(默认为5),提高准确性或者提高速度。 NMAP显示操作系统的数据 项目 解释 Device type 设备类型。router,printer,firewall,general purpose等,或者不确定选项 router | firewall Running 操作系统的名,多选项,或者猜测(JUST GUESSING) OS details OS CPE 具体操作系统版本,内核 Aggressive OS guesse或者OS details 建议操作系统 或者 其他具体信息 Uptime guess 猜测主机已经在线多长时间 Network Distance 主机的nmap主机的网络跳数(多少个路由器) TCP Sequence Prediction TCP序列预测 IP ID generation IP ID的生成规则。 2,操作识别的技术细节? 弹道痕迹:通过子弹确定枪支 TCP/IP指纹识别:IP TCP/IP指纹识别:ICMP TCP/IP指纹识别:TCP 第七节结束 08_NMAP脚本引擎-NSE 常涛 勇为智者 信息展示的革命 Nmap扫描教程 1,NSE和NMAP的关系? 2,如何使用内置的NSE? NMAP和NSE的关系 NSE提供了NMAP哪些功能 1. 网络探测:whois,snmp,nfs/smb/rpc调用。 2. 更为复杂的版本探测:Skype,QQ。 3. 网络漏洞识别:错误配置,软件漏洞。 4. 后门识别:模仿网络僵尸网络,蠕虫的网络通信。 5. 漏洞利用:类似Metasploit的功能。 NSE的参数 1. -sC: 等价于 --script=default 2. --script=: 可以是脚本种类,文件路径,文件名或者all(表示所有) 3. --script-args=: 提供给脚本的参数 4. --script-args-file=filename: 以文件的方式提供参数 5. --script-trace: 显示脚本发送数据去情况,类似于--packet-trace参数 6. --script-updatedb: 更新脚本库,scripts/script.db 7. --script-help=: 显示相应脚本的使用帮助. 内置NSE脚本种类 1. 认证(auth):暴力破解,匿名登陆 2. 默认(default) ① 使用-sC,-A或者—script=default启用默认扫描。 ② 保证速度,通用性等功能 3. 网络探测(discovery) 4. 扩展功能(exernal) 5. 入侵攻击(intrusive) 6. 恶意软件探测(malware) 7. 安全扫描(safe) 8. 版本识别(version) 9. 错误配置和漏洞识别(vuln) NSE权威帮助文档 http://nmap.org/nsedoc/ 3,内置NSE脚本分析? NSE脚本格式 区域 解释 Categories Field , runlevel Field是必选填 写的项目,其他项目可 以忽略 Description Field 用于—script-help的自描述输出。也可以作为整个文件的注释说明。 Categories Field --script 作用就在这里。对NSE脚本做分类。 1,可以自行起个名字;2,使用NMAP已有的种类。 Author Field 作者的名字 License Field 授权声明 Runlevel Field 运行级别 二者只选择一种 Port Or Host Rules 用于判断是否要执行次脚本。端口规则或者主机规则。 Action 真正的网络通信和后期处理动作在这里。 Lua语言是前提条件 • http://www.lua.org/ NSE Libraries ① C:\Program Files (x86)\Nmap\nselib ② http://nmap.org/nsedoc/ Nmap API • http://nmap.org/book/nse-api.html 第八节结束 09_绕过防火墙和IDS 常涛 勇为智者 信息展示的革命 Nmap扫描教程 1,认识iptables? 防火墙:iptables——知识密集型工具 IP协议头 ICMP协议头 TCP协议头 UDP协议头 使用iptables 1. iptables –L 2. iptables –A [–s 源地址][–d 目的地地址]–p 协议 [扩展] –j 动作 3. iptables –D [–s 源地址][–d 目的地地址]–p 协议 [扩展] –j 动作 4. iptables –D 数字(1开始) ① 尾部插入:iptables [-t table] -[AD] chain rule-specification [options] ② 选择插入:iptables [-t table] -I chain [rulenum] rule-specification [options] ③ 修改规则:iptables [-t table] -R chain rulenum rule-specification [options] ④ 删除规则:iptables [-t table] -D chain rulenum [options] ⑤ 修改目标:iptables [-t table] -P chain target [options] ⑥ 规则列表:iptables [-t table] -L [chain] [options] ⑦ 删除全部:iptables [-t table] -F [chain] [options] TCP协议扩展 •--tcp-flags ALL SYN,ACK •--syn , 等同于—tcp-flags SYN,RST,ACK SYN •--source-port,和--sport 相同 •--destination-port,--dport相同 •--tcp-option, 2,防火墙相关的NMAP参数? FIREWALL/IDS EVASION AND SPOOFING 1. -f; --mtu : fragment packets (optionally w/given MTU):分片大小8的整数倍。 2. -D : Cloak a scan with decoys 3. -S : Spoof source address 4. -e : Use specified interface 5. -g/--source-port : Use given port number 6. --data-length : Append random data to sent packets 7. --ip-options : Send packets with specified ip options:http://seclists.org/nmap-dev/2006/q3/52 8. --ttl : Set IP time-to-live field 9. --spoof-mac : Spoof your MAC address 10. --badsum: Send packets with a bogus TCP/UDP/SCTP checksum http://seclists.org/nmap-dev/2006/q3/52 • BASIC USAGE for •"--ip-options" For the simplest usage we created some templates. • They will build ip options for you and you don't need to know the internals. • Supported ip options: ① "R" -> record route (9 slots availble) ② "T" -> record internet timestamps (9 slots) ③ "U" -> record timestamps and ip addresses (4 slots) ④ "L ..." -> loose source routing (8 slots) ⑤ "S ..." -> strict source routing (8 slots) • ADVANCED USAGE There is also possibility of building custom ip options. Consider reading rfc 791. • Supported values in parameter: ① "\xFF" -> hex value ② "\255" -> decimal value ③ "\x00*16" -> copying char many times --ip-options • http://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml 第九节结束 10_防御NMAP扫描 常涛 勇为智者 信息展示的革命 Nmap扫描教程 没有墙的地方就是门 不使用依赖于隐藏的安全策略 第十节结束 11_Zenmap 常涛 勇为智者 信息展示的革命 Nmap扫描教程 第十一节结束 12_本教程总结_最后一课 常涛 勇为智者 信息展示的革命 Nmap扫描教程 回顾本教程的内容 网络扫描技术 网络协议 NMAP操作 NMAP的所有参数和技术细节 网络安全的开端 NMAP初级教程结束 附录1_NMAP输出格式和后期处理简介 常涛 勇为智者 信息展示的革命 Nmap扫描教程 开源软件的通病——交互差输出结果如同天书 Nmap的五种输出格式 1. 交互式输出:默认输出方式,特点输出实时信息 2. -oN:在扫描完成之后的输出,和交互输出的区别是没有实时信息。 3. -oX:XML格式输出,方便后期程序处理。 4. -oG:有利于grep操作的方式,每一个主机信息用一行来显示,并且被分割开来。 5. -oS:sCRiPT KiDDi3 0utPut+方式输出,提供给”133t haXXorZ!”使用。对输出的 结果做了单字母替换。黑客之间的幽默。 Nmap的输出内容详细控制 1.-vv 2.-d<0~9> 3.--log-errors 4.--packet-trace 回复放弃的NMAP扫描任务 1.--resume 输出内容的后期处理 1. XML转HTML ① Saxon : java –jar saxon.jar –a -o ② Xalan:Xalan –a -o ③ Xsltproc:xsltproc -o 2. Awk,Grep等命令行工具配合处理Grepable输出方式的文件 附录2_NMAP的文件 常涛 勇为智者 信息展示的革命 Nmap扫描教程 NMAP和nmap-***文件的关系 M82A1(巴特雷)——nmap .50子弹——nmap-*** 常见端口列表:nmap-services 地址: 1,安装目录 2,编译安装/usr/local/share/nmap 3,rpm安装/usr/share/nmap 软件版本扫描:nmap-service-probes 地址: 1,安装目录 2,编译安装/usr/local/share/nmap 3,rpm安装/usr/share/nmap SunRPC:nmap-rpc 地址: 1,安装目录 2,编译安装/usr/local/share/nmap 3,rpm安装/usr/share/nmap 操作系统版本扫描:nmap-os-db 地址: 1,安装目录 2,编译安装/usr/local/share/nmap 3,rpm安装/usr/share/nmap MAC地址厂商名字:nmap-mac-prefixes 地址: 1,安装目录 2,编译安装/usr/local/share/nmap 3,rpm安装/usr/share/nmap IP协议列表:nmap-protocols 地址: 1,安装目录 2,编译安装/usr/local/share/nmap 3,rpm安装/usr/share/nmap UDP默认扫描负载数据:nmap-payloads 地址: 1,安装目录 2,编译安装/usr/local/share/nmap 3,rpm安装/usr/share/nmap 使用你自己的弹药库 1.--datadir 2.文本名字不能变
还剩145页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

chenkan1

贡献于2017-03-13

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf