
写在前面:本文包含在windows和在kali下使用的工具,win下已做标注,其中若有问题可联系我~
kali中安装: git clone https://github.com/matthewgao/F5-steganography
> git clone https://github.com/matthewgao/F5-steganography
......进入 F5-steganography 文件夹 打开终端
> java Extract 1.jpg -p 123456
# -p后接f5的key打开 output.txt 文件即可
> java Embed 原图.jpg 生成图.jpg -e 隐藏的文件.txt -p 密码打开终端输入: git clone https://github.com/crorvick/outguess
> git clone https://github.com/crorvick/outguess
......下载成功后进入outguess文件夹,在文件夹中打开终端输入
> ./configure && make && make install
......成功后即可使用
右键打开终端
> outguess -k 12345 -d hidden.txt 1.jpg 2.jpg
......
# -k后接密码
# -d后接要隐藏的内容
# 加密后1.jpg会覆盖2.jpg右键打开终端(接上述)
> outguess -k 12345 -r 2.jpg out.txt
......out.txt 中内容即为想要隐藏的 hidden.txt 中内容
也可不需要密码,即
> outguess -r 2.jpg out.txt将图片复制到 stegdetect.exe 所在文件夹,打开 cmd 输入:
stegdetect.exe -tjopi -s 10.0 [stego_file]
-s 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。
-t 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下:
j 检测图像中的信息是否是用jsteg嵌入的。
o 检测图像中的信息是否是用outguess嵌入的。
p 检测图像中的信息是否是用jphide嵌入的。
i 检测图像中的信息是否是用invisible secrets嵌入的。如果显示为 [stego_file]:jphide(***),则可以用 stegbreak 破解密码
stegbreak -r rules.ini -f password.txt -t p [stego_file]
#password.txt为自带字典
Loaded 1 files...
[stego_file]:jphide[v5](2333)
#2333为该文件jphide的密码apt-get install steghide有需要按 Y 即可
将 flag.txt 文件隐藏到 out.jpg 中:
steghide embed -cf out.jpg -ef flag.txt [-p 123456] # -p后接密码,可无查看图片中嵌入的文件信息:
steghide info out.jpg提取含有密码的隐藏内容:
steghide extract -sf out.jpg -p 123456提取不含有密码的隐藏内容:
steghide extract -sf out.jpg直接按回车即可
有些题目用steghide加密文件但是不给密码,此时就需要爆破,steghide本身并不支持爆破,需要一些其他的方法:https://github.com/Va5c0/Steghide-Brute-Force-Tool
python steg_brute.py -b -d [字典] -f [jpg_file]需要安装的库:progressbar
pip install progressbar2在github上下载脚本,网址: https://github.com/chishaxie/BlindWaterMark
安装 python前置模块
> pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
......
> sudo pip install matplotlib
......安装成功后打开 bwm.py 所在文件夹,在文件夹中打开终端
# 1.png 为无水印原图
# 2.png 为有盲水印的图
# flag.png 为解出来的图片
> python bwm.py decode 1.png 2.png flag.png查看 flag.png 即可
安装成功后打开 bwm.py 所在文件夹,在文件夹中打开终端
# 1.png 为无水印原图
# water.png 为水印图
# 2.png 为有盲水印图
> python bwm.py encode 1.png water.png 2.png查看 2.png 即可
import cv2
import numpy as np
import random
import os
from argparse import ArgumentParser
ALPHA = 5
def build_parser():
parser = ArgumentParser()
parser.add_argument('--original', dest='ori', required=True)
parser.add_argument('--image', dest='img', required=True)
parser.add_argument('--result', dest='res', required=True)
parser.add_argument('--alpha', dest='alpha', default=ALPHA)
return parser
def main():
parser = build_parser()
options = parser.parse_args()
ori = options.ori
img = options.img
res = options.res
alpha = options.alpha
if not os.path.isfile(ori):
parser.error("original image %s does not exist." % ori)
if not os.path.isfile(img):
parser.error("image %s does not exist." % img)
decode(ori, img, res, alpha)
def decode(ori_path, img_path, res_path, alpha):
ori = cv2.imread(ori_path)
img = cv2.imread(img_path)
ori_f = np.fft.fft2(ori)
img_f = np.fft.fft2(img)
height, width = ori.shape[0], ori.shape[1]
watermark = (ori_f - img_f) / alpha
watermark = np.real(watermark)
res = np.zeros(watermark.shape)
random.seed(height + width)
x = range(height / 2)
y = range(width)
random.shuffle(x)
random.shuffle(y)
for i in range(height / 2):
for j in range(width):
res[x[i]][y[j]] = watermark[i][j]
cv2.imwrite(res_path, res, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
if __name__ == '__main__':
main()python pinyubwm.py --original 1.png --image 2.png --result out.png查看 out.png 即可,如果无法得到正常图片,可将 1.png 和 2.png 调换位置再次尝试
下载:https://github.com/livz/cloacked-pixel
python lsb.py extract [stego_file] [out_file] [password]其余详见: https://github.com/livz/cloacked-pixel
gem install zsteg#查看全部信息
zsteg -a 1.bmp
#提取固定通道的内容
zsteg -e b8,a,lsb,xy 1.png -> out.png在 pngcheck.exe 所在文件夹打开cmd
pngcheck.exe -v 123.png可检查 png 的 IDAT 块是否有问题
相关题目可参考:https://blog.csdn.net/u010391191/article/details/80818785
有关解题脚本可参考 FzWjScJ 师傅的blog:http://www.fzwjscj.xyz/index.php/archives/17/
apt install webp需要的时候按 Y 即可
cwebp - 编码器工具:可将png转为webp
cwebp 1.png -o 2.webpdwebp - 解码器工具:可将webp转为png
dwebp 1.webp -o 2.pngvwebp - 查看器工具:可直接查看webp格式图片
vwebp 1.webpwebpinfo - 格式查看工具:可打印出WebP文件的块级结构以及基本完整性检查
webpinfo 1.webp其余(gif2webp、img2webp等可见官方文档)
apt-get install exiftool需要的时候按 Y 即可
exiftool 1.jpg # 显示图片所有信息
exiftool 1.jpg | grep flag # 查看图片有关‘flag’字符的信息
exiftool * # 查看此文件夹所有图片信息
exiftool -b -ThumbnailImage attachment.jpg >flag.jpg # 提取缩略图其余详细: https://segmentfault.com/a/1190000018032048?utm_source=tag-newest
此种加密支持对PNG、BMP、GIF、WebP和WAV格式加密,同时可以选择有无password
pip3 install stegpy不含有密码
stegpy 'hello_world' image.png含有密码
stegpy "hello_world" image.png -p
Enter password (will not be echoed): # 输入密码(不显示)
Verify password (will not be echoed): # 确认密码(不显示)不含有密码
stegpy _image.png含有密码
stegpy _image.png -p
Enter password (will not be echoed): # 输入密码(不显示)kali中安装: sudo apt-get install fcrackzip
> sudo apt-get install fcrackzip
......参数说明:
-c 指定字符集,格式 -c 'aA1!:'
a 表示小写字母[a-z]
A 表示大写字母[A-Z]
1 表示阿拉伯数字[0-9]
! 表示特殊字符集[!:$%&/()=?{[]}+*~#]
: 表示包含冒号之后的字符(不能为二进制的空字符),例如 a1:$% 表示 字符集包含小写字母、数字、$ 和 % 打开终端
> fcrackzip -b -c 'a1A' -l 1-10 -u 123.zip
PASSWORD FOUND!!!!: pw == qsb参数说明:
-b 表示使用暴力破解方式
-c 'a1A' 表示使用大小写字母和数字混合破解的方式
-l 1-10 表示需要破解的密码长度为1-10
-u 表示只显示破解出来的密码,其他错误密码不显示添加字典:
frcackzip -D -p zidian.txt -u 123.zip
PASSWORD FOUND!!!!: pw == qsb参数说明:
-D 表示要使用字典破解
-p 表示要使用的那个字典下载脚本:https://github.com/theonlypwner/crc32
python crc32.py reverse 你的crc32密文
下载:https://files.cnblogs.com/files/ECJTUACM-873284962/ZipCenOp.zip
在工具所在文件夹打开cmd,输入
java -jar ZipCenOp.jar r xxx.zip如果显示success则表示成功,之后再直接解压压缩包即可
同样打开cmd,输入
java -jar ZipCenOp.jar e xxx.zip压缩包就被伪加密了
项目地址:https://github.com/kimci86/bkcrack
前置条件:安装cmake
安装方法:https://my.oschina.net/u/4231975/blog/3187835
比较推荐第一种方法,快捷方便
apt install cmake在安装好cmake后,在GitHub上将项目压缩包下载下来并解压,进入解压得到的文件夹,依次执行
cmake .
make可执行文件在/bkcrack-master/src目录下,名为bkcrack
参考项目已有的用法即可
项目地址:https://github.com/Aloxaf/p7zip
下载后解压,进入文件夹,执行sudo bash install.sh
7za e cipher.zip '-p[d4f34b9d_a6ba3461_dcd97451]'pip install uncompyle6uncompyle6 test.pyc > test.py版本:Python 3.6 or later
在 stegosaurus.py 所在文件夹打开cmd,输入:
python stegosaurus.py -x [pyc_file]附件链接:https://pan.baidu.com/s/11fIWgDovj_x4rsrKHyUMhQ
提取码:wnzu
在MP3stego文件夹中打开cmd,然后将 Decode.exe 拖到命令行里,将要解密的文件放在文件夹中
...\Decode.exe -X -P [password] [stego_mp3]执行后会在该文件夹中生成一个 txt 文件,打开查看即可
apt-get install steghide有需要按 Y 即可
将 flag.txt 文件隐藏到 out.jpg 中:
steghide embed -cf out.jpg -ef flag.txt [-p 123456] # -p后接密码,可无查看图片中嵌入的文件信息:
steghide info out.jpg提取含有密码的隐藏内容:
steghide extract -sf out.jpg -p 123456提取不含有密码的隐藏内容:
steghide extract -sf out.jpg直接按回车即可
有些题目用steghide加密文件但是不给密码,此时就需要爆破,steghide本身并不支持爆破,需要一些其他的方法:https://github.com/Va5c0/Steghide-Brute-Force-Tool
python steg_brute.py -b -d [字典] -f [jpg_file]需要安装的库:progressbar
pip install progressbar2kali下自带有一份无线密码字典:/usr/share/wordlists/rockyou.txt.gz,我们需要将其解压:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b [MAC] [capfile]
-w 后加字典的位置(kali中自带字典的位置)
-b 后加路由器的MAC地址(应该也就是BSSID)安装环境基于python3
python3 -m pip install --user xortoolpython2似乎也可以……
pip install xortool在想要解密的文件所在目录打开终端:
xortool (-x) -c 20 123.txt
#-x:代表文件内容为十六进制
#-c:后加出现频率最高的字符,文本内容一般是空格(20),二进制文件一般是00这里只列出了最简单的使用方法,其余可见: https://pypi.org/project/xortool/
下载:https://pan.baidu.com/s/1qZmnPar-gfqT9OaWO_DS3g
提取码:svp9
将 lsass.dmp 文件放在 mimikatz.exe 所在目录下,关闭杀软后打开 mimikatz.exe
执行以下三条命令:
privilege::debug
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
依次执行以下五条命令
git clone https://github.com/nemanja-m/gaps.git
cd gaps
pip install -r requirements.txt
sudo apt-get install python-tk
pip install -e .详细:https://www.zhuanzhi.ai/document/282c8a2293a31361d4c15b4451b5406a
create_puzzle [图片绝对路径] --size=[尺寸] --destination=[创建拼图名称]得到的拼图所有图在一张大图上,可以配合convert命令将其切开
如果还原的是被切开成一小块一小块的拼图,需要先将其拼在一张大图上(可用montage命令),之后再用gaps将其还原:
gaps --image=out.jpg --generations=50 --population=120 --size=50
--image 指向拼图的路径
--size 拼图块的像素尺寸
--generations 遗传算法的代的数量
--population 个体数量
--verbose 每一代训练结束后展示最佳结果
--save 将拼图还原为图像如果不能明确提供--size的参数,拼图块尺寸将自适应调整,经过我的多次试验,提供--size参数效果会更好
下载:https://github.com/hfeeki/dtmf
先将其中dtmf-decoder.py这个脚本中读入文件的部分按照个人需求进行修改
修改后直接运行脚本即可
python dtmf-decoder.py注:如果在py3环境下运行失败的话请换成py2环境再次运行
将信息flag{1234}隐藏在data.txt中,结果另存为out.txt,密码为123
snow.exe -C -m "flag{1234}" -p "123" data.txt out.txt打开out.txt,其中就有隐写的结果,也可以不指定密码进行无密钥隐写
假设out.txt中有隐写的内容,密码为123
snow.exe -C -p "123" out.txt如果不需要密码,就把-p省略掉
apt install stegsnow-C : 加密时压缩数据,解密时解压数据
-f [message-file] : 将该文件中的内容隐藏在输入文本文件中
-m [message-string] : 将该字符串隐藏在输入文本文件中
-p [password] : 加解密可用密钥其他:http://manpages.ubuntu.com/manpages/bionic/man1/stegsnow.1.html
以"hello world"作为密钥,将infile文件中的"I am lying"压缩隐藏在outfile中
stegsnow -C -m "I am lying" -p "hello world" [infile] [outfile]
提取上述加密的信息
stegsnow -C -p "hello world" [outfile]apt-get install zbar-toolsusage: zbarimg [options] <image>...
scan and decode bar codes from one or more image files
options:
-h, --help display this help text
--version display version information and exit
-q, --quiet minimal output, only print decoded symbol data
-v, --verbose increase debug output level
--verbose=N set specific debug output level
-d, --display enable display of following images to the screen
-D, --nodisplay disable display of following images (default)
--xml, --noxml enable/disable XML output format
--raw output decoded symbol data without converting charsets
-1, --oneshot exit after scanning one bar code
-S<CONFIG>[=<VALUE>], --set <CONFIG>[=<VALUE>]
set decoder/scanner <CONFIG> to <VALUE> (or 1)
--nodbus disable dbus message本题利用zbarimg扫码,编写shell脚本
#!/bin/sh
for i in ./frames/frame-*.png;
do
#echo $i
zbarimg -q --raw -Sbinary $i >> out
done;-q:安静模式,只输出扫码内容--raw:输出原始数据,不经过任何处理与字符转换apt-get install aa3d可使用选项
Options:
-w width Image width (Default:80)
-s step Size of repeating sequence (Default:12)
-t text Text used to generate background
-r Disable random text placement
-f file Use file as input for raster
-d Use digits instead of letters首先构造一个字符画,假设文件命名为 1.txt
111 111
111 111
111
111111111111 111111 111 111 111 1111111 111 111111 1111111
111 1111 1111 111 111 111 111 111 111 1111 111 111 111 111
111 111 111 11111111 111 111 111 111 111 111 11111111 11111111
111 111 111 1111 1111 111 1111 111 1111 111 1111 111
111 111 111 111111 11111111111 1111111 111 111111 1111111 在终端调用aa3d
aa3d -w 100 < 1.txt
GJTR`KMJN[LSGJTR`KMJN[LSGJTR`KMJN[LSGJTR`KMJN[LSGJTR`KMJN[LSGJTR`KMJN[LSGJTR`KMJN[LSGJTR`KMJN[LSGJTR
K[\JRGF]]UVYK[\JRGF]]UVYK[\JRGF]]UVYK[\JRGF]]UVYK[\JRGF]]UYK[[\JRGF]]YK[[[\JRGF]]YK[[[\JRGF]]YK[[[\J
TVKOIYSYAZN^TVKOIYSYAZN^TVKOIYSYAZN^TVKOIYSYAZN^TVKOIYSYAZ^TVVKOIYSYA^TVVVKOIYSYA^TVVVKOIYSYA^TVVVKO
ADFM\SHEUMLZADFM\SHEUMLZADFM\SHEUMLZADFM\SHEUMLZADFM\SHEUMZADDFM\SHEUMZADDFM\SHEUMZADDFM\SHEUMZADDFM
CEYZIHVFQ[K`CEYIHVFQ[K`CEYIIHVFQK`CEYIIIHVQK``CYIIIIVQKK``YIIIIVQQKK`YIIIIIVQKK`YIIIIIVQKK`YIIIIIIVQ
RFWBU`VKCKMJRFWU`VVCKMJJFWU``VVKMJJJWU```VKMJJJWU```VKMMJJWU```VKMMMJWU````KMMMMWU````KMMMMMWU````KM
[VHPWK_E`BLB[VHWK__EBLBB[HWKK__BLBB[HWKKK_BLBBBHWKKK_BLLBBHWKKK_BLLLBHWKKKKBLLLBHWKKKKBLLLBHWKKKKKBL
B\BHNY^LWCBEB\BNY^^LCBEEBBNYY^^CBEEEBBNYY^CBEEEBBNNY^CBBEEBBNNY^CBBBEBBNNNYCBBBBEBBNNNYCBBBEBBBNNNYC
ANCNH^N\HYWVANCH^NN\YWVVACH^^NN\WVVACHH^^NNWVVACHH^^NNNWVVCHH^^NNNNWVCHHH^^NNNWVCHHHH^^NNWVCHHHHH^^N
^SWXCUEMEVIX^SWXCUEMEVIX^SWXCUEMEVIX^SWXCUEMEVIX^SWXCUEMEVIX^SWXCUEMEVIX^SWXCUEMEVIX^SWXCUEMEVIX^SWX
MVE]KO[`ZCVHMVE]KO[`ZCVHMVE]KO[`ZCVHMVE]KO[`ZCVHMVE]KO[`ZCVHMVE]KO[`ZCVHMVE]KO[`ZCVHMVE]KO[`ZCVHMVE]立体图可以通过两个相同的图片偏移取差值的方法看到信息
先将生成的字符串截图出来

然后使用 stegsolve 的 stereogram solver 选项,依次查看图片的偏移

可以看到当偏移为96时就能还原出近乎一模一样的字符画
要用cmd
bftools.exe decode braincopter flag.png > 1.txt
bftools.exe run 1.txt > 2.png
bftools.exe decode brainloller 2.png > 3.txt
bftools.exe run 3.txt