渗透-信息收集篇-NMAP的使用及其原理

NMAP

是一个免费开放的网络扫描和嗅探工具包
原理:Nmap使用TCP/IP协议栈指纹准确地判断目标主机的相关信息。
作用:识别活跃的主机 开放端口及相应的服务 主机的系统指纹 路由跟踪
命令: nmap -sn 192.168.1.0/24 (在以前的Nmap中,-sn被称为-sP)

一、存活主机扫描:

查询网段中主机或者整个网段的IP存活状态
1 当目标主机与源主机在同一网段时
Nmap 将通过发送arp请求,来检查ip是否在线 (NMAP -PR 目标)
命令:Namp -sn ip (Starting Nmap)
在这里插入图片描述
当扫描ip与自己在同一个网段时,它则向这个网段里的所有主机发送arp请求包,收到回复则认为主机存活。
在这里插入图片描述
2 当目标主机与源主机不在同一网段时:
Nmap会发送四种不同类型的数据包来探测目标主机是否在线:
1)ICMP echo request (NMAP –PE 目标)
2) a TCP SYN packet to port 443 (NMAP -PS主机)
3) a TCP ACK packet to port 80 (NAMP -PA 目标)
4) an ICMP timestamp request (NAMP -PP 目标)
①首先会发送一个icmp请求包,如果回复了reply则认为主机存活。如果回复的是目标主机不可达则发送SYN包。
在这里插入图片描述
在这里插入图片描述
②如果没回复的是目标主机不可达则向这些没回复的主机443端口发送一个syn包。
在这里插入图片描述

③如果没回复则向这些没回复的主机80端口发送一个ACK包。
在这里插入图片描述
TCP ACK scanning
向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;
没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口。
TCP ACK探测到端口被屏蔽:(收不到回应包,可以端口关闭或者被防火墙过滤了)
在这里插入图片描述
TCP ACK探测到端口未被屏蔽
在这里插入图片描述
④如果没回应RST则向没回应的主机发送icmp时间戳请求,回应则主机存活。

二、端口和服务扫描:

端口扫描:
1./全连接扫描/ TCP connect scanning
命令:nmap -sT 192.168.10.1
全连接端口扫描是与目标主机或服务器端口进行完整的三次握手,成功则认为端口开发。一个攻击者使用TCP连接扫描很容易被发现,因为Nmap将使用connect()系统调用打开目标机上相关端口的连接,并完成三次TCP握手,且RST断开连接。
在这里插入图片描述在这里插入图片描述

它会向每个端口发送SYN置位1的数据包,收到回复继续发送ACK,进行三次握手。
在这里插入图片描述
如果三次握手成功则认为端口开放
在这里插入图片描述
2.隐藏扫描/半连接扫描/ TCP SYN scanning
命令:nmap -sS 192.168.1.102
隐蔽扫描(Stealth Scanning) 如果一个攻击者不愿在扫描时使其信息被记录在目标系统日志上,通过发送一个SYN包(是TCP协议中的第一个包)开始一次SYN的扫描。(一些以会话建立完成才写入日志,可能不会被记录)
任何开放的端口都将有一个SYN|ACK响应。然而,攻击者发送一个RST替代ACK,连接中止。三次握手得不到实现,也就很少有站点能记录这样的探测。如果是关闭的端口,对最初的SYN信号的响应也会是RST,端口关闭。
在这里插入图片描述
在这里插入图片描述
它会先主机端口发送syn包,收到回复认为端口开放,并发送RST拒接第三次握手。
在这里插入图片描述

拒接连接则认为端口关闭:
在这里插入图片描述

3.TCP FIN/Xmas/NULL scanning
nmap sF、sX、sN 192.168.10.1

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

它会发送FIN置1的数据包:
在这里插入图片描述
而扫出来的结果显示端口可能开放,也可能被屏蔽了。所以这个扫描比较隐蔽但结果可能没那么尽人意。

在这里插入图片描述
UDP扫描
UDP scanning
UDP扫描方式用于判断UDP端口的情况。向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就说明该端口是关闭的;如果没有收到回复,那说明UDP端口可能是开放的或屏蔽的。因此,通过反向排除法的方式来断定哪些UDP端口是可能出于开放状态。 (时间长)

nmap -sU 192.168.7.7

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

三.系统指纹扫描

主动:
利用TCP/IP上的指纹选项决定远程操作系统的类型。这可以和一个端口扫描结合使用,
Nmap通过向主机发送不同类型的探测信号,缩小查找的操作系统系统的范围。主动指纹验证包括使用:
1.FIN探测技术发现目标机的响应类型。 W 两个RST L 一个RST
2.BOGUS的标志探测,发现远程主机对发送的带有SYN包的不明标志的反应,
3.TCP 初始序列号(ISN)取样发现ISN数值的样式,

命令如下:
NMAP –O 192.168.1.102

被动:
在这里插入图片描述判断主机系统方法很多,主要有这几种:
1.TTL初始值
Windows 128
Linux 64
unix 255
2.是否区分大小写
区分:Linux
不区分:Windows
3.不同类型的系统默认开发的服务不同
如开放了smb(445)、iis初步认为是Windows
4.发FIN包判断
Windows开放与不开放端口,对fin包都会回应
Linux开放端口,对FIN包无反应
5.TCP初始化序列号规律
6.分析http回应包中的server字段,携带服务器的系统信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值