1、nmap常用命令

一、主机存活探测

(1)目标:确定目标主机是否在线(Alive,处于开启状态)
(2)原理:与ping命令相似,发送探测包到目标主机,如果收到回复,则说明目标主机是开启的。
(3)相关命令选项
在这里插入图片描述

常用命令

1)扫描目标主机是否在线

	nmap -sP <靶机IP> 

2)扫描局域网192.168.40.1-192.168.40.254内哪些IP的主机在线

nmap -sP 192.168.40.0/24 

-sP代表Ping扫描。
注:

  1. 在局域网内,无论采用哪一种选项,Nmap都是通过ARP包来询问IP地址上的主机是否活动,如果受到ARP回复包,那么说明主机在线。
  2. 使用-sP或-sn选项,默认情况下nmap会依次发送四种不同类型的数据包(ICMP echo request、TCP SYN packet to port4 443、TCP ACK packet to port 80、ICMP timestamp request)来探测主机是否在线,只要受到其中一个回复,就证明主机在线。
    在这里插入图片描述

在这里插入图片描述

二、端口扫描

(1)目标:确定目标主机的TCP/UDP端口开放情况。
(2)原理:发送TCP、UDP等类型的探测包到目标端口,根据收到的回复包判定端口是否开放。
(3)端口的六个状态

  • open:端口开放
  • closed:端口关闭
  • filtered:端口被防火墙IDS/IPS屏蔽,无法确认其状态
  • unfiltered:端口没有被屏蔽,但是否开放需要进一步确认
  • open | filtered:端口是开放的或被屏蔽
  • closed | unfiltered:端口是被关闭的或被屏蔽
    (4)端口扫描常用选项
    在这里插入图片描述
    (5)-p选项——指定扫描的端口号
	nmap -p T:139,U:53 -sS -sU 192.168.40.178
  • -p选项在默认情况下,nmap仅对用-p指定的TCP端口进行扫描,扫描的方式为-sS(TCP SYN扫描)。
  • 如果既要扫描TCP端口,又要扫描UDP端口,则可以用**“T:” “U:”**参数指定目标端口,并指定-sU(UDP扫描方式)和至少一种TCP扫描方式。
  • 上面表达式就是对139端口进行TCP SYN扫描,对53端口进行UDP扫描。

在这里插入图片描述

TCP SYN扫描

  原理:Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机发送TCP RST报文以重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
在这里插入图片描述
实例:
在这里插入图片描述

TCP connect 扫描

  原理:Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机依次发送TCP ACK、TCP RST+ACK完成三次握手和重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
在这里插入图片描述
实例:
在这里插入图片描述

TCP ACK扫描

  原理:Nmap向目标端口发送TCP ACK报文,无论目标端口是否处于开放状态,目标机都会返回TCP RST报文。如果Nmap主机能收到此TCP RST报文,则说明目标端口未被防火墙屏蔽。

TCP ACK扫描只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。

在这里插入图片描述
实例:
在这里插入图片描述

隐蔽扫描(-sF/-sN/-sX)

  原理:Nmap向目标端口发送TCP FIN(-sF)/ NULL(-sN) / FIN+PSH+URG(-sX)报文。1)对linux目标机,如果目标机未响应,则说明目标端口处于开放状态或被防火墙屏蔽;如果目标机放回TCP RST+ACK报文,则说明目标端口处于关闭状态。2)对于windows目标机,无论目标端口处于开放或关闭状态,目标机都会返回TCP RST+ACK报文。

隐蔽扫描方式适合linux系统的目标机端口扫描。

实例:
在这里插入图片描述

三、应用程序与版本信息侦测

(1)目标:识别目标主机开放的TCP/UDP端口上运行的服务及版本信息。
(2)流程

  1. 首先检查open与open | filtered状态的端口是否在排除端口列表内。如果在排除列表内,将该端口剔除;
  2. 如果是TCP端口,尝试建立TCP连接。尝试等待片刻(通常是6秒或更多,具体时间可以查询文件nmap-services-probesProbe TCP NULL q||对应得totalwaitms)。通常在等待时间内,会接收到目标及发送的WelcomeBanner信息。Nmap将接收到的Banner与nmap-services-probes中的签名进行对比,查找对应应用程序的名字与版本信息。
  3. 如果通过WelcomeBanner无法确定应用程序版本,那么Nmap在再尝试发送其他探测包(即从nmap-services-probes中挑选合适的probe),将probe得到的回复包与数据库中的签名进行对比。如果反复探测都无法得出具体应用,那么打印出应用返回报文,让用户自行进一步判断。
  4. 如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配,根据结果对比分析出UDP应用服务类型。
  5. 如果探测到应用程序是SSL,那么调用openSSL进一步侦查运行SSL之上的具体应用类型。
  6. 如果探测到应用程序是SunPRC,那么调用brute-force RPC grinder进一步侦查具体应用类型。

nmap-services-probes(服务版本数据库文件)默认路径:/usr/share/nmap/nmap-services-probes

(3)相关命令选项
在这里插入图片描述

默认TCP端口扫描

  推荐加上-v参数,可以看到扫描过程中的详细信息!!!

   	nmap -sV -O <靶机IP>

-sV:扫描默认1000个端口的服务情况和端口开放情况;
-O:操作系统探测。

在这里插入图片描述

注意:

  1. nmap -sV <ip地址>直接探测服务版本,也会得到服务器版本信息。
    在这里插入图片描述
  2. nmap -p- -sV <ip地址>全端口扫描,不加-p-就是对常见的TCP端口进行扫描。
    在这里插入图片描述

全端口(TCP/UDP)扫描

	nmap -p T:1-65535,U:1-65535 -sS -sU [靶机IP] // 对TCP、UDP均进行全端口扫描

-p :扫描指定端口;
-sS:指定使用TCP SYN的方式对目标主机进行扫描;
-sU:指定使用UDP扫描的方式确定目标主机的UDP端口状况;

在这里插入图片描述

最详细的端口扫描

	nmap -sS -T4 -A -p- <ip地址>

-p :扫描指定端口;
-sS:指定使用TCP SYN的方式对目标主机进行扫描;
-A:使用进攻性(Aggressive)方式扫描;
-T4:表示指定扫描过程使用的时序,共有六个级别(0-5),级别越高,扫描速度越快。在网络通信状况良好的情况下推荐使用T4。
-v:这个参数表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节。

在这里插入图片描述
在这里插入图片描述

四、操作系统探测

(1)目标:识别目标主机操作系统的类型
(2)侦测方法:网络协议栈指纹识别技术
(3)相关命令选项
在这里插入图片描述

常用的网络协议栈指纹识别方法

(1)TTL

  • TTL:Time To Live,即数据包的"存活时间",表示一个数据包在被丢弃之前可以通过多少跃点(Hop)。不同操作系统的缺省TTL值往往是不同的。常见操作系统的TTL值如下:
    在这里插入图片描述

(2)DF位
  不同OS对DF位有不同的处理方式,有些OS设置DF位,有些不设置;还有一些OS在特定场合设置DF位,在其他场合不设置DF位。

(3)Window Size

  • Window size:TCP接收/发送窗口大小。它决定了接收信息的机器在收到多少数据后发送ACK包。
  • 特定操作系统的缺省Window Size基本是常数,例如AIX 用0x3F25,windows、OpenBSD、FreeBSD用0x402E。
  • 一般,Unix的window size比较大。Windows、路由器、交换机等的比较小。

(4)ACK序列
  不同的OS处理ACK序列号时是不同的。如果发送一个FIN+PSH+URG的数据包到一个关闭的TCP端口,大多数OS会把回应ACK包的序号设置为发送包的初始序号,而Windows和一些打印机则会发送序号为初始序号加1的ACK包。

(5)对FIN包的响应
  发送一个只有FIN标志位的TCP数据包给一个打开的端口,Linux等系统不响应;有些系统如Windows、CISCO、HP/UX等,会发一个RST。

(6)ISN(初始序列号)
  不同OS在选择TCP ISN时采用不同的方法:一些UNINX系统采用传统的64k递增方法;较新的Solaris、IRIX、FreeBSD、Digital Unix、Cray等系统采用随机增量的方法;Linux 2.0、OpenVMS、AIX等系统采用真随机方法;Windows系统采用一种时间相关的模型;还有一些系统使用常数,如3Com集线器使用0x803,Apple LaserWrite打印机使用0xC7001。

(7)主机使用的端口
  一些OS会开放特殊的端口,如windows的137、139端口;一些网路设备,如入侵检测系统、防火墙等也会开放自己特殊的端口。

  • nmap-os-db(操作系统数据库文件):该数据库包含了超过2600种操作系统的指纹信息,nmap把TCP和UDP报文发送到目标机器上,然后将检查结果和nmap-os-db数据库进行对比。
  • 默认路径:/usr/share/nmap/nmap-os-db

五、规避FW/IDS技术

(1)目标:绕过目标主机的防火墙、入侵检测系统等防护手段。
(2)常用命令选项:
在这里插入图片描述
(3)-T选项的应用——控制扫描速度
使用-T(0-5)可以启用时序选项,一般来说数字越大,速度越快,精度越低。

  • -T0(偏执的):非常慢的扫描,用于IDS逃避;
  • -T1(鬼祟的):缓慢的扫描,用于IDS逃避;
  • -T2(文雅的):降低速度以降低对带宽的消耗,此选项一般不常用;
  • -T3(普通的):默认,根据目标的反应自动调整时间;
  • -T4(野蛮的):快速扫描,常用扫描方式,需要在很好的网络环境下使用;
  • -T5(疯狂的):急速扫描,以牺牲准确度来提升扫描速度。

(4)-D选项的应用——源IP地址欺骗
在这里插入图片描述
(5)--spoof-mac选项的应用——源MAC地址欺骗

nmap --spoof-mac 0 <目标IP>

其中参数0表示随机分配一个MAC地址。也可以手动执行mac地址,如:nmap --spoof-mac aa:bb:cc:dd:ee:ff <目标IP>

在这里插入图片描述

六、NSE脚本命令选项

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值