WEB安全nmap基础

0x001 nmap 概述


Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字NmapNetwork Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。
一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。


0x002 nmap 特点


  • 主机探测:探测网络上的主机,如列出响应TCP和ICMP请求、ICMP请求、开放特别端口的主机。
  • 端口扫描:探测目标主机所开放的端口。
  • 版本检测:探测目标主机的网络服务,判断其服务名称及版本号。
  • 系统检测:探测目标主机的操作系统及网络设备的硬件特性。

0x003 nmap 端口状态介绍


状态 含义
open 开放的,表示应用程序正在监听该端口的连接,外部可以访问
filtered 被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问
closed 关闭的,表示目标主机未开启该端口
unfiltered 未被过滤的,表示 Nmap 无法确定端口所处状态,需进一步探测
open/filetered 开放的或被过滤的,Nmap 不能识别
closed/filtered 关闭的或被过滤的,Namp 不能识别

0x004 nmap 扫描参数


语法结构:

nmap [Scan Type(s)] [Options] {target specification}

1.扫描目标格式

  • -iL:从文件中加载目标
  • -iR:随机扫描
  • --exclude :排除网段或主机地址
  • --excledefile:排除文件中的地址

2.主机发现

  • -sL:列出需要扫描的目标,不扫描
  • -sn:只做ping扫描,不做端口扫描
  • -Pn:跳过主机发现,视所有主机都在线
  • -PS/PA/PU/PY[portlist]:基于TCP(SYN、ACK)、UDP、SCTP的指定端口的主机发现
  • -PE/PP/PM:基于ICMP的echo、timestamp、network request的主机发现
  • -PO[Protocol list]:基于IP协议字段的ping扫描
  • -n/-R: -n表示不对目标最DNS解析,-R表示进行DNS解析,缺省为必要时候进行DNS解析
  • --dns-servers <serv1[,serv2],...>: 指定DNS 服务器
  • --system-dns:调用系统的DNS服务器
  • --traceroute:显示追踪到目标的路径

3.端口扫描方法

  • -sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scans的方式目标主机进行扫描
  • -sU:指定使用UDP扫描的方式确定目标主机的UDP端口状况
  • -sN/sF/sX:指定使用TCP Null/FIN/Xmas scans秘密扫描的方式协助探测对方的TCP端口状态
  • --scanflags:定制TCP包的flags
  • -sI<zombie host[:probeport]>:指定使用Idle scan的方式扫描目标主机(前提是需要找到合适的zombie host)
  • -sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放情况
  • -sO:使用IP protocol扫描确定目标机支持的协议类型
  • -b:使用FTP bounce scan扫描公式

4.端口相关参数

  • -p:指定端口扫描范围,如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  • --exclude-ports : 排除端口
  • -F:扫描比缺省少的端口(缺省1000,加了-F100)
  • -r:顺序扫描端口,缺省是随机分组扫描
  • --top-ports :按top排序扫描知名端口
  • --port-ratio : 按比例扫描知名端口,值在0-1之间,越小扫的越多

5.系统/版本检测

  • -sV:探测开放的端口的系统/服务信息
  • --version-intensity :指定版本侦测的强度(0-9),默认为7,数值越高,探测出的服务越准确
  • --version-light:输出最可能的版本信息,缺省是2
  • --version-all:使用所有的探测条件进行版本/系统探测
  • --version-trace:打印详细的版本扫描过程

6.脚本扫描

  • --script=:指定脚本名称
  • --script-args=<n1=v1,[n2=v2,...]>:为脚本指定参数
  • --script-help=: 查看脚本帮助信息
  • --script-updatedb:更新脚本数据库

7.系统检测

  • -O:激活系统探测
  • --osscan-limit:只对开放端口的有效主机进行系统探测
  • --osscan-guess:推测系统信息

8.其他

  • -T<0-5>:时间模板,越大速度越快,6个级别,推荐T4
  • -6:表示使用IPV6探测
  • -A:表示使用进攻性扫描
  • -V:打印版本号
  • -v:增加输出的详细程度

0x005 常用方法


扫描单个地址

nmap 192.168.100.10

扫描多个地址
可以是不同网段、或在同一网段的少量地址

nmap 192.168.100.10 192.168.100.15

扫描一个范围内的目标地址

nmap 192.168.100.10-60

扫描目标地址所在的某个网段

nmap 192.168.100.10/24

扫描主机列表 ip.txt 中的所有目标地址

nmap -iL C:\ip.txt

扫描除某一个目标地址之外的所有目标地址

nmap 192.168.100.10/24 -exclude 192.168.100.60

扫描除某一文件中的目标地址之外的目标地址

nmap 192.168.100.10/24 -excludefile C:\ip.txt

扫描某一目标地址的21、22、23、80端口

nmap 192.168.100.10 -p 21,22,23,80

对目标地址进行路由跟踪

nmap --traceroute 192.168.100.10

扫描目标地址所在 C 段的在线情况

nmap -sP 192.168.100.10/24

目标地址的操作系统指纹识别

nmap -O 192.168.100.10

目标地址提供的服务版本侦测

nmap -sV 192.168.100.10

探测防火墙状态
FIN扫描用于识别端口是否关闭,收到RST恢复说明该端口关闭,否则就是openfiltered状态。

nmap -sF -T4 192.168.100.10

0x006 脚本介绍


Nmap脚本默认存在/xx/nmap/scripts文件夹下

Nmap脚本主要分为以下几类:

  • Auth:负责处理鉴权证书(绕过鉴权)的脚本
  • Broadcast:在局域网内探测更多服务的开启情况,如DHCP/DNS/SQLServerdeng
  • Brute:针对常见的应用提供暴力破解方式,如HTTP/SMTP等
  • Default:使用-sC或-A选项扫描时默认的脚本,提供基本的脚本扫描能力
  • Discovery:对网络进行更多信息的搜集,如SMB枚举、SNMP查询等
  • Dos:用于进行拒绝服务攻击
  • Exploit:利用已知的漏洞入侵系统
  • External:利用第三方的数据库或资源。例如:进行whois解析
  • Fuzzer:模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞
  • Intrusive:入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
  • Malware:探测目标机是否感染了病毒,属于安全性脚本
  • Safe:此类与Intrusive相反,属于安全性脚本
  • Version:负责增强服务与版本扫描功能的脚本
  • Vuln:负责检查目标机是否有常见漏洞,如MS08-067

0x007 nmap 进阶


常用脚本实例

鉴权扫描

nmap --script=auth 192.168.100.10

暴力破解攻击

nmap --script=brute 192.168.100.10

扫描常见的端口

nmap --script=vuln 192.168.100.10

应用服务扫描

nmap --script=realvnc-auth-bypass

192.168.100.10
探测局域网内更多服务开启的情况

nmap -n -p 445 --script=broadcast 192.168.100.10

whois解析

nmap -script external baidu.com

0x008 常用


ipv6地址端口扫描

nmap -6 fe80::20c:29ff:fee0:2e76

masscan + nmap快扫探测端口信息

masscan -p 1-65535 192.168.111.123 --rate=1000

nmap -sC -sV -p 80,445 192.168.111.123 -o port.txt

0x009 更多教程


nmap官网

posted @ 2022-11-17 21:21  Cx330Lm  阅读(99)  评论(0编辑  收藏  举报