《nmap 命令全解析:网络探测与安全扫描的利器》
文章目录
- 一、引言
- 二、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
(二)简单扫描示例
-
扫描单个主机
要扫描单个主机(例如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 -
扫描单个主机指定端口
列如(例如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 ~]# -
扫描一个网段
如果要扫描一个网段(例如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:是一个强大的网络扫描工具,主要用于探测网络中的主机、扫描主机的开放端口、确定主机的操作系统类型以及识别网络服务等。它可以帮助网络管理员了解网络的拓扑结构、发现潜在的安全漏洞以及监测网络的运行状况。
完
相关文章:
《nmap 命令全解析:网络探测与安全扫描的利器》
文章目录 一、引言二、nmap 命令概述三、nmap 基本用法(一)安装 nmap(二)简单扫描示例 四、nmap 常见参数(一)-sS(TCP SYN 扫描)(二)-sT(TCP 连接…...
2024年华为OD机试真题-斗地主之顺子-Python-OD统一考试(E卷)
最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 每一题都含有详细的解题思路和代码注释,精选c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,持续跟新。 题目描述 在斗地主只扑克牌游戏中,…...
亲测有效,长期有效的RTSP流地址公网RTSP地址,各种类型的视频源
我们经常需要做一些实时视频流的测试,但是手边又没有办法及时弄到一个摄像机,我们经常会去搜索一下“公网RTSP地址”,但是大部分现在都失效了,有什么办法能够让我们快速构建一个RTSP流,点几下就能直接用? …...
Excel常用函数大全
Excel常用函数介绍与示例应用 在Excel中,函数是进行数据处理和分析的强大工具。对于新手来说,掌握一些基本的函数使用方法能够大大提升工作效率。以下是一份通俗易懂、适合新手的Excel函数使用方法总结: 1. 求和函数(SUM&#x…...
领夹麦克风哪个品牌好,无线领夹麦克风品牌排名,麦克风品牌大全
无线领夹麦克风因其便携性和隐蔽性,越来越受到演讲者和表演者的青睐。但是,随着市场上品牌和型号的增多,质量也变得参差不齐。许多用户在选购时,会因为缺乏了解而选择到性能不佳的产品,影响声音的清晰度和稳定性。下面…...
【C语言零基础入门篇 - 15】:单链表
文章目录 单链表链表的基本概念单链表功能的实现单链表的初始化单链表新结点的创建单链表头插法单链表的输出单链表的查找单链表修改单链表的删除单链表所有数据结点释放源代码 单链表 链表的基本概念 一、什么是链表? 链表是数据结构中线性表的一种,其…...
Linux主流Web服务器:你选择哪一款?
在Linux环境下,选择Web服务器通常取决于特定需求、资源限制、以及对性能的期望。以下是对几款主流Linux Web服务器的详细分析: 1. Apache HTTP Server - 特点:Apache是功能最全面的Web服务器之一,支持模块化架构,拥…...
光耦知识分享:解读晶体管光耦主要性能指标
晶体管光耦是一种常用的光电耦合器,用于隔离和传输电信号,它包含有光电发射管和接收晶体管两个主要部分。解读晶体管光耦的主要指标有助于了解其性能和应用范围,主要指标包括: 最大工作电压(V_R_MAX)&…...
laravel public 目录获取
在Laravel框架中,public目录是用来存放公共资源的,如CSS、JS、图片等。你可以通过多种方式获取public目录的路径。 方法一:使用helper函数public_path() $path public_path(); 方法二:使用Request类 $path Request::root().…...
强化学习策略买卖股票的效果如何?
Github 项目: GitHub - daocodedao/stable-baselines-stock: 深度强化学习自动炒股 主体参考了 https://github.com/wangshub/RL-Stock,修改了一些 requirements 修改到新版本支持 macstable-baselines 改为 stable-baselines3 使用强化学习预测股价…...
Kotlin 基本介绍(一)
导读大纲 1.1.1 Kotlin 是安全的1.1.2 Kotlin 具有互操作性1.1.3 什么是 idiomatic Kotlin? 1.1.1 Kotlin 是安全的 一般来说,当我们说一种编程语言是安全的 我们指的是它的设计可以防止程序中出现某些类型的错误当然,这并不是绝对的;没有一种语言能防止所有可能出现…...
Cocos Creator发布Moloco平台试玩广告(PlayableAd)
官方文档 主要遇到了两点问题。 1.HTML文件内的body需要注入 <script>window.FBPlayableOnCTAClick () > {(typeof FbPlayableAd undefined) ? alert(FBPlayableAd.onCTAClick) : FbPlayableAd.onCTAClick()}</script> 2.跳转商店使用 window.parent.postM…...
七种修复错误:由于找不到msvcr110.dll 无法继续执行的方法
当你在运行某些程序时遇到“找不到msvcr110.dll”的错误提示,这通常意味着你的系统缺少了Microsoft Visual C 2012 Redistributable包中的一个重要文件。这个DLL文件是Microsoft Visual C Redistributable的一部分,用于支持许多使用Visual C编写的软件和…...
Python模拟鼠标轨迹[Python]
一.鼠标轨迹模拟简介 传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。 二.鼠标轨迹算法实…...
Ubuntu搭建java开发环境
一:Ubuntu安装 1、下载Ubuntu 24.04.1 LTS 官网下载地址:https://releases.ubuntu.com/24.04.1/ubuntu-24.04.1-desktop-amd64.iso 可以直接点击这里下载 2、使用VMware安装 新建虚拟机 之后一直下一步,到如下界面,选择 刚刚…...
新能源汽车知识点集萃
功能安全-->ISO26262/GB∕T 34590 2021 信息安全--->ISO21434 预期功能安全--->ISO21448 建模规范-->MAAB/JMAAB/MISAR C Codeing Standard; 开发流程--CMMI/IATF16949//ASPICE(Automotive SPICE)/产品规划/概念开发/设计开发/试制试验与…...
c++234继承
#include<iostream> using namespace std;//public 修饰的成员便俩个和方法都能使用 //protected:类的内部 在继承的子类中可使用 class Parents { public:int a;//名字 protected:int b;//密码 private:int c;//情人public:void printT(){cout << &quo…...
Axios 封装网络请求
1 简介 通过Axios的请求拦截器和响应拦截器实现登录拦截,参数封装。 注意:前提是你的vue已经安装了Axios。 附安装代码: npm install axios 2 封装代码 2.1 utils文件夹下创建 request.js // 网络请求方法 import axios from axios impor…...
LeetCode 面试经典150题 190.颠倒二进制位
复习知识:正数的原码、反码、补码相同,负数的反码在其原码的基础上, 符号位不变,其余各个位取反,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后1 (即在反码的基础上1)。 题目:颠倒给定的 32 位无符号…...
vulhub搭建漏洞环境docker-compose up -d命令执行报错以及解决方法汇总
在利用vulhub靶场搭建环境进行漏洞复现时,我们通常要使用这一步命令: docker-compose up -d 但是经常报错,今天我们来说几个常见的报错以及解决方法: 1.报错提示: ERROR: Couldnt connect to Docker daemon at httpdoc…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
