Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp。

Nmap可以完成以下任务:

  • 主机探测
  • 端口扫描
  • 版本检测
  • 系统检测
  • 支持探测脚本的编写
  • Nmap在实际中应用场合如下:
  • 通过对设备或者防火墙的探测来审计它的安全性
  • 探测目标主机所开放的端口
  • 通过识别新的服务器审计网络的安全性
  • 探测网络上的主机

端口扫描工具,即借助工具,试图了解所扫描IP提供的计算机网络服务类型(网络服务均与端口号相关),从而发现攻击弱点,常见服务对应端口号:

服务 端口号
HTTP 80
HTTPS 443
Telnet 23
FTP 21
SSH(安全登录)、SCP(文件传输)、端口重定向 22
SMTP 25
POP3 110
WebLogic 7001
TOMCAT 8080
WIN2003远程登录 3389
Oracle数据库 1521
MS SQL* SEVER数据库sever 1433
MySQL 数据库sever 3306

Nmap进行完整全面的扫描

nmap –T4 –A –v

其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。

Nmap用于主机发现的一些用法

-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。  

-sn: Ping Scan 只进行主机发现,不进行端口扫描。  

-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。  

-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。  

-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。-PO[protocollist]: 使用IP协议包探测对方主机是否开启。  

-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。  

--dns-servers <serv1[,serv2],...>: 指定DNS服务器。  

--system-dns: 指定使用系统的DNS服务器  

--traceroute: 追踪每个路由节点

Nmap用于端口扫描的一些用法

1、扫描方式选项

-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扫描方式

2、 端口参数与扫描顺序

[plain] view plain copy
-p <port ranges>: 扫描指定的端口 实例: -p22; -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文件。

3、 版本侦测的用法

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

具体操作演示如下

1、用Nmap扫描特定IP地址

2、用-vv对结果进行详细输出

3、自行设置端口范围进行扫描

4、指定端口号进行扫描



5、对目标进行Ping扫描

格式:namp -sP



6、路由跟踪

nmap -traceroute

7、扫描一个段的主机在线状况

nmap -sP

8、操作系统探测

nmap -O

9、万能开关扫描

nmap -A

10、其他扫描方式

SYN扫描:利用基本的SYN扫描方式测试其端口开放状态

namp -sS -T4

FIN扫描:利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态

namp -sF -T4

ACK扫描:利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包

namp -sA -T4

扫描前不进行Ping扫描测试

nmap -Pn

如果有一个ip地址列表,将这个保存为一个txt文件,和nmap在同意目录下,扫描这个txt的所有主机,命令为

nmap -iL target.txt

版本检测扫描

nmap -sV

Nmap的帮助文档



Nmap脚本使用的更多相关文章

  1. nmap脚本扫描使用总结

    nmap的脚本默认目录为:/usr/share/nmap/scripts/ Nmap提供的命令行参数如下 -sC: 等价于--script=default,使用默认类别的脚本进行扫描 可更换其他类别 ...

  2. Nmap脚本引擎原理

    Nmap脚本引擎原理 一.NSE介绍 虽然Nmap内嵌的服务于版本探测已足够强大,但是在某些情况下我们需要多伦次的交互才能够探测到服务器的信息,这时候就需要自己编写NSE插件实现这个功能.NSE插件能 ...

  3. Nmap脚本文件分析(AMQP协议为例)

    Nmap脚本文件分析(AMQP协议为例) 一.介绍 上两篇文章 Nmap脚本引擎原理   编写自己的Nmap(NSE)脚本,分析了Nmap脚本引擎的执行过程,以及脚本文件的编写,这篇文章将以解析AMQ ...

  4. nmap脚本使用总结

    0x00 前言: nmap的基本介绍和基本使用方法,在乌云知识库中已经有人提交过,讲的比较详细,在此文中就不再讲述. 具体链接:http://drops.wooyun.org/tips/2002 本文 ...

  5. Web安全学习笔记之Nmap脚本编写

    0x00 Nmap脚本简介 夜无眠,看了一下Nmap官方的英文API文档(全是English),瞬间心态崩塌,不想吐槽它们的nmap官网前端太丑了=.=,但是都是大牛啊,挺敬佩开源开发者的. Nmap ...

  6. nmap脚本nse的使用

    nmap脚本(nse)使用总结 0x01 nmap按脚本分类扫描 nmap脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描: auth: 负责处理鉴权证书( ...

  7. nmap脚本(nse)使用总结

    nmap脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描: auth: 负责处理鉴权证书(绕开鉴权)的脚本   broadcast: 在局域网内探查更多服务 ...

  8. Web安全学习笔记之Nmap脚本使用指南

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

  9. NSE入门--nmap 脚本基础

随机推荐

  1. 按值传递与按值引用详解(java版)

    http://blog.csdn.net/zzp_403184692/article/details/8184751

  2. WinDbg常用命令系列---.cmdtree

    .cmdtree 简介 使用形式 .cmdtree cmdfile 参数 cmdfile命令文件,包含多个你需要的命令.必须是一个文本档 使用步骤 1.使用命令创建文本文件test.wl,使用以下示例 ...

  3. Linux修改服务器Oracle字符集

    Linux安装Oracle时太仓促,没设置好,导入dmp字符集(ZHS16GBK)与服务器字符集(WE8MSWIN1252)对不上,导致导入数据失败: [oracle@ORACLE ~]$ sqlpl ...

  4. 洛谷P4380 [USACO18OPEN]Multiplayer Moo

    题目 第一问: 用广搜类似用\(floodfill\)的方法. 第二问: 暴力枚举加剪枝,对于每个连通块,枚举跟这个连通块相连的其他与他颜色不同的连通块,然后向外扩展合并颜色与他们俩相同的连通块.扩展 ...

  5. 无法定位程序输入点到xxx.dll

    Q:安装pytorch时报错无法定位程序输入点到Anaconda3\Library\bin\libssl-1_1-x64.dll A:下载libssl-1_1-x64.dll覆盖bin下的文件 下载地 ...

  6. koa2 get post api restful前端联调

    1.git https://github.com/MengFangui/koa2-restful-api 2.示例代码 //引入 Koa 服务器 const koa = require('koa'); ...

  7. npm版本管理 命令

    npm采用了semver规范作为依赖版本管理方案.semver 约定一个包的版本号必须包含3个数字 MAJOR.MINOR.PATCH 意思是 主版本号.小版本号.修订版本号 MAJOR 对应大的版本 ...

  8. THOR: Tracking Holistic Object Representations

    THOR: Tracking Holistic Object Representations BMVC 2019 Oral 2019-08-04 10:30:09 Paper: https://arx ...

  9. Activiti6 应用安装 activiti-admin,activiti-app,activiti-rest

    activiti6安装包中 1/直接将三个war包放入tomcat中,即可运行,使用H2内存数据库 2/使用mysql数据库运行 2.1/activiti-admin # security confi ...

  10. electron---表单验证问题

    使用elementui进行表单提交数据的时候,经常会需要用到表单验证的功能,下面就来说说这个功能. <template> <div> <el-form :model=&q ...