nmap基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。
nmap是非常实用的命令之一,在日常实际生产环境中,经常用来检查IP、端口、URL地址信息,具体其中的参数如下:

用法: nmap [Scan Type(s)] [Options] {目标说明}

目标说明:
可以过滤 hostnames, IP addresses, networks等等。
-iL <inputfilename>: 来自 主机/网段 列表的输入
-iR <num hosts>: 选择随机的目标
–exclude <host1[,host2][,host3],…>: 排除 hosts/networks
–excludefile <exclude_file>: 排除文件里面的主机或者网段

选项:
主机发现:
-sL: 简单地列出要扫描的目标
-sn: 禁用端口扫描
-Pn: 跳过主机发现
-PS/PA/PU/PY[portlist]: 发现 tcp/udp/sctp 开启的端口
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes(icmp输出,时间戳、网络请求发现探测)
-PO[protocol list]: IP Protocol Ping
–traceroute: 追踪每一个主机的路径

扫描和探测技术:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon 扫描
-sU: UDP 扫描
-sI <zombie host[:probeport]>: 空闲扫描
-sO: ip协议扫描
-p <port ranges>: 扫描指定的端口 #-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
-F: 快速模式
-sV: 探测打开的端口以确定 服务/版本 信息
-O: 启用操作系统检测
–osscan-limit: 限制操作系统探测到有前途的目标

MISC:
-6: 支持IPv6扫描
-A: 启用操作系统检测、版本检测、脚本扫描和路由追踪 #这个花费时间比较长,输出的结果也比较详细
-V: 显示版本

例如:
nmap -A www.baidu.com
nmap -sn 192.168.0.0/16 10.0.0.0/8
nmap -iR 10000 -Pn -p 80
nmap -sP www.baidu.com
nmap -sS www.baidu.com

一、检测主机是否正常运行

%title插图%num

备注:
获取在线的IP地址信息 nmap -sP ip/域名 | grep “Nmap scan report for”|awk ‘{print $5}’

二、检查开启端口信息

%title插图%num

备注:
获取在开放端口信息 nmap -sS/sT ip/域名 | grep “open”|awk ‘{print $1}’

三、nmap常用命令
进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):

nmap -sP 192.168.1.0/24
1
仅列出指定网络上的每台主机,不发送任何报文到目标主机:

nmap -sL 192.168.1.0/24
1
探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):

nmap -PS 192.168.1.234
1
使用UDP ping探测主机:

nmap -PU 192.168.1.0/24
1
使用频率*高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:

nmap -sS 192.168.1.0/24