MISC图片隐写工具zsteg安装+使用教程

没使用过这个工具,真是吃了大亏了,在图片LSB隐写方面比Stegsolve好用太多太多了,不多说,用过你就知道。

0x0、简介

zsteg可以检测PNG和BMP图片里的隐写数据。

目前,zsteg支持检测:

  1. LSB steganography in PNG & BMP
  2. zlib-compressed data
  3. OpenStego
  4. Camouflage 1.2.1
  5. LSB with The Eratosthenes set

github项目:https://github.com/zed-0xff/zsteg

作者网站:http://zed.0xff.me/

0x1、安装

首先将文件下载到本地:

这个会下载到当前打开的文件夹下

git clone http://www.github.com/zed-0xff/zsteg

0x1.1要换国内源(你懂得)

1.查看现有源:

gem sources -l

2.删除现有源:

gem sources --remove https://rubygems.org/

3.添加新源:

gem sources -add https://gems.ruby-china.com/

0x1.2安装gem

ps:Kali2020版需要root权限,命令前添加sudo

apt-get install gem

0x1.3安装zsteg

gem install zsteg

ps:以上安装及换源过程都需要等待些许时间,心急不得哈

0x2、使用

0x2.1 zsteg的使用方法(非官方)

查看帮助

zsteg -h

查看LSB信息

zsteg pcat.png

检测zlib

# -b的位数是从1开始的

zsteg zlib.bmp -b 1 -o xy -v

显示细节

zsteg pcat.png -v

尝试所有已知的组合

zsteg pcat.png -a

导出内容

zsteg -E “b1,bgr,lsb,xy” pcat.png > p.exe

其他的请查看README.md

0x2.2官方README.md

zsteg

Description

detect stegano-hidden data in PNG & BMP

Installation

gem install zsteg

Detects:

Usage

# zsteg -h

Usage: zsteg [options] filename.png [param_string]

  -c, --channels X                 channels (R/G/B/A) or any combination, comma separated
                                    valid values: r,g,b,a,rg,bgr,rgba,r3g2b3,...
  -l, --limit N                   limit bytes checked, 0 = no limit (default: 256)
  -b, --bits N                     number of bits, single int value or '1,3,5' or range '1-8'
                                    advanced: specify individual bits like '00001110' or '0x88'
      --lsb                       least significant BIT comes first
      --msb                       most significant BIT comes first
  -P, --prime                     analyze/extract only prime bytes/pixels
      --invert                     invert bits (XOR 0xff)
  -a, --all                       try all known methods
  -o, --order X                   pixel iteration order (default: 'auto')
                                    valid values: ALL,xy,yx,XY,YX,xY,Xy,bY,...
  -E, --extract NAME               extract specified payload, NAME is like '1b,rgb,lsb'

      --[no-]file                 use 'file' command to detect data type (default: YES)
      --no-strings                 disable ASCII strings finding (default: enabled)
  -s, --strings X                 ASCII strings find mode: first, all, longest, none
                                    (default: first)
  -n, --min-str-len X             minimum string length (default: 8)
      --shift N                   prepend N zero bits

  -v, --verbose                   Run verbosely (can be used multiple times)
  -q, --quiet                     Silent any warnings (can be used multiple times)
  -C, --[no-]color                 Force (or disable) color output (default: auto)

PARAMS SHORTCUT
zsteg fname.png 2b,b,lsb,xy ==> --bits 2 --channel b --lsb --order xy

Examples

Simple LSB

# zsteg flower_rgb3.png

imagedata           .. file: 370 XA sysV pure executable not stripped - version 768
b3,rgb,lsb,xy       .. text: "SuperSecretMessage"

Multi-result file

# zsteg cats.png

meta F             .. ["Z" repeated 14999985 times]
meta C             .. text: "Fourth and last cat is Luke"
meta A             .. [same as "meta F"]
meta date:create   .. text: "2012-03-15T23:32:46+07:00"
meta date:modify   .. text: "2012-03-15T23:32:14+07:00"
imagedata           .. file: 68K BCS executable
b1,r,lsb,xy         .. text: "Second cat is Marussia"
b1,g,lsb,xy         .. text: "Good, but look a bit deeper..."
b1,bgr,lsb,xy       .. text: "MF_WIhf>"
b2,g,lsb,xy         .. text: "VHello, third kitten is Bessy"

wbStego even distributed

# zsteg wbstego/wbsteg_noenc_even.bmp 1b,lsb,bY -v

imagedata           .. file: FoxPro FPT, blocks size 1, next free block index 65537
  00000000: 00 01 00 01 00 00 00 01 00 00 00 00 00 00 00 00 |................|
  00000010: 00 00 00 00 00 00 00 00 00 00 00 01 00 01 01 00 |................|
  00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
  00000030: 00 01 01 01 00 01 00 00 00 00 00 00 01 01 00 01 |................|
  00000040: 01 00 01 01 00 01 00 01 00 01 01 01 01 00 00 00 |................|
  00000050: 00 00 00 01 01 01 01 00 01 00 01 00 00 00 00 01 |................|
  00000060: 00 00 01 01 01 00 00 01 00 01 01 01 00 01 00 00 |................|
  00000070: 01 01 01 00 01 00 00 00 00 00 01 01 01 00 00 00 |................|
  00000080: 00 01 00 01 00 00 01 01 01 01 00 00 00 01 01 00 |................|
  00000090: 00 01 00 01 00 01 01 00 01 00 00 01 00 01 00 00 |................|
  000000a0: 00 01 01 01 00 01 00 01 01 01 00 01 00 00 00 01 |................|
  000000b0: 01 00 01 00 00 01 00 01 00 01 01 01 00 00 00 00 |................|
  000000c0: 01 00 00 00 00 01 00 00 01 01 00 00 01 00 00 00 |................|
  000000d0: 00 00 01 00 00 01 01 01 00 01 01 00 00 01 00 01 |................|
  000000e0: 01 01 01 01 01 01 01 00 00 00 00 00 01 00 00 00 |................|
  000000f0: 00 01 01 01 00 00 01 00 00 00 01 01 00 01 00 01 |................|
b1,lsb,bY           .. <wbStego size=22, data="xtSuperSecretMessage\n", even=true, mix=true, controlbyte="t">
  00000000: 51 00 00 16 00 00 74 0d b5 78 1e a1 39 74 e8 38 |Q.....t..x..9t.8|
  00000010: 53 c6 56 94 75 d1 a5 70 84 c8 27 65 fe 08 72 35 |S.V.u..p..'e..r5|
  00000020: 1f 3e 53 5d a7 65 8b 6e 3b 63 6b 1d bf 72 ee 27 |.>S].e.n;ck..r.'|
  00000030: 65 8d ee 82 74 da 8d 4d b3 8a 06 65 7e f8 73 9c |e...t..M...e~.s.|
  00000040: 36 0c 73 aa bd 61 67 29 37 67 5f 0b 06 65 1f a4 |6.s..ag)7g_..e..|
  00000050: 0a a1 f8 35                                       |...5           |

wbStego encrypted

# zsteg wbstego/wbsteg_blowfish_pass_1.bmp 1b,lsb,bY -v

b1,lsb,bY           .. <wbStego size=26, data="\rC\xF5\xBF#\xFF[6\e\xB3"..., even=false, hdr="\x01", enc="Blowfish">
  00000000: 1a 00 00 00 ff 01 01 0d 43 f5 bf 23 ff 5b 36 1b |........C..#.[6.|
  00000010: b3 17 42 4a 3f ba eb c7 ee 9c d7 7a 2b           |..BJ?......z+   |

zlib

# zsteg ndh2k12_sp113.bmp -b 1 -o yx -v

b1,rgb,lsb,yx       .. zlib: data="%PDF-1.4\n%\xC3\xA4\xC3\xBC\xC3\xB6\xC3\x9F\n2 0 obj\n<</Length 3 0 R/Filter/FlateDecode>>\nstream\nx\x9C\x8DT\xC9n\xDB@\f\xBD\xCFW\xF0\x1C \x13\x92\xB3\x03\x86\x80\xC8K\xD1\xDE\\\b\xE8\xA1...", offset=4, size=186
  00000000: 00 02 eb 9b 78 9c d4 b9 65 54 24 cc 92 36 58 b8 |....x...eT$..6X.|
  00000010: d3 68 e3 ee ee 4e e3 ee ee 0e 85 bb 3b dd 68 23 |.h...N......;.h#|
  00000020: 8d bb bb bb 3b 8d bb bb 3b 34 ee 6e 1f ef 7b ef |....;...;4.n..{.|
  00000030: 9d 3b b3 e7 cc 9e d9 3d df 9e dd cd 8a 1f 99 19 |.;.....=........|
  00000040: 99 55 11 99 4f 58 25 99 82 88 18 1d 13 3d 2b 2c |.U..OX%......=+,|
  00000050: 59 6f 7e 6f 7b 6f 63 6f 16 2c 33 21 23 a1 9d 91 |Yo~o{oco.,3!#...|
  00000060: 25 2c 2f 2f 83 0c d0 d6 cc d9 9c 90 e5 73 46 89 |%,//.........sF.|
  00000070: 41 cc c2 da 19 e8 c8 20 66 6d e8 0c 14 01 1a db |A...... fm......|
  00000080: 99 00 f9 f8 60 9d 9c 1d 81 86 36 b0 ee e9 bf 54 |....`.....6....T|
  00000090: 86 6d 57 05 e0 3b 26 d5 2f 71 09 51 63 eb c0 82 |.mW..;&./q.Qc...|
  000000a0: bf 0f 49 4f 6f e8 40 ff c9 f9 43 25 1d 9e 6b 1b |..IOo.@...C%..k.|
  000000b0: a3 73 fd 42 c4 a6 65 3d ef 0a 07 32 17 2d dc f9 |.s.B..e=...2.-..|
  000000c0: 10 8c 0d 4b d7 9d e6 01 12 4f 11 6f f0 cd 64 f2 |...K.....O.o..d.|
  000000d0: f2 19 5c df 76 eb 01 49 dc fd cd 76 65 a2 3a 8a |..\.v..I...ve.:.|
  000000e0: fd bb 13 a9 e6 3a c9 da 19 34 ae f0 43 bb 90 90 |.....:...4..C...|
  000000f0: 58 88 de 46 ce 91 6f aa 8d d9 7d b8 d6 88 a6 65 |X..F..o...}....e|

See also

  1. https://29a.ch/photo-forensics/
  2. https://holloway.nz/steg/

License

Released under the MIT License. See the LICENSE file for further details.

windows10下安装python2和python3及gmpy2安装

一、py2与py3及pip共存

环境:win10

py版本:2.7.18、3.8.5

下载地址:https://www.python.org/downloads/

安装 python2.7.18

正常安装,记得勾选 Add Python.exe to Path ,将python加入系统环境变量

安装 python3.8.5

正常安装,记得勾选 Add Python 3.8 to PATH ,然后选择 Customize installation 自定义安装,我是把安装路径修改成C:\Python38了

控制面板–>系统和安全–>系统–>高级系统设置–>环境变量–>Path,点击编辑,新建,添加环境变量

将python文件夹的python.exe和pythonw.exe改名

在命令行窗口输入 python2 ,python3 可以看到成功运行对应的 python 版本,再用如下重新安装一下 pip,此时命令行输入 pip2 -v 和 pip3 -v ,可以看到两个版本的 pip 信息

python2 -m pip install --upgrade pip --force-reinstall
python3 -m pip install --upgrade pip --force-reinstall

分别进到两个 python 文件夹下面的 Scripts 文件夹,把 pip pip2.7 pip3.8 都删了,只保留pip2 pip3

到这里就成功安装了 python2.7 和 python3.8.5 以及对应的 pip

二、gmpy2安装

先分别安装 wheel 文件包

pip install wheel
pip3 install wheel

再安装 gmpy2 所需要的 whl 文件,下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/

whl 文件包需要和你所安装的 python3 版本一致

在 cmd 中输入以下命令完成安装,import 一下没有报错验证成功安装

python2:
pip install whl文件路径
pip install gmpy2
python3:
pip3 install whl文件路径
pip3 install gmpy2

参考:https://www.cnblogs.com/wkzb/p/12565290.html

学习CTF

最近有个学习CTF的机会,去上了几天课,刚开始接触的时候真的是一头雾水,还好授课讲师比较给力,对我们这些零基础的学生手把手教学,几天之后对基本能照葫芦画出瓢来。

其中有一个讲师还是海校的师弟,今年刚毕业,CTF比赛的经验比较多,课程也讲得很棒,根据与他的一些交流,近几年母校在网络安全方面的兴趣班搞得有声有色,比我当年的学习氛围好了许多。如果当年有这种氛围,凭自己对这方面的兴趣,相信也能学到不少东西。

本来打算学习结束继续深入学习,但是由于家庭、工作等原因,很难有大量的时间去深入研究这些东西,只能是尽量抽时间去学习吧,毕竟我对这方面还是非常有兴趣的,特别是WEB方面。

也咨询过另一个讲师,他也建议我去学web方面的内容,这方面既能学习又能赚钱。

解决兄弟打印机(Brother)MFC-8535DN跨网段共享打印设置

最近接触了一批Brother MFC-8535DN网络打印机,在使用有线网络共享的时候遇到了跨网段无法打印的问题,去官网找资料并联系微信在线客服之后,Brother的技术工程师告诉我这个问题他们无法解决。无奈之下只能自己研究了。

跨网段故障情况

局域网内因计算机较多使用了172.16.1.X和172.16.2.X两个IP段,在网络设置中这两个网段完全互联互通的。

  • 计算机A,IP172.16.1.100
  • 计算机B,IP172.16.2.100
  • Brother MFC-8535DN(以下简称:打印机),IP172.16.1.110

计算机A安装打印机及使用完全正常。

计算机B安装打印机时搜索网络打印机界面需要手动输入IP地址才能找到该打印机并安装,并且安装后无法打印。

解决办法

  1. 安装打印机时手动输入IP地址找到该打印机并安装驱动。
  2. 打开打印机属性——端口——选中Brother打印机对应的端口——配置端口
  3. 端口设置界面,第二项【打印机名或IP地址(A)】修改默认的打印机名为打印机的IP地址。【协议】修改为Raw(R)。确定保存后跨网段打印问题解决。

PS:暂未测试扫描功能是否正常。

回归(2020)

没错,时隔4年,这个博客又复活了。

还是一样的主题,还是一样的味道,还是一样的不定时更新,还是一样的不知何时再次消失,也不知道何时会永久消失。

活在当下吧。

兜兜转转,又回到原来的地方,数据是4年前备份回来的,虽然很多古董文章早已过时,还是保留着吧,给自己一个寻找回忆的地方。

刚刚翻了一下后台的评论及友链,曾经一起折腾blog的小伙伴们,一个活着的blog都找不到了。

不管您是曾经相识的小伙伴,还是路过这里的陌生人,希望能留下只字片语。

接下来,我有个计划(目测执行不下去):多点分享技术类文字,多点写自己的心情。

晚安!

by Rainbow at 2020-06-11