Nmap

nmap是一个非常强大的网络扫描工具,学习nmap的话,我建议大家多读一读官方文档,这里我所写的也仅仅是对Nmap中文文档的一个总结,以及一些我的个人看法。
官方文档地址:http://www.nmap.com.cn/

  • 主机发现
  • 端口扫描

主机发现

nmap的主机发现主要是基于ICMP包的一个探测,所以用nmap的主机发现命令格式大多都是-P*;

 -sP : nmap 仅对主机进行ping扫描(并不进行端口探测,还有操作系统识别),这个命令仅仅是列出了这个主机是否存活,或者这一个网段内都有哪些主机是在存活状态。

    -P0 : nmap在默认情况下会只给存活的主机进行端口扫描,版本探测,而使用P0(注意字母P是大写,0是数字0)参数会使nmap对每一个指定的ip地址进行所要求的扫描。
    -PS : nmap向目标主机发送一个设置了SYN标志位的空的TCP报文,不管主机返回SYN/ACK包还是RST包,它都认为该主机存活。不过虽然官方文档上说该参数只关心主机是否存活,不过在当前最新版本的nmap来看,这个命令也对主机的各个端口进行了探测。

    -PA/-PU:分别向目标主机发送ACK/UDP报文进行主机探测。
    -n(不用域名解析):告诉nmap不对存活主机的IP进行域名解析
    -R(为所有目标解析域名)

端口扫描

在学习端口扫描之前,我们需要先了解nmap对于端口的五种不同的状态。

open(开放的)、filtered(过滤的)、closed(关闭的)、open|filtered(开放或者被过滤的)、closed|filtered(关闭或者被过滤的)

    -sS:进行TCP SYN扫描,这个选项返回的结果与-PS返回的结果很像,它们两个参数的区别就是,-sS会发送一个ICMP包给目标主机,这个我们可以利用抓包工具来看一下。

这个截图告诉我们-sS参数会发送ICMP包给目标主机。

为了和下面的-sT参数区分开,我们看一下,用-sS参数的连接图。

TCP SYN探测到端口关闭:

TCP SYN探测到端口开放:

    -sT:会完整的执行完TCP的三次握手,隐蔽性不强。

TCP connect探测到端口关闭:

TCP connect探测到端口开放:

由此我们可以看出-sT参数隐蔽性并不强,一般用于-sS参数无法探测时。

    -sU:使用UDP协议对端口进行扫描(通常,这个端口很容易被管理员忽视)
    -sN; -sF; -sX (TCP Null,FIN,and Xmas扫描):这个扫描的好处就是,它可以在端口关闭时,任何一个不包含ACK,SYN或者RST的数据包,都会返回一个RST,而在端口开放时,则不作响应。但是这个是要满足一个前提的,就是要严格遵循RFC 793,但是事实上,并非所有系统都严格遵循RFC 793, 许多系统不管端口开放还是关闭,都响应RST。 这导致所有端口都标记为closed(关闭的)。
    -sA:发送ACK数据包进行探测,主要用来识别这个端口是否处于过滤状态,如果这个端口是开放的或者这个端口是关闭的都会返回一个RST包,这个被标记为未过滤的;如果不响应或者发送特定的ICMP错误消息(类型3,代号1,2,3,9,10, 或者13)的端口,标记为 filtered(被过滤的)。

    --scanflags:定制nmap扫描。 如:--scanflags URGACKPSHRSTSYNFIN设置了所有标志位,但是这对扫描没有太大用处。 标志位的顺序不重要。

nmap命令小结(一)相关推荐

  1. MySQL数据库备份和还原的常用命令小结

    MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下. 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...

  2. linux 查询注册服务,window下注册服务的命令小结

    1. 描述:     SC 是用于与服务控制管理器通信的命令行程序 . 用法: sc [command] [service name] ... 选项 的格式为 可以键入 "sc [comma ...

  3. sed与awk命令小结

    1.sed命令小结 Sed是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本.Sed从文本的一个文本行或标准输入中读取 ...

  4. Nmap命令的常用实例

    一.Nmap简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting).它是网络管 ...

  5. 渗透测试之Nmap命令(一)

    1.介绍 相信很多朋友在这之前已经对nmap有所了解,或者已经使用过nmap了,这里做一下简单的介绍.nmap(Network Mapper)最初由Gordon Fyodor Lyon于1997年创建 ...

  6. 渗透测试之Nmap命令(三) idle 扫描

    1. 空闲扫描 前两篇文章已经介绍了Nmap命令的一些基本选项和若干类型的扫描,下面继续来介绍Nmap的一个扫描类型--空闲扫描.  为了降低被检测到的机率,我们通常需要转嫁责任,这时可以使用空闲扫描 ...

  7. mtr和nmap命令

    mtr mtr是一个网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性. [root@10.10.90.97 ~]# mtr -h usage: mtr [ ...

  8. Linux 命令(141)—— nmap 命令

    文章目录 1.命令简介 2.命令格式 3.选项说明 TARGET SPECIFICATION HOST DISCOVERY SCAN TECHNIQUES PORT SPECIFICATION AND ...

  9. 计算机基础(十):git仓库管理命令小结

    git仓库管理命令小结 git branch                           获取当前分支仓库 git status                            查看当前 ...

最新文章

  1. 中国信通院:2019年Q1全球人工智能产业数据报告
  2. SQL*PLUS常用命令
  3. Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)返回非映射实体类的解决方法
  4. ElasticSearch Python Client ReadTimeout
  5. Java:写2个线程,其中一个线程打印1-52,另一个线程打印A-Z,打印顺序应该是12A34B56C...5152Z。
  6. Android AIDL使用介绍(3) 浅说AIDL背后的Binder
  7. 计算机安全概论论文,计算机安全探讨论文毕业论文(7篇).doc
  8. history模式监听_面试题:VueRouter中的 hash 模式和 history 模式有什么区别
  9. Let‘s Fluent:更顺滑的MyBatis
  10. matlab画圆的命令_matlab画半圆
  11. 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析(转)...
  12. lingo求优化模型
  13. npstion实现通过手机扫描二维码向电脑录入信息
  14. 手机是如何做到精准定位的
  15. java jnlp 运行_java怎么运行jnlp文件 jnlp文件怎么打开
  16. [回溯系列] 组合总和+电话号码(day25)
  17. Python打印九九乘法口诀表
  18. github使用指南(史上最全)
  19. 好用的个微管理系统我知道
  20. 整数翻转-LeetCode No7

热门文章

  1. Oracle索引概述
  2. 6-4 计算圆柱体的表面积(函数名隐藏)
  3. volatile能保证原子性吗?
  4. python 遍历List各种方式
  5. IPv6的HappyEyeballs算法
  6. dedecms织梦网站搬家教程
  7. 如何输入多组数据并输出每组数据的和?
  8. mysql 消息队列_一个简单的 MySQL 批量事务消息队列
  9. Oracle并行服务器(OPS)12问
  10. Oracle ora-12560报错的解决办法