3-信息收集——nmap网络扫描基本使用

本文详细介绍了Nmap这款强大的网络扫描工具,包括其主机发现、端口扫描、服务检测和操作系统识别等功能。Nmap可用于网络审计,探测目标计算机的网络状态、拓扑环境、开放端口和服务、操作系统及潜在漏洞。文章还提供了在Windows和Linux环境下安装Nmap的步骤,以及各种扫描技巧,如端口扫描、绕过防火墙等,展示了Nmap在网络安全领域的广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. nmap网络扫描工具

Nmap(network mapper,网络映射器)是Gordon Lyon于1997年设计开发的一款网络扫描和嗅探的安全审计工具,其主要功能为:主机发现功能,端口扫描,服务及版本检测,操作系统检测。

  1. 主机发现功能:向目标计算机发送特定的数据包组合来判断其网络连接状态是否开放。
  2. 端口扫描:检测目标计算机的端口是否开放。
  3. 服务及版本检测:判断目标计算机上运行的服务类型以及版本信息。
  4. 操作系统检测:判断目标计算机的操作系统类型和版本信息。

 

除了以上这些功能,nmap在渗透测试过程中还具备伪造并隐藏扫描端的身份,绕过目标的安全防御设备以及对目标系统进行漏洞检测等功能。简单来说,通过nmap进行网络安全审计可以获得以下信息:

  1. 目标计算机的网络连接状态
  2. 目标计算机所在的网络拓扑环境
  3. 目标计算机上开放的端口和服务,例如ftp服务的21端口,http服务的80端口,https的443端口等等。
  4. 目标计算机运行的操作系统,例如win7,linux或unix等操作系统。
  5. 目标计算机上存在的漏洞,例如弱口令,MS08_067等等。

 

以上这些信息的收集在渗透测试过程中是非常重要的一环,当我们对目标所掌握的信息越多,就越有利于我们后期的渗透测试,正所谓知己知彼,百战不殆,就是这个道理。

 

2. nmap下载与安装

 

windows下安装nmap

打开https://nmap.org/download.html网站,下载windows版的namp:

 

 

下载完成后,下列有很多默认的插件可进行选择性安装,这里选择默认安装:

 

所有设置按照默认的进行安装:

安装完成,点击Install。

 

linux下安装nmap

在Ubuntu Linux下可以直接使用apt-get install nmap命令安装nmap,安装完成后使用nmap -v检测nmap是否安装成功:

 

3. nmap主机扫描

Nmap最简单的探测在控制台输入nmap和目标ip地址,例如nmap 192.168.0.104,这个命令是扫描目标主机上开放的端口以及服务:

命令在执行时会检测目标主机上的1 - 10000个端口,在上图中namp列出来探测到的目标主机的端口和服务,其中PORT代表端口,STATE表示端口的状态(open表示端口开放),SERVICE则表示服务,例如443端口开放了https服务,并且还给出了目标主机的mac地址。

 

 

对连续范围内的主机进行检测扫描:

默认情况下主机会扫描出192.168.0.1-192.168.0.255范围内所有开放的主机,以及端口,服务信息等等。如果我们只想知道目标主机的ip地址的话,则可以使用-sn参数只给出目标主,不进行端口扫描。

 

Namp还支持CIRD(子网掩码)方式对整个子网进行扫描:

nmap -sn 192.168.0.1/24

CIRD表示无类别域间路由,Classless Inter-Domain Routing,这其实是ip地址里的内容,想要了解的可以参考下,注意-sn参数只进行主机扫描,不进行端口发现。

 

对多个不连续的主机进行扫描:

nmap -sn 192.168.0.100 192.168.0.104 192.168.0.106

 

在扫描的时候排除指定目标:

nmap -sn 192.168.0.1/24 --exclude 192.168.0.104

nmap在对192.168.0.1/24子网进行扫描的时候,会排除192.168.0.104地址,不会对这个地址扫描。

 

自定义指定端口进行扫描:

nmap -p 1-1024 192.168.0.106

-p参数表示要扫描的指定端口,-p 1-1024表示对1-1024端口都进行扫描。

 

使用nmap进行ARP协议扫描:

nmap -sn -PR 192.168.0.106

-PR参数则表示对目标主机进行基于ARP协议的扫描。

 

如果要对目标基于ICMP协议进行扫描的话就可以使用-PE参数了,例如:nmap -sn -PR 192.168.0.106。对于TCP协议扫描来说,同理,使用-PS参数来实现,如下所示:

nmap -sn -PS 192.168.0.106表示使用TCP协议来扫描。

 

4. nmap端口扫描

使用TCP协议的SYN扫描端口对目标主机进行检测:

nmap -sS -T4 36.152.44.96

可以看到SYN扫描端口检测到的目标主机开放了80端口,443端口。

 

通过nmap收集目标开放的端口及服务,nmap扫描端口常见的状态:

1. open和closed很好理解,open表示端口开放,close即端口关闭

2. filtered表示数据没有到达目标返回空,数据可能被防火墙或者IDS过滤。

3. UnFiltered表示数据能到达目标,但无法识别端口状态

 

使用TCP协议的SYN扫描端口对目标主机进行检测:

nmap -sS -T4 36.152.44.96

可以看到SYN扫描端口检测到的目标主机开放了80端口,443端口。

 

nmap常用的端口扫描选项:

//使用UDP扫描端口对目标主机进行检测
nmap -sU 192.168.0.104

//对常见的100个端口进行扫描
nmap -F 192.168.1.1

//对某一端口进行扫描
nmap -p 80 192.168.1.1

//对所有端口进行扫描
nmap -p * 192.168.1.1

 

5. nmap绕过防火墙,IPS方式

win10系统的防火墙有一个pfirewall.log日志文件会记录nmap扫描的日志信息:

接下来nmap的扫描,可以在win10的防火墙日志文件中可以看到nmap的扫描记录。

 

对目标系统进行碎片化扫描,发送8字节的数据包,-f选项指定数据包的mtu,绕过一部分防火墙IDS/IPS:

nmap -f 192.168.0.140
nmap -mtu 16 192.168.0.140

 

伪造10个假的ip地址进行扫描,绕过防火墙:

nmap -D RND:10 192.168.0.140
nmap -D 192.168.0.100,192.168.0.110,192.168.0.120 192.168.0.136

从上图中可以看到nmap随机伪造了多个ip地址对目标140进行扫描。

 

 

有的防火墙会设定数据包的大小来检测端口扫描,--data-length选项绕过防火墙的检测:

nmap --data-length 10 192.168.0.136

 

随机顺序扫描目标,绕过防火墙检测:

nmap -randomize-hosts 192.168.0.136

 

如果防火墙有基于mac地址检测,-spoof-mac指定随机mac地址,绕过检测:

nmap -spoof-mac Microsoft 192.168.0.136

 

 

防火墙会基于数据包的正确的校验和检测,通过--badsum选项绕过:

nmap --badsum 192.168.0.136

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值