入职的第一场比赛,最后一分钟被超10多名,心态崩了,神仙打架,未进决赛。最终团队排名 25。个人得分 2015分,排名第 9。
黑客通过modbus协议向他的同伙发送了一条秘密信息,通过流量设备我们抓取到了相关的流量包,你能根据流量包找到这条信息么?
题目分析 modbus 协议,先筛选 modbus 协议,然后随便选择一条数据包右键进行 TCP 流跟踪,如下:
可以直接看到 flag 字样,直接筛选即可。
请对提供的流量进行分析,发现可能存在的异常,找出flag,提交格式:flag{xxx}。
第一步:对长度排个序,看异常数据包的长度会不会跟别的数据包有差异。发现长度都是 861,看不出什么。
随便截图里找一条数据包,右键TCP流跟踪:
分离TCP 流查看,发现几段16进制片段:
拼接后 Hex 解码得:
提交 flag {EnergyRevolution} 答案正确。
某工厂的工程师发现有一台西门子设备存在资源异常,请分析并找出异常流量的数据包编号。
题目提示是资源异常,说明响应包有对应错误状态码:
回包 error code 分类:
0x00 No error 没有错误
0x81 Application relationship 应用关系
0x82 Object definition 对象定义
0x83 No resources available 没有可用资源
0x84 Error on service processing 服务处理中错误
0x85 Error on supplies 请求错误
0x87 Access error 访问错误
对照状态码,所以应该去筛选 0x83, 筛选命令为:s7comm && s7comm.header.errcod == 0x83
得 flag{213056}, 答案正确。
某工厂的工程师发现有一台设备存在异常,抓取流量后发现了黑客的端倪,你能协助他分析黑客留下的痕迹吗?
这道题是赛后做出来的。题目标题为 OmronAttack, 自然先筛选 Omron 协议数据包:
我有个习惯喜欢先对数据包长度排个序,看看有没有长度不同的数据包
看到8条可疑数据包
不像是简单的 HEX 解码,先根据流量包编号从小到大拼接数据
分析最后一个数据包的 ahevf nu): ,两两交换发现是 have fun:) , 这里可能是在提示我们对上面加密字符串字母进行两两交换,编写脚本得:
f94ScF/rv0jUS2+fs04MH+xChkzBMy4dI7R7BucEM1CkzcyJU1Au3XnH 这串密文如何解密呢?秘钥肯定是在流量里,我习惯开启 tcp 流跟踪去过滤筛选一下:
发现特别多 FINS………, 分流导出两份数据文本 :
Vscode分别打开这两个文件把 FINS………等大量相同的字符串全局替换成空字符得如下:
9600 端口 -> 49921 端口发现一串可疑字符串。5ae1e174746f6f64647373a5a56b
(tips: 无头绪的时候不妨试试流跟踪, 刚才找的加密字符串通过流跟踪也很快能找到)
5ae1e174746f6f64647373a5a56b 看着像md5编码,但是数了一下一共有24个字符,md5常见是16或者32个字符,发现中间有好多重复的,去重复得 5ae1746f6473a56b,刚好是16位,拿去md5 解密一下:
按理来说,出题方给的 md5 肯定能解开,是不是漏了什么信息。回想一下,我们密文之前做了两两交换,是不是说这串 md5 也需要两两交换才是正确的?使用刚才编写的脚本得:
a51e47f646375ab6,再拿去解密一下:
解密成功,提示rabbit, 说明是现在密码学中的 rabbit 加解密,使用 CyberChef 工具进行解密:
为什么解密不了?试了好几次,都没效果。回想自己开发数据加密如AES, RSA 加密,喜欢把加密数据再 Base64 编码,或许这里也对加密数据做了一次 Base64 加密,最终结果如下:
成功解开此题 flag{40d3b450-8ea3-46bb-b2b8-e69a3d7a50b3}
小李刚入门自动化领域,学习了组态编程技术,他将一段秘密信息放在了组态文件中并把他藏了起来,你能把他找出来么?
题目给了一张图:
看图片大小,可以排除是图片宽高遮挡问题。使用 binwalk 看下 png 是不是藏了东西:
啥也没有。试试 CTF的图片隐写题中有一种常见的题型——基于LSB原理的图片隐写。使用zsteg 工具,输入 zsteg -e b1,rgb,lsb,xy flag.png -> res.zip,解压res.zip 里面有一个12.cmp 的文件。
结合题意,是组态王软件的备份文件,使用组态王恢复工程:
组态工程文件被黑客篡改,导致程序画面功能出现问题,请协助分析组态程序,修复画面功能至正常。答案为flag{修复画面的脚本命令内容转换成HEX格式的前8位}
这类工控题要下载各种工控软件,这类软件还大装半天,比赛装软件就半天。这题是别的师傅做的,temp.MCP 查找一下对应软件打开,题干提示,画面出错,要修复画面的脚本命令内容,属性可以看到启动脚本、循环脚本、退出脚本这种。使用McgsPro版本组态软件打开, 仿真跑起来后测试功能,发现 有个窗口无法关闭
还可以看到这里脚本程序
看官方文档找到关闭窗口的脚本函数是这个
然后hex一下 前八位就是 21436C6F, 即 flag{21436C6F}
初入自动化的小王被单位的工程师出题,假设FC1块的IN1接口DB1.DBW0数值为900,IN2接口为360,IN3接口为20后,FC块将获取到接口的数据并加以计算最终由OUT接口DB1.DBD6输出结果是什么? flag格式为flag{}。
打开文件发现有一个.ap16的文件,使用博途V16打开该文件:
该题去年振兴杯考过一模一样的题,签到题。打开PLCSIM Advanced软件,以及博途v16软件。
将题目中的FC1块的IN1接口DB1.DBW0数值为900带入其中运行仿真程序计算出结果:
得到flag: flag{1.985294}
附件是一个交通信号灯的一些资料,请你分析出当按下启动按钮后,信号灯启动控制过程中,信号灯亮、闪、灭的情况。方向及状态代号如下:东西:EW, 南北:SN, 红灯:R ,绿灯:G ,黄灯:Y, 亮:T ,闪:L 灭:F ,时间:S (1S,2S,3S,4S,5S),交通灯在一个周期内,按红绿黄灯顺序依次找出东西南北红绿黄灯的亮灭情况。如流程:南北红灯亮20S灭,绿灯亮10S闪烁灭,黄灯亮4秒闪烁3秒灭,可写为:SNRT20SF-GT10SF-YT4SL3SF。注:正确答案写成EWXX-XXXX-XXXX-SNXX-XXXX-XXXX为正确的flag。Flag格式为:flag{}
给了两张图,一份交通灯.doc 资料,但是word资料打不开。010editor 查看交通灯.doc发现文件头为 AC1024, 是 CAD (dwg),文件头:41433130。
word 转换为 dwg 后缀拿去在线 cad 转 png 网站进行转换得:
东西红灯Q 0.5, 东西绿灯 Q 0.3, 东西黄灯Q 0.4,南北红灯Q 0.2,南北黄灯 Q0.1, 南北绿灯Q 0.0,
结合这篇文章理解:https://www.wolai.com/ctfhub/s3A1zqErH54BGuyeWbWFgX
程序段遇到 T37 就会激活定时器。程序段2、6、7为连续时间,3、4、5为连续时间
程序段2:0~35s --> T35F
程序段6: 35 ~ 50s亮, SM0.5 提供一个周期为1秒钟的时钟脉冲,50 ~ 53s 闪烁 -->T15SL3SF
程序段7:53~60s亮 -->T7SF
程序段3:0 ~ 27s亮,27~30s闪烁 -->T27SL3SF
程序段4:30~38s亮 -->T8SF
程序段5:38-60s亮 -->T22SF
考虑到不确定的道路方向以及黄灯时间较短的情况,我们可以做出如下猜测:在第一组,可能为东西方向,红灯亮35秒,绿灯亮15秒并闪烁3秒,然后黄灯亮7秒。在第二组,同样可能为东西方向,红灯亮22秒,绿灯亮27秒并闪烁3秒,接着黄灯亮8秒。
两种情况都提交一下,发现 flag{EWRT22SF-GT27SL3SF-YT8SF-SNRT35SF-GT15SL3SF-YT7SF} 正确。
车间最新设计了一个可转动圆盘设备,并设计控制程序使得转盘由西门子1200系列控制,该设备由一个转盘主体、启动程序按钮和三个限位开关组成;设备初始状态如图所示,当按下启动按钮后程序启动,限位开关1-3分别控制输入点位I0.1-I0.3,当触点与限位开关接触时,对应输入点位通电;启动按钮控制输入点位I0.0;设备转动分为内圈和外圈,转盘以逆时针转动,Q0.0输出点位控制内圈转动,Q0.1控制外圈转动,内圈转动会带动外圈一起转动,外圈转动是与内圈的相对转动(例如外圈内圈均转动90度;,则内圈转动90度;,外圈在内圈带动转动的90度;之外还要再相对于内圈转动90度;也就是总共转动180度;),触点1镶嵌在内圈上与内圈一同转动,触点2镶嵌在外圈上同外圈一同转动,转盘转动一圈所需时间为12s,操作员需要使用启动按钮方可启动程序;现在指定操作员对转盘进行模拟转动测试,操作员需要在转盘停止后按下启动按钮令转盘设备启动,直至转盘设备与图中初始位置相同后方可不再运行(即触点1、2对应如图位置)。flag格式为:10#flag{启动所需长按最短时间_总共按下按钮次数_mw3_设备停止时两个触点与中心连线最大夹角(小于等于180度;)}
开局一张图,一脸懵,无思路。
黑客通过爆破SSH的方式成功入侵了工控服务器,请从日志中分析出攻击者的IP地址,确定成功爆破出登录名/密码的时间,flag即为该时间,如9:36:33。flag提交形式为flag{xxxx}
签到题。 筛选Accpted 查看黑客爆破登录成功的日志,发现有5条。
那么是哪一条呢?里面登录成功的日志有可能是正常用户登录的。 我们要想到黑客爆破自然先会有很多密码错误的日志,然后再有一条密码正常的日志。从而排除得到 19:32:01 是黑客首次爆破成功的时间。
答案为 flag{19:32:01}
操作员打开设备后,发现点击设备运行按钮后,设备不能正常启动,请帮助操作员分析程序,修复其中的问题。flag为导致设备故障的控制点所直接关联的两个子程序名称_按钮控制点名称的组合,例如:flag{[PID_count(SBR6)]_[PRT(SBR19)]_M0.0}。
看不懂,不会做
某电力系统部门发现来历不明的病毒攻击,样本中包含可疑攻击行为,请对样本协助分析,找到隐藏在攻击代码中的flag。提交格式:flag{xxx}
使用 64 位IDA打开,字符串搜一下flag试试,发现Py字样,是python打包的程序。
使用开源的工具 pyinstxtractor.py, 下载链接 https://github.com/extremecoders-re/pyinstxtractor
看到一个 control 控制文件,可能是黑客留下的,记事本查看发现flag:
安全公司截获了某个针对电力系统攻击的样本,样本会向指定设备的8个IOA发送控制命令,flag就隐藏在IOA中。提交格式:flag{xxx}
32 位的文件, 使用32位的IDA工具打开进入main函数:
查看伪代码。经过分析发现,将v3数组的值作为shellcode传入,结合题目意思分析, 看到v3数组类似flag,R键转字符观察并提取出来。
得:flag{f30l7a1g}
一些厂商为方便调试和监测,可能会在产品上保留“后门”,这也为产品带来了较大安全隐患。请对提供的固件进行分析,找出其中可能存在的后门口令。flag即为口令字符串,提交格式:flag{xxx}。
题目提供一个 OCR 文件,放入 ida 中。黑客留后门,可以猜测可能存在ssh 连接,字符串搜索SSH 可以看到如下截图:
点击SSH 跳转如下:
发现了存在 SHH 的公钥和私钥, 下面还有一个secret 字符串。
查看该函数,可以断定这是黑客后门行为,该秘钥就是flag
故答案为 flag{Ovation35}
某公司收到勒索邮件,经过分析查验后发现内网中并没有勒索病毒的痕迹,网管小张研究后发现疑似黑客对工控路由器进行了攻击,通过技术手段获取到了路由器固件,请帮助小张分析出固件并且尝试找出被加密的文件,提交格式:flag{xxx}。
一脸懵,不会做…