1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 江西工业互联网安全技术技能大赛线上初赛Writeup

江西工业互联网安全技术技能大赛线上初赛Writeup

时间:2020-03-23 09:01:44

相关推荐

江西工业互联网安全技术技能大赛线上初赛Writeup

文章目录

协议分析S7协议分析工控流量分析异常流量分析OPC流量分析应急处置图片的秘密现场数据采集应急恢复文件分析组态编程探索组态密码恶意程序恶意app分析恶意程序分析固件分析丢失的密码工业固件分析

协议分析

S7协议分析

0300002402f08030000003000e00050501120a100200010000830000000004000801。请解读以上协议内容,并准确的拿到此报文返回值,flag即为返回值。提交格式:flag{xxx}。

写入报文的数据分析

03 00报文头00 24数据总长度: 3602 f0 80 32 固定长度: 4 01 命令类型: 发00 00 00 03 标记序列号: 300 0e固定长度: 200 05有效数据长度: 5(从偏移量后第一位开始计算)05 命令起始符号01 写入数据块个数: 112 0a 10 固定长度: 3(返回数据前缀) 02 写入方式: 01按bit写入; 02按byte写入00 01写入数据个数: 1(byte方式可以写入多个,bit只能写入单个)00 00写入数据块编号: 083 写入数据类型: M00 00 00 写入地址偏移量: 000 04写入方式: 03按bit写入; 04按byte写入00 08写入bit的个数01 写入的值: 1

写入报文的返回值

03 00报文头00 16数据总长度: 2202 f0 80 32 固定长度: 403 命令类型: 收00 00 00 03 标记序列号: 300 0200 0100 0005 01ff 表示写入正常

flag{0300001602f0803203000000030002000100000501ff}

工控流量分析

用科来诊断数据包时发现几个TCP非法校验的包

查看数据包编号为33973398的包,发现这些包都带有data字段

然后在wireshark中分析33973398时发现了端倪

观察前后几个包,发现.34.99发的包长度都为64,唯独3399的长度包为103;查看发现3399包被直接附加了一段data字段之外的数据。发现一段连续的字符串,提取出来base64解码

flag{tq2ysds66}

异常流量分析

大部分为HTTP协议流量,但是查看http流和导出文件都没有发现flag的线索。继续查看少部分的Modbus协议

发现一个非法校验和的包,查看发现尾部附加了一段字符串

syntvfguvfZbqohffffff

经验比较丰富的Misc手可能一眼就能看出来synt是字符flag的rot13编码

flag{flagisthisModbussssss}

OPC流量分析

使用科来网络分析系统分析流量包

科来网络分析系统下载地址

打开之后发现很多非法校验的包,点击诊断之后点所有诊断;然后点击源IP地址排序,发现了唯一的192.168.0.46192.168.0.43发的包

PS:点击排序不了的,取消勾选超过2000不排序

查看包的内容,发现

很明显是十六进制的ASCII码

53554E54616E68414D6A41794D513d3d

>>> from binascii import *>>> hexdata = "53554E54616E68414D6A41794D513d3d">>> unhexlify(hexdata)b'SUNTanhAMjAyMQ=='>>>>>> base64_data = unhexlify(hexdata)>>>>>> from base64 import *>>>>>> b64decode(base64_data)b'ICSjx@'>>>

flag{ICSjx@}

应急处置

图片的秘密

secret.jpg根据文件名猜测为OurSecret隐写

下一步就是获取密码

程序逻辑有比较用户输入和内部秘钥的函数strcmp,所以这里打个断点,调试就能看到正确秘钥和用户输入秘钥了

得到密码:my_m0r3_secur3_pwd

肉眼分辨不出来什么编码,对着我之前写的:收录CTF中MISC常用的在线工具网站

里面的编码一个个试,发现是XXencode

flag{0nly_u5_Kn0w_17_D0nO7_T3l1_o7hers}

现场数据采集

根据题目意思猜测可能为视频流量数据,发现流量包中含有大量h264协议的包

H264 编解码协议详解

搜索引擎查阅发现可以Wireshark加载lua脚本提取出h264数据流,然后利用Elecard StreamEye分析

/volvet/h264extractor

Elecard StreamEye Basic 4.4

将下载好的rtp_h264_extractor.lua脚本放入WireShrak的目录中

修改init.lua,在最后面添加一行:dofile(DATA_DIR.."rtp_h264_extractor.lua")

重启WrireShark,打开流量包;工具->Extract h264 stream from RTP

会在流量包的当前路径生成一个dump.264

使用Elecard StreamEye打开它

PS:这里使用的版本是Elecard StreamEye 4.7,算是比较新的版本,之前用2.9的版本打开发现看不清楚

flag{GOODFORYOU}

应急恢复

DiskGenius一把梭;磁盘->打开虚拟磁盘文件->选中磁盘点击恢复文件

flag{73D3DA963F7505E9}

文件分析

010 Editor打开,看到IDATIEND字样从而确定这应该是一张png图片

开头的这几个字节很明显应该是PNG图片的长宽位置,或者对比其他的PNG图片;不难发现该文件缺少了PNG开头的十六个字节

89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52

保存为what.png,发现图片貌似长宽显示不完全,再次用010 Editor打开发现CRC校验报错,修改高度

高度任意修改,能看到flag就行,或者使用脚本去爆破原来的宽高

flag{welcome@}

组态编程

探索组态密码

上位监控软件密码破解0510.PCZ,利用北京力控组态软件ForceControl V7.0打开

北京力控组态软件ForceControl V7.0(低版本只适配Windows7)

然后点击开发

选择忽略

选择功能->用户管理

设置登登陆方式选择本地方式;发现一个admin的系统管理员

发现admin账户的密码,但是是星号,看不到,可以利用网上的星号密码查看器

星号密码查询器

得到密码:elexadmin

flag{elexadmin}

恶意程序

恶意app分析

spyNote_client_easy2.apk改为spyNote_client_easy2.zip解压,然后直接在目录下用grep全局找

root@mochu7-pc:/mnt/c/Users/Administrator/Desktop/工业互联网附件/恶意程序/恶意app/spyNote_client_easy2# lsAndroidManifest.xml comjavamail.charset.mapjavamail.default.providers javamail.pop3.providerjavamail.smtp.provider mailcap.default mimetypes.default resclasses.dexdsn.mf javamail.default.address.map javamail.imap.providerjavamail.smtp.address.map mailcap META-INF orgresources.arscroot@mochu7-pc:/mnt/c/Users/Administrator/Desktop/工业互联网附件/恶意程序/恶意app/spyNote_client_easy2# grep -rn '@.*\.com' ./*grep: ./classes.dex: binary file matchesroot@mochu7-pc:/mnt/c/Users/Administrator/Desktop/工业互联网附件/恶意程序/恶意app/spyNote_client_easy2# strings classes.dex | grep -E '@.*\.com'CONTACT javamail@hahaha_wtf@testmail0917@root@mochu7-pc:/mnt/c/Users/Administrator/Desktop/工业互联网附件/恶意程序/恶意app/spyNote_client_easy2#

找出来的三个邮箱,第二个就是对的

flag{hahaha_wtf@}

恶意程序分析

给了一个exejpg

jpg010 Editor打开啥也看不出来,猜测应该是被exe文件处理过的

ida打开exe文件

跟进主函数下做处理的sub_401302()函数,看到了对原图每个字节做异或0x61处理

使用010 Editor打开sc.jpg;然后工具->十六进制运算->二进制异或

异或出来的内容,从末尾看已经看出来有flag字样的十六进制字符

E8 FF FF FF FF C0 5F B9 57 03 02 02 81 F1 02 0202 02 83 C7 1D 33 F6 FC 8A 07 3C 02 0F 44 C6 AAE2 F6 E8 02 02 02 02 5E 8B FE 81 C6 16 01 02 02B9 03 02 02 02 FC AD 01 3C 07 E2 FA B9 8D 10 B7F8 E8 4D 02 02 02 68 22 01 02 02 FF D0 B9 9E 7878 CD E8 3C 02 02 02 6A 02 68 44 01 02 02 68 2D01 02 02 6A 02 FF D0 33 C0 C3 53 56 8B F1 33 D2EB 12 0F BE CB C1 CA 0D 80 FB 61 8D 41 E0 0F 4CC1 03 D0 46 8A 1E 84 DB 75 E8 5E 8B C2 5B C3 8D41 F8 C3 55 8B EC 83 EC 14 53 56 57 89 4D F4 64A1 30 02 02 02 89 45 FC 8B 45 FC 8B 40 0C 8B 4014 8B F8 89 45 EC 8B CF E8 D2 FF FF FF 8B 3F 8B70 18 85 F6 74 4F 8B 46 3C 8B 5C 30 78 85 DB 7444 8B 4C 33 0C 03 CE E8 8E FF FF FF 8B 4C 33 2089 45 F8 03 CE 33 C0 89 4D F0 89 45 FC 39 44 3318 76 22 8B 0C 81 03 CE E8 6D FF FF FF 03 45 F839 45 F4 74 1C 8B 45 FC 8B 4D F0 40 89 45 FC 3B44 33 18 72 DE 3B 7D EC 75 9C 33 C0 5F 5E 5B C9C3 8B 4D FC 8B 44 33 24 8D 04 48 0F B7 0C 30 8B44 33 1C 8D 04 88 8B 04 30 03 C6 EB DF 20 02 0202 33 02 02 02 38 02 02 02 75 73 65 72 33 32 2E64 6C 6C 02 66 6C 61 67 7B 34 39 62 61 35 39 6162 62 65 35 36 65 30 35 37 7D 02 79 6F 75 20 676F 74 20 69 74 21

flag{49ba59abbe56e057}

固件分析

丢失的密码

Squashfs filesystem

unsquashfs takeme.bin可直接解压

解压后得到一个squashfs-root文件夹,下面有很多文件;还是老方法

grep -rn '^password.*' ./*

ifconfig.cfg文件很明显是配置文件,提交flag

flag{WldOb2J5NWllV1YwZER4}

工业固件分析

修改后缀为zip解压,在\firm\Web\wwwroot\classes发现一堆jar文件

使用jd-gui之类的反编译软件来反编译jar

/java-decompiler/jd-gui/releases

一个个看看吧,我也不知道有什么技巧这里,找出来了的

SAComm.jar包发现了ftp的账户和密码

flag{sysdiag+factorycast@schneider}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。