锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
再解CTF流量分析题工控

作者: 佚名  日期:2018-07-18 19:04:55   来源: 本站整理

前言

最近有个工控安全大赛,老板让我们参加。虽然参赛的经验少,但谁叫我们是研究流量分析的呢,硬着头皮也得上。于是乎开始找题刷,然而互联网上工控CTF的题不多,只能是有一道就狠劲儿地啃一道。“工匠安全实验室”(ID:icsmaster)在今年年初解析了一道工控业务流量分析题(见传送门),遂啃之。

正文
我们先来理一理他的解题思路,总结如下:
先过滤出属于工控业务的流量包,在wireshark中直接进行端口过滤,命令为tcp.port in {102 502};
数据包中存在大量重传的包,怀疑有中间人攻击的可能,编写脚本,判断是否存在中间人攻击行为;
排除S7comm中存在flag的可能;
根据modbus协议数据包中出现的非常见功能码,判断并找出异常数据包;
对异常数据包的data字段进行解密。
本人所做的工作主要集中在第二、四、五点。一是进一步将解题思路进行脚本话;二是提出了新的检索异常数据包的方法;三是对data字段的解密做了更进一步的解读。
在第二点中,原文利用scapy库来排查中间人攻击的数据包,代码如下:

可以看到,通过检测重复seq和ack号来查找重放的数据包。本人重敲了这段代码,在运行的过程中,发现这段代码的运行时间很长,甚至会出现报错,因此换了一个库,利用dpkt库重写了这个代码,见脚本midder_check.py,如下:
运行方式:python ./check_middler.py  pcapfile

同样的功能,但这段代码的执行效率快得多。
在第四点,本人提出了新的找异常数据包的思路。根据工控业务流量的特点,只要工业生产的模式固定,数据包按照一定地规律出现,那么其中传送的数据包种类和数据包载荷数据一定是固定的。可以从最简单的数据包长度的类型着手,本人刚好在此有所积淀,可以访问这篇文章,拿来小改一下,即可使用。见脚本ics_packets_analysis.py运行该程序:
运行方式:python ./ics_packet_analysis.py –pcapfile=./ics.pcapng -i

可以看到,这里有很特殊的一个数据包出现,输入这个长度,对该数据包进行进一步排查,有:

直接打印出了这个数据包载荷内容且将这个数据包以pcap的形式存储下来,用wireshark打开,刚好是原文中找出的异常数据包,如下图所示。 

直接打印出了这个数据包且将这个数据包以pcap的形式存储下来,用wireshark打开,刚好是原文中找出的异常数据包,如下图所示。

下次要再出这类题,用这个脚本一下就跑出来了,是不是很爽。下面就是对data数据的解密了。
第五点,要对这个陌生的字符串解密,一开始确实没啥思路,好在原文给出了解密脚本,见脚本format_transfer.py。

其中的关键代码是:chr(int(‘{:08b}’.format(ord(data))[::-1], 2))。这句话代表将data中每一个16进制数转换成二进制并将二进制序列倒序排列并得出倒序的数值,最后将这个数值转换成字符串(其实倒序的这个数值即是ASCII表中的值了)。
本人试着总结了一下对字符串解密的解题思路,由于flag一般是一串可读的字符串。要将一串不可读的16进制数,转换成可读的一串数,大概率从bit位的顺序做文章,更难一点,解密出的字符串有可能是编码的字符串,再解一次码就行了。如何解码呢?在github上我找到了一份较全的解码脚本,该脚   本支持如下所示有这几种解码方式:

运行方式:python3 ./try_decodings.py ZmVuZ3poZW5nMTIzNTY=

下次如遇到需要解码的字符串,即可用此脚本自动完成了。
本人所有的脚本程序,见github:https://github.com/scu-igroup/ctf_ics_traffic
总结
最后,稍作总结一下,由于工业生产模式固定,其中传送的工控网络数据包类型是有规律可循的,因此要从工控业务流量中找出异常的数据包并不难。需要注意的是,flag可以藏在一个数据包中,也可以藏在几个数据包中,在几个数据包中的时候,做一次字符串拼接就行了。字符串解码这一块,笔者只能说,理清思路,多多尝试,相信做得多了,自然会有感觉。最后,师傅们如果有更多的套路,欢迎一起讨论。
 



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等