主要介绍比赛的技巧常用命令。

1.图片隐写

虚拟机:kali

工具:binwalk(探测分离),foremost(分离),steghide(分离)、gnuplot(绘图)、volatility(取证)、outguess(图片密码)、notepad(NTFS交换数据流)、NtfsStreamsEditor(NTFS交换数据流)、exiftool(查看隐藏信息)、 uncompyle6和decompyle3(pyc 字节码反编译)

1.1.探测图片

首先我们需要对图片进行分析,这里我们需要用到kali里面的一个工具 binwalk ,想要了解这个工具可以参考这篇 Binwalk:后门(固件)分析利器 文章,以及 kali官方对binwalk的概述和使用介绍

首先在kali终端进入目标图片所在的路径,然后在binwalk后直接提供固件文件路径和文件名即可:

1
binwalk 2.jpg		看图片中是不是还有其他东西

当我们使用这行命令后,binwalk就会自动分析这个jpg文件:

1.2.分离

在得到隐藏信息之后我们下一步就是把另一张jpg分离出,以下讨论几种方法:

(1)使用foremost工具分离

foremost是一个基于文件文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具,win可以下载地址,Linux可以通过下面命令安装使用:

1
apt-get install foremost

安装foremost后你可以使用foremost -help查看使用帮助,这里最简单分离文件的命令为:

1
2
3
4
5
6
7
8
9
10
11
12
ren * *.jpg#win下面批量重命名,添加后缀名
foremost carter.jpg
binwalk -e mianju.jpg
outguess -k '密码' -r 图片 保存的位置
gnuplot “带有坐标的txt文件”
steghide extract -sf 图片名称 -p 密码
steghide extract -sf out.wav
#这里解压的时候使用Win RAR解压,涉及NTFS流的都需要Win RAR解压
notepad.exe test.txt:hidden.txt或者mspaint.exe test.txt:hidden.jpg
uncompyle6 -o 1.py 1.pyc python反编译
命令:ren * *.jpg
//这条命令会把此目录下所有文件重命名,所以使用的时候注意目录位置

当我们使用这行命令后,foremost会自动生成output目录存放分离出文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
最常用-查看LSB信息
zsteg 1.png

检测zlib
# -b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v

显示细节
zsteg 1.png -v

尝试所有已知的组合
zsteg 1.png -a

导出内容
zsteg -E "b1,bgr,lsb,xy" 1.png > 1.exe

1.3.crc爆破图片长高

010Editor打开struct PNG_CHUNK chunk[0]下面的struct PNG_CHUNK_IHDR ihdr修改长高即可设置图片信息;也可以使用win10自带的照片-》…-》调整大小-》设置大小

使用010editor可能会报错,第一个就是需要的信息。

图片隐写工具:

010editor、crc爆破长宽脚本、颜色反转、Stegsolve、二维码识别

2.zip加解密

2.1.伪加密

010Editor打开struct ZIPDIRENTRY dirEntry[0]下面的ushort deFlags修改成0即可消除伪加密,可能要在struct ZIPDIRENTRY dirEntry[0]也操作一下

2.2爆破密码

可以使用软件对压缩包的账号和密码进行暴力破解。

软件:rarcrack破解压缩密码、ARCHPR、JPasswordRecoveryTool v1.09

3.流量分析

分组字节流,字符串,flag.txt即可查找所有的流量包里面的包含flag.txt的

4.二维码识别

https://www.cnblogs.com/Zhan-W/p/14906951.html缺少dll安装方法

脚本

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
# -*- coding: utf-8 -*-
from PIL import Image
import pyzbar.pyzbar as pyzbar
import os
def qrcode_parse_content(img_path):
'''
单张图片的二维码解析
'''
img = Image.open(img_path)
#使用pyzbar解析二维码图片内容
barcodes = pyzbar.decode(img)

#打印解析结果,从结果上可以看出,data是识别到的二维码内容,rect是二维码所在的位置
# print(barcodes)
# [Decoded(data=b'http://www.h3blog.com', type='QRCODE', rect=Rect(left=7, top=7, width=244, height=244), polygon=[Point(x=7, y=7), Point(x=7, y=251), Point(x=251, y=251), Point(x=251, y=7)])]
result = []
res=[]
for barcode in barcodes:
barcode_content = barcode.data.decode('utf-8')
barcode_hex=barcode.data
result.append(barcode_content)
res.append(barcode_hex)
return result,res
final=qrcode_parse_content('./file.png')[1][0]
open('test.txt','wb').write(final)

File Format:文件格式

Data Extract:数据提取

Steregram Solve:立体试图 可以左右控制偏移

Frame Browser:帧浏览器

Image Combiner:拼图,图片拼接

用法(使用场景)

1.File Format:这里你会看见图片的具体信息有时候有些图片隐写的flag会藏在这里

2.Data Extract:(好多涉及到数据提取的时候,很多博主在wp中都是一带而过,小白们还以为要一个个试。。)

http://bf.doleczek.pl/ 特殊字符解密

https://the-x.cn/base64 流量包里面base64可以直接解密

(7条消息) stegsolve图片隐写解析器的使用_黑朱雀的博客-CSDN博客

https://blog.csdn.net/u011154053/article/details/119864063

https://blog.csdn.net/u012759262/article/details/108763556

5.GitHub

您可以添加.patch到提交 URL 的末尾以打开补丁视图。

1
2
3
https://github.com/keebersecuritygroup/security-evaluation-workflow/commit/b25ed7f5aa72f88c0145a3832012546360c2ffc2.patch

https://github.com/keebersecuritygroup/security-evaluation-workflow/commit/b25ed7f5aa72f88c0145a3832012546360c2ffc2

6.代码提示

字符串固定长度切片,修改步长7即可

1
mi =[content[i:i+7] for i in range(0,len(content),7)]

在python中不仅二进制可以做异或,十进制也可以

7.明文攻击

利用文件名来攻击

1
2
3
完整的明文文件
明文文件需要被相同的压缩算法标准压缩(也可理解为被相同压缩工具压缩)
明文对应文件的加密算法需要是 ZipCrypto Store

ZipCrypto算是传统的zip加密方式。只有使用ZipCrypto Deflate /Store才可以使用 ZIP已知明文攻击进行破解。

传统的ZIP已知明文攻击利用,windows下可以使用AZPR,linux下可以使用pkcrack。

要求

1
2
至少已知明文的12个字节及偏移,其中至少8字节需要连续。
明文对应的文件加密方式为ZipCrypto Store

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bkcrack:https://github.com/kimci86/bkcrack

bkcrack安装:
apt install cmake -y
cmake .
make //在src下生成bkcrack文件
cp bkcrack /usr/sbin/bkcrack //作为系统命令使用

bkcrack常用参数:
-c 提取的密文部分
-p 提取的明文部分
-x 压缩包内目标文件的偏移地址 部分已知明文值
-C 加密压缩包
-o offset -p参数指定的明文在压缩包内目标文件的偏移量
-d 导出文件

基本例子:

1
2
3
zipeasy.zip
- dasflow.pcapng
- dasflow.zip

2.txt的内容是:dasflow.pcapng

1
2
bkcrack.exe -C zipeasy.zip -c dasflow.zip -p 2.txt -o 30 -x 0 504b0304
bkcrack.exe -C zipeasy.zip -c dasflow.zip -k 2b7d78f3 0ebcabad a069728c -d dasflow.zip

可以参考文章:https://www.freebuf.com/articles/network/255145.html