在 Kali Linux 中,有多种方法可以提取文件中的隐含数据。具体使用哪些命令取决于文件类型和隐藏方式。以下是常用的几种方法:

1. 检查文件类型

bash

file 文件名

2. 字符串提取

bash

1
2
strings 文件名
strings -n 10 文件名 # 只显示长度≥10的字符串

3. 十六进制查看

bash

1
2
hexdump -C 文件名 | less
xxd 文件名

4. 检查文件末尾附加数据

bash

tail -c 1000 文件名 > extracted.bin # 提取最后1000字节

5. 常用隐写分析工具

图片文件

bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# EXIF信息
exiftool 图片文件

# Steghide (需要密码)
steghide extract -sf 文件 -p 密码

# Binwalk (固件/文件分析)
binwalk -e 文件

# Foremost (文件雕刻)
foremost -i 文件 -o 输出目录

# Zsteg (PNG/BMP)
zsteg 图片文件

压缩包/归档文件

bash

1
2
3
4
5
6
7
# 检查是否为压缩包
binwalk 文件

# 尝试解压
7z x 文件
unzip 文件
tar -xf 文件

PDF文件

bash

1
2
3
# PDF分析工具
pdf-parser 文件
peepdf 文件

6. 高级分析工具

使用 foremost

bash

foremost -i 可疑文件 -o 输出目录

使用 binwalk

bash

1
2
binwalk -e 文件          # 自动提取
binwalk -M -e 文件 # 递归提取

使用 stegsolve (GUI)

bash

java -jar stegsolve.jar

7. 检查文件头尾

bash

1
2
3
4
5
# 查看文件头
head -c 100 文件 | xxd

# 查看文件尾
tail -c 100 文件 | xxd

8. 差异比较

如果有原文件和修改后的文件:

bash

cmp -l 原文件 可疑文件

实际应用示例

假设有一个可疑图片:

bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. 基础分析
file image.jpg
exiftool image.jpg

# 2. 检查字符串
strings image.jpg | grep -i "flag\|password\|secret"

# 3. 使用steghide尝试提取(无密码)
steghide extract -sf image.jpg -p ""

# 4. 使用binwalk检查嵌入文件
binwalk image.jpg

# 5. 使用foremost提取所有可能文件
foremost -i image.jpg -o extracted_files