Nmap简介

Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具,俗称扫描器之王。它的设计目标是快速地扫描大型网络,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。

Nmap功能

  • 检测存活在网络上的主机(主机发现)
  • 检测主机上开放的端口(端口发现或枚举)
  • 检测到相应端口(服务发现)的软件和版本
  • 检测操作系统,硬件地址,以及软件版本
  • 检测脆弱性的漏洞(Nmap的脚本)

nmap端口扫描神器nmap端口扫描神器

常用命令

跳过Ping扫描阶段无ping扫描

在默认情况下Nmap在进行其他扫描之前,Nmap都会对目标进行一个Ping扫描。如果目标禁止了Ping,那么Nmap发出的Ping扫描就不会有反应。在接不到如何结果返回的情况下,Nmap就会直接结束整个扫描过程,如果是这样,扫描结果是不准确的。如果遇到这种情况,我们可以使用-P0或-PN参数,启用无Ping扫描,跳过Ping扫描这个过程。如图1-1图1-1

仅使用Ping协议进行主机发现

图1-1无Ping扫描正好相反,有的时候我们需要快速扫描大量主机。这个时候我们就可以加参数-sP,加了这个参数Nmap就会仅使用Ping协议进行扫描。虽然这样会有部分主机扫描结果不准确,但相比于整个数量,这部分主机我们可以忽略,加了这个参数后速度会非常快。使用什么样的参数,要根据需求,要有取舍,要速度必然会牺牲准确性。如图1-2_图1-2

使用ARP协议进行主机发现

ARP协议扫描只适用于局域网内,使用ARP,不仅速度快,而且结果也会更加准确。如图1-3图1-3

半开扫描和全开扫描

注:半开扫描和全开扫描与TCP连接的三次握手有关系,所谓三次握手就是建立TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。这3个包的发送过程,类似于我们打电话,首先自我介绍,然后对方介绍,最后问好,3个过程全部完成叫全开扫描;最后一步不做,叫半开扫描。在实际过程中,半开扫描应用的最多,半开扫描不容易被目标电脑日志记录。

1
2
半开扫描:nmap -sS 192.168.152.130
全开扫描:nmap -sT 192.168.152.130

识别操作系统

注:Nmap不仅能扫描IP还能扫描端口,同时Nmap还可以识别操作系统的类型。因为系统不一样,渗透的方法就不同,linux系统和Windows系统有区别,安卓系统和苹果系统有区别,所以识别出是什么系统还是非常重要的。

扫描全部端口

1
nmap -p "*" 192.168.152.154

扫描指定端口

1
nmap -p 80 192.168.152.154


【参考文章】

【1】大雁博客

【2】Baidu 百度|张老师的IT训练营