文章目录

zip(伪)加密、图片隐写

由 晨星运营组 发布

zip(伪)加密、图片隐写

杂项题:需要密码的zip文件,

(1) 根据提示或其他文件解出密码

(2) 暴力破解

(3) 伪加密修改

(4) 明文攻击


原理

压缩源文件数据区:

      
  • 50 4B 03 04:头文件标记(0x04034b50)
  • 14 00:解压文件所需 pkware 版本
  • 00 00:全局方式位标记(判断有无加密)
  • 08 00:压缩方式
  • 5A 7E:最后修改文件时间
  • F7 46:最后修改文件日期
  • 压缩文件目录区:

          
  • 50 4B 01 02:目录中文件头标记(0x02014b50)
  • 1F 00:压缩使用的 pkware 版本
  • 14 00:解压所需 pkware 版本
  • 00 00:全局方式位标记(判断伪加密)
  • 08 00:压缩方式
  • 5A 7E:最后修改文件时间
  • F7 46:最后修改文件日期
  • 压缩源文件目录结束标志:

          
  • 50 4B 05 06:目录结束标记
  • 00 00:当前磁盘编号
  • 00 00:目录区开始磁盘编号
  • 01 00:本磁盘上纪录总数
  • 01 00:目录区中纪录总数
  • 59 00 00 00:目录区尺寸大小
  • 3E 00 00 00:目录区对第一张磁盘的偏移量
  • 00 00:ZIP 文件注释长度
  • 加密

    判断是否加密:

    全局方式位标记的四个数字仅第二个数字影响加密属性, 第二个数字为奇数时加密,为偶数时未加密

    无加密:

          
  • 压缩源文件数据区的全局方式位标记:00 00(50 4B 03 04 14 00后)
  • 且压缩源文件目录区的全局方式位标记:00 00(50 4B 01 02 14 00后)


  • 08 00中8为偶数,故未加密

    伪加密:

          
  • 数据区:00 00(50 4B 03 04 14 00后)
  • 目录区:09 00(50 4B 01 02 14 00 后)

  • 前面未加密,后面为奇数加密,故为伪加密

    真加密:

          
  • 数据区:09 00(50 4B 03 04 14 00 后)
  • 且目录区:09 00(50 4B 01 02 14 00 后)

  • 两者均为奇数加密,故为真加密


    修改方法:

    确定为伪加密后,将标记从 09 00改为00 00即可


    其他途径:

    (1)用binwalk -e 无视伪加密

    (2)在macOS和kali系统中,可直接打开伪加密zip文件

    (3)检测伪加密的工具ZipCenOp.jar

    (4)有时可用WinRAR的修复功能


    可能有的真加密实际为伪加密

    (1)binwalk -e 无视伪加密:

    在kali中使用自带的binwalk,运行后会生成文件夹,内含zip和txt文件

    (2)在kali中直接打开

    (3)用zipcenOp.jar工具

    Binwalk工具:

    分析隐藏文件:binwalk + 文件名

    分离隐藏文件:binwalk -e + 文件名

    还可查看文件隐写

          
  • binwalk firmware.bin // 基础操作
  • binwalk -e firmware.bin // 自动提取
  • sudo binwalk -u // 升级binwalk
  • 若binwalk -e因权限问题运行失败,可添加--run-as=root:

          
  • binwalk -e [文件] --run-as=root
  • 图片分析工具

    010editor

    Stegsolve:图片分析工具,支持通道分离/LSB提取



    修改图片高度

    Png:


    第二行前四对为宽度,接着四对为图片高度

    将目标高度的十进制转为十六进制修改即可

    Jpg:

    FF C0:jpg文件控制尺寸的十六进制表示


    高:0647(十进制1607)

    宽:0500(十进制1280)

    高度十六进制最高可设为5048(无需逐次尝试)


    Stegdetect:>数字图像隐写分析工具,主要检测JPEG图像的隐秘信息嵌入

          
  • q – 仅显示可能包含隐藏内容的图像
  • n – 启用JPEG文件头检查,降低误报率(带批注区域的文件视为无嵌入信息)
  • 若JPEG的JFIF版本号非1.1,禁用OutGuess检测
  • s – 修改检测敏感度(默认1,值越大可疑文件含敏感信息可能性越高)
  • d – 打印带行号的调试信息
  • i – 检测图像信息是否用invisible secrets嵌入
  • Pdf文件:

    隐写工具zsteg: 检测png和bmp图片的隐写数据,查看lsb数据

          
  • zsteg xxx.bmp –msb
  • zsteg xxx.bmp
  • zsteg xxx.png
  • zsteg -a (文件名)
  • 检测zlib:

          
  • -b的位数从1开始
  • zsteg zlib.bmp -b 1 -o xy -v
  • 提取该通道图片
  • zsteg -e b8,a,lsb,xy 文件.png -> out.png

  • Foremost: 解析图片隐写、分离文件、还原删除文件

          
  • -V - 显示版权信息并退出
  • -t - 指定文件类型 (-t jpeg,pdf …)
  • -d - 打开间接块检测 (针对UNIX文件系统)
  • -i - 指定输入文件 (默认为标准输入)
  • -a - 写入所有文件头部,不执行错误检测(损坏文件)
  • -w - 向磁盘写入审计文件,不写入检测到的文件
  • -o - 设置输出目录 (默认为输出)
  • -c - 设置配置文件 (默认为 foremost.conf)
  • -q - 启用快速模式,在512字节边界搜索
  • -Q - 启用安静模式,禁用输出消息
  • -v - 详细模式,向屏幕记录所有消息
  • 使用命令: foremost -i 目标文件名 -o 输出文件夹(需提前创建)

    RAR压缩包修复:

          
  • 缺少RAR4标头,插入52 61 72 21 1A 07 00
  • 缺少RAR5标头,插入52 61 72 21 1A 07 01 00

  • 文件头修复:

    文件头损坏可能是 HEAD_TYPE被修改导致

    RAR4:压缩多个文件时,间隔 HEAD_CRC(2位) HEAD_TYPE

    RAR5:每个文件间隔 HEAD_CRC(4位) HEAD_SIZE HEAD_TYPE

    正常情况下 HEAD_TYPE取值为 0x74(RAR4)0x02(RAR5)

    修复文件头损坏:将 HEAD_TYPE修改为正确值即可

          
  • Rar4: HEAD_TYPE = 0x74 - FILE_HEAD(文件头)
  • Rar50x02 - 文件头
  • 示例:普通压缩包


    7A改为74 ,即可正常解压出png文件(rar中,74表示后面是文件)


    明文攻击

    工具:Archpr

    压缩包加密算法为zipcrypto

    过程:准备与加密压缩包内某文件同格式的未加密文件, 用相同算法压缩,使其与加密包有可比对内容, 在archpr中以明文操作即可出结果

    示例:bugku:神秘的文件




    END

    编辑人:黄珊珊






    0条评论

    发表评论