普及网络安全知识,推动信息技术发展。
为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家园。
欢迎来到灰帽程序员论坛,我们的网址是:
论坛以技术交流为主,非商业性质论坛。
大家好,我是小雨,QQ:798033502
今天给大家带来的教程是《Web-Attak系列教程第二季0x04讲——扫描器之王nmap》
这些视频教程最终会整理成书《Web安全编程与渗透分析》
http://item.taobao.com/item.htm?spm=a1z10.1.w6130004738.5.3pGpJV&id=18995219730
nmap是一个网络探测和安全扫描程序,它支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。它还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。因此称它为扫描器之王一点也不为过。
(一)下载和安装
我们可以从http://nmap.org/download.html下载相应的版本
(二)功能简介
Nmap主要包括四个方面的扫描功能,主机发现、端口扫描、应用与版本侦测、操作系统侦测。
(三)使用方法
我们先用Nmap –h 来查看帮助
其实这么多参数,我们没必要都记住,用的时候-h一下就可以了。
大体的格式是:nmap [扫描类型] [可选项] [目标]
若我们要对某一主机进行完整全面的扫描一般我们用:
Nmap-A–vitbook.taobao.com
(1)主机发现
- l-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
- l-sn: Ping Scan 只进行主机发现,不进行端口扫描。
- l-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。
- l-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
- l-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。-PO[protocollist]: 使用IP协议包探测对方主机是否开启。
- l-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。
- l--dns-servers < serv1[,serv2],...>: 指定DNS服务器。
- l--system-dns: 指定使用系统的DNS服务器。
- l--traceroute: 追踪每个路由节点。
实例:nmap –v –sn –PE 58.64.189.0/24
(2)端口扫描
- l-sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
- l-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
- l-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
- l--scanflags <flags>: 定制TCP包的flags。
- l-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
- l-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
- l-sO: 使用IP protocol 扫描确定目标机支持的协议类型。
- l-b <FTP relay host>: 使用FTP bounce scan扫描方式
实例:nmap-v –sS –sUitbook.taobao.com
Nmap –T4 –sWwww.hmhacker.org
(3)版本探测
·-sV: 指定让Nmap进行版本侦测
·--version-intensity < level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
·--version-light: 指定使用轻量侦测方式(intensity 2)
·--version-all: 尝试使用所有的probes进行侦测(intensity 9)
·--version-trace: 显示出详细的版本侦测过程信息。
实例:nmap –sVwww.hmhacker.org
Nmap –T4 –sVwww.hmhacker.org
(4)操作系统探测
·-O: 指定Nmap进行OS侦测。
·--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。
·--osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统。
实例:nmap –O itbook.taobao.com
(5)躲避防火墙/IDS
·-f; --mtu < val>: 指定使用分片、指定数据包的MTU.
·-D < decoy1,decoy2[,ME],...>: 用一组IP地址掩盖真实地址,其中ME填入自己的IP地址。
·-S < IP_Address>: 伪装成其他IP地址
·-e < iface>: 使用特定的网络接口
·-g/--source-port <portnum>: 使用指定源端口
·--data-length < num>: 填充随机数据让数据包长度达到Num。
·--ip-options < options>: 使用指定的IP选项来发送数据包。
·--ttl < val>: 设置time-to-live时间。
·--spoof-mac < mac address/prefix/vendor name>: 伪装MAC地址
·--badsum: 使用错误的checksum来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或IDS/IPS)。实例: nmap –D110.75.62.8,110.75.62.9,ME–A –v www.hmhacker.org(6) Nmap Scripting Engine
·-sC: 等价于--script=default,使用默认类别的脚本进行扫描。
·--script=<Lua scripts>: <Lua scripts>使用某个或某类脚本进行扫描,支持通配符描述
·--script-args=<n1=v1,[n2=v2,...]>: 为脚本提供默认参数
·--script-args-file=filename: 使用文件来为脚本提供参数
·--script-trace: 显示脚本执行过程中发送与接收的数据
·--script-updatedb: 更新脚本数据库
·--script-help=<Lua scripts>: 显示脚本的帮助信息,其中<Luascripts>部分可以逗号分隔的文件或脚本类别。
实例:nmap –p 80–v--script default,http* www.hmhacker.org 高清下载地址:http://www.vdisk.cn/down/index/12395933