nmap的使用

Nmap

nmap是一款主机发现、端口扫描、服务识别、漏洞扫描的一款强大的信息收集工具

1、主机发现

命令: 说明
-sn 不进行端口扫描
--send-ip 不进行ARP扫描,nmap默认会进行ARP主机发现扫描
-PR 进行ARP存活扫描
-PS 进行TCP SYN 存活扫描
-PA 进行TCP ACK 存活扫描
-PU 进行UDP存活扫描
-sP 进行TCP和ICMP存活存活扫描
-PY 进行SCTP扫描,SCTP是TCP的升级版
-PO 自定义协议扫描
-PE 进行ICMP echo reply扫描
-PP 进行ICMP 时间戳扫描
-PM 进行ICMP 掩码扫描

更多详细参数,可以在kali中使用man nmap查看nmap使用手册,是中文的

操作
使用 ARP 协议对 172.16.1 网段进行存活扫描

  nmap -sn -PR 172.16.1.0/24

使用 TCP SYN 对 172.16.1进行主机存活扫描

  nmap -sn -PS --send-ip 172.16.1.0/24

使用 TCP ACK 对 172.16.1 网段进行主机存活扫描

  nmap -sn -PA --send-ip 172.16.1.0/24

使用 UDP 对 172.16.1 网段进行主机存活扫描,UDP扫描相对较慢

  nmap -sn -PU --send-ip 172.16.1.0/24

使用 SCTP协议对 172.16.1 网段进行主机存活扫描

  nmap -sn -PY --send-ip 172.16.1.0/24

使用 IP 协议对 172.16.1 网段进行主机存活扫描

  nmap -sn -PO --send-ip 172.16.1.0/24

使用 TCP 和 ICMP 协议对 172.16.1 网段进行主机存活扫描

  nmap -sn -sP --send-ip 172.16.1.0/24

2、端口扫描

命令: 说明
-sT 进行 TCP 全连接端口扫描
-sS 进行 SYN 端口扫描
-sA 进行 ACK 端口扫描
-sW 进行 滑动窗口扫描
-sM 进行 迷你端口扫描
-sX 进行 圣诞树端口扫描
-sF 进行 隐藏端口扫描
-sN 进行 空端口扫描
-sU 进行 UDP 端口扫描
-sO 进行 IP 协议扫描
-sV 进行 端口版本信息扫描
--scanflags 标志 指定TCP标志进行扫描
-Pn 不进行主机发现

操作
TCP全连接端口扫描

可以看到开放端口有21、22、80、111、1002、3306,并通过指纹验证了该端口的服务。
SYN端口扫描

SYN扫描最受欢迎,扫描快、准、狠。

其余端口扫描不在一一叙述,虽然使用方法都一样,但是根据协议,他们的扫描原理是不一样的,各有各的有点,例如sF扫描不容易被发现,sS扫描比较快但是扫描的不是准确,sV能扫描到端口版本信息

3、脚本扫描

namp自带很多脚本呢,在kali中存放于/var/share/nmap/script目录中

在我们使用脚本的时候,可以调用一个脚本呢组,或者调用其中一个

指定脚本扫描一个脚本的扫描
对172.16.1.80使用脚本mysql-info进行mysql服务的版本扫描

  nmap --script mysql-info -p 3306 172.16.1.80

使用脚本组进行扫描
常用的组有

auth 认证相关脚本
broadcast 通过发送广播消息发现主机
brute 对登录执行暴力密码审计
default 默认脚本,与-sC
discovery 检索可访问的信息,例如数据库表和DNS名称
dos 检测易受拒绝服务 ( DoS )攻击的服务器
exploit 尝试利用各种易受攻击的服务
external 使用第三方服务进行检查,例如 Geoplugin 和 Virustotal
fuzzer 发起模糊攻击
intrusive 侵入式脚本,例如暴力攻击和利用
malware 扫描后门
safe 不会使目标崩溃的安全脚本
version 检索服务版本
vuln 检查漏洞或利用易受攻击的服务

使用默认脚本扫描

  nmap -sc  或者 nmap --script=default

使用vuln漏洞扫描

  nmap --script=vuln

可以使用ftp*使用ftp开头的脚本

nmap --script "ftp*"

--script后面可以是=也可以是空格

4、常用其他参数

参数 描述
-n 不进行DNS查询
-R 所有主机进行反向DNS查找
-sn 不进行端口扫描
-p端口,端口 指定端口进行扫描
-p1-1024 对1-1024端口进行扫描
-p- 对所有端口进行扫描
-F 对常用的100个端口进行扫描
-r 按照连续顺序扫描端口
-T0-5 指定扫描时间,0最慢,5最快
--max-rate 50 速率 <= 50 数据包/秒
--min-rate 15 速率 >= 15 数据包/秒
--reason 获取端口开放主机存货原因
-v 或 -vv 查看扫描细节
-d 或 -vv 查看扫描细节(调试)
-f 或 -ff 进行IP分段扫描,-f8个字节,-ff4个字节
--source-port 端口号 指定源端口
--data-length 数值 附加随机数据以达到给定长度
-S SPOOFED_IP MACHINE_IP 欺骗源IP
--spoof-mac SPOOFED_MAC 欺骗源 MAC 地址
-O 操作系统扫描
--traceroute 跟踪路由
-A 相当于-sV -O -sC --traceroute

5、保存输出

无论何时运行 Nmap 扫描,将结果保存在文件中都是合理的。为文件名选择并采用良好的命名约定也很重要。文件的数量会迅速增加并妨碍您查找以前的扫描结果。三种主要格式是:

  1. 普通的
  2. Grepable(grep能够)
  3. XML

普通的
顾名思义,正常格式类似于您在扫描目标时在屏幕上获得的输出。您可以使用 ; 以正常格式保存扫描件-oN FILENAME;N代表正常。这是结果的示例

Grep able
grepable 格式的名称来自命令grep;grep 代表全局正则表达式打印机。简而言之,它可以高效地过滤特定关键字或术语的扫描输出。您可以使用 将扫描结果保存为 grepable 格式-oG FILENAME。上面以正常格式显示的扫描输出使用 grepable 格式显示在下面的控制台中。正常输出为21行;然而,grepable 输出只有 4 行。主要原因是Nmap想在用户申请的时候让每一行都有意义和完整grep。结果,在 grepable 输出中,行很长,与正常输出相比不方便阅读

的一个例子grep是grep KEYWORD TEXT_FILE; 此命令将显示包含提供的关键字的所有行。grep让我们比较一下在普通输出和 grepable 输出上使用的输出。您会注意到前者不提供主机的 IP 地址。相反,它返回了 80/tcp open http nginx 1.6.2,如果您正在筛选多个系统的扫描结果,这将非常不方便。但是,后者在每行中提供了足够的信息,例如主机的 IP 地址,使其完整

可以使用grep进行筛选关键字

XML

第三种格式是XML。您可以使用 以 XML 格式保存扫描结果-oX FILENAME。XML格式最便于在其他程序中处理输出。-oA FILENAME非常方便的是,您可以使用to combine -oN-oG和 for normal、grepable 和XML以所有三种格式保存扫描输出。 -oX

nmap非常的强大,这里只是简单的介绍了其中一些简单的命令。

posted @ 2021-11-06 09:45  Junglezt  阅读(688)  评论(0编辑  收藏  举报