# cheekin
公众号发 flag 获得一张图片,zsteg 一把梭
syc{s4y_he110_t0_syclover}
# ez_smilemo
是一道游戏题,给了 data.win,winhex 打开搜索 f1@g,找到上面的 base64
解码得到 flag
SYC{sm1le_1s@n1ce_g@me}
# DEATH_N0TE
根据提示,首先 zsteg 在下面这段 base64 中得到前半段 flag
SYC{D4@Th_N0t4_
接着放大图片查看像素点
能模糊看到有一些白色像素点围成的字母,猜测为后半段的密文,利用脚本提取白色像素点并且写入新的画布上
1 | from PIL import Image, ImageDraw |
得到
上网寻找白色像素点围成的字体,发现是死亡笔记中的一种字体,找到对照表进行对照解码
flag 最后一截有几个字母不是很明显,但是大致对照完能猜测到是出题人的名字,最后拼接得到 flag
SYC{D4@Th_N0t4_NAME_o2takuXX}
# 下一站是哪儿呢
SYC{CZ8579_Luzhou}
# Qingwan 心都要碎了
SYC {重庆中国三峡博物馆}
# xqr
下载附件不出意外是个 qrcode,但是扫码得到的是 wrong
flag,winhex 查看文件结构能发现还有一张图片拼接在该图片当中,手撕出来
修改图片尺寸和原图片一样大,使用 stegsolve 的 combiner 功能进行合并,将合并的图片导出后再次导入 stegsolve 进行 xor,扫码即可得到 flag
SYC{hOp3_u_h@ve_Fun}
# DEATH_N1TE
附件中拿到一个 webp 和一个 mp3 文件,mp3 文件听到后面发现是 sstv,使用工具扫描之后得到
前半段 flag,SYC {H4xr0t0r
接着打开 webp 文件,发现是个动图,上网搜了一下资料,需要使用命令 webpmux 进行分离帧的操作,暂时只知道一帧帧分离的语句,于是就写了个脚本进行循环执行分离
1 | import os |
分离出来 881 张图片,根据图片的大小和张数利用 montage 和 gaps 进行调试拼图
1 | montage \*.png -tile 40x22 -geometry +0+0 flag.png |
最终得到
解码得到后半段 flag
SYC{H4xr0t0r_14_Ki114R}
# 窃听风云
拿到流量包追踪一下 tcp 流,结合题目可以知道
这是内网通信的流量,并且使用了 NTLM 验证身份的方式,上网搜索了一下该验证方式的工作流程,大致为
1 | 1.首先客户端在本地加密当前用户的密码成hash |
接下来回看这道题目,既然是截获了通讯流量那么也就是说客户端和服务端所进行的一些通信数据都直接被截获了,根据题目要求,要找到用户的密码。根据工作流程可以知道,hashcat 爆破用户密码所需要的一些字段信息都能被流量所捕获到
并且通过最后一个返回包中的对话信息可以知道密码字典为 rockyou,接下来寻找到需要的字段就可以开始进行爆破了,以下为需要寻找的字段:
1 | username::domain:ServerChallenge:NTproofstring:modifiedntlmv2response |
过滤 ntlmssp.ntlmserverchallenge 能找到 challenge 字段信息
1 | jack::WIDGETLLC:2af71b5ca7246268:2d1d24572b15fe544043431c59965d30:0101000000000000040d962b02edd901e6994147d6a34af200000000020012005700490044004700450054004c004c004300010008004400430030003100040024005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c0003002e0044004300300031002e005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c00050024005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c0007000800040d962b02edd90106000400020000000800300030000000000000000000000000300000078cdc520910762267e40488b60032835c6a37604d1e9be3ecee58802fb5f9150a001000000000000000000000000000000000000900200048005400540050002f003100390032002e003100360038002e0030002e0031000000000000000000 |
将得到的字段值拼接利用 hashcat 进行爆破
1 | ./hashcat.exe -m 5600 1.txt rockyou.txt -o out.txt --force |
在 out.txt 中得到爆破出的密码
SYC{iamjackspassword}
# extractMe
一眼丁真为 4byte 的 CRC32 爆破
先用 7-zip.exe 的参数输出压缩包信息,并用脚本批量提取压缩包中的 CRC32(脚本来自八神)
1 | import subprocess, re |
输出:
1 | [('flag0', '8712DE1D'), ('flag1', '06EACBD7'), ('flag2', '20A8E291'), ('flag3', '31EE3074'), ('flag4', '77AACF7F'), ('flag5', '35FB7C6C'), ('flag6', 'F978D5AA'), ('flag7', '016F7A0B')] |
再利用 4byte 的脚本爆破就好
1 | import binascii |
输出:
1 | -------------Start Crack CRC------------- |
SYC{cR@ck_1s_Useful_sometime$}
# 时代的眼泪
取证大师一把梭
找到最近打开的图片
根据路径寻找到图片并打开,获得 flag
SYC{You_defeated_me_after_22_years}
# DEATH_N2TE
附件就是一个 mp4 文件,视频播放器打开能明显看到有像素点变化,并且每一帧都不一样,随着视频的播放有一个白色像素点的滚动效果
如图所示,那么对应着视频的帧宽和帧高,利用脚本去提取它每一帧的像素数据去进行重新组合到新的画布当中
1 | import cv2 |
得到:
SYC{we1c0m4_T0_Dc@tH_W0r1d}
# 窃听风云 - V2
这里不做过多的说明了,和 v1 差不多,smtp 邮件协议进行了 ntlm 认证,详细的过程在另一篇文章 NTLM 协议流量解密的例三中有写,可以移步观看