Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全,堪称神器
Nmap官方网址:https://nmap.org/
基本功能: 探测一组主机是否在线 扫描主机端口,嗅探所提供的服务 推断主机所用的操作系统
支持探测脚本的编写
最简单的就是ping命令 发送简单的icmp报文 不能进行网段中扫描
SYN探测 俩次握手
TCP/IP标志位: ACK FIN RST SYN PSH URG
扫描结果(不一定靠谱):
open closed filtered unfiltered open|filtered closed|filtered
开放 关闭 过滤的 被过滤的 开放或被过滤的 关闭或被过滤的
主机发现和目标扫描:
-P* (用于选择ping的类型)可以被结合使用
可以使用不同的tcp端口/标志位和ICMP码发送许多探测报文,为了增加穿透防守严密的防火墙机会
-P0(无ping)
完全跳过nmap发现阶段,每个IP地址都重点扫描,包括没有主机存活的ip,如果在命令行指定一个B类地址空间,所有65536个ip都会被扫描(非常慢)
-PS (SYN ping)
两次握手不发送第三步
nmap -PS80,23,22,443 192.168.2.107-225
-PA (ACK ping)
直接发送ACK 第三步 目标会返回个RST
-PU(UDP ping)
如果目标机器的端口是关闭的,UDP探测会得到一个ICMP端口无法到达的回应报文。默认端口 31338
-PE;-PP;-PM(ICMP Ping Types)
echo(回显):基本会被防火墙挡住
time stamp(时间戳)
mask(掩码)
-PR(ARP Ping)
进行ARP扫描,Nmap会用它优化的算法管理ARP请求 默认都是ARP扫描 如果不用的话 --send-ip
-n(不用dns解析)
-R(为所有目标解析域名)
扫描目标:
1.支持CIDR形式的地址 192.168.10.0/24 或者 www.baidu.com/24
2.支持IPV6
3.通过八位字节地址范围列表支持 192.168.0-255.1-254 192.168.1,3,7.1-254
可以多种方式结合
4.从列表中扫描 -iL (每一项都必须以一个或多个空格,制表符或换行符分开)
nmap -PA -iL ip.txt
5.-iR (随机选择目标)
选项0 代表无休止的扫描
6.--exclude (排除主机/网络) --excludefile ip.txt 192.168.2.1/24 (ip.txt文件中的IP地址会被排除)
端口扫描:
-s*
-sS (TCP SYN扫描)
半开放扫描 执行起来很快 可区分 开放的 关闭的 被过滤的
-sS 192.168.2.1
-sT(TCP connect()扫描)
全扫描,容易被防火墙拦住
-sU(UDP 扫描)
非常慢 可以用--host-timeout 跳过慢速的主机
-sA(TCP ACK扫描)
用于发现防火墙规则,确定他们是有状态的还是无状态的,哪些端口是被过滤的
-sW(TCP 窗口扫描)
与ACK扫描完全一样 探测结果不是很准确
-sN;-sF;-sX (TCP NULL,FIN,and Xmas扫描 )
-sX 设置FIN PSH URG
不能辨别open端口和一些特定的fitered端口,从而返回open|fitered
-sM (TCP Mainon扫描)
与XMas扫描一样
-sO (IP协议扫描)
发送IP报文头
-sI(空闲扫描)
盲扫描 用于隐蔽扫描IP 利用僵尸主机
nmap -sI 192.168.10.2 192.168.2.1-255
-sY;-sZ (sctp init/cookie-echo scans)
用来发现ss7、sigtran相关服务、-sT -sY
默认丢弃开放端口返回的包含cookie echo数据包
--scanflags(定制的TCP扫描)
nmap --scanflags URGACK 192.168.2.1/24
-b (FTP弹跳扫描)
绕过防火墙的好办法,因为fTP经常被置于可以访问比Web主机更多其它内部主机的位置DMZ
参数 <username>:<password>@<server IP>:<port>
-p (只扫描指定的端口)(65535个端口)
-p U:1,2,3, T:4,5,6,
-p- (扫描全部端口)
-F (快速扫描)
-r(按随机顺序扫描端口)
默认是随机扫描,-r可以用来指定顺序端口的扫描
服务器版本探测扫描:
-sV (版本探测)
打开版本探测,也可以用-A 同时打开操作系统探测和版本探测
-sR (RPC扫描)
和许多端口扫描方法联合使用。对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令
用于扫描入侵win系统
--allports (不为版本探测排除任何端口)
扫描所有的端口,不受exploded影响
--version-intensity (设置版本扫描强度)
-sV
0-9
--version-light 2
--version-all 9
nmap -sV --version-intensity 9 120.79.73.6
--version-trace (跟踪版本扫描活动)
打印出详细进行扫描的信息
操作系统探测扫描:
-O 操作系统检测
-A 同时启用操作系统检测和版本检测
原理 构造特殊的tcp/ip数据包 给目标主机 得到目标主机的指纹 对比数据库中的指纹库 概率得到OS
common platform enumeration 通用枚举平台 ----操作系统的详细信息
--osscan-limit (针对指定的目标进行操作系统的检测)
这个选项只针对-O或者-A有效
--osscan-guess; --fuzzy (推测操作系统检测结果)
提供最大概率的匹配结果
--max-os-tries (设置针对目标操作系统检测的最大尝试次数)
默认五次 可以减小至1次 会加快速度 但是会错过潜在可识别的的目标
脚本扫描:
辅助端口扫描、版本探测、操作系统探测、漏洞利用脚本 脚本扫描
脚本文件位置 /user/share/nmap/scripts/
获得whois信息
nmap --script whois
HTTP 方法
支持的http方法
nmap -p80,443 --script http-methods scanme.nmap.org
扫描HTTP代理
--proxies urls
nmap --scripts http-open-proxy -p80,8080,81 www.baidu.com
web应用程序的脆弱性有目录列表,用户账户枚举,配置文件等
nmap --script http-enum -p80 <target>
指定不同的User Agent来绕过某些防火墙
nmap -p80 --script http-enum --script-args http.useragent="Mozilla 5" <target>
指定HTTP管道数目来加快扫描
nmap -p80 --script http-enum --script-args http.pipeline=25 <target>
暴力破解HTTP身份认证
nmap -p80 --script http-brute --script-args http-brute.path=/admin/ <target>
装有wordpress弱口令
nmap -p80 --script http-wordpress-brute <target>
设置线程数
nmap -p80 --script http-wordpress-brute --script-args http-wordpressbrute.threads=5 <target>
检测SQL注入
nmap -p80 --script http-sql-injection <target>
绕过WAF:
-f (报文分段) --mtu(使用指定的MTU必须8的倍数) 分片思想
nmap -f 192.168.19.2
nmap --mtu 16 192.168.19.2
-D (使用诱饵隐蔽扫描)
作为诱饵的主机必须在工作状态,否则造成目标主机syn泛洪攻击
nmap -D192.168.10.16,192.168.11.17 www.baidu.com
nmap -D RND:10 www.baidu.com
--source-port;-g (源端口哄骗)
nmap --source-port 21,80 www.baidu.com
-S(源地址哄骗)
-e (使用指定的接口)
-e eth0
--data-length (发送报文时,附加随机数据)
当0字节报文时,ids,waf过滤 这时候用这个参数
内网扫描:
--ttl (设置ip time-to-live域)
设置ipv4的ttl值
-randomize-hosts (对目标主机的顺序随机排列)
--spoof-mac (MAC地址哄骗)
0代表完全随机
nmap --spoof-mac 0 www.baidu.com
--badsum (checksum校验包)
总结:
Nmap是一个非常强大的工具,它具有覆盖渗透测试的第一方面的能力,其中包括信息的收集和统计。
来源:oschina
链接:https://my.oschina.net/u/4303561/blog/3827955