nmap原理与使用

kali的命令行中可以直接使用 nmap 命令,打开一个「终端」,输入 nmap 后回车,可以看到 nmap 的版本,证明 nmap 可用。

一、端口扫描

扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口)

nmap 192.168.31.180

从上图可以看到:它用1.58秒扫描了1000个端口,其中991个端口关闭,结果中列出的9个端口就是开放的端口。

1. 指定端口

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

nmap 192.168.31.180 -p 80
nmap 192.168.31.180 -p 1-80
nmap 192.168.31.180 -p 80,3389,22,21
nmap 192.168.31.180 -p 1-65535
nmap 192.168.31.180 -p-    # -p- 等价于 -p 1-65535

https://zhuanlan.zhihu.com/p/585377081?utm_id=0

没写完

原理

关于主机扫描默认的-sP选项, Nmap官方指南是这么介绍的:

该选项告诉Nmap仅仅进行ping 扫描(主机发现),然后打印出对扫描做出响应的那些主机。没有进一步的测试(如端口扫描或者操作系统探测)。这比列表扫描更积极,常常用于和列表扫描相同的目的。它可以得到些许目标网络的信息而不被特别注意到。对于攻击者来说,了解多少主机正在运行比列表扫描提供的一列IP 和主机名往往更有价值。

-sP 选项在默认情况下, 发送一个ICMP 回声请求和一个TCP 报文到80端口。如果非特权用户执行,就发送一个SYN 报文(用connect()系统调用)到目标机的80端口。

笔者在实践中,发现指南中的描述和实际的抓包结果并不一致,下面举例说明。


 

先来说一个ping不通的主机,打开CMD,运行如下命令:

nmap -sP 1.2.3.4

使用wireshark抓包如下图所示,根据抓取到的流量,可以分析出实际上我们向目标主机发送了四种类型的数据包:

1、ICMP 回声请求

2、到目标443端口的TCP SYN报文

3、到目标80端口的TCP ACK报文

4、ICMP 时间戳请求

从抓包情况看,只有去主机1.2.3.4的IP包,没有从主机1.2.3.4传回的IP包,所以结论是没有扫描到活跃主机。


 

下面再看一个能ping通的例子,打开CMD,运行如下命令:

nmap -sP 1.1.1.1

使用wireshark抓包如下图所示,根据抓取到的流量,可以看到同样是向目标主机发送四种类型的数据包,不同的是这次目标主机1.1.1.1在TCP 80端口回送了RST包,在TCP 443端口回送了SYN,ACK包,这说明目标主机1.1.1.1在443端口处于开放状态,所以自然目标主机处于活跃状态。

总结一下,当我们使用Nmap进行网络主机扫描时,会发送四种类型的数据给目标主机,只要收到一个目标主机的回复包,即可证明目标主机处于活跃状态,这比官方指南上说明的只发送两种类型的数据包要复杂的多,并且80端口也不是发送SYN包,而是ACK包,依笔者揣测,这样改进应该是为了更好的应对防火墙的拦截规则。

TCP三次握手中SYN,ACK,seq ack的含义 - 程序员大本营

三挥手与四握手

 

三个渗透靶场看完

简历弄完

三个漏洞文章写完

专利写完盖章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/142294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

25 kafka消费者组重平衡

触达与通知 1.位置主题&写调整复习 (TODO) 2.重平衡是通过心跳线程的心跳请求来通知的,需要重平衡则请求响应REBALANCE_IN_PROGRESS。0.10.1.0版本后心跳线程和消息消费线程分离,避免了消息消费时间长影响心跳。heartbeat.interval.ms参数控制心跳请…

SQL使用

--天空会的像哭过,离开你以后 并没有更自由 SQL进行数据的删除 一、删除delete 语法 delete [from] 表名称 where 条件数据删除,不能删除某一列,因为删除是对记录而言 2.1 删除是一条一条删除,每次删除都会将操作写入日志文件 删…

2023.11.14联赛总结

T 1 T_1 T1​给出一个长度为 n n n的序列,你可以进行若干次操作,每次花费 c j c_j cj​元将 a i a_i ai​变为 ⌊ a i j ⌋ \lfloor \frac{a_i}{j} \rfloor ⌊jai​​⌋,你一共有 k k k元。问最终序列的中位数最小是多少。 其中 1 ≤ n , m …

个体诊所电子处方系统设计,诊所电子处方模板,药店电子处方系统,佳易王电子处方管理系统V16.0下载

个体诊所电子处方系统设计,诊所电子处方模板,药店电子处方系统,佳易王电子处方管理系统V16.0下载 软件支持配方模板,病人病历记录查询等,软件打印处方单所用的纸张为 A5纸。软件可以下载试用,点击最下方官网…

C++设计实现日志系统

转载:C设计实现日志系统 - 知乎 (zhihu.com) 日志系统几乎是每一个实际的软件项目从开发、测试到交付,再到后期的维护过程中极为重要的 查看软件代码运行流程、 还原错误现场、 记录运行错误位置及上下文等的重要依据。一个高性能的日志系统&#xff0c…

Windows上基于Tesseract OCR5.0官方语言库的LSTM字库训练

系列文章目录 Tesseract OCR引擎 文章目录 系列文章目录前言一、LSTM字库训练是什么?二、使用步骤1. 环境准备1.1下载Tesseract 程序并安装1.2下载Tesseract 训练字库1.3下载工具jTessBoxEditor 2. LSTM训练2.1 将要训练的图片(jpg/tif)合并成一个文件2.2 生成box文…

2、灰度图

上一篇文章中,我们解释了像素是计算机视觉任务中的原材料,很多图像处理任务以像素局部性为基础,在不同尺度下完成图像特征的提取,小则为图像细节,大则为图像轮廓。 现在继续看一种十分简洁但很高效的图像表示——灰度图,,灰度图是一种只包含亮度信息而不包含颜色信息的…

未来之路:大模型技术在自动驾驶的应用与影响

本文深入分析了大模型技术在自动驾驶领域的应用和影响,万字长文,慢慢观看~ 文中首先概述了大模型技术的发展历程,自动驾驶模型的迭代路径,以及大模型在自动驾驶行业中的作用。接着,详细介绍了大模型的基本定义、基础功…

js字符串处理

1.当前只能获取到年月,例如 :2022-10,需求是根据当前获取的年月给开始时间和结束时间赋值,是当前年月的第一天和最后一天,2022-10-1和2022-10-31,因为获取的年月是动态的,开始时间都是1号&#…

springcloud旅游网站源码

开发技术: jdk1.8,mysql5.7,idea,nodejs,vscode springcloud springboot mybatis vue 功能介绍: 用户端: 登录注册 首页显示搜索景区,轮播图,旅游攻略列表 点击攻…

dameng数据库数据id decimal类型,精度丢失

问题处理 这一次也是精度丢失,但是问题呢还是不一样,这一次所有的id都被加一了,只有id字段被加一,还有的查询查出来封装成对象之后对象的id字段被减一了,数据库id字段使用的decimal(20,6)&…

新版本Idea设置启动参数

1.进入配置页面 2.点击下图红框的部分,会看到有很多操作可选 3.选择添加VM参数即可 此时就会多出一个可以输入参数的框了,如下:

Python编程题集(第二部分循环语句)

目录 Demo27 打印数字I Demo28 打印数字II Demo29 打印数字III Demo30 打印菱形I Demo31 打印菱形II Demo32 打印菱形III Demo33 猜数字 Demo34 最大公约数I Demo35 判断素数 Demo36 最小公倍数 Demo37 整数的素因子 Demo38 完全数 Demo39 前50个素数 Demo40 计算…

Postman for Mac(HTTP请求发送调试工具)v10.18.10官方版

Postman for mac是一个提供在MAC设备上功能强大的开发,监控和测试API的绝佳工具。非常适合开发人员去使用。此版本通过Interceptor添加了对请求捕获的支持,修正了使用上下文菜单操作未复制响应正文的问题和预请求脚本的垂直滚动条与自动完成下拉列表重叠…

计算机网络课后作业2023秋

计算机网络第三版吴功宜版 课后作业 第一章作业三、计算与问答3.73.8 第二章作业三、计算与问答3.23.53.6 第三章作业三、计算与问答3.13.53.73.8 第四章作业三、计算与问答3.13.2 第五章作业三、计算与问答3.13.33.4VLAN交换机模式模式切换重置交换机VLAN配置命令其…

esp32-rust-no_std-examples-blinky

什么是裸机环境? 裸机环境是指没有可供使用的操作系统环境。当编译的 Rust 程序拥有 no_std 属性时,该程序无权访问上述 std 章节中提到的某些特定功能。尽管仍支持使用配网或引入复杂数据结构等功能,但实现方式将会更加复杂。 no_std…

前端注册登录

前端注册登录 设计 登录,注册,都写成组件 ⇢ \dashrightarrow ⇢ 在任意页面中,都能点击显示登录模态框写好的组件,应该放在那个组件中 ⇢ \dashrightarrow ⇢ 不是页面组件(小组件)击登录按钮,把Login.vue 通过定…

Flutter之Json序列化

前言 使用 json_annotation 框架实现json字符串序列化和反序列化 框架官方地址:json_serializable 一、引入依赖:在pubspec.yaml中添加 dependencies:json_annotation: ^4.8.1dev_dependencies:build_runner: ^2.3.3json_serializable: ^6.6.0 二、…

深入理解JVM虚拟机第二十四篇:详解JVM当中的动态链接和常量池的作用

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻J…

在虚拟环境下安装python包

PyCharm可以自己给项目创建虚拟环境,示例如下: 首先通过File—>Setting—>Project:【项目名称】—>Project Interpreter—>设置—>add—>Virtuallenv Environment配置虚拟环境即可 添加解释器: 当创建虚拟环…