[工具使用]之NMAP

2023-10-28

[工具使用]NMAP

在这里插入图片描述

下载:
kail:apt-get install nmap
windows:下载官网
在这里插入图片描述

Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。

前提知识:
TCP/UDP的区别
Nmap四大功能:
1、主机的发现(Host Discovery)
2、端口开放/关闭扫描(Port Scanning)
3、服务版本侦测(Version Detection)
4、OS操作系统侦测(Operating Systemax Detection)

参数整理如下:

nmap –iflist : 查看本地主机的接口信息和路由信息
-A :选项用于使用进攻性方式扫描
-T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T4
-oX test.xml: 将扫描结果生成 test.xml 文件,如果中断,则结果打不开
-oA test.xml:  将扫描结果生成 test.xml 文件,中断后,结果也可保存
-oG test.txt:  将扫描结果生成 test.txt 文件
-sn : 只进行主机发现,不进行端口扫描
-O : 指定Nmap进行系统版本扫描
-sV: 指定让Nmap进行服务版本扫描
-p <port ranges>: 扫描指定的端口
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况
-script <script name> : 指定扫描脚本
-Pn : 不进行ping扫描
-sP :  用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping
-PI :  设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。
-iL 1.txt : 批量扫描1.txt中的目标地址
 
-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况
-sO: 使用IP protocol 扫描确定目标机支持的协议类型
-PO : 使用IP协议包探测对方主机是否开启 
-PE/PP/PM : 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机
-PS/PA/PU/PY : 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态
-e eth0:指定使用eth0网卡进行探测
-f : --mtu <val>: 指定使用分片、指定数据包的 MTU.
-b <FTP relay host>: 使用FTP bounce scan扫描方式
-g: 指定发送的端口号
-r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)
-v 表示显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态
-n : 表示不进行DNS解析;
-D  <decoy1,decoy2[,ME],...>: 用一组 IP 地址掩盖真实地址,其中 ME 填入自己的 IP 地址
-R :表示总是进行DNS解析。 
-F : 快速模式,仅扫描TOP 100的端口 
-S <IP_Address>: 伪装成其他 IP 地址
--ttl <val>: 设置 time-to-live 时间
--badsum: 使用错误的 checksum 来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或 IDS/IPS)
--dns-servers  : 指定DNS服务器
--system-dns : 指定使用系统的DNS服务器   
--traceroute : 追踪每个路由节点 
--scanflags <flags>: 定制TCP包的flags
--top-ports <number> :扫描开放概率最高的number个端口
--port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数
--version-trace: 显示出详细的版本侦测过程信息
--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)
--osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统
--data-length <num>: 填充随机数据让数据包长度达到 Num
--ip-options <options>: 使用指定的 IP 选项来发送数据包
--spoof-mac <mac address/prefix/vendor name> : 伪装 MAC 地址
--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
--version-light: 指定使用轻量侦测方式 (intensity 2)
--version-all: 尝试使用所有的probes进行侦测 (intensity 9)
--version-trace: 显示出详细的版本侦测过程信息
nmap 192.168.1.0/24 -exclude 192.168.1.10  #扫描除192.168.1.0外的该网段的其他地址
nmap 192.168.1.0/24 -excludefile f:/1.txt  #扫描除给定文件中的地址以外的其他地址
nmap -sF -T4 192.168.1.0 #探测防火墙状态

一、主机发现:

原理:和ping命令类似:发送探测包到目标主机,如果收到回复,说明目标主机是开启的。nmap会依次发送4种不同类型的数据包来探测目标主机是否在线。只要收到其中一个包的回复,那就证明目标机的开启,之所以发送四个不同类型的数据包是因为避免因防火墙或丢包造成的判断错误。通常主机发现并不会单独使用,而是作为端口扫描、版本侦测、OS侦测先行步骤。除非是专门用来确定大型局域网内活动主机的数量。

1、探测公网IP

nmap -sn 公网IP

在这里插入图片描述

2、探测内网IP

nmap -sn 内网IP

原理:发送arp请求包探测目标IP是否在线,如果有arp回复包,说明 在线。如果在线还可以得到MAC地址。

二、端口扫描(核心功能)

用于确定目标主机的TCP/UDP端口的开放情况。
端口状态如下:

open :端口开放
closed :端口关闭
filtered :端口被防火墙IDS/IPS屏蔽,无法确定其状态
unfiltered: 端口没有被屏蔽,但是否开放需要进一步确定
open|filtered :端口是开放的或被屏蔽,Nmap无法识别
closed|filtered :端口是关闭的或被屏蔽,Nmap无法识别

TCP
1、SYN(-sS)
半开放扫描,不建立完整的TCP链接,相对隐蔽,效率高。
在这里插入图片描述
2、Connent(-sT)
速度慢,会在目标主机留下痕迹,当SYN无法使用时使用。
3、ACK(-sA)
用于明确防火墙是否屏蔽某个端口,可以辅助SYN方式来判断目标主机防火墙的状况。
4、FIN/Xmas/NULL(-sN/sF/sX)
三种秘密扫描,相对隐蔽FIN向目标段扩发送F/X/N包,Xmas发送flags为1的TCP包,Null发送0的TCP包

UDP(-sU)
反向排除法,只会收到端口关闭的返回包,如果没有收到,端口就是开放或者屏蔽。

扫描方式:

-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
 
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
 
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
 
--scanflags <flags>: 定制TCP包的flags。
 
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
 
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
 
-sO: 使用IP protocol 扫描确定目标机支持的协议类型。
 
-b <FTP relay host>: 使用FTP bounce scan扫描方式

端口参数/扫描顺序

-p <port ranges>: 扫描指定的端口
 
实例: -p 22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)
 
-F: Fast mode – 快速模式,仅扫描TOP 100的端口
 
-r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。
 
--top-ports <number>:扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)
 
--port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件

在这里插入图片描述

简单扫描

nmap IP   //用SYN方式扫描并列出端口和服务

在这里插入图片描述

全局扫描

nmap -A IP  //和简单扫描一致,并列出对应版本号,产生大量的数据交流。

在这里插入图片描述

eg:

nmap -T4 -A -v xx.xx.xx.xx

-A 用于使用进攻性方式扫描
-T4 0-5,6个级别,级别越高,扫描速度越快,越容易被防火墙和IDA屏蔽掉, 网好久用T4
-v 显示冗余信息。显示扫描过程细节
在这里插入图片描述

指定端口扫描

nmap -p 80-445 xx.xx.xx.xx

扫描目标主机80-445端口的开放情况
在这里插入图片描述

三、版本侦测

-sV: 指定让Nmap进行版本侦测
 
--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
 
--version-light: 指定使用轻量侦测方式 (intensity 2)
 
--version-all: 尝试使用所有的probes进行侦测 (intensity 9)
 
--version-trace: 显示出详细的版本侦测过程信息

在这里插入图片描述

四、OS侦测

-O: 指定Nmap进行OS侦测。
 
--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。
 
--osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统
nmap -O ip

在这里插入图片描述

目前我使用nmap主要是用来查看端口的开放问题,nmap -sV -T4 -A IP,一些更高级的用法还没有进行学习。

初学者,持续更新~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[工具使用]之NMAP 的相关文章

  • 警惕免杀版Gh0st木马!

    https github com SecurityNo1 Gh0st2023 经过调查发现 这款开源的高度免杀版Gh0st木马目前正在大范围传播 据称可免杀多种主流杀软 开发者不仅制作了新颖的下载页面 还设法增加了搜索引擎的收录权重 吸引了
  • SVN 检查修改或者提交代码时候一直显示"please wait"的解决办法(汉化版本显示"请稍候")

    在提交使用vue写的前端代码时候一直显示 请稍候 检查修改时候也是这样显示 原因是 下载代码后 npm install 安装了依赖 可以在SVN中取消对相关依赖的控制 操作方法
  • 十大应用安全威胁

    常见应用安全威胁 OWASP TOP 10 2013 注入 失效的身份认证和会话管理 跨站脚本攻击 XSS 不安全的直接对象引用 安全配置错误 敏感信息泄露 功能级访问控制缺失 跨站请求伪造 CSRF 使用含有已知漏洞的组件 未验证的重定向
  • 记录渗透靶场实战【网络安全】

    第一次写靶场实战的文章 有不足之处还请多多指教 本次实战的靶场是红日安全vulnstack系列的第二个靶场 靶场地址 http vulnstack qiyuanxuetang net vuln detail 3 环境搭建 网络环境 网卡配置
  • Web的基本漏洞--任意文件读取与下载漏洞

    目录 一 任意文件读取漏洞介绍 1 任意文件读取漏洞原理 2 任意文件读取漏洞产生的原因 3 任意文件读取漏洞探测与危害 二 任意文件下载漏洞介绍 1 任意文件下载漏洞原理 2 漏洞产生原因 3 文件下载的两种方式 三 常见的敏感文件 Wi
  • 网络空间安全导论

    感谢戴银涛老师的指导 笔记时间有点儿久了 整理的时候一些图丢了 不过问题不大 网络空间安全导论 目录 1 信息安全概述 从网络信息系统的发展概述 从系统分析方法看信息与信息安全的关系 从信息安全技术史角度理解网络安全相关概念 网络信息系统安
  • 文件上传漏洞upload-libs pass13

    文件上传漏洞upload libs pass13 查看源代码 发现是POST 00截断 Burp抓包 Ctrl R 如图修改上传路径 在上传路径中将 的hex改为00 即 Go 成功 发现文件路径 测试一下 成功
  • vscode中,CMakelists.txt不在根目录下,cmake tools如何写配置文件(指定文件夹cmake)

    当在vs code使用cmake tools搭建cmake环境时 有时CMakeLists txt文件不在根目录下面 而在某个子文件夹里 可以通过修改 vscode下的settings json文件夹 指定配置文件夹 cmake sourc
  • gitee删除远程仓库

    1 登录自己的gitee 2 点击仓库进行选择要删除的仓库 4 进入要删除的仓库 5 在导航栏中点击管理 强调在导航中就有了 6 在左侧的仓库设置中 再点击删除仓库 右侧删除仓库的内容浮现 7 点击删除仓库 点击确认删除 要记得输入gite
  • 全网最详细网络安全学习路线!手都给我码酸了!

    零基础小白 学完掌握可就业 入门到入土的网安学习路线 在各大平台搜的网安学习路线都太粗略了 看不下去了 我把自己报班的系统学习路线 整理拿出来跟大家分享了 本文为纯干货纯文字内容 需要详细学习路线图以及配套资料的同学可留言或者后台踢我免费分
  • ubuntu18.04的Android环境配置

    文章目录 1 安装Java jdk 2 安装Android studio 3 安装android sdk 4 安装 ndk 5 添加环境变量 1 安装Java jdk sudo apt get install openjdk 8 jre o
  • git pull 出错 remote: The project you were looking for could not be found.

    git pull 出错 git pull remote The project you were looking for could not be found fatal repository http 192 168 1 xx xx00
  • [VS Code]跟我一起在Visual Studio Code 添加自定义snippet(代码段),附详细配置

    Add code snippets for CLANG in VS Code 日志 2021 12 16 VSCode 自 v1 40 起 引入新的变量 WORKSPACE FOLDER RANDOM 和 RANDOM HEX 自 v1 4
  • svn的使用手册

    svn的使用手册 svn的使用手册 svn介绍 安装svn 安装VisualSVN server 安装TortoiseSVN 安装EclipseSVN插件 使用SVN Eclipse下使用SVN 合并冲突 分支 svn的使用手册 svn介绍
  • 密码学概述

    一 密码学的起源与发展 密码学英文名称为Cryptography 密码学最为一门学科 是最近几十年开始迅速被人们重视和发展起来的 密码学往往与信息安全四个字精密的联系着 最早的密码学的 始祖 可以说是早在公元前几百年就已经出现了 当然 当时
  • centos7 linux定时任务详解

    前言 工作中需要开启一个定时任务 每天晚上2点进行爬虫代码的运行 这不得不去学习一下linux 下的定时任务crontab crontab yum install crontabs 说明 sbin service crond start 启
  • 反序列化漏洞原理详解

    Apache shiro简介 Apache Shiro是一个强大且易用的Java安全框架 执行身份验证 授权 密码和会话管理 使用Shiro的易于理解的API 您可以快速 轻松地获得任何应用程序 从最小的移动应用程序到最大的网络和企业应用程
  • 【工具使用】STM32CubeMX-基础定时器配置

    一 概述 无论是新手还是大佬 基于STM32单片机的开发 使用STM32CubeMX都是可以极大提升开发效率的 并且其界面化的开发 也大大降低了新手对STM32单片机的开发门槛 本文主要讲述STM32芯片的定时器的配置及其相关知识 二 软件
  • ctfshow web7

    文章目录 题目分析 解题过程 题目分析 打开题目后 有三个文章 随便点一个之后发现网址上有个后缀 id 2 应该是get传参的注入了 在后缀上加 id 1 1 显示全部文章 可能是整形注入 还是盲注 他这个过滤了空格 用 代替 详见web6
  • OneNote笔记使用记录

    1 快捷键 2 快速设置行距 Ctrl 1 设置一倍行距 Ctrl 2 两倍行距 Ctrl 5 1 5 倍行距 3 切换样式标题 Ctrl Alt 1 标题 1 Ctrl Alt 2 标题 2 Ctrl Alt 3 标题 3 Ctrl Sh

随机推荐

  • [转]Mapx在C#中的应用

    在这段代码中 我们应用MapX控件结合老美地图做了最基本的 地图浏览功能 放大 缩小 拖动 全图 测量距离 测量面积 杨雨田 YangYutian Hotmail Com using System using System Drawing
  • 如何使用git命令添加文件和提交文件

    转载 https www cnblogs com olive27 p 6047646 html 1 进入指定文件夹内 启动 git bash here 2 初始化文件夹 git init 3 开始添加文件 所有文件添加方法 git add
  • 带有v-model的input 保证内容是非负整数,键盘输入适用

    带有v model的input 保证内容是非负整数 键盘输入适用 输入小数时自动四舍五入成整数 输入负数时自动变0 遇到的坑 不太会vue 一直按照普通input搞得 给input的value赋值 以为就完了 结果输入小数后 确实立刻变成了
  • Scala中的 方法map和flatMap

    map操作 map操作是针对集合的典型变换操作 它将某个函数应用到集合中的每个元素 并产生一个结果集合 比如 给定一个字符串列表 我们可以通过map操作对列表的中每个字符串进行变换 让每个字符串都变成大写字母 这样变换后就可以得到一个新的集
  • 高德地图的简单使用

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 如何在Vue中引入基础高德地图 1 注册并登录高德地图开放平台 2 安装高德地图加载器 二 封装一个自定义地图组件 并初始化 三 添加放大缩小地图 转盘 四 点
  • 学习君github

    一 冰蝎 https github com rebeyond Behinder 源代码审计漏洞 白盒测试的各种漏洞风险描述或具体修复方案 https github com wooyunwang Fortify Golang 100天从新手到
  • Web安全总结

    目录 网站架构 一般web服务器结构 相比于传统的网络攻击 基于web的攻击有什么不同 HTTP协议 HTTP响应拆分攻击 HTTPS 针对HTTPS协议的攻击 那么如何保证证书的唯一性 HTTP会话 Cookie和Session的关系 H
  • DCIC共享单车数据可视化教程!

    今天选取的地图是前几天利用数字中国创新大赛提供的共享单车数据做的一个可视化效果 很多人询问制作方法 今天给大家介绍下 自古有云 巧妇难为无米之炊 要做这种数据可视化 数据是关键 数据去哪里找呢 可以在DCIC官网下载 data xm gov
  • 如何统计字符出现频率

    可以使用 reduce 方法来统计字符出现的频率 下面是一个示例代码 const str Hello world const frequency str split reduce acc char gt if acc char acc ch
  • YAML文件(.yml)中的键(key)通过变量引用来设置

    转自 https www cnblogs com haycheng p 13299183 html 通过变量引用设置配置量的 值 value 在YAML文件中 一个配置量的值可以通过引用另一个变量来设置 例如 default db port
  • 在简历上写了“精通”后,我差点被面试官问到窒息....

    前言 如果有真才实学 写个精通可以让面试官眼前一亮 如果是瞎写 基本就要被狠狠地虐一把里 最近在面试 我现在十分后悔在简历上写了 精通 二字 先给大家看看我简历上的技能列表 熟悉软件测试理论基础 熟悉软件测试的流程 方法 具备测试用例需求分
  • 基于element-ui中table表格组件进行二次封装

    基于element ui中table表格组件进行二次封装 在平时开发的时候很多情况都会使用到表格和分页功能 所以根据用到的表格功能做一个基础的封装并记录下来 如果有其他功能需要添加直接在此基础上进行扩展即可 基础功能 1 表格内容的正常显示
  • Mysql查询和索引

    mysql查询 1 逻辑架构图 2 mysql查询执行路径 1 客户端发送一条查询给服务器 2 服务器先检查查询缓存 如果命中了 则立刻返回存储在缓存中的结果 3 服务端进行sql解析 预处理 再由优化器生成对应的执行计划 4 mysql根
  • 基于ZigBee的智能家居系统设计

    1 前言 智能家居 smart home home automation 是以住宅为平台 利用综合布线技术 网络通信技术 安全防范技术 自动控制技术 音视频技术将家居生活有关的设施集成 构建高效的住宅设施与家庭日程事务的管理系统 提升家居安
  • python柱状图加百分比_【python】封装接口直接利用DataFrame绘制百分比柱状图

    手动反爬虫 原博地址 知识梳理不易 请尊重劳动成果 文章仅发布在CSDN网站上 在其他网站看到该博文均属于未经作者授权的恶意爬取信息 1 背景前言 最近打比赛遇到的问题有点多 在绘制了堆叠柱状图之后 队长说不仅要看到具体的数量多少的堆叠图
  • 数字后端概念——padding

    文章目录 Adding Instance Padding Adding Module Padding Adding Cell Padding 总结 查看Innovus UG gt Design Implementation Capabili
  • JavaWeb学习笔记8 Servlet2 ServletConfig类

    ServletConfig类 ServletConfig类 ServletConfig类的三大作用 ServletConfig类 ServletConfig类是Servlet程序的配置信息类 Servlet程序和ServletConfig对
  • 【Python 1-2】Visual Studio Code(VSCode) 配置 Python开发环境

    使用 VSCode 作为开发Python的IDE工具 文章首发地址 IDE Integrated Development Environment 集成开发环境 目前支持Python的IDE有很多 有PyCharm Eclipse Atom
  • 面试官:你说说ReentrantLock和Synchronized区别

    大家好 又和大家见面了 为了避免面试尴尬 今天同比较通俗语言和大家聊下ReentrantLock和Synchronized区别 使用方式 Synchronized可以修饰实例方法 静态方法 代码块 自动释放锁 ReentrantLock一般
  • [工具使用]之NMAP

    工具使用 NMAP 下载 kail apt get install nmap windows 下载官网 Nmap是一个网络连接端扫描软件 用来扫描网上电脑开放的网络连接端 确定哪些服务运行在哪些连接端 并且推断计算机运行哪个操作系统 亦称