纵横网络网址:
https://game.fengtaisec.com/
1 Modbus协议
黑客通过外网进入一家工厂的控制网络,之后对工控网络中的操作员站系统进行了攻击,最终通过工控协议破坏了正常的业务。我们得到了操作员站在攻击前后的网络流量数据包,我们需要分析流量中的蛛丝马迹,找到FLAG,flag形式为
flag{}
下载pcap文件。
方法一:
直接找modbus协议 ,直接length进行排序,长度117也比较可疑,打开就是flag
点击追踪流-》TCP
方法二:
拿到流量分析的文件,观察到他现实读取了线圈和保存寄存器和输入寄存器,读取了离散寄存器,题目介绍到他通过协议破坏了正常的业务,那么就是他通过功能码写入或者修改了寄存器数据,目前学习知道的寄存器的功能码有三个,03,06,16。
03:读取
06:写入单个
16:写入多个
使用wireshark语句查询他是否写入了什么。
语句:modbus.func_code06,没有06的流量包
在读取功能码16
语句:modbus.func_code16
可以看到他有写入多个寄存器的行为,而且还返回异常了,查看写入的数据,得到flag:TheModbusProtocolIsFunny!
2MMS协议分析
工业网络中存在的异常,尝试通过分析PACP流量包,分析出流量数据中的异常 点,并拿到FLAG,flag形式为 flag{}。
排序先看下最大的,发现是个图片,右键复制为text出来
base64的png转图片:https://www.6api.net/tool/base642pic.html
http://m.91tool.com/base64&wd=&eqid=e133192b0003dd520000000664869e4b&wd=&eqid=9539a91e00075c7000000006657674c2
参考:https://blog.csdn.net/qq_61768489/article/details/126230999https://blog.csdn.net/weixin_46342884/article/details/125362773
3大工UDP协议
在进行工业企业检查评估工作中,发现了疑似感染恶意软件的上位机。现已提取出上位机通信流量,尝试分析出异常点,获取FLAG,flag形式为
flag{}。
下载文件得到是一堆UDP包,并没有发现异常长度数据包
过滤UDP内容中flag关键字得到关键数据包
udp contains “flag”
右键-追踪udp流,发现flag前后有一个16进制,666c61677b37466f4d3253746b6865507a7d
16进制转换成字符串得到flag:
https://www.sojson.com/hexadecimal.html
4工控蜜罐日志分析
工控安全分析人员在互联网上部署了工控仿真蜜罐,通过蜜罐可抓取并分析互联网上针对工业资产的扫描行为,将存在高危扫描行为的IP加入防火墙黑名单可有效减少工业企业对于互联网的攻击面。分析出日志中针对西门子私有通信协议扫描最多的IP,分析该扫描组织,Flag为该IP的域名,,flag形式为
flag{}。
题目解题思路:
就是给了日志找针对西门子私有通信协议出现最多的ip 查询其域名,西门子私有通信协议是S7COMM
IP反
查域名:太久了 已经不准确了
https://www.ipip.net/ip.html
Falg:
flag{scan-42.security.ipip.net}
参考:https://blog.csdn.net/mochu7777777/article/details/120261252
5 ICMP协议分析
某厂区遭到黑客恶意扫描,此为安全设备截取的一部分流量包,请尝试分析该流量文件,帮助安全人员找到黑客的行为轨迹,并找到隐藏的FLAG,flag形式为
flag{}
将下载的文件改为pcap后缀,用wiresahrk打开,搜索icmp类型的包只有5个,第一个data为空,其余四个Data一样,即为Falg
flag{2122232425262728292a2b2c2d2e2f30}
6 Modbus协议流量分析
黑客通过外网入侵到工厂的控制网络,之后对工控网络中的操作员站系统进行了攻击,最终通过工控协议破坏了正常的业务。我们通过监控工具得到黑客攻击前后的网络流量数据包,我们需要分析流量中的蛛丝马迹,找到FLAG,flag形式为
flag{}。
过滤modbus,然后查看tcp流,里面有这个。
flag:
flag{Easy_Mdbus}
7简单Modbus协议分析
由于操作员操作不当导致化工车间蒸馏塔控制器程序出错,请分析错误程序查找错误点并获得flag,flag格式为flag{}。
在流3里面各种 没找到啥有用信息
可以直接strings出来flag的16进制数据
strings t3.pcap|grep 666c6167
666c61677b44477377546667793147443233366673327366463264736b4c6e677d转为字符串为:
https://www.sojson.com/hexadecimal.html
flag{DGswTfgy1GD236fs2sfF2dskLng}
8 Modbus采集分析
安全巡检工程师会对控制设备运行情况进行检测分析,某日突然在流量中发现攻击者截取了工程师站采集数据的命令,并将采集命令进行了恶意篡改,导致上层无法获取设备正确的运行信息,影响企业正常生产运行,请分析出被篡改的恶意采集数据报文,获取flag。flag格式为:flag{}
题解:这题脑洞太大,感觉只有出题人能做出来,看了writeup,这里记录下
(1)打开数据包10.pcap,发现sourceip为192.168.1.55,控制器为:192.168.1.254,通信端口为502,使用modbus协议。
(2)筛选modbus协议和地址为192.168.1.254的,因为题目篡改了采集命令,因此只看发送包。然后按照length进行排序,查看长度异常的包,发现长度为155的包很少,分析长度155的发送包发现6条数据包中除了group1的数据不一样,其余都相同。
(3)将这6条包的group1 中的reference number按照16进制提取出来如下:
7a9cf684
0419dc54
90ee2384
072c4358
8a0230a2
92541671
(4)然后按照顺序将前5条包的信息进行拼接如下:
7a9cf6840419dc5490ee2384072c43588a0230a2
(5)将拼接后的字符串作为16进制,转换为32进制:https://8jz.cn/?d=7a9cf6840419dc5490ee2384072c43588a0230a2&form=16&to=32
32进制为:FAEFD10437E5947E4E20EB23B2504C52
(6)将转换后的字符串作为待解密字符串,将流量文件中的第6条提取的gourp1作为解密密钥:92541671(16进制)
http://tool.chacuo.net/crypt3des/
9 工控安全取证
有黑客入侵工控设备后在内网发起了大量扫描,而且扫描次数不止一次。 请分析日志,指出对方第4次发起扫描时的数据包的编号,flag形式为
flag{}。
题解:打开文件发下是乱码,file查看文件得知是pcap文件
使用wireshark打开capture.log文件,筛选icmp包
第4次发起扫描可以理解成两个意思:
根据题目描述可以理解为两种意思:
(1)一个IP的第四次扫描
(2)第四个IP的第一次扫描
分析流量包,发现了192.168.0.9、192.168.0.199、192.168.0.1、192.168.0.254共四个,流量包前面大部分都是192.168.0.9在进行SYN扫描192.168.0.99。如果题目意识是第一种意思,那么flag就应该为192.168.0.9的第四次扫描。
第四次扫描的数据包编号是11,提交flag发现不对。那么题目就应该是第二种意思,即第四个IP的第一次扫描。
继续分析每个IP的扫描包,不难发现每个IP扫描前,都进行了Ping操作,即第一次扫描都是Ping扫描。
直接筛选icmp包:第4个IP扫描的序号就是155989,flag{155989}
参考:https://blog.csdn.net/mochu7777777/article/details/120300941
10 S7COMM协议分析
某10段工控网络中,工业协议中存在异常数据。请通过流量中的数据找寻 flag,flag形式为 flag{}。
题解:
打开文件,进行长度排序,发现192长度的包内容有个malformed ,打开包内容发现有个16进制:69735f6e6f745f7265616c
16进制转为字符串为:is_not_real
11 S7comm
工厂车间流水线某工业控制设备遭到不明人员攻击,根据对攻击行为的溯源分析发现攻击者对设备进行了程序上传操作,请根据网络数据流量协助运维人员查找证据找到flag,flag格式为flag{}。
题解:
(1)筛选协议为modbus的,然后直接看TCP流,搜索flag关键字和falg对应的16进制 666C6167,发现flag是用16进制写的。
(2)打开kaili使用strings字段筛选出16进制的,正则如下:strings S7comm.pcap|grep -E “^.{10}$”
666c61677b
3138676854
317772337d
在线转为字符串为:flag{18ghT1wr3}
参考:
https://writeup.ctfhub.com/Challenge/2020/%E4%B9%8B%E6%B1%9F%E6%9D%AF/fdiCUvG993FhAjEws6PuGc.html
12 异常的IEC104分析
小张在对电力企业进行渗透测试时,发现一台开启IEC104通讯协议的设备,并尝试对该设备进行测试。但是在IDS中发现了相关通讯异常。请尝试找出数据包中的flag。flag格式为:flag{}。
第一种方法:
题解:打开文件过滤iec60870_104协议,然后查看tcp流,发现welcome字符串。
flag: flag{welcome}
异常的IEC104分析
13 工控协议数据分析
生产系统的运维人员在进行日常审计中发现设备存在大量的告警日志,自动化工程师在进行上载分析中也没有发现相关的问题所在,请您帮助进行分析相关设备的存在的问题,flag格式为:flag{hex数据}
题解:打开文件autolink.pcap
告警日志
有APR流量,可能试APR攻击, 两个vm数据包比较可疑,flag提示hex数据,flag就是其Mac地址
flag{001c0615d309}
14 工控业务流量分析
题目描述:
某工场在厂区安全检测时,检测到一段异常流量数据包,分析数据包中的异常,找到FLAG,flag形式为 flag{}
题解:工控流量分析,首先看modbus协议同时题目位业务流量。可以考虑正常到modbus 协议正常业务常用的功能码为 0-16
0x01 (Read Coils): 该功能码用于读取离散输出(线圈)的状态。通常,它用于读取数字输出的状态,例如,获取开关或继电器的状态。
0x03 (Read Holding Registers): 这个功能码用于读取模拟输出寄存器的值。模拟输出通常表示传感器测量的数据,例如温度、湿度等。
0x0F (Write Multiple Coils): 用于写入多个离散输出(线圈)的状态。这个功能码通常用于设置多个数字输出的状态,例如,同时设置多个继电器
本题进行了大量 Read Holding Registers。
只有少量的 Read Coils和Write Multiple Coils
分别在modbus.func_code == 1 和 modbus.func_code ==15
func_code 1 存在大量data值 且和 func_code 15 data值一样。所以提取这段值
c29e46a64eeaf64e3626c2ae0ec2a22ac24c0c8c1c
data = 'c29e46a64eeaf64e3626c2ae0ec2a22ac24c0c8c1c'
data_new = bytes.fromhex(data)
flag = ''
for i in data_new:
flag += chr(int(format(i, '08b')[::-1],2))
print(flag)
本题唯一坑的地方是要逆序。
flag{CyberWorldCupCETC2018}
参考:https://blog.csdn.net/m0_68113265/article/details/133894129
15 简单流量分析
不久前,运维人员在日常安全检查的时候发现现场某设备会不时向某不知名ip发出非正常的ICMP
PING包。这引起了运维人员的注意,他在过滤出ICMP包分析并马上开始做应急处理很可能已被攻击的设备。运维人员到底发现了什么?flag形式为
flag{}
题解:
参考:https://blog.csdn.net/qq_61768489/article/details/126230999
ICMP包都有奇怪的data数据,长度符合ASCII可见字符范围
使用tshark提取源地址为192.168.3.73的包的data字段:
tshark -r fetus_pcap.pcap -Y ‘ip.src_host==“192.168.3.73”’ -e data -T fields > icmp_data.txt
提取数据后自动转16进制了,我们再转回来字符串 然后计算长度
from binascii import *
import base64
result = ''
with open('icmp_data.txt','r') as file:
lines = file.readlines()
for line in lines:
line = unhexlify(line.strip()) #去除空格后16进制转ASCII 得到原始的base64数据
length = int(len(line)) #得到每行的长度
result += chr(length)
print(base64.b64decode(result))
flag为:
flag{xx2b8a_6mm64c_fsociety}
15 S7协议恶意攻击分析
某天在硫化车间脱硫工艺所使用的的西门子PLC突然发生停机事件,经工厂人员调查发现该时间段PLC存在多次异常行为,请协助调查人员找出PLC相关行为,flag为异常行为数据包的前四位加后四位,格式为flag{}。
题解:参考:https://writeup.ctfhub.com/Challenge/2020/%E4%B9%8B%E6%B1%9F%E6%9D%AF/nQj9BgdiCh1bvXwhaFwbRY.html
通过了解s7common 应该是主设备向从设备发送 停机的指令,查看文件:通过info排序出job的,然后查看保温parameter发现stop口令,可以看到为中间6行数据包,异常行为数据包的前四位加后四位为:3201414d
falg:
flag{3201414d}
16 异常的协议分析
题目描述
小代所在的企业车间PLC发生异常,造成生产线无法正常运行。请您帮助小代分析出PLC遭到异常的原因。flag格式为:flag{}。
解题思路
用Wireshark打开数据包,发现全部是TCP流量,无法下手,只能使用科来分析软件打开文件,进行回放数据包,发现3041,3042有问题,查看该序号前后的包.参考https://secgxx.com/ctf/competition/2021icsc-online/#toc-heading-20
使用wireshark查看3041,3042前后的包,发现3403包尾部发现额外一串字符XkrvX3fDmFjxmMNDQRjFORBOFMN9。
cypney -t XkrvX3fDmFjxmMNDQRjFORBOFMN9