探测主机存活

(1)-sP :进行ping扫描

(2) -sn: ping探测扫描主机, 不进行端口扫描

(3)-sA     发送ACK探测存活

端口扫描

(1) -sS :半开放扫描

(2) sT:3次握手方式tcp的扫描

(3)sU:udp端口的扫描

(4)sF:也是tcp的扫描一种,发送一个FIN标志的数据包

(5)sW:窗口扫描

(6) sV:版本检测(sV)

探测主机存活常用方式

(1)-sP :进行ping扫描

打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):

下面去扫描192.168.4/24这个网段的的主机

nmap -sP 192.168.4/24

(2) -sn:

-sn:  Ping Scan - disable port scan  #ping探测扫描主机, 不进行端口扫描 (测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)

nmap  -sn 192.168.4.1-166

(3)-sA

nmap 192.168.4.1 -sA (发送tcp的ack包进行探测,可以探测主机是否存活)

端口扫描的高级用法

(1) -sS :半开放扫描(非3次握手的tcp扫描)

使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,效率高(一个完整的tcp连接需要3次握手,而-sS选项不需要3次握手)

Tcp SYN Scan (sS) 它被称为半开放扫描

优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高

缺点:它需要root/administrator权限执行

[root@78778e06dc0a /]# nmap  -sS   192.168.4.1 

 

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 11:38 CST

Nmap scan report for 192.168.4.1

Host is up (0.00028s latency).

Not shown: 995 closed ports

PORT     STATE SERVICE

22/tcp   open  ssh

111/tcp  open  rpcbind

873/tcp  open  rsync

7777/tcp open  cbt

8888/tcp open  sun-answerbook

MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 1.31 seconds

(2) sT:3次握手方式tcp的扫描

Tcp connect() scan (sT)和上面的Tcp SYN 对应,TCP connect()扫描就是默认的扫描模式.

不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().

优点:不需root权限。普通用户也可以使用。

缺点:这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息,由于它要完成3次握手,效率低,速度慢,建议使用-sS

nmap -sT 192.168.4.1等同于 nmap 192.168.4.1

[root@78778e06dc0a /]# nmap  -sT  192.168.4.1

 

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 11:40 CST

Nmap scan report for 192.168.4.1

Host is up (0.00048s latency).

Not shown: 995 closed ports

PORT     STATE SERVICE

22/tcp   open  ssh

111/tcp  open  rpcbind

873/tcp  open  rsync

7777/tcp open  cbt

8888/tcp open  sun-answerbook

MAC Address: 00:0C:29:56:DE:46 (VMware)

 

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds

(3)sU:udp端口的扫描

Udp scan(sU) 顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,

如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.udp端口扫描速度比较慢

nmap -sU 192.168.4.1

(4)sF:也是tcp的扫描一种,发送一个FIN标志的数据包

FIN scan(sF)

有时候TcpSYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.

和sS扫描效果差不多,比sT速度快

[root@78778e06dc0a /]# nmap -sF  192.168.4.1

 

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 11:46 CST

Nmap scan report for 192.168.4.1

Host is up (0.00050s latency).

Not shown: 997 closed ports

PORT    STATE         SERVICE

22/tcp  open|filtered ssh

111/tcp open|filtered rpcbind

873/tcp open|filtered rsync

MAC Address: 00:0C:29:56:DE:46 (VMware)

 

Nmap done: 1 IP address (1 host up) scanned in 2.59 seconds

-sF、-sX、-sN

秘密FIN数据包扫描、圣诞树(XmasTree)、空(Null)扫描模式

有的防火墙可能专门阻止-sS扫描。使用这些扫描可以发送特殊标记位的数据包

比如,-sF发送一个设置了FIN标志的数据包

它们和-sS一样也需要完成TCP的握手.

和sS扫描效果差不多,都比sT速度快

除了探测报文的标志位不同,三种扫描在行为上一致

优势:能躲过一些无状态防火墙和报文过滤路由器,比SYN还要隐秘

劣势:现代的IDS产品可以发现,并非所有的系统严格遵循RFC 793

即使SYN扫描都无法确定的情况下使用:一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,

而且有些程序比如synlogger和courtney能够检测那些扫描。使用-sF、-sX、-sN可以逃过这些干扰。

这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包。

FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。

由于微软决定完全忽略这个标准,另起炉灶。所以这种扫描方式对Windows无效。

不过,从另外的角度讲,可以使用这种方式来分别两种不同的平台。

如果使用这种扫描方式可以发现打开的端口,你就可以确定目标注意运行的不是Windows系统。

如果使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用-sS(SYN)扫描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统。

现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。还有其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。

在应该抛弃数据包时,以上这些系统都会从打开的端口发出复位数据包。

(5)sW:窗口扫描

Window扫描,即窗口扫描

当然也可以利用Window扫描方式,得出一些端口信息,可以与之前扫描分析的结果相互补充。Window扫描方式只对某些TCPIP协议栈才有效。

它也是基于tcp的扫描,个人感觉用处不大

另外我尝试使用它对A机器的22端口扫描,发现对方22端口状态居然是错误的。

[root@78778e06dc0a /]# nmap -sW  192.168.4.1  -p22

 

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 13:17 CST

Nmap scan report for 192.168.4.1

Host is up (0.0027s latency).

PORT   STATE  SERVICE

22/tcp closed ssh

MAC Address: 00:0C:29:56:DE:46 (VMware)

 

Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds

(6) sV:版本检测(sV)

版本检测是用来扫描目标主机和端口上运行的软件的版本,如下扫描,多出了ssh的版本信息

[root@78778e06dc0a /]# nmap -sV 192.168.4.1

 

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 13:18 CST

Nmap scan report for 192.168.4.1

Host is up (0.00017s latency).

Not shown: 997 closed ports

PORT    STATE SERVICE VERSION

22/tcp  open  ssh     OpenSSH 5.3 (protocol 2.0)

111/tcp open  rpcbind

873/tcp open  rsync   (protocol version 30)

MAC Address: 00:0C:29:56:DE:46 (VMware)

 

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 6.60 seconds

nmap及其少用的

(1)iR Choose random targets,它会随机找几个ip或者主机名进行扫描

nmap -iR 2 -Pn -p22

(2)--top-ports <number>: Scan <number> most common ports

#扫描常用的端口,number如果写成10,那就是扫描最常用的10个端口。比如,ssh,http,ftp等热门端口

nmap --top-ports 5 192.168.4.1

(3)--port-ratio <ratio>: Scan ports more common than <ratio> #扫描常用端口里,占的比重在0.x 之上的端口

比如ratio=0.2 那么就是常用端口中占的分量超过0.2的端口,比如http的80端口

nmap --port-ratio 0.1 192.168.4.1

4)-sO:探测对方,TCP/IP协议簇中有哪些协议,类型号分别是多少

nmap -sO 192.168.4.1

没什么用,就是探测对方,TCP/IP协议簇中有哪些协议,类型号分别是多少

icmp即是 1 Internet控制消息

6 传输控制 协议

udp即是 17 用户数据报文

47 通用路由封装

103 协议独立多播

(5)--allports

--allports (不为版本探测排除任何端口)经过我的测试,发现对于一些大的端口号,它没能检测出来 默认情况下,Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的任何数据,这回导致数十页HTTP get请求,二进制SSL会话请求等等被打印出来.这一行为可以通过修改或删除nmap-service-probes中的Exclude指示符改变,您也可以不理会任何Exclude指示符,指定--allports扫描所有端口

-S:可以伪装源地址进行扫描。这样好处在于不会被对方发现自己的真实IP

[root@78778e06dc0a /]# nmap -e eth0 192.168.4.1 -S 192.168.4.10

WARNING: If -S is being used to fake your source address, you may also have to use -e <interface> and -Pn . If you are using it to specify your real source address, you can ignore this warning.

上面提示如果你使用-S伪装自己源地址进行扫描的话,你必须另外使用-e 指定网卡和-Pn参数才能伪装

把自己源地址伪装成192.168.4.10扫描A机器

nmap -e eth0 192.168.4.1 -S 192.168.4.10 -Pn

nmap -iflist:查看本地路由与接口

Nmap中提供了–iflist选项来查看本地主机的接口信息与路由信息。当遇到无法达到目标主机或想选择从多块网卡中某一特定网卡访问目标主机时,可以查看nmap –iflist中提供的网络接口信息。

和route  -n功能一样

原文: https://www.cnblogs.com/nmap/p/6232969.html

 
 
 
 
 
 
 
 
 

Nmap详细用法的更多相关文章

  1. C#播放声音的四种方法 +AxWindowsMediaPlayer的详细用法

    C#播放声音的四种方法 第一种是利用DirectX 1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll和 Microsoft.Directx ...

  2. 在DOS下的DEBUG命令的详细用法

    在DOS下的DEBUG命令的详细用法 名称 解释 格式 a (Assemble) 逐行汇编 a [address] c (Compare) 比较两内存块 c range address d (Dump ...

  3. __declspec关键字详细用法

    __declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI ...

  4. CString.Format的详细用法(转)

    CString.Format的详细用法(转) 在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CS ...

  5. IFRAM的详细用法

    IFRAM的详细用法:   IFRAM的详细用法:  <IFRAME>用于设置文本或图形的浮动图文框或容器. BORDER <IFRAME BORDER="3"& ...

  6. 【转】java.util.vector中的vector的详细用法

    [转]java.util.vector中的vector的详细用法 ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 import java.uti ...

  7. DOM Style样式对象的详细用法

    DOM Style样式对象的详细用法 HTML Style样式比较复杂,相应访问.修改方法也有所差异.参考相关资料,整理如下. 典型Html文件如下,有三种定义方式. <head>     ...

  8. css基础之 font的简写规则 以及 自定义 CSS3 @font-face详细用法

    Part 1 font简写 CSS的命名规则是用英文字母 数字 和下划线(一般用小写)来命名.简写css font的好处有三:一是写起来方便(就像键盘快捷键):二是简化代码:三是帮助你熟悉和深刻理解c ...

  9. Tomcat详细用法学习(三)

    本篇接上一篇<Tomcat详细用法学习(二)>,主要讲解服务器所要求的web应用的组织结构. 上一篇说到了如何使用服务器将自己的web应用映射成虚拟目录,以便于在浏览器中可以对自己开发的w ...

随机推荐

  1. 《java编程思想》 初始化与清理

    1.初始化与清理的重要性: 1.许多C程序的错误都源于程序员忘记初始化变量,特别是使用程序库时,如果不知道如何初始化库的构件更容易出错 2.当使用完一个元素时,这个元素就不会有什么影响了,所以很容易就 ...

  2. [vijos]1066弱弱的战壕<线段树>

    题目链接:https://www.vijos.org/p/1066 这道题没什么难度,只是要一个排序然后就是线段树的基本套路模版了 但是我还是讲一讲思路吧: 给出的是坐标x,y,当一个点的x,y都小于 ...

  3. python 开发工具简介

    一.python 开发工具简介 1.IDLE IDLE是开发python程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择.当安装好python以后,IDL ...

  4. CSS3新增的选择器

    1. 层次选择器 子元素选择器: 只选择子元素    父选择器 > 子选择器 后面紧相邻的兄弟元素:  选择器1 + 选择器2 后面所有的兄弟元素:   选择器1 ~ 选择器2 2.属性选择器  ...

  5. docker-compose搭建redis哨兵集群

    头脑风暴 出于学习目的,您可以很轻松地在docker环境下运行redis的单个实例,但是如果您需要在生产环境中运行它,那么必须将Redis部署为HA(High Avaliable)模式. Redis ...

  6. 1016 Phone Bills (25 分)

    A long-distance telephone company charges its customers by the following rules: Making a long-distan ...

  7. Altium 分形天线设计

    Altium 分形天线设计 程序运行界面 Cantor三分集 Koch雪花 Sierpinski垫片 源代码: Iter_Num = 4     'diedai PI = 3.1415926 Call ...

  8. binlog的作用及与redo log的区别

    区别 二进制日志(bin log)会记录所有与MySQL数据库有关的日志记录,包括InnoDB.MyISAM.Heap等其他存储引擎的日志.而InnoDB存储引擎的重做日志只记录有关该存储引擎本身的事 ...

  9. php-fpm cgi fast-cgi

    基础 在整个网站架构中,Web Server(如Apache)只是内容的分发者.举个栗子,如果客户端请求的是 index.html,那么Web Server会去文件系统中找到这个文件,发送给浏览器,这 ...

  10. python工业互联网监控项目实战2—OPC

    OPC(OLE for Process Control)定义:指为了给工业控制系统应用程序之间的通信建立一个接口标准,在工业控制设备与控制软件之间建立统一的数据存取规范.它给工业控制领域提供了一种标准 ...