工控逆向分析
工控CTF中常见的逆向分析题型主要围绕工控概念为主,其中出现较多的为工控程序分析、固件分析、无线电中频谱、波形以及编解码分析等题目。
程序分析
枢网智盾2021《工控恶意程序》
ida打开发现该地址会执行下载操作,访问发现该地址已失效
查看sub_401041发现执行了windows的api操作,打开http连接,发送请求和接收响应,然后写文件。
执行完之后返回,查看是否执行成功,成功的话继续执行下一步操作
否则成功直接退出。
将该http地址改为本机127.0.0.1,构造下载请求后,程序执行shellcode,获取flag
将hex进行修改
将ip改为127.0.0.1 多余部分使用00填充,然后应用更改
更改成功
最后编辑-修补程序-修补程序应用到输入文件
然后本地搭建http服务,并将题目中的sc.jpg放入后运行
获取flag
APP应急分析
枢网智盾2021《APP应急分析》
题目中说APP会进行加密操作,所以打开jadx搜索加密算法关键字
比如:encode、encrypt
发现/sdcard/encrypt.jpg
并且题目里有encrypt.jpg
进去发现了aes_key
查看调用aes_key的具体函数,发现打开了一个文件,然后使用AES_key当作密钥去进行加密
然后将加密后的图片encrypt.jpg放入cyberchef,输入APK里的aes_key MyDifficultPassw
因未发现IV,选择空,mode选择ECB(没有偏移)。输出后,先查看1字节文件内容
发现为base64编码
经过3轮base64解码后,发现文件头为JFIF
然后转为图片,发现手机号
固件分析
枢网智盾2021《恶意的连接》
题目为bin文件,使用7zip打开解压该文件,发现为固件包目录
需要寻找后门程序
一般后门会在web、bin、sbin目录,
按修改日期寻找发现tmp目录下有个backdoor文件
导入010发现为ELF格式文件,
将该文件导入ida发现函数特别少,怀疑是加了壳。
然后再导入010发现upx关键字
使用upx脱壳
.\upx.exe -d .\backdoor
再次放入ida后shift+F12查看字符串,发现存在域名的3个地址
查看该域名,并追踪调用的方法
追踪发现commServer函数
继续追踪发现v3=36667 在return处返回连接请求的域名+端口。所以端口为36667
flag{ZWNoby5ieWV0dDx.com:36667}
无线电分析
出题点主要以频谱分析、波形分析和编解码为主
频谱分析-2020ICSC济南站《泄露的信号》
题目给出文件为ppt。
首先使用010打开文件,发现是有规律的16进制
然后尝试使用Audacity打开文件
使用默认配置导入后,发现波形图没有异常。
然后改成频谱图
缩小发现flag
鼠标点左右键,缩小放大,获取全部flag
看起来比较模糊,可以使用频谱图设置更改参数,获取较为清晰的flag
波形分析-2020ICSC石家庄站《奇怪的声音》
题目给出为mp3文件
使用工具导入音频文件
听出是发电报的声音,分析为莫斯电码。将波形转成0和1
将0替换成. 1替换成-
11100 11 00000 00111 11100 001 101 11000 00001 0000 11000 10000
然后摩斯电码进行转换,得到8M528UK74H76
发现该字符串不对,后分析发现音频结尾的声音在最前面,猜测可能为倒序排列
转换为43H63KD285M2,发现也不对,改成小写字母提交正确
编解码-ICSC深圳站2019《隐信道数据安全分析》
题目为mp3文件,因题目名为隐信道。并且mp3能正常播放。在不影响音频正常播放的前提下,能修改的地方也只有私有位private bit正常为0
将文件拖入010查看,发现私有位private bit存在为1的情况。
将文件私有位进行提取
也就是FRAME中的mpeg_hdr中的private_bit
1、首先观察发现FRAME前面有一段数据,先将该数据删除
(选中会发现文件为115128bytes)
2、将该mp3文件拖入cyberchef删除0到115128bytes
3、删除后发现开头的数据和010对应,都为FRAME的数据。然后to hex转成16进制,提取16进制中private_bit对应的字节
4、观察发现private_bit对应的值在第六个字节中显示
5、然后提取该字节内容,发现可成功提取出0
6、然后进行"应用每一行"
7、将该数据转成2进制,发现flag
工控组态分析
解题要点
1、全局搜索关键文本,如flag
2、打开组态项目后优先查看窗口内容、组态命名、用户名/密码、组态脚本等适合用来放置flag的功能
3、窗口中flag可能会故意被图片或者其他组件挡住,需要注意窗口中所有组件的位置是否正常
4、用户密码通常以星号显示,可以使用各类星号查看器去获取密码
2021枢网智盾.组态程序分析
题目给出PCZ文件
打开发现为油气集输首站.PCZ文件,使用力控恢复,发现失败
解压该文件后,利用力控的搜索功能选中文件夹然后选择开发。
打开查看主窗口未发现flag
查看功能处的用户管理,发现admin密码
使用星号查看器读取密码zjbz2021@
2021ICSC杭州.奇怪的工艺图
题目为工艺.jfif,发现压缩文件
将解压后的文件放入010,发现BCAF271C的头为疑似为7z文件
载入正常的7z文件,头为377abcaf27
将377A插入,
改成377A
然后即可解压
然后使用SIMATIC WinCC打开PDT后缀的文件
或者载入.mcp后缀文件
选择图形编辑器,发现文本栏有flag
查看下一个图形编辑器,发现flag
工控梯形图
解题要点
1、需要熟悉常用的算数运算、位运算、逻辑运算。
2、了解计算机各类型数据的存储方式,如整数型、实数型、逻辑型。
3、了解类型转换时强制转换和等价转换的区别。
4、稍微了解梯形图中的一些常见元器件的含义,如开关。
5、安装常用的仿真软件,如博图、西门子、autothink、ispsoft等。
算数运算:
加+ADD、减-SUB、乘*MUL、除/DIV、余%MOD
开方SQRT
正弦SIN、余弦COS、正切TAN、余切COT、正割SEC、余割CSC
反正弦ASIN/ARCSIN、反余弦ACOS/ARCSIN、反正切ATAN/ARCTAN、反余切ACOT/ARCCOT、反正割ASEC/ARCSEC、反余割ACSC/ARCCSC
位运算
反~NOT 、 与&AND 、 或|OR 、 异或^XOR
逻辑运算
大于> 、 小于< 、 等于= 、大于等于 >= 、 小于等于<= 、 不等于!=/<>
2020之江.梯形图分析
打开题目,发现为ap16的文件,使用TIA博图打开
打开程序块的main
选择启动仿真、监视并运行
题目中说IN1接口数据为886,所以填写数据到IN1中
然后发现out口输出了数据
2021枢网智盾.简单的计算
发现文件存在Untitled2.hpf,使用autothink打开
然后点击仿真和运行并根据题目将IW2的值输入13600
根据题目要求求出IW4的值,发现IW4乘以3.09=V2
V2=V7减V5 (V5为固定,V7题目给出为61802.06641)
则V2= 61799.99964064
IW4乘以3.09=V2
算出IW4=19999.9998837 约等于20000
2021ICSC杭州.简单梯形图计算
该题目为smart后缀文件
已知v2=3 v5=70 v8=-1
需要求出v6和v11的值
首先根据下图计算
v1=10+20=30
v3=v1/v2=30/3=10
v11=v5-v3=70-10=60
v12= v11整数到字节 = 60 = 00111100
v10= v12取反字节 = 11000011
v9= v10字节到整数 = 195-256 = -61
v7= v9-v8 = -61-(-1)= -60
v6= v7/v1 = -60/30 = -2
注:
v12= v11整数到字节 = 60 = 00111100
v9= v10字节到整数 = 195-256 = -61
2021eeics.四类.梯形图
使用ispsoft软件打开
iw2=6
d10=4.65258659424
d30=1.16314665
d40=0.00589931
总结
本篇通过从工控程序分析、固件分析、无线电中频谱、波形以及编解码分析、组态分析、梯形图等题目有助于更好的入门工控CTF。
请登录/注册后在FreeBuf发布内容哦