当前位置: 首页 > news >正文

网络探测工具Nmap介绍

1. Nmap简介

  • Nmap是一款用于网络发现和安全审计的网络安全工具。可用于列举网络主机清单、管理服务升级调度、监控主机、监控主机服务运行状况、检测目标主机是否在线和端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等。

2. 命令大纲

在这里插入图片描述

3. 命令详细介绍

3.1 端口扫描(Port Scanning)

  • 检测目标主机上各个端口的状态(开放、关闭、过滤等)。支持多种扫描技术,如TCP SYN扫描、TCP Connect扫描、ACK扫描、UDP扫描、FIN扫描、IDLE扫描等。

3.1.1 TCP SYN扫描(半开放扫描)

  • 命令:nmap -sS 192.168.206.140 或者 nmap 192.168.206.140
  • 这种扫描方式通常用于不建立完整连接的情况下探测目标主机的TCP端口状态,避免了完整的三次握手过程,因此更隐蔽。默认就是TCP SYN扫描。
    在这里插入图片描述
  • 我这里扫描虚拟机可用端口,可以看到扫描到了三个开放端口。
    在这里插入图片描述
  • 以80端口为例,通过抓包可以看到,TCP SYN扫描,只要对端回复了ACK就认为端口是开放状态,不用建立三次握手。

3.1.2 TCP Connect扫描

  • 命令:nmap -sT 192.168.206.140
  • TCP Connect扫描会完成三次握手以确定端口是否开放。虽然这种方法相对慢且可能更容易被检测到,但其结果最可靠。
    在这里插入图片描述
  • 同样扫描到了三个开放端口
    在这里插入图片描述
  • 抓包可以看到,TCP Connect扫描必须完成三次握手才认为端口是开放状态。

3.1.3 UDP扫描

  • 命令:nmap -sU 192.168.206.140
  • 扫描开放的UDP端口
    在这里插入图片描述
    在这里插入图片描述
  • 抓包可以看到UDP扫描时的数据包。

3.1.4 端口服务及版本扫描

  • 命令:namp -sV 192.168.206.140
  • 可以扫描到端口对应的服务及版本信息
    在这里插入图片描述
  • 可以看到,扫描的22端口是OpenSSH服务,80和8011是Nginx服务。

3.1.5 详细信息扫描

  • 命令:namp -vv 192.168.206.140
  • 提供更详尽的扫描过程信息和结果反馈。这包括了更多的调试信息、每个步骤的详细说明以及可能影响扫描行为的内部决策等。
    在这里插入图片描述
  • 可以比对下,详细扫描的结果

3.1.6 所有信息扫描

  • 命令:nmap -A 192.168.206.140
  • 这样扫描的更加详细,并且还会扫描出路由信息
    在这里插入图片描述
  • 我扫描的虚拟机地址,因此这里是直连。
    在这里插入图片描述
  • 扫描百度可以看到,经过了好几个路由。

3.1.7 随机扫描和延时扫描

  • 命令:nmap --randomize-hosts --scan-delay 5 192.168.206.140
  • 有时候扫描太快,可能会触发主机的防火墙,因此可以延时扫描,5代表延时5秒

3.1.8 指定端口扫描

  • 扫描指定端口:nmap 192.168.206.140 -p 80 或者 nmap 192.168.206.140 -p 80,8011
  • 扫描指定范围的端口:nmap 192.168.206.140 -p 1-1024
  • 扫描全部端口(1-65535端口):nmap 192.168.206.140 -p-

3.1.9 扩展

  • 如果我们是维护公司服务器的,有时候扫描出来公司服务器的端口开放着,但不知道这个端口是干什么的,是谁启动的。可以登录服务器,使用 lsof -i:port 查看端口
    在这里插入图片描述
  • 比如这里扫描到8011端口不知道是什么,就可以登录对应服务器查看。会有详细描述,包括所属程序,启动用户和端口状态等信息。
    在这里插入图片描述
  • 如果从网页去访问8011端口,也能从服务看到对方的信息。

3.2 主机探测(Host Discovery)

  • 也称为ping扫描或存活探测,用于检测网络上的活动主机。它能通过多种方式(如ICMP、TCP、UDP等)来确定哪些主机在线。

3.2.1 扫描单个主机

  • 命令:nmap -sP 192.168.1.2
    在这里插入图片描述
  • 如果主机在线,会显示Host is up
    在这里插入图片描述
  • 扫描一个不存在的主机,会报Host seems down,主机宕机。

3.2.2 扫描一个IP地址范围

  • 命令:nmap -sP 192.168.1.1-255或者nmap -sP 192.168.1.1/24
    在这里插入图片描述
  • 在1-255网段,扫描到了三个在线的主机。

3.3 操作系统类型检测

  • 命令:nmap -O 192.168.206.140
  • 用于探测目标主机运行的操作系统类型和版本。
    在这里插入图片描述

3.4 Nmap防火墙

  • nmap扫描出来的端口状态
    • open: 端口开放
    • filtered: 端口被防火墙或安全软件阻止了,也可能是网络堵塞
    • closed: 端口关闭
  • 如果扫描时发现有的端口被防火墙阻止了,可通过以下方法绕过防火墙
    • -PS: 实施TCP SYN ping扫描绕过防火墙
    • -PA: 只扫描ACK包,可绕过防火墙
    • -PU: 只对目标进行udp ping扫描。这种类型的扫描会发送UDP包来获取一个响应,可绕过防火墙。
    • -PP: 进行一个ICMP时间戳ping扫描,可绕过防火墙
    • -PE: 进行一个IEMP在指定的系统上输出ping,可绕过防火墙
    • -Pn: 不采用ping方式扫描,可绕过防火墙
    • -sA: 用于发现防火墙规则

3.5 结果导出

  • 可以把扫描结果导出到文件中
  • 命令:nmap 192.168.206.140 -oN res.txt
  • 命令:nmap 192.168.206.140 -oX res.xml

相关文章:

网络探测工具Nmap介绍

1. Nmap简介 Nmap是一款用于网络发现和安全审计的网络安全工具。可用于列举网络主机清单、管理服务升级调度、监控主机、监控主机服务运行状况、检测目标主机是否在线和端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等。 2. 命令大纲 3. 命令详细介绍…...

20240319-2-机器学习基础面试题

⽼板给了你⼀个关于癌症检测的数据集,你构建了⼆分类器然后计算了准确率为 98%, 你是否对这个模型很满意?为什么?如果还不算理想,接下来该怎么做? 首先模型主要是找出患有癌症的患者,模型关注的…...

0202矩阵的运算-矩阵及其运算-线性代数

文章目录 一、矩阵的加法二、数与矩阵相乘三、矩阵与矩阵相乘四、矩阵的转置五、方阵的行列式结语 一、矩阵的加法 定义2 设有两个 m n m\times n mn橘子 A ( a i j ) 和 B ( b i j ) A(a_{ij})和B(b_{ij}) A(aij​)和B(bij​),那么矩阵A与B的和记为AB,规定为 A B ( a 11…...

python中的__dict__

类的__dict__返回的是:类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类的__dict__里的, 而实例化对象的:__dict__中存储了一些类中__init__的一些属性值。 import的py文件 __dict__返回的是:__init__的…...

数学分析复习:无穷乘积

文章目录 无穷乘积定义:无穷乘积的收敛性命题:无穷乘积的Cauchy收敛准则正项级数和无穷乘积的联系 本篇文章适合个人复习翻阅,不建议新手入门使用 无穷乘积 设复数列 { a n } n ≥ 1 \{a_n\}_{n\geq 1} {an​}n≥1​,设对任意 …...

02 React 组件使用

import React, { useState } from react;// 定义一个简单的函数式组件 function Counter() {// 使用 useState hook 来创建一个状态变量 count,并提供修改该状态的函数 setCountconst [count, setCount] useState(0);// 在点击按钮时增加计数器的值const increment…...

你就是上帝

你就是上帝:Jv程序员,请你站在上帝或神的角度 1.万物皆有裂缝 按照西方文化(宗教神话,古希腊、古罗马等),上帝创建了人; 创建人之前,还创建了人的居所或地盘/栖息地(伊…...

Spring Cloud: openFegin使用

文章目录 一、OpenFeign简介二、Springboot集成OpenFeign1、引入依赖2、EnableFeignClients注解(1)应用(2)属性解析 3、 FeignClient(1)应用(2)属性解析(3)向…...

流畅的 Python 第二版(GPT 重译)(二)

第三章:字典和集合 Python 基本上是用大量语法糖包装的字典。 Lalo Martins,早期数字游牧民和 Pythonista 我们在所有的 Python 程序中都使用字典。即使不是直接在我们的代码中,也是间接的,因为dict类型是 Python 实现的基本部分。…...

Flutter 旋转动画 线性变化的旋转动画

直接上代码 图片自己添加一张就好了 import dart:math;import package:flutter/material.dart;import package:flutter/animation.dart;void main() > runApp(MyApp()); //旋转动画 class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {re…...

【Web应用技术基础】HTML(5)——案例1:展示简历信息

样式&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>展示简历信息…...

ethers.js:wallet(创建钱包,导入助记词,导入私钥)

Wallet Wallet类继承了Signer,可以使用私钥作为外部拥有帐户(EOA)的标准对交易和消息进行签名。 npm install ethers@5.4.0// 引入 import {ethers } from ethers创建新钱包 this.provider = new ethers.providers.Web3Provider(window...

面试笔记——Java集合篇

Java集合框架体系 重点&#xff1a;单列集合——ArrayList、LinkedList&#xff1b;双列集合——HashMap、ConcurrentHashMap。 List相关 数组&#xff08;Array&#xff09; 是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 数组获取其他元素&#xff1a; 为什…...

在 IntelliJ IDEA 中使用 Terminal 执行 git log 命令后的退出方法

前言 IntelliJ IDEA 是一款广受欢迎的集成开发环境&#xff0c;它内置了强大的终端工具&#xff0c;使得开发者无需离开IDE就能便捷地执行各种命令行操作&#xff0c;包括使用 Git 进行版本控制。在 IDEA 的 Terminal 中执行 git log 命令时&#xff0c;由于该命令会显示项目的…...

架构整洁之道-读书总结

1 概述 1.1 关于本书 《架构整洁之道》&#xff08;Clean Architecture: A Craftsman’s Guide to Software Structure and Design&#xff09;是由著名的软件工程师Robert C. Martin&#xff08;又称为Uncle Bob&#xff09;所著。这本书提供了软件开发和架构设计的指导原则…...

蓝桥杯学习笔记(贪心)

在很久很久以前&#xff0c;有几个部落居住在平原上&#xff0c;依次编号为1到n。第之个部落的人数为 t 有一年发生了灾荒&#xff0c;年轻的政治家小蓝想要说服所有部落一同应对灾荒&#xff0c;他能通过谈判来说服部落进行联台。 每次谈判&#xff0c;小蓝只能邀请两个部落参…...

【无标题】如何使用 MuLogin 设置代理

如何使用 MuLogin 设置代理 使用 MuLogin 浏览器设置我们的代理&#xff0c;轻松管理多个社交媒体或电子商务帐户。 什么是MuLogin&#xff1f; MuLogin 是一款虚拟反检测浏览器&#xff0c;使用户能够管理多个电子商务、社交媒体和广告帐户&#xff0c;而无需验证码或 IP 禁…...

芒果YOLOv8改进135:主干篇GCNet,统一为全局上下文建模global context结构,即插即用,助力小目标检测,轻量化的同时精度性能涨点

该专栏完整目录链接: 芒果YOLOv8深度改进教程 芒果专栏 基于 GCNet 的改进结构,改进源码教程 | 详情如下🥇 💡本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 即插即用 结构。博客 包括改进所需的 核心结构代码 文件 论文:https://arxiv.org/a…...

全面:vue.config.js 的完整配置

vue.config.js是Vue项目的配置文件&#xff0c;用于配置项目的构建、打包和开发环境等。 在Vue CLI 3.0之后&#xff0c;项目的配置文件从原来的build和config目录下的多个配置文件&#xff0c;合并成了一个vue.config.js文件。这个文件可以放在项目的根目录下&#xff0c;用于…...

海量数据处理项目-账号微服务注册Nacos+配置文件增加

海量数据处理项目-账号微服务注册Nacos配置文件增加 导入生成好的代码 model (为啥不放common项目&#xff0c;如果是确定每个服务都用到的依赖或者类才放到common项目) mapper 类接口拷贝 resource/mapper文件夹 xml脚本拷贝 controller service 不拷贝 Mybatis plus配置控制…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…...