-->

Nmap扫描总结

2021-01-18 07:21发布

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是一个非常强大的工具,它具有覆盖渗透测试的第一方面的能力,其中包括信息的收集和统计。

 

标签: