附录二-nmap基本用法

2024-06-08 14:28
文章标签 用法 基本 附录 nmap

本文主要是介绍附录二-nmap基本用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考 黑客工具—Nmap的使用_哔哩哔哩_bilibili

nmap是扫描IP和端口的,相当于攻击前的索敌步骤。不止网络安全方面会用到,平时运维的时候也会用到nmap

1  下载nmap

nmap官网 https://nmap.org/

点击下载,然后点你用的平台就行了

往下滚可以看到不同平台的安装方法

在kali中nmap是装好了的,执行map可以出现下面这些东西

2  扫描指定域名(IP)所有端口 nmap [域名或IP]

如果是域名会帮你把域名解析成IP,其中45.33.32.156就是接卸出来的IP

linux一般能扫到,windows开防火墙在默认情况下nmap扫不到

扫不到就是这样的

3  指定DNS服务器 --dns-servers

可以用--dns-servers参数自己指定dns服务器

4  查看扫描进度

扫描过程中每按一次回车都可以看到扫描的进度

5  越过防火墙扫描 -Pn

使用-Pn参数可以越过防火墙,目前(2024.5.4 windows10更新到最新版)还是可以用的

6  指定端口范围 -p

6.1  端口号范围

比如只想找200-500之间的端口,这样其他的信息就被过滤掉了

  • 上面也可以写成 nmap -Pn -p [200-500] 192.168.247.1

也可以指定探测某一个端口

或是某几个

6.2  端口协议与端口号范围

比如我现在想看100-200端口号中TCP协议的端口

如果把T换成U就代表UDP协议,我没有UDP协议端口我就不试了

也可以指定协议和端口

也可以扫描指定服务名的端口,比如我想找smtp协议的端口

如果只知道协议的一部分,可以用*替代

  • 只能扫描到STATE未open状态的端口

7  端口状态

探测到的端口一般有如下状态:

  • open 端口处于开放状态
  • closed 端口处于关闭状态
  • filterd 服务端把nmap请求的包过滤掉了,nmap无法确定有没有这个端口
  • UnFilterd 不知道服务端有没有把nmap请求的包过滤掉,并且响应信息有问题,nmap无法确定有没有这个端口
  • Opend/UnFilterd 开发或为过滤
  • Closed/UnFilterd 关闭或未过滤

8  帮助信息 nmap -h

9  识别目标机器上的服务指纹 -sV

服务指纹包括 服务端口、服务名、服务版本等

执行 nmap -sV [IP地址]

相比于下面的结果,多了一些信息,比如服务版本,服务平台(windows)

我们再做一个例子

10  侵略性探测

  • -A是启动操作系统检测、版本检测、脚本扫描和路由跟踪
  • -v是持续输出到终端
  • T4可以理解为加速,T后面的取值范围1到5。选4代表快的意思

上面提到的PS-12是我windows电脑网络中的名字,不是用户名

nmap -Pn -sC -sV -O -T4 [IP地址] 与上面命令效果相似

  • -sC使用默认脚本
  • -O启用操作系统检测

11  寻找局域网内所有存活主机 -sP

192.168.1.1/24是CIDR。CIDR(Classless inter-Domain Routing)是用来表示网络用的,比如192.168.1.1/24的意思是192.168.1.1-192.168.1.255之间所有的IP地址

根据上图的结果现实在247这个网段中有2和131这两个IP是存活的

如果你的实体机连接的wifi,你的虚拟机也想连接wifi,那就需要设置一下网络

选择桥接模式

点击确定后虚拟机会连不上网络,这个时候点 编辑->虚拟网络编辑器

然后就行了,网段换成了我真实网络的1点多

在相同的网络中,我们可以对该网络进行扫描从而查看现实存在的设备

  • 扫描的结果中没有承载当前kali虚拟机中的实体机,原因是上面的网络设置

也可以用-sn,扫描的结果一样

12  将扫描结果保存为xml文件 -oX

我们可以通过-oX将扫描的结果保存为xml文件

13  NSE

NSE(Nmap Script Engine)是Nmap的脚本引擎,作用是加强Nmap的功能。默认安装在Nmap安装路径下的script文件夹下。kali Linux的NSE存储在/usr/share/namp/script下

13.1  基本使用

用的时候加上 --script 参数就行了,比如我线下想用 http-title 这个脚本,获得http的title

这样就能获得到了

访问一下发现与获得到的一致

每一个脚本都有特殊的功能,我们也可以同时用多个脚本,比如

  • namp -sV --script "(http*) and not (http-slowlors and http-burte)"

上面这个命令的意思就是使用 除了http-slowlors与http-burte之外的所有名字为http开头的脚本

13.2  常用脚本

参考 Nmap脚本总结(看这一篇就够了)-CSDN博客

  • auth 绕开鉴权
  • broadcast 局域网内探查更多服务开启情况
  • brute 暴力破解
  • default 默认的脚本,我们如果不加--script参数用的就都是默认的脚本
  • discovery 对网络获取更多的信息
  • dos 高频访问攻击
  • exploit 利用已知漏洞入侵系统
  • external 利用第三方数据库或资源
  • fuzzer 探测潜在漏洞
  • intrusive 入侵性脚本
  • malware 探测目标机器是否感染病毒
  • safe 安全性脚本
  • version 版本扫描脚本
  • vuln 检查常见漏洞

详细的功能可以直接看官方文档 https://nmap.org/nsedoc/scripts/

13.3  其余参数

比如 nmap -sV --script exploit -d 3 --script-trace -Pn 192.168.1.6

  • -d代表debug,范围0-9,依次代表下面这些内容

  • --script-trace是显示脚本使用过程,就是截图中十六进制的部分

比如 namp -sV --script http-title --script-args http.useragent="Mozilla 999" https://scanme.nmap.org/

  • --script-args脚本中的参数。在上面的命令中http.useragent是参数名 "Mozilla 999"是参数值

13.4  更新NSE

sudo nmap --script-updatedb

14  使用特定网络 -e

网络名称可以通过ifconfig查看

比如我现在想扫描eth0中的所有设备,所有端口

15  对比扫描结果的工具ndiff

ndiff可以比较两个nmap xml文件的不同点

15.1  安装

在kali中使用ndiff需要先安装

如果出现了上面的问题就更新一下

然后再安装

15.2  使用

我现在有保存下来的test.xml和test1.xml

可以找到三个不同点

第一个是扫描时间不同

其余两个是设备不同,在test.xml中的anonymous与sujingde-ipad这两个设备在test1.xml中没有了

16  可视化nmap

zenmap是可视化版的map,用UI代替执行命令,相比于终端执行的nmap,zenmap没有功能上的增加

在kali中下载zenmap下载不了

更新之后也下载不了

这篇关于附录二-nmap基本用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta