CTF-MISC 杂项出题思路与解题思路

MISC


  1. 信息收集

  2. 编码转换

  3. 隐写分析

    图片、音频、视频、文档、流量包、

  4. 数字取证

    图片、音频、视频、流量包、内存、磁盘文件、压缩包

文件类型|文件头残缺或错误

文件有后缀名,但是无法正常打开,或者没有后缀名,通过file命令发现文件类型是data,表示很有可能是文件头残缺或错误导致的,这时候需要根据后缀名、题目提示、文件头尾部数据等猜测文件的真实类型,并使用winhex添加或修改相应的文件头

文件类型 特点
ZIP 文件尾部包含0x504B0506的
RAR 文件结尾为0xC43D7B004007
JPG 文件结尾为0xFFD9 FFD8开始
PNG 文件头中包含IHDR信息
GIF 文件结尾为0x3B
ELF linux可执行文件,文件头7F454C46

文件分离

  1. binwalk:binwalk工具可以快速分辨文件是否由多个文件合并而成,并将文件进行分离, 分离成功会在目标文件的目录下生成一个形如_文件名extracted 的文件目录,目录中有分离后的文件

    文件分析:binwalk 文件名

    文件分离:binwalk -e 文件名

  2. foremost

    foremost 文件名 -o 输出目录名

    foremost 文件 —T

  3. scalpel

  4. dd

    dd if=源文件 bs=1 skip=开始分离 of=输出名

  5. winhex 手动分离

    选取使用^Alt+1快捷键选取50为开始的块,"AIt¥2 选取00为结束块,然后右键->Edit->Copy
    Block-> Into New File 保存相应的文件后缀,例如misc.zip

文件合并

linux: cat 文件 > 输出

window: copy /B 合并 输出

文件内容

  1. winhex file

  2. notepad

  3. strings

  4. JPG|exif exiftool 文件名

  5. JPG|Steghide

    Steghide info 1.jpg

    隐藏:steghide embed -cf 图片 -ef 隐藏文件 [-p 密码]

    提取:steghide extract -sf 图片 [-p 密码]

  6. JPG|F5 java Extract 1.jpg -p 11231

  7. JPG|SilentEye

    Windows打开

  8. JPG|敏感度

    专门针对jpg stegdetect

    stegdetect.exe -tjopi -s 10.0 *.jpg

  9. JPG|Outguess

    隐藏:outguess -k 密码 -d 隐藏文件 图片 加密图片

    提取:outguess -r 加密图片 输出文件 -p pass

  10. PNG|图片高度:一把梭

  11. PNG|LSB

    python2 lsb.py extract 1.png [-p] 建议有发现特殊密文时候使用

    先用 zsteg -a 过一下文件,看有无隐藏

    StegSolve->Analyse->Data Extract

    两张图片:StegSolove->Analyse->image Combiner

    盲水印:给了两张同样图,bwmforpy3 decode 图片1 图片2 ->图片3 --oldseed

    一把梭 https://www.aperisolve.com/

  12. .bmp|图片

    转成png再看zsteg

  13. PDF|wbStego4:wbs43open pdf隐写工具,直接开decode,使用找到的密码decode保存为1.txt

  14. GIF|空间:Stegsolve

  15. GIF|时间

    identifi -formate “%s %T\n” 图片 >flag.txt

    https://tu.sioe.cn/gj/fenjie/ 分离

    cat flag.txt|cut -d ‘’ \f 2|tr -d ‘\n’|tr -d ‘0’|tr ‘2’ ‘0’

  16. 音频|MP3隐写

    mp3Stego隐写:encode -E 隐写 -p 密码 音频 输出

    提取:decode.exe -X -p 123

  17. 音频|波形:morse2ascii:解码wav文件莫斯密码

  18. 音频|频谱

    特点:杂音或刺耳,放大频谱

    高位1低位0,出二进制转ascii

    a='110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101'
    flag=''
    for i in range(15):
        b=a[i*7:i*7+7]
        c=int(b,2)
        flag+=chr(c)
    print(flag)
    
  19. 音频|声音倒放:效果->反向即可

  20. LSB音频隐写:silenteye

  21. WORD|隐藏字符:文件-选项-显示-隐藏字符

  22. WORD|文件隐藏:使用zip打开

  23. ZIP|进制转换隐藏信息:504B–>zip

  24. ZIP|伪加密

    直接binwalk -e

    源文件数据区+源文件目录区+源文件目录结束标志

    文件头起第九第十个字符(2个数算一个字符)

    无加密:00 00 + 00 00

    真加密:奇数 00 + 奇数 00

    伪加密:任意 00 + 奇数 00(修改此处为00)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zkrkc4jI-1688086983545)(CTF培训-MISC.assets/image-20220704133016850.png)]

  25. ZIP|暴力破解:ARCHPR

  26. ZIP|明文攻击:压缩密码会被转为3个32bit的key,使用该key加密所有文件,可以使用无加密文件解压有加密文件,ARCHPR明文

    需要使用电脑rar才能明文攻击成功,多换几个压缩软件

  27. ZIP|CRC32碰撞:压缩文件较小时,密码又复杂,直接使用CRC爆破出内容

    import binascii
    import string 
    dic = string.printable
    crc = 0x222222
    def Crack(crc)
    	for i in dic:
    		for j in dic:
    			for p in dic:
    				for q in dic:
    					s=i+J+p+q
    					if crc == binascii.crc32(s)
    						print(s)
    Crack(crc)
    
  28. RAR|伪加密

    标记+压缩文件头+文件头+结尾

    正常打开报错->winhex打开找到74 x0->尾数4为加密,0无加密->把0改为4

  29. pyc|反编译

    1. https://tool.lu/pyc 直接上,不行就进C:\Softwares\Python3\Scripts\python uncompyle6.exe 1.pyc >1.py
    2. 带隐写的,python stegosaurus.py 1.pyc -x

数据恢复

raw/dmp/img/wmem 数据恢复与取证分析

工具:diskgenius/取证大师

ext3:直接改名.zip,然后查找flag

内存取证

工具:Dumpit github下载 FTK

Volatility:可对导出内存镜像进行分析 https://github.com/volatilityfoundation/volatility

插件地址:github.com/superponible/volatility-plugins

imageinfo:python vol.py -f 1.raw imageinfo

hashdump(mimikatz) 抓管理员密码:python vol.py -f 1.raw --profile=版本 hashdump

dumpfiles 下载文件:python vol.py -f 1.raw --profile=版本 dumpfile -Q 0x0000(内存地址) --dump-dir=./目录

filescan 查找文件:python vol.py -f 1.raw --profile=版本 filescan | grep txt(文件名或后缀)

pslist(psscan) 查看进程相关信息 pstree 查进程树

procdump 获取进程可执行文件:python vol.py -f 1.raw --profile=版本 procdump -p [PID] -D [保存目录]

cmdscan 查看cmd运行 iehistory(chromehistory firefox) 查看浏览器信息 filescan 扫描内存中所有文件 clipboard 查看粘贴板

hivedump/dumpregistry/printkey/hashdump

流量分析

  1. 数据通信|模型

    1. 应用层:HTTP Telnet TFTP DNS SMTP
      1. 应用层:为应用程序提供服务
      2. 表示层:数据格式转化,加密
      3. 会话层:管理会话
    2. 传输层:管理端到端连接 TCP UDP 网络层:IP选址和路由选择 IP ICMP RIP IGMP
    3. 数据链路层:提供介质访问和链路管理:ARP RARP IEEE802.3 PPP CSMA/CD
    4. 物理层:联网 Manchester PAM5
  2. 数据通信|wireshark:见手写笔记

  3. 数据通信|tcpxtract:有些文件wireshark、binwalk、foremost没法提取,用这个工具 tcpxtract -f 文件.pcap

  4. 数据通信|networkMiner:有些文件binwalk从流量包分解不出来,可以用这个工具,先用wireshark保存为pcap,在拖入networkM分解出文件

  5. 数据通信|鼠标流量:见USB流量取证分析.pdf

  6. 数据通信|键盘流量:提取python3 knm.py pca -i usb2.pcap -o out.txt 键盘还原python3 knm.py keyboard out.txt 鼠标还原python3 knm.py mouse out.txt

  7. 协议分析|ICMP:data的length可能对应ascii

    import pyshark
    import base64
    flag=[]
    packets = pyshark.FileCapture('1.pcap')
    for packet in packets:
    	for pkt in packet:
    		if pkt.layer_name=="icmp":
    			if int(pkt.type) !=0:
    				flag.append(int(pkt.data_len))
    for i in range(0,len(flag)):
    	flag[i]=chr(flag[i])
    print(".join(flag)")
    print(base64.b64decode(".join(flag)"))
    
    
    #遍历形式
    tshark -r 1.pcapng -Y "icmp" -T fields -e frame.len |tr "\n" ","
    a = [144,144,150,150,139,139,145,145,165,165,91,91,109,109,151,151,122,122,113,113,106,106,119,119,93,93,167,167]
    for i in range(-50, 50):
        flag=''
        for j in a:
        	flag += chr(i+j)
        if 'f' in flag:
            print(flag)
    
  8. 协议分析|HTTP:流量附件(binwalk分离,或找到后转base成文件)或是总体分析,弄清楚流量做啥

    SQL注入–tshark提取url–ascii转字符

    tshark -r *.pcapng -T fields -e http.request.url|tr -s "\n"|grep flag > log.txt
    import re
    with open("log.txt") as f:
    	tmp=f.read()
    	flag=""
    	data = re.findall(r'>(\d)',tmp)
    	data = p[int(i) for i in data]
    	for i,num in enumerate(data)
    		try:
    			if data[i+1] == 100:
    				flag += chr(num)
    		except Exception
    			pass
    	print(flag+chr(data[i]))
    
  9. 协议分析|HTTPS:导入TLS私钥

  10. 协议分析|DNS:通过dns.query.name中传输查询数据传输base加密段,需要tshark提取,字段长度除4余2的补两个等号,除4余3的补一个等号,因为base64是4位编码 tshark -r 1.pcap -T fields -e dns.qry.name >base64.txt

  11. 协议分析|WIFI密码:检查cap包:aircrack-ng xxx.cap 握手包破解: aircrack-ng xx.cap -w pass.txt

  12. 协议分析|FTP:命令与应答,命令有USER(用户标识) PASS(口令) LIST(文件列表) RETR(检索文件) STOR(存放文件)

    331输密码 125传数据 425传输失败 452文件出错

  13. 协议分析|冰蝎流量:找key,把密文放工具里面解密

  14. 协议分析|蚁剑流量:一个一个找密文,先找大的,注意看表头突出特征,比如压缩包、图片等,然后解密base64等混用

各种奇葩题

  1. 图片里一串奇怪字符带{},可能是需要隔几位然后拼接起来出flag
  2. 流量里的data.len,可能需要挪几位才是真正flag
  3. 有二进制转ascii文件,里面带py字样的,可能需要反编译https://tool.lu/pyc
  4. 条形码二维码扫描网站https://online-barcode-reader.inliteresearch.com/
  5. 流量里面带key字样一般是加密符号,需要找到加密文字解密,反之有乱码文字也一样
  6. 奇奇怪怪图片,看不懂的统一写成二进制转ascii
  7. 有些文件只能在相应系统更改zip或其他格式打开
  8. 一群纯英文乱序字符,可能是凯撒,为吉尼亚密码,试试爆破https://www.guballa.de/vigenere-solver
  9. 各种码的识别 https://demo.dynamsoft.com/DBR/BarcodeReaderDemo.aspx https://online-barcode-reader.inliteresearch.com/
  10. 词频分析(字符替换),遇到有空格的就往里面扔 https://quipqiup.com/
  11. ctf工具合集 https://www.ctftools.com/down/
  12. ciphey ciphey -t "密文" ciphey -f 1.txt

你可能感兴趣的:(CTF,python,网络安全)