Nmap命令详细介绍(上帝之眼)

1. 概述

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

 

2. 基本功能

1)探测目标主机是否在线

2)扫描主机端口,嗅探所提供的网络服务

3)推断主机所用的操作系统 

4)漏洞扫描

3. 扫描原理

3.1. TCP SYN扫描(-sS)

Nmap默认扫描方式,通常被称为半开放扫描。发送SYN包到目标端口,若收到SYN/ACK回复,则端口被认为开放状态;若收到RST回复,则端口被认为关闭状态;若没有收到回复,则认为该端口被屏蔽。因为仅发送SYN包对目标主机的特定端口,但不建立完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用范围广。

3.2. TCP connect扫描(-sT)

使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标主机上留下记录信息,不够隐蔽。

3.3. TCP ACK 扫描(-sA)

向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况

3.4. TCP FIN/Xmas/NULL扫描(-sN/sF/sX)

这三种扫描方式被称为秘密扫描,因为相对比较隐蔽。FIN扫描向目标主机的端口发送的TCP FIN 包括Xmas tree包或NULL包,如果收到对方的RST回复包,那么说明该端口是关闭的;没有收到RST包说明该端口可能是开放的或者被屏蔽了。其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有的flags都为0的TCP包。

3.5. UDP扫描(-sU)

UDP扫描用于判断UDP端口的情况,向目标主机的UDP端口发送探测包,如果收到回复ICMP port unreachable就说明该端口是关闭的;如果没有收到回复,那说明该UDP端口可能是开放的或者屏蔽的。因此,通过反向排除法的方式来判断哪些UDP端口是可能处于开放状态的。

3.6. 其他方式(-sY/-sZ)

除了以上几种常用的方式外,Nmap还支持多种其他的探测方式。例如使用SCTP INIT/Cookie-ECHO方式是来探测SCTP的端口开放情况;使用IP protocol方式来探测目标主机支持的协议类型(tcp/udp/icmp/sctp等等);使用idle scan方式借助僵尸主机来扫描目标主机,以达到隐蔽自己的目的;或者使用FTP bounce scan,借助FTP允许的代理服务扫描其他的主机,同样达到隐蔽自己的目的

4. 工具使用

1)直接使用Nmap命令行方式

2)使用Nmap全量扫描

3)Nmap扫描选项

0x01 目标规格

nmap 192.168.1.1                    扫描一个IP

nmap 192.168.1.1 192.168.2.1        扫描IP段

nmap 192.168.1.1-254                扫描一个范围

nmap nmap.org                       扫描一个域名

nmap 192.168.1.0/24                 使用CIDR表示法扫描

nmap -iL target.txt                 扫描文件中的目标

nmap -iR 100                        扫描100个随机主机

nmap --exclude 192.168.1.1          排除列出的主机

0x02 扫描手法

nmap 192.168.1.1 -sS        TCP SYN端口扫描(有root权限默认)

nmap 192.168.1.1 -sT        TCP连接端口扫描(没有root权限默认)

nmap 192.168.1.1 -sU        UDP端口扫描

nmap 192.168.1.1 -sA        TCP ACK端口扫描

nmap 192.168.1.1 -sW        滑动窗口扫描

nmap 192.168.1.1 -sM        TCP Maimon扫描

0x03 扫描手法

nmap 192.168.1.1-3 -sL              不扫描,仅列出目标

nmap 192.168.1.1/24 -sn            只进行主机发现,禁用端口扫描

nmap 192.168.1.1-5 -Pn              跳过主机发现,直接扫描端口

nmap 192.168.1.1-5 -PS22-25,80端口X上的TCP SYN发现,默认80

nmap 192.168.1.1-5 -PA22-25,80  端口X上的TCP ACK发现,默认80

nmap 192.168.1.1-5 -PU53           端口X上的UDP发现,默认40125

nmap 192.168.1.1/24 -PR             本地网络上的ARP发现

nmap 192.168.1.1 -n                 不做DNS解析

0x04 端口规格

nmap 192.168.1.1 -p 21                扫描特定端口

nmap 192.168.1.1 -p 21-100            扫描端口范围

nmap 192.168.1.1 -p U:53,T:21-25,80  扫描多个TCP和UDP端口

nmap 192.168.1.1 -p-                  扫描所有端口

nmap 192.168.1.1 -p http,https        基于服务名称的端口扫描

nmap 192.168.1.1 -F                   快速扫描(100个端口)

nmap 192.168.1.1 --top-ports 2000     扫描前2000个端口

nmap 192.168.1.1 -p-65535             从端口1开始扫描

0x05 时间和性能

nmap 192.168.1.1 -T0    妄想症,非常非常慢,用于IDS逃逸

nmap 192.168.1.1 -T1    猥琐的,相当慢,用于IDS逃逸

nmap 192.168.1.1 -T2  礼貌的,降低速度以消耗更小的带宽,比默认慢十倍

nmap 192.168.1.1 -T3    正常的,默认,根据目标的反应自动调整时间模式

nmap 192.168.1.1 -T4野蛮的,在一个很好的网络环境,请求可能会淹没目标

nmap 192.168.1.1 -T5疯狂的,很可能会淹没目标端口或是漏掉一些开放端口

0x06 NSE脚本

nmap 192.168.1.1 -sC                   使用默认的NSE脚本进行扫描

nmap 192.168.1.1 --script=banner      使用单个脚本扫描,banner示例

nmap 192.168.1.1 --script=http,banner使用两个脚本扫描,示例http,banner

nmap 192.168.1.1 --script=http*           使用通配符扫描,http示例

nmap 192.168.1.1 --script "not intrusive"   扫描默认值,删除侵入性脚本

nmap 192.168.1.1 --script=smb-vuln*         扫描所有smb漏洞

nmap 192.168.1.1 --script=vuln              扫描常见漏洞

0x07 输出

nmap 192.168.1.1 -v                  增加详细程度,-vv效果更好

nmap 192.168.1.1 -oN test.txt        标准输出写入到指定文件中

nmap 192.168.1.1 -oX test.xml        将输入写成xml的形式

nmap 192.168.1.1 -oG grep.txt        将输出写成特殊格式

nmap 192.168.1.1 -oA results         将输出所有格式,有三种 .xml/.gnmap/.nmap

nmap 192.168.1.1 --open              仅显示开放的端口

nmap 192.168.1.1 -T4 --packet-trace  显示所有发送和接收的数据包

nmap --resume test.txt               恢复扫描,配合-oG等命令使用

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值