携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情
[HDCTF2019]你能发现什么蛛丝马迹吗
内存取证题目,我们用vol工具分析一下,首先看一下系统版本。
volatility.exe -f memory.img imageinfo
找到版本后,我们进行一下常规操作,先查看一下进程
volatility -f memory.img --profile=Win2003SP1x86 pslist
查看cmd命令使用记录
volatility -f memory.img --profile=Win2003SP1x86 cmdscan
将DumpIt.exe这个程序dump下来
发现两个图片,其中一个是二维码,扫一下
jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
另一个给了key与vi
key: Th1s_1s_K3y00000
iv: 1234567890123456
判断为AES加密,解密即可
flag{F0uNd_s0m3th1ng_1n_M3mory}
[DDCTF2018]流量分析
下载附件,流量包分析,给了我们提示,说了校验MD5值与注意私钥的格式
我们看流量包,根据提示,查看TCP流,发现了一串base64编码,应该是图片,我们利用工具可以解开。
或者可以直接导出IMF对象,也是可行的。
得到图片,用文字提取提取出来
MIICXAIBAAKBgQDCm6vZmclJrVH1AAyGuCuSSZ8O+mIQiOUQCvN0HYbj8153JfSQ
LsJIhbRYS7+zZ1oXvPemWQDv/u/tzegt58q4ciNmcVnq1uKiygc6QOtvT7oiSTyO
...以下忽略
将文字保存为txt文件中,用wireshark在选项找到tsl解密加入这个txt文件
解出来了可以查看http流,里面就有flag.
flag{0ca2d8642f90e10efd9092cd6a2831c0}
INSHack2018 so deep
下载附件是一个wav文件,我们将其放进audacity分析。查看频谱图,发现前半个flag
需要我们找到另一半flag,因为是wav音频文件,我们试一试deepsound看看是否加密了。
果然需要密码,于是我们下一步就是找到破解密码。
这里尝试爆破来获取密码,脚本如下
import logging
import os
import sys
import textwrap
def decode_data_low(buf):
return buf[::2]
def decode_data_normal(buf):
out = bytearray()
for i in range(0, len(buf), 4):
out.append((buf[i] & 15) << 4 | (buf[i + 2] & 15))
return out
def decode_data_high(buf):
out = bytearray()
for i in range(0, len(buf), 8):
out.append((buf[i] & 3) << 6 | (buf[i + 2] & 3) << 4 \
| (buf[i + 4] & 3) << 2 | (buf[i + 6] & 3))
return out
def is_magic(buf):
# This is a more efficient way of testing for the `DSCF` magic header without
# decoding the whole buffer
return (buf[0] & 15) == (68 >> 4) and (buf[2] & 15) == (68 & 15) \
and (buf[4] & 15) == (83 >> 4) and (buf[6] & 15) == (83 & 15) \
and (buf[8] & 15) == (67 >> 4) and (buf[10] & 15) == (67 & 15) \
and (buf[12] & 15) == (70 >> 4) and (buf[14] & 15) == (70 & 15)
def is_wave(buf):
return buf[0:4] == b'RIFF' and buf[8:12] == b'WAVE'
def process_deepsound_file(f):
bname = os.path.basename(f.name)
logger = logging.getLogger(bname)
# Check if it's a .wav file
buf = f.read(12)
if not is_wave(buf):
global convert_warn
logger.error('file not in .wav format')
convert_warn = True
return
f.seek(0, os.SEEK_SET)
# Scan for the marker...
hdrsz = 104
hdr = None
while True:
off = f.tell()
buf = f.read(hdrsz)
if len(buf) < hdrsz: break
if is_magic(buf):
hdr = decode_data_normal(buf)
logger.info('found DeepSound header at offset %i', off)
break
f.seek(-hdrsz + 1, os.SEEK_CUR)
if hdr is None:
logger.warn('does not appear to be a DeepSound file')
return
# Check some header fields
mode = hdr[4]
encrypted = hdr[5]
modes = {2: 'low', 4: 'normal', 8: 'high'}
if mode in modes:
logger.info('data is encoded in %s-quality mode', modes[mode])
else:
logger.error('unexpected data encoding mode %i', modes[mode])
return
if encrypted == 0:
logger.warn('file is not encrypted')
return
elif encrypted != 1:
logger.error('unexpected encryption flag %i', encrypted)
return
sha1 = hdr[6:6+20]
print('%s:$dynamic_1529$%s' % (bname, sha1.hex()))
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--verbose', '-v', action='store_true')
parser.add_argument('files', nargs='+', metavar='file',
type=argparse.FileType('rb', bufsize=4096))
args = parser.parse_args()
if args.verbose:
logging.basicConfig(level=logging.INFO)
else:
logging.basicConfig(level=logging.WARN)
convert_warn = False
for f in args.files:
process_deepsound_file(f)
if convert_warn:
print(textwrap.dedent('''
---------------------------------------------------------------
Some files were not in .wav format. Try converting them to .wav
and try again. You can use: ffmpeg -i input output.wav
---------------------------------------------------------------
'''.rstrip()), file=sys.stderr)
用法示例
step1:python3 deepsound.py flag.wav > password.txt
step2:john password.txt
得到密码azerty,破解得到另一半flag
flag{Aud1o_st3G4n0_1s_4lwayS_Th3_S4me}
[INSHack2017]10-cl0v3rf13ld-lane-signal
下载完毕,是个.unk后缀的文件。放入010查看看到jpg文件头,所以我们改一下后缀。
接着binwalk分离得到一张png。
png中有隐藏的莫斯密码,翻译成help me.
再将png放入010查看,发现有个ogg开头的文件,百度后发现是个音频文件。我们用工具打开,查看频谱。
.. -. ... .- -.--. -- ----- .-. ..... ...-- ..--.- .-- .---- .-.. .-.. ..--.- -. ...-- ...- ...-- .-. ..--.- ....- --. ...-- -.-.-- -.--.-
解密后得到flag
flag{M0R53_W1LL_N3V3R_4G3!}