BUUMisc通关3

【UTCTF2020】spectogram

知识点:频谱图、Sonic Visualiser、Audacity看频谱图

spectogram 中文翻译为频谱图

1、使用AU将 音频转换成频谱图。

2、使用 Sonic Visualiser 进行音频分析

下载链接

Sonic Visualiser是用于查看和分析音乐音频文件内容的应用程序。它是在GPL-2.0或更高版本下分发的免费软件,人们用来对声音文件进行可视化,分析和注释。该程序在音乐和科学工作中都很有用,并以其能够使用vamp插件格式的高度专业化的第三方插件而闻名。 -------------------wiki

关于音频隐写可以看看合天的这篇文章

3类音频隐写

题目分析

看的这个博主的blog:末 初

打开文件后,在Layer选项中点击Add Peak Frequency Spectrogram或者Shift+K,然后将右边选项调整成如下图所示:

image-20210713155724053

flag{sp3tr0gr4m0ph0n3}

发现更简单的做法:

用Audacity这个工具打开就是因为Audacity提供的强大的音频分析功能,包括波形图、频谱图等各种图形可视化效果。

Audacity默认显示的是音频文件左右两个声道的波形图,我们可以尝试切换到频谱图进行分析,操作步骤为:在Audacity中点击第一个声道的波形图左侧的文件名,在弹出的菜单中选择“频谱图”,就可以切换到频谱图模式了,如图所示:

image-20210713161342037

image-20210713161422176

【UTCTF2020】sstv

知识点:RX-SSTV、无线电转图片

1、慢扫描电视(SSTV): 慢扫描电视(Slow-scan television)是业余无线电爱好者的一种主要图片传输方法,慢扫描电视通过无线电传输和接收单色或彩色静态图片。 慢扫描电视的一个术语名称是窄带电视。广播电视需要6MHz的带宽,因为帧速为25到30fps。慢扫描电视的带宽只有3kHz,因此慢扫描电视是一种慢得多的静态图像传输方法,通常每帧需要持续8秒或若干分钟。 业余无线电操作员通常在短波(或高频)、甚高频、超高频波段使用慢扫描电视。

2、无线电解码工具:

在Kali安装 QSSTV

使用QSSTV将慢速扫描电视传输(SSTV)音频文件转换(解码)为图像

apt install qsstv

配置和使用QSSTV

国外的师傅写的blog

image-20210713170417654

image-20210713170446553

3、RX-SSTV工具

除了使用QSSTV外,还可以使用这个工具

image-20210713170945708

image-20210713171354504

题目分析

在kali中安装 QSSTV ,按照上面写的操作

image-20210713170748629

utflag{6bdfeac1e2baa12d6ac5384cdfd166b0}

【CFI-CTF 2018】webLogon capture

知识点:简单的流量包分析

题目分析

在wireshark中看到 password 关键字

image-20210713193730402

将这段 url 编码转化成字符 :%20%43%46%49%7b%31%6e%73%33%63%75%72%33%5f%6c%30%67%30%6e%7d%20

image-20210713193825523

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后面的数据提取出来另存为新文件。

image-20210713195246260

python反序列化脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pickle

with open('1.txt', 'rb') as f:
    f= pickle.load(f)
data = list()
for i in range(len(f)):
    tem = [' ']*100
    data.append(tem)
for i, j in enumerate(f):
    for m in j:
        data[i][m[0]] = m[1]
for i in data:
    print(''.join(i))

image-20210713215858280

flag{a273fdedf3d746e97db9086ebbb195d6}

greatescape

知识点:TLS通信协议分析

学习文章:

如何用 wireshark 抓包 TLS 封包

wireshark 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 安全传输层协议

image-20210714112416381

追踪 TCP 流,在 tcp.stream eq 19 发现 RSA私钥签名

image-20210714112823759

在 tcp.stream eq 18,发现ssc.key

image-20210714112922064

将rsa私钥保存为 ssc.key 文件,我们知道 TLS 加密协议是用非对称加密算法加密信息的,这里我们已经拿到私钥了,

那么只在 wireshark中需要添加私钥文件就可解密 TLS 加密的文件了。

编辑→首选项→Protocols→TLS点击Edit后,点击左下角的+并选择Key File为刚刚另存为的ssc.key,之后点击OK即可完成解密,解密后通过 TCP流 追踪 TLS流 就可以看到flag

image-20210714115412247

INS{OkThatWasWay2Easy}

【HDCTF2019】你能发现什么蛛丝马迹吗

知识点:内存取证、Volatility、foremost

1、内存取证:

内存取证学习

内存取证之旅

2、Volatility:

Volatility是开源的Windows,Linux,MaC,Android的内存取证分析工具,由python编写成,命令行操作,支持各种操作系统。(主要分析的是内存dump文件)

1
2
#安装:apt-get install volatility
# 注意在最新版中没有预装 volatility 了

下载地址:https://www.volatilityfoundation.org/26

参考文章:Kali2020没有volatility怎么安装

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:

1
# apt-get install foremost

基本参数

-V - 显示版权信息并退出 -t - 指定文件类型. (-t jpeg,pdf ...) -d -打开间接块检测 (针对UNIX文件系统) -i - 指定输入文件 (默认为标准输入) -a - 写入所有的文件头部, 不执行错误检测(损坏文件) -w - 向磁盘写入审计文件,不写入任何检测到的文件 -o - 设置输出目录 (默认为为输出) -c - 设置配置文件 (默认为 foremost.conf) -q - 启用快速模式. 在512字节边界执行搜索. -Q - 启用安静模式. 禁用输出消息. -v - 详细模式. 向屏幕上记录所有消息。

windows安装foremost

题目分析

下载得到 memory.img 镜像文件,尝试用binwalk 提取,没获取到有用的信息。

看了师傅们的blog 后知道,这里考的是内存取证。用工具 volatility 进行内存取证,kali自带(高版本kali没有)

1、判断镜像信息,获取操作系统类型

volatility -f memory.img imageinfo

image-20210714150725203

2、知道操作系统类型后,用--profile指定操作系统,pslist 查看当前运行的进程

volatility -f memory.img --profile=Win2003SP1x86 pslist

image-20210714150938780

3、发现DumpIt.exe敏感词,内存镜像工具DumpIt用于生成dump文件,然后查看cmd命令使用记录

volatility -f memory.img --profile=Win2003SP1x86 cmdscan

image-20210714151408497

发现Flag字样,将DumpIt.exe这个程序dump下来

volatility -f memory.img --profile=Win2003SP1x86 memdump -p 1992 --dump-dir=./

foremost分离1992.dmp

foremost 1992.dmp -o 1992

在文件夹1992中找到两张图:

image-20210714152848204

二维码扫描得到:AES解密

jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=

key: Th1s_1s_K3y00000

iv: 1234567890123456

image-20210714155344166

flag{F0uNd_s0m3th1ng_1n_M3mory}

【RCTF2019】disk

知识点:磁盘挂载、VMDK文件

VMDK(VMWare Virtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式,文件存在于VMware文件系统中,被称为VMFS(虚拟机文件系统

可以使用7z 打开 vmdk文件

1、磁盘挂载工具 VeraCrypt

下载链接

2、磁盘信息读取工具 Winhex、DiskGenius

DiskGenius下载链接

题目分析

解压后用 010 打开,搜索 rctf关键字,查到flag(或者使用 Linux 的 strings 命令)

image-20210714170924465

rctf{unseCure_quick_form4t_vo1ume

用 7z 对 encrypt.vmdk 文件进行提取

image-20210714171734087

分离出来的FAT 文件,是一个可挂载的磁盘,磁盘分区格式为FAT32。

使用VeraCrypt,进行挂载,这里的密码是 rctf

image-20210714172243700

挂载成功后拿到第二个密码 Password 2: RCTF2019

将 0.fat 文件重新挂载,并使用密码 RCTF2019

用DiskGenius或者(winhex)读取加载的磁盘

image-20210714203602953

_and_corrupted_1nner_v0lume}
1
# 得到 rctf{unseCure_quick_form4t_vo1ume_and_corrupted_1nner_v0lume}

【INSHack2019】INSAnity

知识点:签到题

题目分析

INSA{YouRe_Crazy_and_I_Love_it}

【INSHack2019】Sanity

知识点:签到

题目分析

flag{Welcome}

updatedupdated2022-06-032022-06-03