记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

基于Scapy实现西门子S7系列中间人攻击

2020-08-26 21:26
随着工业不断的发展,工业企业间合作不断加强,伴随着工业4.0时代的来临,传统工控系统的物理隔离,正在被不断打破,工控安全也越来得到了重视,无论从法律法规的要求还是企业需求,都在逐步扩大中。但是,搞工控安全研究的人员,和成熟的工控安全产品却寥寥无几,难以满足现状的需求。工控安全是个跨学科的技术,需要结合多方面的专业知识,需要较高的技术上要求。特别是工业控制系统中,协议也存在众多的标准,当然也存在大量的私有协议,比如:西门子的是S7Comm协议,本文将基于scapy库构S7Comm协议数据包来实现对上位机进行中间人攻击。

一、Scapy介绍

Scapy是一个Python第三方库,使scapy我们能够发送,嗅探、分析并伪造数据包。从而可以实现扫描,跟踪路由,探测,单元测试,攻击或网络发现。它可以取代hping、arpspoof、arp-sk,arping等工具来实现攻击,Scapy是一个可构建网络数据包的强大第三方库。

具有以下几个特点:

1.可以通过交互模式,对数据包进行解析研究。

2.可以用来网络数据包嗅探和并根据我们的需求构造packet。

3. scapy已经内置了大量的网络协议构造方法,如:DNS,ARP,IP,TCP,UDP,它可帮助我们非常方便的构造数据包,本次我们将使用scapy中的IP()、Ether()、ARP(),来实现网络欺骗、实现中间人攻击,并使用它来封装上层的工控协议,伪造数据包对上位机发起攻击。

  • IP类

  • Ether类

  • ARP类

  • 代码示例

接下来我们将使用scapy来封装S7comm数据包。

二、S7comm介绍

S7Comm(S7 Communication)是西门子的私有协议,是西门子工业控制通讯协议簇里的一种,S7Comm协议是基于TCP/IP实现依赖于面向工控系统的传输服务。S7Comm协议被封装在TPKT、ISO-COTP协议中,从而协议数据可够通过TCP传送。它用于PLC编程,早期的西门子私有协议S7comm通信,对安全考虑不足。不具备的加密功能,没有任何防止重放攻击机制,可轻易被利用。具体协议结构如下图所示:

三、中间人攻击实现

中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)这种攻击方法是通过各种技术手段将控制目标系统的节点,并将该节点逻辑上串在两台通信计算机之间,这个节点就称为“中间人”。

中间人攻击中我们要分别对上位机和PLC进行欺骗。将上位机和PL的流量同时引入控制节点中,通过控制中间节点来实现传输数据的获取、篡改等。攻击示意图如下所示:

攻击步骤:

1、第一步是利用ARP欺骗篡改PLC、上位机ARP缓存,实现劫持流量,这一步是实现中间人攻击的关键,可根据ARP刷新时间,调整ARP欺骗频率,维持劫持状态。

2、第二步:通过截取的流量的分析,获取工控协议通信内容例如通信端口,传输数值等。

3、第三步:根据获取的协议,伪造PLC设备与上位机数据传输,篡改数值、状态来实现攻击目的。

  • 示例代码:



原文来源:贝安全


知识来源: https://mp.weixin.qq.com/s?__biz=MzUzNDYxOTA1NA==&mid=2247500028&idx=1&sn=8c1944b299e1f91b28fd3cad06549792&chksm=fa93763dcde4ff2b97f5fc7df52e45c8f2bc39d2add2063e4ddce115239b0282354896bb3f04&scene=27&k

阅读:51712 | 评论:0 | 标签:攻击

想收藏或者和大家分享这篇好文章→复制链接地址

“基于Scapy实现西门子S7系列中间人攻击”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄❤

ADS

标签云