前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nmap常见使用方式大全

Nmap常见使用方式大全

原创
作者头像
zhouzhou的奇妙编程
发布2024-08-27 08:27:58
1220
发布2024-08-27 08:27:58

Nmap简介

Nmap是Linux下一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具,软件名字Nmap是Network Mapper的简称。

Nmap最初由Fyodor在1996年开始创建,随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行的安全必备工具之一。

Nmap使用原始IP报文来发现网络上有哪些主机,这些主机提供什么服务(应用程序名和版本),服务运行在什么操作系统,它们使用什么类型的报文过滤器/防火墙,以及一些其他功能。

Nmap基本功能

默认方式扫描

命令格式 :

代码语言:c_cpp
复制
nmap <目标地址>

全面扫描

命令格式 :

代码语言:c_cpp
复制
nmap -A -T 4 -v <目标地址>

主机发现

目标:确定目标主机是否在线(Alive,处于开启状态原理:与ping命令类似,发送探测包到目标主机,如果收到回复,则说明目标主机是开启的

原理:与ping命令类似,发送探测包到目标主机,如果收到回复,则说明目标主机是开启的

实例1:局域网内执行ping扫描

目标:扫描局域网192.168.40.1-192.168.40.254内哪些IP的主机在线。

命令:

代码语言:c_cpp
复制
nmap -sP  192.168.40.1-254,或 nmap -sP 192.168.40.0/24

说明:在局域网内,无论采用哪一种选项Nmap都是通过ARP包来询问IP地址上的主机是否活动的,如果收到ARP回复包,那么说明主机在线。

实例2:跨网段执行ping扫描

目标:扫描跨网段目标主机192.168.50.5是否在线。

命令 :

代码语言:c_cpp
复制
nmap -sP 192.168.50.5

说明:扫描跨网段目标主机时,使用-sP或-sn选项,默认情况下Nmap会依次发送4种不同类型的数据包(ICMP echo request、TCP SYNpacket to port 443、TCP ACKpacket to port 80、ICMPtimestamprequest)来探测目标主机是否在线,只要收到其中一个包的回复,就证明目标机在线。

实例3: --packet-trace 的使用

端口扫描

目标 : 确定目标主机的TCP/UDP端口的开放情况

原理 : 发送TCP、UDP等类型的探测包到目标端口,根据收到的回复包判定端

口是否开放

实例4 : -p选项的应用--指定扫描的端口号

关于-p选项的说明:默认情况下,Nmap仅对用-p指定的TCP端口进行扫描,扫描方式为-sS(TCP SYN扫描)。如果既要扫描TCP端口,又要扫描UDP端口,则可以用“T:”“U:”参数指定目标端口,并指定-sU(UDP扫描方式)和至少一种TCP扫描方式,如:

代码语言:c_cpp
复制
nmap -p T:139,U:53 -sS -sU 192.168.40.178

TCP SYN扫描(-sS)原理

Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机发送TCPRST报文以重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态

实例5:-sS选项的应用--TCP SYN扫描

TCP connect扫描(-sT)原理

Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机依次发送TCP ACK、TCP RST+ACK完成三次握手和重置此连接;如果目标机返回TCP RST+ACK报文则说明目标端口处于关闭状态。

实例6:-sT选项的应用--TCPconnect扫描

TCP ACK扫描(-sA)原理

Nmap向目标端口发送TCP ACK报文,无论目标端口是否处于开放状态,目标机都会返回TCP RST报文。如果Nmap主机能收到此TCPRST报文,则说明目标端口未被防火墙屏蔽。

TCP ACK扫描只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。

实例7: -sA 选项的应用 --TCP ACK扫描

隐蔽扫描(-sF/-sN/-sX)原理

Nmap向目标端口发送TCP FIN (-SF) / NULL (-SN) / FIN+PSH+URG (-sX) 报文,对于Linux系统的目标机,如果目标机未响应,则说明目标端口处于开放状态或被防火墙屏蔽;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。

对于Windows系统的目标机,无论目标端口处于开放还是关闭状态,目标机都会返回TCP RST+ACK报文。

因此,隐蔽扫描方式适合于Linux系统的目标机端口扫描。

实例8 : 隐蔽扫描选项(-sF/-SN/-sX)的应用

应用程序与版本信息侦测

识别目标主机开放的TCP/UDP端口上运行的服务及版本信息

nmap-services-probes(服务版本数据库文件)

默认路径:/usr/share/nmap/nmap-services-probes

实例9 : -sV选项的应用

实例10 : --version-trace选项的应用跟踪版本扫描活动

操作系统侦测

目标:识别目标主机操作系统的类型

侦测方法:网络协议栈指纹识别技术

nmap-os-db (操作系统数据库文件)

  • 该数据库包含了超过2600种操作系统的指纹信息,Nmap把TCP和UDP报文发送到目标机器上,然后将检查结果和nmap-os-db数据库进行比对
  • 默认路径:/usr/share/nmap/nmap-os-db

实例11 : -O 选项的应用

实例12 : -A选项的应用

规避FW/IDS技术

实例1 : -T选项的应用--控制扫描速度

使用 -T(0~5)可以启用时序选项,一般来说数字越大,速度越快,精度越低.

实例2 : -D选项的应用--源IP地址欺骗

实例3 : 空闲扫描(-sI)的应用

实例4 : --spoof-mac 选项的应用 -- 源MAC地址欺骗

所用命令:

代码语言:c_cpp
复制
nmap --spoof-mac 0 <目标IP>

其中参数0表示随机分配一个MAC地址,也可以手动指定MAC地址,如:

代码语言:c_cpp
复制
nmap --spoof-mac aa:bb:cc:dd:ee:ff <目标IP>

NSE脚本的简单应用

除了常规的网络扫描Nmap还可根据NSE(Nmap scripting Engine)的脚本进行大量渗透工作,这种脚本基于Lua语言编写。

脚本存放目录:/usr/share/nmap/scripts/

实例5:暴力破解脚本(--script brute)应用

提供暴力破解的方式,可对数据库、SMB、SNMP等进行简单密码的暴力猜解

实例6:漏洞扫描脚本(--script vuln)应用

扫描结果保存与输出

实例7:以普通模式(-ON)输出Nmap扫描结果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nmap简介
  • Nmap基本功能
  • 主机发现
  • 端口扫描
    • TCP SYN扫描(-sS)原理
      • TCP connect扫描(-sT)原理
        • TCP ACK扫描(-sA)原理
          • 隐蔽扫描(-sF/-sN/-sX)原理
          • 应用程序与版本信息侦测
          • 操作系统侦测
          • 规避FW/IDS技术
          • NSE脚本的简单应用
          • 扫描结果保存与输出
          相关产品与服务
          脆弱性检测服务
          脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档