DGZ's Blog.

高校战“疫”网络安全分享赛-MISC

Word count: 1.2kReading time: 5 min
2020/03/09 Share

misc

隐藏的信息

看了wp我要吐死了,纠结半天原来我还少看了这么多东西。
又瞎了看得到最后的电话音,但是看不到wav开头的电话音,所以说,粗心的人真的干什么都不太顺。
一幅图

二维码反色,把定位符加上,扫码得到的结果说不是flag,而且解压密码也不在。

看了wp知道是把二维码.jpg放winhex看,然后看到最后有关键字

TOGETYOURFLAG

再把它string查看一下关键字,虽然在上面就可以看到USEBASER64

1
strings erweima.jpg


也就是

USE BASE64 TO GET YOUR FLAG

纯数字.zip是伪加密,用7z直接解压,然后Audacity打开,切换成频谱图来查看,发现前后都有短音!!!
框选短音,分析,频谱分析,

看出两个峰峰值是多少,再对照表:

wav文件前后汇总:

187485618521

base64一下,得到flag{MTg3NDg1NjE4NTIx}

ez_mem&usb

用wireshark打开流量包,左上角工具栏的文件,导出40MB的的一个upload_file.php文件,binwalk一下,发现有一个zip,再用foremost提取这个zip,打开zip后有一个data.vmem的文件,那么用volatility分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(1)volatility -f data.vmem imageinfo
得到Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86)
(2)volatility -f data.vmem –profile=WinXPSP2x86 pslist
看到:
0xff47dda0 ctfmon.exe 596 1476 1 71 0 0 2020-02-23 13:17:41 UTC+0000
0xff5b57b8 cmd.exe 1396 1476 1 61 0 0 2020-02-23 13:24:09 UTC+0000
0xff4583c0 conime.exe 544 1396 1 38 0 0 2020-02-23 13:24:09 UTC+0000
cmd停留了一段时间,可能在cmd那里有什么操作
(3)volatility -f data.vmem –profile=WinXPSP2x86 cmdscan
Cmd #0 @ 0x3609ea0: passwd:weak_auth_top100
Cmd #1 @ 0x5576d0: start wireshark
Cmd #13 @ 0x9f009f: ??
Cmd #41 @ 0x9f003f: ?\?????????
看到有passwd,其实第一遍使用我还看漏了,没看到有passwd只看到问号
(4)volatility -f data.vmem –profile=WinXPSP2x86 cmdline
没看到有什么比较有用的命令行指令
(5)volatility -f data.vmem –profile=WinXPSP2x86 filescan
可以列出所有文件,但是第一遍扫的时候也是看漏了一些重要东西
(6)volatility -f data.vmem –profile=WinXPSP2x86 filescan |grep txt
volatility -f data.vmem –profile=WinXPSP2x86 filescan | grep "doc\|docx\|rtf"
找到的都没什么用
volatility -f data.vmem –profile=WinXPSP2x86 filescan |grep flag
0x0000000001155f90 1 0 R--rwd \Device\HarddiskVolume1\Documents and Settings\Administrator\flag.img
这个就很有用了,dump下来
(7)volatility -f data.vmem –profile=WinXPSP2x86 dumpfiles -Q 0x0000000001155f90 -n --dump-dir=./
导出到当前目录,foremost一下提取出一个zip,密码就是passwd,打开里面有一个usbdata,接下来就是根据USB键盘协议中键码,一一对应得到flag

协议:https://wenku.baidu.com/view/9050c3c3af45b307e971971e.html
网上找的脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mappings = { 0x04:"A",  0x05:"B",  0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G",  0x0B:"H", 0x0C:"I",  0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O",  0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5",  0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]",  0X2B:"    ", 0x2C:" ",  0x2D:"-", 0x2E:"=", 0x2F:"[",  0x30:"]",  0x31:"\\", 0x32:"~", 0x33:";",  0x34:"'", 0x36:",",  0x37:"." }
nums = []
keys = open('usbdata.txt')
for line in keys:
if line[0]!='0' or line[1]!='0' or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0':
continue
nums.append(int(line[6:8],16))
keys.close()
output = ""
for n in nums:
if n == 0 :
continue
if n in mappings:
output += mappings[n]
else:
output += '[unknown]'
print ('output :\n' + output)
#FLAG[69200835784EC3ED8D2A64E73FE913C0]

将输出的字母改成小写,中括号改成大括号就可以了

一开始因为不熟,所以顺序是先提取出了usbdata的zip文件,然后再去找密码,找了半天,wireshark里面也找了挺久,最后输多一次cmdscan,发现有passwd,才知道一开始看漏了。

简单MISC

下载的文件有一个jpg和一个带密码的zip,里面有flag,jpg打不开,用foremost提取出里面的zip,有一个摩斯密码:

E P I D E M I C S I T U A T I O N O F U N I V E R S I T Y W A R

去掉空格就是flag文件的密码,得到

VGgxc19pc19GbGFHX3lvdV9hUkVfcmlnSFQ=
base64解得Th1s_is_FlaG_you_aRE_rigHT

另外:
https://merricx.github.io/qrazybox/
可以绘制二维码
教程:https://blog.xiafeng2333.top/ctf-13/

CATALOG
  1. 1. misc
    1. 1.1. 隐藏的信息
    2. 1.2. ez_mem&usb
    3. 1.3. 简单MISC