《nmap 命令全解析:网络探测与安全扫描的利器》

embedded/2024/9/23 20:02:51/

文章目录

  • 一、引言
  • 二、nmap 命令概述
  • 三、nmap 基本用法
    • (一)安装 nmap
    • (二)简单扫描示例
  • 四、nmap 常见参数
    • (一)-sS(TCP SYN 扫描)
    • (二)-sT(TCP 连接扫描)
    • (三)-sU(UDP 扫描)
    • (四)-p(指定端口)
    • (五)-O(操作系统检测)
    • (六)-A(全面扫描)
  • 六、nmap 在网络安全中的应用
  • 八、结论

一、引言

网络管理、安全评估以及系统运维等领域,了解网络中的主机和服务情况是至关重要的。nmap(Network Mapper)作为一款强大的网络探测和安全扫描工具,可以帮助我们实现这些目标。本文将详细介绍 nmap 命令的基本用法、常见参数及其在不同场景下的应用。

二、nmap 命令概述

nmap 是一个开源的网络探测和安全审核工具,它可以快速扫描大型网络,获取主机存活状态、开放端口、服务类型、操作系统类型等重要信息。其功能强大且灵活,适用于网络管理员、安全专家以及系统管理员等各类人员。

三、nmap 基本用法

(一)安装 nmap

在 Debian 或 Ubuntu 系统中

sudo apt-get install nmap

在 CentOS 或 RHEL 系统中

sudo yum -y install nmap

(二)简单扫描示例

  1. 扫描单个主机
    要扫描单个主机(例如118.24.128.50)是否存活以及开放哪些端口,可以使用以下基本命令:

    nmap 118.24.128.50
    

    扫描结果,可以看到常用端口开放状态

    [root@VM-0-5-centos ~]# nmap 118.24.128.50
    Starting Nmap 7.92 ( https://nmap.org ) at 2024-09-16 13:21 CST
    Nmap scan report for 118.24.128.50
    Host is up (0.00024s latency).
    Not shown: 997 filtered tcp ports (no-response)
    PORT    STATE  SERVICE
    22/tcp  open   ssh
    80/tcp  open   http
    443/tcp closed httpsNmap done: 1 IP address (1 host up) scanned in 4.92 seconds
  2. 扫描单个主机指定端口
    列如(例如118.24.128.50:6379)使用-p 指定端口

    nmap -p 6379 118.24.128.50
    

    扫描结果
    “filtered” 表示端口状态为被过滤。这意味着 nmap 无法确定端口是开放还是关闭,因为有某种防火墙、网络过滤设备(如路由器上的访问控制列表 ACL)或者其他网络安全机制在阻止 nmap 获取准确的端口状态信息。

    [root@VM-0-5-centos ~]# nmap -p 6379 118.24.128.50
    Starting Nmap 7.92 ( https://nmap.org ) at 2024-09-16 13:25 CST
    Nmap scan report for 118.24.128.50
    Host is up (0.00025s latency).PORT     STATE    SERVICE
    6379/tcp filtered redisNmap done: 1 IP address (1 host up) scanned in 0.30 seconds
    [root@VM-0-5-centos ~]# 
  3. 扫描一个网段
    如果要扫描一个网段(例如192.168.1.0/24),以查找该网段内所有存活主机及其开放端口

    nmap 192.168.1.0/24
    

四、nmap 常见参数

(一)-sS(TCP SYN 扫描)

这是 nmap 默认的扫描方式之一,也被称为半开放扫描。它发送一个 SYN 包到目标端口,如果收到 SYN - ACK 响应,则表示端口开放;如果收到 RST 包,则表示端口关闭。这种扫描方式比较隐蔽,因为它不会建立完整的 TCP 连接。
示例:

nmap -sS 192.168.1.100

(二)-sT(TCP 连接扫描)

这种扫描方式会建立完整的 TCP 连接,就像正常的客户端连接服务器一样。虽然这种方式更容易被目标系统检测到,但在某些情况下可能更准确。
示例:

nmap -sT 192.168.1.100

(三)-sU(UDP 扫描)

用于扫描目标主机上的 UDP 端口。UDP 扫描相对比较困难,因为 UDP 协议本身无连接,不像 TCP 那样有明确的响应机制。nmap 会发送 UDP 数据包到目标端口,如果端口关闭,可能会收到 ICMP 端口不可达消息。
示例:

nmap -sU 192.168.1.100

(四)-p(指定端口)

如果不想扫描所有端口,可以使用-p参数指定要扫描的端口或端口范围。
扫描单个端口
例如,只扫描目标主机的 80 端口:

nmap -p 80 192.168.1.100

扫描多个端口
可以用逗号分隔多个端口号,如扫描 80、443 和 22 端口:

nmap -p 80,443,22 192.168.1.100

扫描端口范围
扫描 1 - 100 端口:

nmap -p 1 - 100 192.168.1.100

(五)-O(操作系统检测)

nmap 可以尝试检测目标主机的操作系统类型。虽然这种检测并不是 100% 准确,但在大多数情况下能够提供有用的参考。
示例:

nmap -O 192.168.1.100

(六)-A(全面扫描)

-A参数相当于同时启用了操作系统检测(-O)、脚本扫描(-sC)和全面的端口扫描。这是一种综合扫描方式,可以获取关于目标主机的丰富信息。
示例:

nmap -A 192.168.1.100

扫描结果

[root@VM-0-5-centos ~]# nmap -A 192.168.1.100
Starting Nmap 7.92 ( https://nmap.org ) at 2024-09-16 13:37 CST
Nmap scan report for 192.168.1.100
Host is up (0.00023s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT    STATE  SERVICE VERSION
22/tcp  open   ssh     OpenSSH 8.7 (protocol 2.0)
| ssh-hostkey: 
|   256 a4:cf:66:1c:bd:71:c9:df:e6:eb:13:88:62:3b:7a:ff (ECDSA)
|_  256 5a:86:eb:9a:3d:88:7e:9a:46:c0:31:8f:82:13:ed:f2 (ED25519)
80/tcp  open   http    nginx 1.26.2
|_http-server-header: nginx/1.26.2
|_http-title: Boot Admin
443/tcp closed https
Aggressive OS guesses: HP P2000 G3 NAS device (91%), Linux 2.6.32 (90%), Linux 2.6.32 - 3.1 (90%), Ubiquiti AirMax NanoStation WAP (Linux 2.6.32) (90%), Linux 3.7 (90%), Linux 5.0 (90%), Linux 5.1 (90%), Ubiquiti AirOS 5.5.9 (90%), Linux 5.0 - 5.4 (89%), Ubiquiti Pico Station WAP (AirOS 5.2.6) (89%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hopsTRACEROUTE (using port 443/tcp)
HOP RTT     ADDRESS
1   0.44 ms 30.65.72.193
2   0.25 ms 192.168.1.100OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.47 seconds

六、nmap 在网络安全中的应用

(一)网络漏洞发现

通过扫描目标网络中的主机开放端口和服务,并结合脚本扫描,可以发现一些潜在的安全漏洞。例如,发现 Web 服务器上存在的未授权访问漏洞、数据库服务的弱密码等。

(二)网络安全评估

网络中的主机和服务进行全面扫描,包括操作系统检测、端口扫描和漏洞扫描等,可以为网络安全评估提供数据支持。根据扫描结果,可以确定网络安全状况,采取相应的安全措施,如加固系统、修复漏洞等。

(三)入侵检测辅助

nmap 的扫描结果可以作为入侵检测系统(IDS)的辅助信息。通过定期扫描网络,对比扫描结果的变化,可以发现异常的主机或端口开放情况,从而及时发现潜在的入侵行为。

八、结论

telnet 和 nmap区别

Telnet:是一种用于远程登录的应用层协议,主要功能是让用户在本地计算机上通过网络连接到远程主机,并在远程主机上进行操作,就像在本地操作一样。它使用户可以在远程主机上执行命令、访问文件、运行程序等。例如,用户可以使用 Telnet 连接到远程服务器的命令行界面,进行系统管理、文件传输等操作。
操作相对简单,用户只需要在命令行中输入 telnet 命令加上远程主机的 IP 地址或域名,就可以尝试连接到远程主机。如果连接成功,用户将进入远程主机的命令行界面,可以直接输入命令进行操作。但是,Telnet 的结果呈现比较简单,主要是在命令行界面上显示远程主机的命令行输出。

Nmap:是一个强大的网络扫描工具,主要用于探测网络中的主机、扫描主机的开放端口、确定主机的操作系统类型以及识别网络服务等。它可以帮助网络管理员了解网络的拓扑结构、发现潜在的安全漏洞以及监测网络的运行状况。


http://www.ppmy.cn/embedded/115751.html

相关文章

卷积神经网络(Convolutional Neural Network,CNN)

CNN网络主要有三部分构成:卷积层、池化层和全连接层构成,其中卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似神经网络的部分,用来输出想要的结果。 卷积思想 卷积Convolution&#x…

WebGL入门(一)绘制一个点

源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><scr…

nano-graphrag代码详解

1.概述 https://github.com/gusye1234/nano-graphrag &#x1f62d; GraphRAG很强大&#xff0c;但官方的实现阅读或修改起来非常困难。 &#x1f60a; 本项目提供了一个更小、更快、更简洁的 GraphRAG&#xff0c;同时保留了核心功能。 以下是该项目的详细代码注释&#x…

演示:基于WPF的DrawingVisual开发的Chart图表和表格绘制

一、目的&#xff1a;基于WPF的DrawingVisual开发的Chart图表和表格绘制 二、预览 钻井井轨迹表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟井轨迹深度的绘制&#xff09; 饼图表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟多个饼状图组合显示&am…

torch.nn系列函数学习 --- Conv2d函数

该函数的官方文档&#xff1a; https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride1, padding0, dilation1, groups1, biasTrue, padding_modezeros, deviceNone, dtypeNone)…

Java项目实战II基于Java+Spring Boot+MySQL的卓越导师双选系统设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 在当今高等教育环境中&#xff0c;师生之间的有效沟通与匹配对于促进学生发展、提升教学质量至关重要…

pcdn盒子连接方式

连接方式 大部分连接方式如下 光猫拨号 → 路由器 → 盒子 优点&#xff1a;光猫负责拨号&#xff0c;路由器只需做路由转发&#xff0c;性能要求不高缺点&#xff1a;光猫会有一层nat&#xff0c;路由器还有一层nat&#xff0c;两层nat需要在两个设备上都做nat优化注意&…

python全栈学习记录(十七)logging、json与pickle、time与datatime、random

logging、json与pickle、time与datatime、random 文章目录 logging、json与pickle、time与datatime、random一、logging二.json与pickle三.time与datatime四.random 一、logging logging模块用来记录日志信息。 import logging # 进行基本的日志配置 logging.basicConfig( fi…