基于Yakit平台开发IRTeam插件exploit 西门子PLC

admin 2022年2月10日01:32:50评论215 views字数 1696阅读5分39秒阅读模式


基于Yakit平台开发IRTeam插件exploit 西门子PLC

Yakit&IRTeam

基于Yakit平台开发IRTeam插件exploit 西门子PLC


     Yakit是基于yak语言开发的网络安全单兵工具,旨在打造一个覆盖渗透测试全流程的网络安全工具库。受限于Yak使用形式,用户必须学习 Yak 语言并同时具备对安全的一定理解。为了让 Yak 本身的安全能力更容易被大家接受和使用,为Yak编写了gRPC服务器,并使用这个服务器构建了一个客户端:Yakit,通过界面化GUI的形式。

      IRTeam作为国内一支工业安全红队,主要致力于PLC/DCS工业控制系统的脆弱性研究和攻击链打造,此次受360漏洞云与Yakit联手活动邀请,针对Yakit单兵工具尝试把IRTeam现有成果中一款针对西门子S7-200 SMART的Payload移植到Yakit工具上。


基于Yakit平台开发IRTeam插件exploit 西门子PLC

系统结构和参数

基于Yakit平台开发IRTeam插件exploit 西门子PLC


基于Yakit平台开发IRTeam插件exploit 西门子PLC


1、一台西门子PLC(S7-200 SMART) IP:192.168.2.10/24

2、一台TPLINK二层交换机

3、一台安装Yakit的PC(Windows 10)IP:192.168.2.110/24

 

安装过程:

https://www.yaklang.io/products/quickstart


基于Yakit平台开发IRTeam插件exploit 西门子PLC

评测过程

基于Yakit平台开发IRTeam插件exploit 西门子PLC


01

PLC探测

基于Yakit平台开发IRTeam插件exploit 西门子PLC


1、进入Yakit工具后,选择“基础安全工具”中的“扫描端口/指纹

2、在指纹IP扫描目标中填入被扫描PLC的IP,此评测中我直接输入PLC的IP。

3、在“扫描端口”里填入常用PLC开放的端口,例如 80/102/443/3389 等。

4、然后点击开始扫描

基于Yakit平台开发IRTeam插件exploit 西门子PLC


可以看到上图192.168.2.10这个设备上端口的状态,只有102端口开放,其余都是关闭的。如果是多个IP地址,还可以在扫描结果页面直观看到所有资产开放的端口号。如下图:


基于Yakit平台开发IRTeam插件exploit 西门子PLC

    

        但在工控指纹这部分,并没有集成ICS的NSE,也希望Yakit在指纹部分开放用自己挂载的NSE脚本,方便某些特殊领域的资产识别。

       从上图也可以看到端口102开放,西门子的PLC常用端口是102,所以可以初步确定PLC的厂商。


02

开发IRTeam插件

基于Yakit平台开发IRTeam插件exploit 西门子PLC


        进入插件仓库,移植一个西门子PLC的Payload到Yakit工具插件上,因为Yakit插件支持Yak语言(近似Golang语言),所以简单看了一下语法和API和参数声明和调用,都是比较简单的,另外对于TCP库封装可以说近乎疯狂的地步。


Yak模块名:IRTeam (这个是我们团队的名字,同时代表工业控制的意思)

描述:就是针对西门子S7-200 SMART此款PLC的运行和停止控制

参数:IP 就是PLC的IP地址(字符串类型),PORT就是PLC开放服务端口(INT类型),CMD就是你exploit时候的发出控制PLC命令(BOOL类型,TRUE就是运行,FALSE就是停止)


     源码部分实现起来也是十分简单,首先通过cli.string等操作获取参数里的内容,然后通过TCP.connect连接PLC并且打开102端口,然后就是先发送2个西门子PLC自有的TASP握手包建立session,然后在判断CMD的数值后发送运行或者停止的Payload。具体结构见下图:


基于Yakit平台开发IRTeam插件exploit 西门子PLC


       经过Yak源代码Payload编写后,选择保存插件。返回到插件仓库可以看到一个YAK的插件,上面写着IRTeam和这个插件的描述,在模块详情中还可以看到作者的名字以及关键字。

       同时在参数上,修改为真实PLC的IP/端口和命令,然后选择“开始执行”,就可以看到西门子PLC的状态会根据你下发的控制命令而改变。如下图:


基于Yakit平台开发IRTeam插件exploit 西门子PLC


PoC视频:



基于Yakit平台开发IRTeam插件exploit 西门子PLC

EDN

基于Yakit平台开发IRTeam插件exploit 西门子PLC


感谢剑思庭大佬给我们写的投稿文章,大家感兴趣可以加大佬微信交流~

基于Yakit平台开发IRTeam插件exploit 西门子PLC


      我们的投稿活动还在进行中,走过路过不要错过,参加即可获得精美小礼物,投稿还有稿费噢~进交流群和投稿添加以下微信即可。

投稿活动详情(Yakit联合HackingClub开启有奖征稿啦~

官网教程:https://www.yaklang.io/products/intro

下载地址:https://github.com/yaklang/yakit

基于Yakit平台开发IRTeam插件exploit 西门子PLC

原文始发于微信公众号(IRT工业安全红队):基于Yakit平台开发IRTeam插件exploit 西门子PLC

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月10日01:32:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于Yakit平台开发IRTeam插件exploit 西门子PLChttps://cn-sec.com/archives/769371.html

发表评论

匿名网友 填写信息