通过僵尸扫描判断目标主机端口开放状态

环境准备

  • 使用scapy工具发包
    通过僵尸扫描判断目标主机端口开放状态_第1张图片

  • 攻击主机IP: 192.168.133.66
    通过僵尸扫描判断目标主机端口开放状态_第2张图片

  • 僵尸主机IP: 192.168.133.67 ,僵尸主机不主动与任何机器通信,且满足IP数据包ID自增**
    通过僵尸扫描判断目标主机端口开放状态_第3张图片
    注:用nmap 判断主机是否满足僵尸主机条件,一般早期的windwos XP系统IP数据包ID自增

  • 目标主机IP: 192.168.133.68
    通过僵尸扫描判断目标主机端口开放状态_第4张图片

僵尸扫描

  • 第一步:攻击主机向僵尸主机SYN/ACK数据包
rz1=sr1(IP(dst="192.168.133.67")/TCP(dport=22,flags="SA"))

其中,
rz1 表示僵尸主机返回数据包;
dst 表示僵尸主机IP;
dport 表示端口;
flags=“SA” 表示发送SYN/ACK数据包;

在这里插入图片描述

rz1.display()查看IPID,IPID的值为id,等于0
通过僵尸扫描判断目标主机端口开放状态_第5张图片

  • 第二步:攻击主机修改IP包头的SRC字段为僵尸主机的IP,伪造成僵尸主机给目标主机发送SYN请求
rt=sr1(IP(src="192.168.133.67",dst="192.168.133.68")/TCP(dport=22),timeout=1)

其中,
rz1 表示目标主机返回数据包;
src表示僵尸主机IP;
dst 表示目标主机IP;
dport 表示端口;
timeout 表示超时时间;

在这里插入图片描述
rt.display()查看src和dst
通过僵尸扫描判断目标主机端口开放状态_第6张图片

  • 第三步:攻击主机向僵尸主机SYN/ACK数据包
rz2=sr1(IP(dst="192.168.133.67")/TCP(dport=22,flags="SA"))

其中,
rz2 表示僵尸主机返回数据包;
dst 表示僵尸主机IP;
dport 表示端口;
flags=“SA” 表示发送SYN/ACK数据包;
在这里插入图片描述

rz2.display()查看IPID,IPID的值为id,等于0

通过僵尸扫描判断目标主机端口开放状态_第7张图片
本实验使用的 192.168.133.67 主机不满足僵尸主机的条件吗,IP数据包没有自增
通过僵尸扫描判断目标主机端口开放状态_第8张图片
在满足僵尸主机条件时,当第一步得到的IPID+2=第三步得到的IPID,即可判断目标主机端口开放;当第一步得到的IPID+1=第三步得到的IPID,即可判断目标主机端口关闭

你可能感兴趣的:(渗透测试,网络,网络协议,服务器,安全,linux)