nmap端口扫描

Nmap简介
Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具,俗称扫描器之王。它的设计目标是快速地扫描大型网络,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。
Nmap功能
- 检测存活在网络上的主机(主机发现)
- 检测主机上开放的端口(端口发现或枚举)
- 检测到相应端口(服务发现)的软件和版本
- 检测操作系统,硬件地址,以及软件版本
- 检测脆弱性的漏洞(Nmap的脚本)
常用命令
跳过Ping扫描阶段(无ping扫描)
在默认情况下Nmap在进行其他扫描之前,Nmap都会对目标进行一个Ping扫描。如果目标禁止了Ping,那么Nmap发出的Ping扫描就不会有反应。在接不到如何结果返回的情况下,Nmap就会直接结束整个扫描过程,如果是这样,扫描结果是不准确的。如果遇到这种情况,我们可以使用-P0或-PN参数,启用无Ping扫描,跳过Ping扫描这个过程。如图1-1
仅使用Ping协议进行主机发现
与图1-1无Ping扫描正好相反,有的时候我们需要快速扫描大量主机。这个时候我们就可以加参数-sP,加了这个参数Nmap就会仅使用Ping协议进行扫描。虽然这样会有部分主机扫描结果不准确,但相比于整个数量,这部分主机我们可以忽略,加了这个参数后速度会非常快。使用什么样的参数,要根据需求,要有取舍,要速度必然会牺牲准确性。如图1-2_
使用ARP协议进行主机发现
ARP协议扫描只适用于局域网内,使用ARP,不仅速度快,而且结果也会更加准确。如图1-3
半开扫描和全开扫描
注:半开扫描和全开扫描与TCP连接的三次握手有关系,所谓三次握手就是建立TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。这3个包的发送过程,类似于我们打电话,首先自我介绍,然后对方介绍,最后问好,3个过程全部完成叫全开扫描;最后一步不做,叫半开扫描。在实际过程中,半开扫描应用的最多,半开扫描不容易被目标电脑日志记录。
1 | 半开扫描:nmap -sS 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】大雁博客














