Jay jay
文章28
标签2
分类0
nmap扫描工具

nmap扫描工具

Nmap简介

端口扫描是nmap工具的核心功能,用于确定目标主机tcp/udp端口开放情况。在kali中已经安装。
默认情况下nmap会扫描最有可能开放的tcp端口
nmap通过探测将端口划分为6个状态:

  1. open端口是开放的
  2. closed端口是关闭的
  3. filtered端口被firewall/ids/ips屏蔽,无法确定状态
  4. unfiltered端口没有被屏蔽,但是否开放无法确定
  5. open|filtered端口是开放或屏蔽
  6. closed|filtered端口是关闭或屏蔽

Nmap使用

常用
nmap有四种基本功能:端口扫描、主机探测、服务识别和系统识别

端口扫描

地址```默认扫描主机的1000个常用端口
![扫描](nmap扫描工具/2023-04-16-11-53-56.png)
可以看到扫描了1000个端口并把开放的端口和能识别的服务显示出来了。

* 指定端口
使用-p参数可以一次扫描单个、多个、或扫描一个范围的端口

```txt
nmap 地址 -p 端口号 #扫描单个端口
nmap 地址 -p 1-80 #扫描端口范围
nmap 地址 -p 80,3389,23,22 #扫描多个端口
nmap 地址 -p- 等价于nmap 地址 -p 1-65535 #扫描全端口

指定端口扫描

  • 指定扫描方式
    利用wireshark过滤扫描时的请求包筛选出指定方式的请求例如扫描地址并且端口是tcp的80如下图
    指定方式扫描

  • tcp全连接扫描
    使用-sT参数进行tcp全连接扫描(全连接扫描指的是建立完整的三次握手,能够建立则说明端口开放,否则判定端口关闭)
    nmap 地址 -p 80 -sT
    如果端口开放就会进行完整的三次握手成功建立连接扫描结果中的state字段为open
    全连接

如果端口关闭则只进行一次握手无法建立连接扫描结果中的state字段为closed
端口关闭

  • syn半连接扫描
    使用-sS参数进行syn半连接扫描(半连接指的是只进行两次握手,对方返回确认帧ack=1说明端口开放否则端口关闭)
    nmap 地址 -p 80 -sS
    如果端口开放则会完成两次握手,扫描结果中的state字段为open
    完整扫描

如果端口关闭则,只能进行一次握手,扫描结果state字段显示closed
端口没有开放
这里没有进行-sS参数添加是因为nmap默认使用半连接扫描

全连接和半连接
比较

  • 隐秘扫描只适用于linux系统
    隐秘扫描是向目标主机的端口发送tcp fin包或xmas tree包或null包,如果收到rst响应包则判定端口关闭否则就判定端口开放或屏蔽
nmap 127.0.0.1 -p 80 -sF #fin扫描
nmap 127.0.0.1 -p 80 -sN #null扫描所有loges都为0的tcp包
nmap 127.0.0.1 -p 80 -sX #xmas扫描flags的fin、urg、pysh都为1

主机探测

扫描网段中有那些主机在线,使用-sP参数,不扫描端口只扫描存活主机
本质上是使用ping扫描,能ping同有回包则判定主机在线
扫描主机
可以看到扫描了192.168.23.0这个网段的256个ip其中有5个存活

服务识别

扫描端口时,默认显示端口对应的服务,但不显示服务版本,可以使用-sV参数显示服务版本
显示服务版本

识别操作系统

可以使用-O参数识别操作系统版本,这里扫描的结果可能不准确,识别不出来会以概率列举操作系统
识别操作系统

扫描结果导出

可以导出扫描结果使用-oN导出为文本格式,-oX导出为xml格式
导出

常用参数

-T <0-5>参数指定扫描速度,常用4

本文作者:Jay jay
本文链接:https://yyj-xx.github.io/2023/04/16/nmap%E6%89%AB%E6%8F%8F%E5%B7%A5%E5%85%B7/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可