nmap的使用

目录

nmap简介

主要作用

nmap原理

namp使用

options 

nmap列举远程机器开放端口

普通扫描

扫描范围端口

对几个端口探测

对所有端口进行探测

指定协议探测端口

扫描对应协议的所有端口

端口状态

nmap识别目标机器上服务的指纹

服务指纹

识别目标机器服务信息

nmap侵略性探测

探测目标机器操作系统、服务等

发现局域网中存活的主机

前言

nmap主机发现

对该网络中所有主机ping扫描

nmap结果输出

NSE脚本的使用

NSE介绍

使用脚本获取服务title

脚本总结

nmap使用多个分类脚本

分类脚本

NSE调试功能使用

NSE更新

使用特定网卡进行探测

前言

查看所有网卡

指定网卡进行探测

对比扫描结果ndiff

ndiff工具

前言

使用方法

nmap简介

Nmap是一款开源、免费的网络探测、安全审计工具。

主要作用

  • 探测一组主机是否在线
  • 扫描主机端口,嗅探所提供的网络服务
  • 推断主机所用的操作系统

nmap原理

理解:nmap安装在电脑之后,电脑就可以使用nmap发送数据包,nmap在探测远程机器时会发送大量的数据包,并且通过输入的命令进行判断,判断nmap输入的命令中是否包含域名,若包含域名,则需要利用DNS服务器进行域名解析,然后发送ICMP Echo Request来探测主机存活性,若判断该主机存活,就会发送对应的其他数据包到远程机器,远程机器就会根据接收到的数据包做出对应的响应发送到nmap,nmap就会根据返回的响应进行解析得到对应的机器信息

nmap官网:https://nmap.org/

namp使用

语法:nmap [options] 域名信息/IP地址

options 

  • --dns-servers dns地址:指定特定dns服务器解析域名
  • --script 脚本名称:使用nmap的脚本
  • -e 网卡名:指定网卡进行探测
  • -Pn:不触发防火墙安全机制的扫描,停止之前的ICMP请求
  • -p m-n:扫描m-n范围之间的所有端口(当然也可以仅指定一个端口扫描)
  • -p m,n:扫描m端口和n端口
  • -p T:m,Un指定tcp协议探测m号端口,udp协议探测n号端口
  • -p 协议名:扫描对应协议的所有端口
  • -p-:对该服务的所有端口进行探测
  • -sV:识别目标机器的服务信息
  • -A:使用侵略性的策略进行探测(操作系统识别、端口服务指纹识别)
  • -v:持续输出返回的解析(按回车来查看)
  • -Tn:n的范围为1-5,探测速度由慢到快
  • -sC:使用nmap脚本进行探测
  • -O:探测目标机器上的操作系统信息
  • -sP CIDR:进行批量扫描(使用此参数后面需要接的时CIDR,不需要接IP地址)
  • -sn CIDR:对该网络中所有主机进行ping扫描,验证存活性
  • -oX xxx.xml:nmap探测结果输出到xxx.xml文件中
  • -d debug:启动调试模式(debug范围0-9)

nmap技术查看:nmap -h

nmap列举远程机器开放端口

普通扫描

扫描scanme.nmap.org信息:nmap scanme.nmap.org

注意:nmap进行探测之前要把域名通过DNS服务器解析为IP地址,我们也可以使用指定的DNS服务器进行解析(使用--dns-servers参数指定)

指定dns扫描域名:nmap --dns-server 8.8.8.8 scanme.nmap.org

扫描范围端口

前言:对于默认的端口范围,并不能够满足日常工作的需要。可以使用-p m-n来指定m-n之间的所有端口。

扫描0-100之间的端口:nmap -p 0-100 scanme.nmap.org

对几个端口探测

扫描服务的80,135端口:nmap -p 80,135 scanme.nmap.org

对所有端口进行探测

扫描服务的所有端口:nmap -p- 192.168.1.4

指定协议探测端口

语法:nmap -p T:25,U53 scanme.nmap.org

解释:对于scanme.nmap.org服务,以tcp协议探测25号端口,udp协议探测53号端口(有对应协议的端口则显示,没有则不显示)

扫描对应协议的所有端口

扫描ssh协议端口:nmap -p ssh scanme.nmap.org

注意:协议名写可以用通配符(s*代表所有以s开头的协议端口都被扫描) 

 

端口状态

nmap识别目标机器上服务的指纹

服务指纹

  • 为了确保有一个成功的渗透测试或网络设备监控,必须要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口号,服务名和版本等
  • 通过分析目标往nmap发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统等
  • nmap通过向目标主机发送多个UDP和TCP数据包并分析其响应来进行操作系统指纹识别工作

识别目标机器服务信息

识别scanme.nmap.org服务信息:nmap -sV scanme.nmap.org

注意:-sV表示识别目标机器上的服务信息 

nmap侵略性探测

探测目标机器操作系统、服务等

语法1:nmap -A -v -T4 scanme.nmap.org

  • -A:使用侵略性的策略进行探测(操作系统识别、端口服务指纹识别)
  • -v:持续输出返回的解析(按回车来查看)
  • -Tn:n的范围为1-5,探测速度由慢到快

语法2:nmap -sC -sV -O scanme.nmap.org

  • -sC:使用nmap脚本进行探测
  • -sV:识别目标机器的服务信息
  • -O:探测目标机器上的操作系统信息

发现局域网中存活的主机

前言

  • 一个局域网中肯定连接着多台设备,可以使用ping命令来进行地址探测,但是若一个网络很大,这样的探测就很费劲
  • CIDR无类别域间路由,其可以快速表示一个网络(172.16.1.1/24表示在172.16.1.1-172.16.1.255之间所有的主机IP地址)

nmap主机发现

对该网络中所有主机ping扫描

语法1:nmap -sP CIDR

语法2:nmap -sn CIDR

注意:扫描过程中nmap使用了TCP SYN扫描、ICMP echo Request来探测主机存活 

案例:nmap -sP 192.168.1.1/24

nmap结果输出

语法:nmap -sn CIDR -oX test.xml

理解:对该网络中所有主机进行ping扫描,同时将结果输出到test.xml中

执行:nmap -sn 192.168.1.1/24 -oX test.xml

由此观之多出来个test.xml文件。

NSE脚本的使用

NSE介绍

  • NSE为nmap脚本引擎,内置了很多可以用来扫描的,特定任务的脚本。通过NSE可以不断拓展nmap的扫描策略,加强nmap的功能
  • Nmap中使用--script参数来指定调用的脚本,并且脚本存储在Nmap安装路径下的script文件夹中,对于kail linux存储在/usr/share/nmap/script/下

使用脚本获取服务title

语法:nmap --script http-title scanme.nmap.org

注意:以上通过nmap使用http-title脚本进行探测,还可以使用其他脚本进行探测。到目前为止可以用的有589个脚本,每个脚本都有其独特的功能。

脚本总结

  • http-title:获取服务的title
  • http-headers:获取服务的请求头

nmap使用多个分类脚本

前言:对于目标使用多个分类脚本进行探测,可以更快的找到目标的信息及弱点

语法:nmap -sV --script vuln scanme.nmap.org

分类脚本

  • vuln:漏洞分类脚本
  • --script="version,discovery":版本信息分类脚本

NSE调试功能使用

语法:nmap -sV --script vuln -d 3 192.168.1.4

注意:

  • -d debug表示调试模式启动,debug范围0-9
  • 这样可以更加细致的查看脚本的过程

NSE更新

语法:nmap --script-updatedb

作用:更新脚本引擎

使用特定网卡进行探测

前言

  • nmap是一款可扩展性强的工具,并且有些NSE脚本支持嗅探。但是这种功能需要网卡支持混杂模式才可以。或者当计算机上有两张网卡,并且两张网卡对应着不同网络
  • nmap中提供了切换特定网卡功能的参数-e

查看所有网卡

语法:nmap --iflist 

指定网卡进行探测

语法:nmap -e 网卡名 CIDR

解释:指定网卡可以对不同的网段进行探测,前提是电脑必须有多个网卡,设置多个网段

注意:若不指定网卡那么就会依次尝试向这些网卡发送数据包,若联通就会继续探测,若不连通就会换下一张网卡进行探测

对比扫描结果ndiff

前言:对比某个网络进行探测的时候,有可能之前探测过的结果,经过探测之后,需要对之前的结果与现在的结果进行对比,找到两次的不同点(目的:监视网络变化,以达到网络监控的目的)

ndiff工具

前言

  • 在nmap整个工程中,除了主要的nmap工具外,还包括很多其他的工具,接下来要使用nidiff工具
  • ndiff主要作用就是比较两个nmap的xml文件,比较他们的不同点

查看ndiff帮助:ndiff -h

使用方法

这里用windows扫描kail(192.168.1.5)

探测kail操作系统和服务:nmap -A -v -T4 192.168.1.5 -oX kail1.xml

kail启动一个服务,监听8000端口:nc -l -p 8000

探测kail操作系统和服务:nmap -A -v -T4 192.168.1.5 -oX kail2.xml

比较nmap两次扫描的结果:ndiff kail1.xml kail2.xml

注意:-代表kail1文件内容,+代表kail2文件中的内容

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

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

相关文章

el-tree组件的锚点链接

el-tree部分&#xff1a; <el-tree:default-expand-all"true":data"anchorList":props"defaultProps"node-click"handleNodeClick"/> 组件内部部分&#xff1a; <div class"header" :id"content obj.id&q…

界面控件Telerik UI for WPF——Windows 11主题精简模式提升应用体验

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序&#xff0c;同时还能快速构建企业级办公WPF应用程序。Telerik UI for WPF支持MVVM、触摸等&#xff0c;创建的应用程序可靠且结构良好&#xff0c;非常容易维护&#xff0c;其直观的API将无缝地集成Visua…

Qt Creator 创建 Qt 默认窗口程序

Qt 入门实战教程&#xff08;目录&#xff09; Windows Qt 5.12.10下载与安装 使用Qt Creator 本文介绍用Qt自带的集成开发工具Qt Creator创建Qt默认的窗口程序。 本文不需要你另外安装Visual Studio 2022这样的集成开发环境&#xff0c;也不需要你再在Visual Studio 2022中…

43、基于 springboot 自动配置的 spring mvc 错误处理,就是演示项目报错后,跳转到自定义的错误页面

Spring MVC 的错误处理&#xff1a;基于 SpringBoot 自动配置之后的 Spring MVC 错误处理。 就是访问方法时出错&#xff0c;然后弄个自定义的错误页面进行显示。 ★ 两种错误处理方式 方式一&#xff1a; 基于Spring Boot自动配置的错误处理方式&#xff0c;只要通过属性文件…

Redis-监听过期key-JAVA实现方案

一、创建监听配置类 RedisListenerConfig。 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.d…

2022年06月 C/C++(七级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;有多少种二叉树 输入n(1<n<13)&#xff0c;求n个结点的二叉树有多少种形态 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 整数n 输出 答案 样例输入 3 样例输出 5 这个问题可以使用…

IDEA复制一个工程为多个并启动,测试负载均衡

1 找到服务按钮 2 选择复制配置 3 更改新的名称与虚拟机参数 复制下面的代码在VM参数中 -Dserver.port8082 4 最后启动即可

Vue框架--Vue中el和data的两种写法

data与el的2种写法 1.el有2种写法 (1).new Vue时候配置el属性。 (2).先创建Vue实例&#xff0c;随后再通过vm.$mount(#root)指定el的值。 2.data有2种写法 (1).对象式 (2).函数式 如何选择&#xff1a;目前哪种写法都可以&#xff0c;以后学习到组件时&#xff…

解决 filezilla 连接服务器失败问题

问题描述&#xff1a; 开始一直用的 XFTP 后来&#xff0c;它变成收费软件了&#xff0c;所以使用filezilla 代替 XFTP 之前用的还好好的&#xff0c;今天突然就报错了&#xff1a;按要求输入相关字段&#xff0c;连接 连接失败&#xff01;&#xff01;&#xff01;o(╥﹏╥…

预推免,保研------长安大学保内,附加分面试准备【记录帖】

&#x1f680;长安大学——人工智能系——程惠泽 &#x1f68c;前六学期专业排名&#xff1a;7/82 &#x1f68c;信息门户GPA&#xff1a;3.94 &#x1f68c;平均成绩&#xff1a;89.83 &#x1f68c;加权成绩&#xff1a;89.15 / ☁️本人比较菜&#xff0c;只能保研本校&…

Aqs的CyclicBarrier。

今天我们来学习AQS家族的“外门弟子”&#xff1a;CyclicBarrier。 为什么说CyclicBarrier是AQS家族的“外门弟子”呢&#xff1f;那是因为CyclicBarrier自身和内部类Generation并没有继承AQS&#xff0c;但在源码的实现中却深度依赖AQS家族的成员ReentrantLock。就像修仙小说…

C++实现蜂群涌现效果(flocking)

Flocking算法0704_元宇宙中的程序员的博客-CSDN博客 每个个体的位置&#xff0c;通过计算与周围个体的速度、角度、位置&#xff0c;去更新位置。

【Seata】00 - Seata Server 部署(Windows、Docker 基于 Jpom)

文章目录 前言参考目录版本说明Windows 部署 seata-server1&#xff1a;下载压缩包2&#xff1a;文件存储模式3&#xff1a;db 存储模式3.1&#xff1a;建表3.2&#xff1a;修改配置文件3.3&#xff1a;启动脚本4&#xff1a;源码部署 Docker 部署 seata-server &#xff08;基…

Java学习之序列化

1、引言 《手册》第 9 页 “OOP 规约” 部分有一段关于序列化的约定 1&#xff1a; 【强制】当序列化类新增属性时&#xff0c;请不要修改 serialVersionUID 字段&#xff0c;以避免反序列失败&#xff1b;如果完全不兼容升级&#xff0c;避免反序列化混乱&#xff0c;那么请…

引用(个人学习笔记黑马学习)

1、引用的基本语法 #include <iostream> using namespace std;int main() {int a 10;//创建引用int& b a;cout << "a " << a << endl;cout << "b " << b << endl;b 100;cout << "a "…

JVM 是怎么设计来保证new对象的线程安全

1、采用 CAS 分配重试的方式来保证更新操作的原子性 2、每个线程在 Java 堆中预先分配一小块内存&#xff0c;也就是本地线程分配缓冲&#xff08;Thread Local AllocationBuffer&#xff0c;TLAB&#xff09;&#xff0c;要分配内存的线程&#xff0c;先在本地缓冲区中分配&a…

LeetCode494. 目标和

494. 目标和 文章目录 [494. 目标和](https://leetcode.cn/problems/target-sum/)一、题目二、题解方法一&#xff1a;目标和路径计数算法方法二&#xff1a;01背包方法三&#xff1a;01背包一维数组 一、题目 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个…

外部中断(EXTI) - 按键控制LED

一、外部中断/事件控制器(EXTI)结构图 1、结构图分析 外部中断主要由外部中断/事件控制器(External interrupt/event controller, EXTI)控制&#xff0c;它管理了外部中断或者事件的使能与否、触发方式等功能。 &#xff08; 外部中断/事件控制器(EXTI)结构图 &#xff09; …

【5】openGL使用宏和函数进行错误检测

当我们编写openGL程序&#xff0c;没有报编译链接错误&#xff0c;但是运行结果是黑屏&#xff0c;这不是我们想要的。 openGL提供了glGetError 来检查错误&#xff0c;我们可以通过在运行时进行打断点查看glGetError返回值&#xff0c;得到的是一个十进制数&#xff0c;将其转…

Nacos服务注册和服务配置

Nacos 是什么 Nacos (Dynamic Naming and Configuration Service)&#xff0c;其命名由三部分组成&#xff1a; Na (naming/nameServer)&#xff0c;即服务注册中心。 co (configuration)&#xff0c;即配置中心。 s (service)&#xff0c;即服务&#xff0c;表示 Nacos 实现的…