(网络安全)主动信息收集 第四层

Posted xialuoxialuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(网络安全)主动信息收集 第四层相关的知识,希望对你有一定的参考价值。

由于大多数边界路由器以及防火墙 会对ICMP数据包无应答,因此我们考虑从传输层角度来发现、探测目标主机

基于TCP/UDP进行探测

  • 优点:
    - 结果更可靠一些
    - 被防火墙过滤的概率较低

  • 缺点:
    - 基于状态过滤的防火墙 可能过滤扫描
    - 全端口扫描速度慢

  • TCP探测思路
    - 未经请求的ACK——会收到目标主机返回的RST包 来判断目标是否在线
    - 发送SYN——对方可能会返回SYN/ACK、RST

  • UDP探测思路
    - 向目标主机发送一个udp数据包,如果目标的端口在主机上没有开放,目标主机会返回一个ICMP数据包告诉你你端口不可达

TCP发现

TCP是要经过三次握手之后,双方才开始进行通信
此时当我们没有进行连接,直接向目标主机发送ACK数据包

目标主机会返回给我们一个reset字段


首先利用Scapy构建数据包

i=IP()
t=TCP()
r=(i/t)  //构造数据包
r.display()
r[IP].dst =192.168.1.1  //设置地址
r[TCP].flags='A'
r.display()
a=sr1(r)

a.display()//查看包中的内容

收到目标主机返回的数据包,其中标志位(Flags)被置为了reset,由此我们得知 目标主机是存活的

同时我们通过抓包再看一下 可以看到标志位被置为reset

之后修改目标端口为11111(大概率不开放)
发现同样可以收到reset包

但有时此方法不奏效
(如下图对自己同一网段下的虚拟机发送同样的ack数据包)

同时 对刚刚不能够收到reset数据包的目标主机来说 更换端口也不会收到reset包
因此有结论: 能否收到来自目标主机的reset包与其端口是否开放无关 与目标主机对畸形数据包的配置有关 但同时 发现ping命令可以探测到目标主机在线 因此 我们要 通过多种工具对主机进行扫描

nmap

nmap 192.168.31.1-100 -PU3333 -sn //sn表示不进行端口扫描 udp方式


笔者进行第二次扫描时,发现又多出了几个结果 说明多次重复探测是有必要的
对目标地址进行扫描的过程中,进行抓包 又一次印证了 nmap使用的udp探测同样使用的原理是 如果目标主机的端口没有开放 但是主机存活 会返回一个ICMP端口不可达数据报 (同样的 nmap会对存活的主机再进行一次 域名反向解析 )


nmap 192.168.31.1-100 -PA3333 -sn //ack方式

没有发现任何主机

原理也是一样 发送畸形数据包 使目标主机返回一个 reset包 不过看来没有奏效

Hping3

hping3 -2 1.1.1.1 -c 1 //使用 udp进行探测

hping3 1.1.1.1 -c 1 (TCP)
可以看到的是 与nmap不同 hping3将一个标志位全为0的tcp数据包发往了目标 等待目标返回信息

小结:在目标主机设置禁止ping的情况下,我们可以考虑利用TCP/UDP协议来继续对目标主机进行探测
TCP方法的思路是 向目标主机发送畸形的TCP数据包 对方会返回 reset数据包
UDP方法的思路是 向目标主机关闭的端口发送数据包 对方会返回一个ICMP报文告知你端口不可达 从而判断目标主机是否存活

以上是关于(网络安全)主动信息收集 第四层的主要内容,如果未能解决你的问题,请参考以下文章

kali linux之主动信息收集(三层发现,四层发现)

27主动信息收集--发现

信息收集之主动信息收集

主动信息收集

主动信息收集-发现

【网络协议笔记】第四层:传输层(Transport)以及UPD协议简介