【UTCTF2020】spectogram
知识点:频谱图、Sonic Visualiser、Audacity看频谱图
spectogram 中文翻译为频谱图
1、使用AU将 音频转换成频谱图。
2、使用 Sonic Visualiser 进行音频分析
Sonic Visualiser是用于查看和分析音乐音频文件内容的应用程序。它是在GPL-2.0或更高版本下分发的免费软件,人们用来对声音文件进行可视化,分析和注释。该程序在音乐和科学工作中都很有用,并以其能够使用vamp插件格式的高度专业化的第三方插件而闻名。 -------------------wiki
关于音频隐写可以看看合天的这篇文章
题目分析
看的这个博主的blog:末 初
打开文件后,在Layer
选项中点击Add Peak Frequency Spectrogram
或者Shift+K
,然后将右边选项调整成如下图所示:
flag{sp3tr0gr4m0ph0n3}
发现更简单的做法:
用Audacity这个工具打开就是因为Audacity提供的强大的音频分析功能,包括波形图、频谱图等各种图形可视化效果。
Audacity默认显示的是音频文件左右两个声道的波形图,我们可以尝试切换到频谱图进行分析,操作步骤为:在Audacity中点击第一个声道的波形图左侧的文件名,在弹出的菜单中选择“频谱图”,就可以切换到频谱图模式了,如图所示:
【UTCTF2020】sstv
知识点:RX-SSTV、无线电转图片
1、慢扫描电视(SSTV): 慢扫描电视(Slow-scan television)是业余无线电爱好者的一种主要图片传输方法,慢扫描电视通过无线电传输和接收单色或彩色静态图片。 慢扫描电视的一个术语名称是窄带电视。广播电视需要6MHz的带宽,因为帧速为25到30fps。慢扫描电视的带宽只有3kHz,因此慢扫描电视是一种慢得多的静态图像传输方法,通常每帧需要持续8秒或若干分钟。 业余无线电操作员通常在短波(或高频)、甚高频、超高频波段使用慢扫描电视。
2、无线电解码工具:
在Kali安装 QSSTV
使用QSSTV将慢速扫描电视传输(SSTV)音频文件转换(解码)为图像
apt install qsstv
3、RX-SSTV工具
除了使用QSSTV外,还可以使用这个工具
题目分析
在kali中安装 QSSTV ,按照上面写的操作
utflag{6bdfeac1e2baa12d6ac5384cdfd166b0}
【CFI-CTF 2018】webLogon capture
知识点:简单的流量包分析
题目分析
在wireshark中看到 password 关键字
将这段 url 编码转化成字符 :%20%43%46%49%7b%31%6e%73%33%63%75%72%33%5f%6c%30%67%30%6e%7d%20
CFI{1ns3cur3_l0g0n}
【INSHack2017】sanity
知识点:签到题
题目分析
flag{Youre_sane_Good_for_you}
我爱Linux
知识点:python序列化
学习文章:Python之数据序列化(json、pickle、shelve)
序列化/反序列化:
将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式(如:XML、JSON或特定格式的字节串)的过程称为序列化;反之,则称为反序列化。
相关模块:
本节要介绍的就是Python内置的几个用于进行数据序列化的模块:
模块名称 | 描述 | 提供的api |
---|---|---|
json | 用于实现Python数据类型与通用(json)字符串之间的转换 | dumps()、dump()、loads()、load() |
pickle | 用于实现Python数据类型与Python特定二进制格式之间的转换 | dumps()、dump()、loads()、load() |
shelve | 专门用于将Python数据类型的数据持久化到磁盘,shelve是一个类似dict的对象,操作十分便捷 |
题目分析
参考blog:
http://blog.dizzyk.top/index.php/archives/89/
https://blog.csdn.net/mochu7777777/article/details/107740734
题目上写的跟 Linux相关,查了下不知道这题目信息有什么用,TCL__QAQ
看了师傅们的blog 后才知道考的是python序列化,不太懂。
用010editor 查看16进制信息,发现下图这段数据看上去有规律,将FF D9后面的数据提取出来另存为新文件。
python反序列化脚本
|
|
flag{a273fdedf3d746e97db9086ebbb195d6}
greatescape
知识点:TLS通信协议分析
学习文章:
TLS 加密流程:(TLS 是建立在 TCP 基础上的,因此必定需要先三次 TCP 握手建立 TCP 连接,然后再是建立 TLS)
1、Client Hello
2、Server Hello
3、Client Finish
4、Server Finish
5、TLS 握手成功此后通过对称密钥 session key/secret 加密通信
题目分析
用 wireshark 打开流量包分析,可以看到通信使用了 TLS 安全传输层协议
追踪 TCP 流,在 tcp.stream eq 19 发现 RSA私钥签名
在 tcp.stream eq 18,发现ssc.key
将rsa私钥保存为 ssc.key 文件,我们知道 TLS 加密协议是用非对称加密算法加密信息的,这里我们已经拿到私钥了,
那么只在 wireshark中需要添加私钥文件就可解密 TLS 加密的文件了。
编辑→首选项→Protocols→TLS点击Edit后,点击左下角的+
并选择Key File为刚刚另存为的ssc.key
,之后点击OK即可完成解密,解密后通过 TCP流 追踪 TLS流 就可以看到flag
INS{OkThatWasWay2Easy}
【HDCTF2019】你能发现什么蛛丝马迹吗
知识点:内存取证、Volatility、foremost
1、内存取证:
2、Volatility:
Volatility是开源的Windows,Linux,MaC,Android的内存取证分析工具,由python编写成,命令行操作,支持各种操作系统。(主要分析的是内存dump文件)
|
|
下载地址:https://www.volatilityfoundation.org/26
volatility 使用:
volatility -f <文件名> -–profile=<配置文件> <插件> [插件参数]
通过volatility --info获取工具所支持的profile,Address Spaces,Scanner Checks,Plugins
常用插件:
imageinfo:显示目标镜像的摘要信息,知道镜像的操作系统后,就可以在 –profile 中带上对应的操作系统
pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
mendump:提取出指定进程,常用foremost 来分离里面的文件
filescan:扫描所有的文件列表
hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容
svcscan:扫描 Windows 的服务
connscan:查看网络连接
使用:
判断镜像信息,获取操作系统类型
volatility -f ?.img/raw/... imageinfo
知道操作系统类型后,用--profile
指定
volatility -f ?.img --profile=...
查看当前显示的notepad文本
volatility -f file.raw --profile=WinXPSP2x86 notepad
查看当前运行的进程
volatility -f file.raw --profile=WinXPSP2x86 psscan/pslist
扫描所有的文件列表(常常结合grep)
volatility -f file.raw --profile=WinXPSP2x86 filescan
根据offset提取出文件
volatility -f file.raw --profile=WinXPSP2x86 dumpfiles -D . -Q 0x.....
扫描 Windows 的服务
volatility -f file.raw --profile=WinXPSP2x86 svcscan
查看网络连接
volatility -f file.raw --profile=WinXPSP2x86 connscan
查看cmd命令行上的操作
volatility -f file.raw --profile=WinXPSP2x86 cmdscan
根据pid dump出相应的进程
volatility -f easy_dump.img --profile=Win7SP1x64 memdump -p 2580 -D 目录
3、Kali安装foremost:
|
|
基本参数
-V - 显示版权信息并退出 -t - 指定文件类型. (-t jpeg,pdf ...) -d -打开间接块检测 (针对UNIX文件系统) -i - 指定输入文件 (默认为标准输入) -a - 写入所有的文件头部, 不执行错误检测(损坏文件) -w - 向磁盘写入审计文件,不写入任何检测到的文件 -o - 设置输出目录 (默认为为输出) -c - 设置配置文件 (默认为 foremost.conf) -q - 启用快速模式. 在512字节边界执行搜索. -Q - 启用安静模式. 禁用输出消息. -v - 详细模式. 向屏幕上记录所有消息。
题目分析
下载得到 memory.img 镜像文件,尝试用binwalk 提取,没获取到有用的信息。
看了师傅们的blog 后知道,这里考的是内存取证。用工具 volatility 进行内存取证,kali自带(高版本kali没有)
1、判断镜像信息,获取操作系统类型
volatility -f memory.img imageinfo
2、知道操作系统类型后,用--profile
指定操作系统,pslist 查看当前运行的进程
volatility -f memory.img --profile=Win2003SP1x86 pslist
3、发现DumpIt.exe
敏感词,内存镜像工具DumpIt用于生成dump文件,然后查看cmd命令使用记录
volatility -f memory.img --profile=Win2003SP1x86 cmdscan
发现Flag字样,将DumpIt.exe这个程序dump下来
volatility -f memory.img --profile=Win2003SP1x86 memdump -p 1992 --dump-dir=./
foremost分离1992.dmp
foremost 1992.dmp -o 1992
在文件夹1992中找到两张图:
二维码扫描得到:AES解密
jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
key: Th1s_1s_K3y00000
iv: 1234567890123456
flag{F0uNd_s0m3th1ng_1n_M3mory}
【RCTF2019】disk
知识点:磁盘挂载、VMDK文件
VMDK(VMWare Virtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式,文件存在于VMware文件系统中,被称为VMFS(虚拟机文件系统)
可以使用7z 打开 vmdk文件
1、磁盘挂载工具 VeraCrypt
2、磁盘信息读取工具 Winhex、DiskGenius
题目分析
解压后用 010 打开,搜索 rctf关键字,查到flag(或者使用 Linux 的 strings 命令)
rctf{unseCure_quick_form4t_vo1ume
用 7z 对 encrypt.vmdk 文件进行提取
分离出来的FAT 文件,是一个可挂载的磁盘,磁盘分区格式为FAT32。
使用VeraCrypt,进行挂载,这里的密码是 rctf
挂载成功后拿到第二个密码 Password 2: RCTF2019
将 0.fat 文件重新挂载,并使用密码 RCTF2019
用DiskGenius或者(winhex)读取加载的磁盘
_and_corrupted_1nner_v0lume}
|
|
【INSHack2019】INSAnity
知识点:签到题
题目分析
INSA{YouRe_Crazy_and_I_Love_it}
【INSHack2019】Sanity
知识点:签到
题目分析
flag{Welcome}