nmap使用指南

本文详细介绍了nmap的使用,包括历史进程、默认扫描参数、主机发现、端口扫描、服务及系统版本检测、速度控制、躲避安全检测等多个方面。通过实例展示了nmap的强大功能,如僵尸扫描、脚本引擎(NSE)的使用,以及如何通过nmap进行隐蔽扫描。此外,还探讨了nmap的输出格式和IPv6扫描。对于网络安全专业人士,nmap不仅是网络扫描工具,更是全面的安全评估框架。
摘要由CSDN通过智能技术生成

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

1|00x00 简介

nmap还用介绍吗?搞安全的人还有不知道或者不会用nmap的吗?据我观察,能够全面灵活运用nmap的人其实并不多见。其实nmap早已经不再是你眼中那个网络层的扫描器软件了,早在十年前它就已经进化成为一个全功能的安全评估框架。今天,利用nmap强大的脚本功能,你可以轻松开发出任何漏洞检测和利用的功能,甚至完全不需要掌握那些常见的编程语言。本课我向你介绍了nmap几乎全部参数功能,同时演示了如何自己开发一个脚本的过程。

本文使用的nmap版本是7.92

image-20220325162247098

2|00x01 历史进程

  • 诞生于1997年
    • 最早的版本只有2000行代码,没有版本号
    • 只作为端口扫描工具
    • 6个月后成为黑客社区中网路扫描的事实标准
  • 2003年发布3.45版本
    • Fyodor开始全职维护nmap
    • 增加了服务检测、OS检测、时间控制等功能
    • 进入成熟期
  • 2006年集成NSE
    • 从单一的网络扫描工具,转变为可扩展的全功能漏洞评估引擎

3|00x02 默认扫描参数

  • 默认TCP syn扫描,利用TCP的三次握手机制,当发送syn包后,如果目标主机的那个端口是开着的,就会返回syn+ack数据包,同时nmap接收到之后不再返回ack的确认包,不会建立完成的TCP连接,节约扫描发起者机器的资源
  • 默认扫描1000个常用端口,包括httphttpsftpsmtpssh等等

4|00x03 指定扫描IP

4|10x03-1 指定多个扫描IP

例子 含义
sudo nmap 10.0.2.1,2,25 扫描10.0.2.110.0.2.210.0.2.25这3个IP
sudo nmap 10.0.1,2.23,25 扫描10.0.1.2310.0.1.2510.0.2.2310.0.2.25这4个IP
sudo nmap 10.0,1.2,3.23,25 扫描10.0.2.2310.0.2.2510.0.3.2310.0.3.2510.1.2.2310.1.2.2510.1.3.2310.1.3.25这8个IP

image-20220325004733347

例子 含义
sudo nmap 10.0.2.20-25 扫描10.0.2.20-25这一段的IP
sudo nmap 10.0.2-10,25 扫描10.0.2-10,25这几段的IP
sudo nmap 10.0.2-10.20-25 扫描10.0.2-10.20-25这几段的IP

image-20220325005544670

例子 含义
sudo nmap 10.0.2.25/24 扫描10.0.2.1/24这个网段中的所有IP
sudo nmap 10.0.2.1/16 扫描10.0.2.1/16这个网段中的所有IP

image-20220325005758883

例子 含义
sudo nmap -iL ip.txt 扫描ip.txt这个文件内容中所有的IP,注意IP得是一个一行的形式写入文件中

image-20220325010055774

4|20x03-2 指定扫描域名

例子 含义
sudo nmap www.baidu.com 扫描www.baidu,com这个域名对应的IP

image-20220324233643718

4|30x03-3 排除要扫描的IP

例子 含义
sudo nmap 10.0.2.25/24 --exclude 10.0.2.2,3,4 扫描10.0.2.1/24这个网段中除10.0.2.210.0.2.310.0.2.4外的所有IP
sudo nmap 10.0.2.25/24 --exclude 10.0.2.2-10 扫描10.0.2.1/24这个网段中除10.0.2.2-10这一段外的所有IP
sudo nmap 10.0.2.25/16 --exclude 10.0.2.0/24 扫描10.0.2.1/16这一大段中除10.0.2.0/24这一小段外的所有IP

image-20220325010237185

例子 含义
sudo nmap 10.0.2.25/24 --excludefile exip.txt 扫描10.0.2.25/24这个网段中除exip.txt文件内容中包含的IP外的所有IP

image-20220325010426850

5|00x04 反向域名查询

5|10x04-1 -R 一定要做DNS反向域名查询

例子 含义
sudo nmap 220.181.38.251 -R -sn 在扫描时一定要做DNS反向域名查询,也就是查询IP地址对应的域名,并且只做主机发现

image-20220325175418772

image-20220325175533234

5|20x04-2 -n 不做DNS反向域名查询

例子 含义
sudo nmap 220.181.38.251 -n -sn 在扫描时不做DNS反向域名查询,也就是不查询IP地址对应的域名,并且只做主机发现

image-20220325175746724

image-20220325175858216

5|30x04-3 --dns-servers 指定 DNS 服务器做反向域名查询

例子 含义
sudo nmap 220.181.38.251 -R --dns-servers 114.114.114.114 -sn 在扫描时做DNS反向域名查询,指定DNS服务器为114.114.114.114,并且只做主机发现

image-20220325180430896

image-20220325180523385

6|00x05 -e 指定发包网卡

例子 含义
sudo nmap 10.0.2.25 -e eth0 指定发扫描数据包的网卡为eth0

image-20220325004329043

如果没有指定发包网卡,nmap就会使用本机序号为第一个的网卡发扫描包

7|00x06 主机发现

做扫描的时候,先做主机发现,别一上来就对所有的IP发送大量数据包进行端口扫描,不要做这种莽撞的行为,因为在扫描的时候经常会触发安全机制的报警,所以做扫描的时候要越隐蔽越好,先做主机发现再做端口扫描,不仅节省自己的时间,还能避免被发现,何乐而不为呢?

7|10x06-1 -sn 使用ICMP,TCP ping扫描,只做主机发现

向目标系统的80443端口发送ICMPTCP ping扫描,如果目标系统返回了ICMP响应包、SYN+ACK包、RST+ACK包,就认为这个IP是活着的

并且判断完IP是否是活着的之后,就会结束,不会再发送端口扫描数据包

例子 含义
sudo nmap -sn 192.168.123.2 扫描192.168.123.2是否是活着的

image-20220326231805062

image-20220325160918236

7|20x06-2 -Pn 跳过主机发现环节

跳过主机发现环节,直接将IP视为在线状态,直接发送大量的端口扫描数据包;不加此参数的情况是:若发现此IP不在线,则不进行端口扫描

因为会发出大量的扫描数据包,一点也不隐蔽,所以用此参数来进行主机发现是不可取的

例子 含义
sudo nmap -Pn 192.168.123.2 扫描192.168.123.2,不管此IP是否是活着的状态

image-20220325161634733

7|30x06-3 --traceroute 显示经过的路由

例子 含义
sudo nmap www.baidu.com --traceroute -sn 在扫描结果种显示每一跳经过的路由IP,而且只做主机发现这一步

7|40x06-4 -PS 发送 TCP SYN 包

加入这个参数之后只会发送TCP SYN数据包包

例子 含义
sudo nmap 192.168.123.1 -PS -sn 只发送TCP SYN 包进行主机发现

image-20220325163818274

image-20220325164116669

7|50x06-5 -PA 发送 TCP SYN 包

加入这个参数之后只会发送TCP ACK数据包

例子 含义
sudo nmap 192.168.123.1 -PA -sn -n 只发送TCP ACK 包进行主机发现,并且跳过DNS反向域名解析环节

image-20220325164456252

image-20220325164346257

7|60x06-6 -PU 发送 UDP 包

加入这个参数之后只会发送UDP 数据包

例子 含义
sudo nmap 192.168.123.1 -PU -sn -n
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值