Misc隐写术

Misc图片隐写

附加式的图片隐写

解题方法主要有:

  • Strings
  • binwalk
  • Winhex或010 Editor

基于文件结构的图片隐写

解题方法:

  • 010Editor(高度被修改)
  • CRC Calculator

当使用010 Editor修改高度的时候,很有可能导致CRC值检验报错,这时候要用CRC Calculator 来重新计算CRC值

现在有很多工具可以检测png图片的CRC32是否错误并返回正确的CRC32值

pngcheck工具

基于LSB原理的图片隐写

LSB隐写(只有文件类型为PNG和BMP的无损压缩文件才可以用LSB隐写)

需要用到stegsolve工具和jave的运行环境。

而LSB隐写就是修改RGB颜色分量的最低二进制位也就是最低有效位(LSB),而人类的眼睛不会注意到这前后的变化,(人类的眼睛只能识别一部分颜色的变化)

分析是否有可能是LSB隐写,我们开始点击下面的按钮,切换到不同通道,我们逐渐对比不同通道我们所看到的图片是怎么样子的。

我们发现在Red plane0Greee plane 0以及B略 plane 0出现了相同的异常情况,我们这里基本可以断定就是LSB隐写了

方法:

  • 利用Stegsolve的Data Extract功能提取出最小位的RGB
  • 利用python脚本来提取最小位的RGB
from PIL import Image

im = Image.open("extracted.bmp")
pix = im.load()
width, height = im.size

extracted_bits = []
for y in range(height):
    for x in range(width):
        r, g, b = pix[(x,y)]
        extracted_bits.append(r & 1)
        extracted_bits.append(g & 1)
        extracted_bits.append(b & 1)

extracted_byte_bits = [extracted_bits[i:i+8] for i in range(0, len(extracted_bits), 8)]
with open("extracted2.bmp", "wb") as out:
    for byte_bits in extracted_byte_bits:
        byte_str = ''.join(str(x) for x in byte_bits)
        byte = chr(int(byte_str, 2))
        out.write(byte)

我是在kali系统下得到的文件。拿到文件后关注文件头。这里提取得到的文件头为424D,是bmp文件文件。修改后缀为bmp即可拿到图片。

steghide隐藏信息

steghide.exe info 文件名
steghide.exe extract -sf 文件名

outguess图片隐写

需要key(例题:BJD 2th 圣火昭昭

outguess -k "gemlove" -r sheng_huo_zhao_zhao.jpg hidden.txt

对于某些极难分离和还原数据的图片

可以尝试使用foremost来分离出其中的文件。

foremost 文件名 -T

基于DCT域的JPG图片隐写

stegdetect使用指南:

Stegdetect的主要选项如下:
 -q 仅显示可能包含隐藏内容的图像。
 -n 启用检查JPEG文件头功能,以降低误报率。如果启用,所有带有批注区域的文件将被视为没有被嵌入信息。如果JPEG文件的JFIF标识符中的版本号不是1.1,则禁用OutGuess检测。
 -s 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。
 -d 打印带行号的调试信息。
 -t 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下:
 j 检测图像中的信息是否是用jsteg嵌入的。
 o 检测图像中的信息是否是用outguess嵌入的。
 p 检测图像中的信息是否是用jphide嵌入的。
 i 检测图像中的信息是否是用invisible secrets嵌入的。
 -V 显示软件版本号。
 如果检测结果显示该文件可能包含隐藏信息,那么Stegdetect会在检测结果后面使用1~3颗星来标识 隐藏信息存在的可能性大小,3颗星表示隐藏信息存在的可能性最大。
 
 在使用时注意要提高检测算法的敏感度,该值默认值为1!!!!!!
 
例句:stegdetect -tjopi -s 10 encode.jpg

在知道了相应的加密方法后再用相应的解密工具解析就可以了!!

jphide加密

解密时我们需要一个pass,因此我们需要使用stegbreak来爆破密码或者直接设置为空口令。

更于2020.9.28

数字水印隐写

盲水印隐写

这种隐写方式的特征十分明显:两张相同的图片。

可以先通过stegsolve来比较两张图片,若没有发现再使用盲水印脚本分离。

合成盲水印图

python bwm.py encode hui.png wm.png hui_with_wm.png

解码(python2和python3的解码结果可能会不同 )

python bwmforpy3.py decode 0.png 1.png 2.png --oldseed
python bwmforpy3.py decode 0.png 1.png 2.png 

图片容差隐写

参考:
https://xz.aliyun.com/t/1833
https://xz.aliyun.com/t/1836
https://xz.aliyun.com/t/1844
https://xz.aliyun.com/t/1875

wireshark流量分析学习

  • 流量包修复
  • 在线网站修复
  • web扫描分析
    • sql盲注流量
    • web扫描器流量(扫描器特征)
  • 后台目录爆破分析
    • 筛选后台url特征
  • 后台账号爆破
    • 筛选出POST请求或者账号关键字
  • Webshell上传

  • usb流量包分析
    • 键盘流量
      • Flag藏于usb流量中,通过USB协议数据中的键盘键码转换成键位
    • 鼠标流量
      • Flag藏于usb流量中,通过USB协议数据中的鼠标移动轨迹转换成Flag。
  • 其他流量包分析

http.request.method=="POST" && http contains == "关键字"

sql盲注流量包分析

首先需要导出所有的http对象放到一个文件夹中。

利用ls -l data > data.txt来把文件名等内容放到data.txt

然后利用脚本对文件的长度进行过滤筛选出成功注入的文件名。

传入图片流量分析

对于传入图片的流量,如果图片的16进制组是以参数的方式传输的,那么我们可以通过如下方式来恢复图片。

找到传输图片的16进制组参数

将需要的值复制下来

FFD8..........................

创建一个新文件并存入值

点击OK即可将16进制码传入。修改后缀即可查看原图片了。

流量包中有zip提示

可以使用foremost 工具来还原zip


9.23日更新
学习到一种新的方法

导出分组字节流后存为zip格式即可打开。

数据提取

记学习find the flag的一道流量分析题

(9.24更)

  • 首先下载到的是一个损坏的cap文件,到在线修复网站上可以直接修复。
  • 下载修复完的文件并打开后开始找flag
  • 发现异常——tcp流29开始只有where is the flag的提示
  • 从第29个流量开始看抓到的数据,发现“lf”"ga"倒叙输出的flag格式
  • 最后拿到flag

本文学习参考:https://www.freebuf.com/sectool/201830.html

内存取证

extundelete恢复文件

extundelete可以用于恢复删除的文件。

Linux系统的mount挂载镜像,然后利用extundelete

extundelete attachment.img --restore-all

1608278617915

就能发现了恢复的文件了。

volatility

volatility -f <文件名> --profile=<配置文件> <插件> [插件参数]

volatility -f mem.vmem imageinfo    利用imageinfo插件来猜测dump文件的profile值
volatility -f mem.vmem --profile=WinXPSP2x86 volshell  利用profile 可以进入shell命令
volatility -f mem.vmem --profile=WinXPSP2x86 pslist    列举进程
volatility -f mem.vmem --profile=WinXPSP2x86 psscan	
volatility -f mem.vmem --profile=WinXPSP2x86 hivelist  列举缓存在内存的注册表
volatility -f mem.vmem --profile=WinXPSP2x86 hivedump -o 注册表的 virtual 地址(0xe....)
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SAM\Domains\Account\Users\Names" 
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"  列出账号登陆的时间,找最后一个登录的账号
volatility -f mem.vmem --profile=WinXPSP2x86 userassist
volatility -f mem.vmem --profile=WinXPSP2x86 -p [PID] -D [dump 出的文件保存的目录]
二进制编辑器 hexeditor 将以上保存的 dmp 文件打开,并进行调查取证的工作 。

关键字"TrueCrypto"

python vol.py -f memory.img --profile=Win2003SP2x86 screenshot –dump-dir=ctf/

python vol.py -f memory.img --profile=Win2003SP2x86  memdump -p 3660 -D ctf/

python vol.py -f memory.img --profile=Win2003SP2x86 screenshot --dump-dir=ctf/
拿到屏幕截图

python vol.py -f memory.img --profile=Win2003SP2x86 filescan|grep flag

python vol.py -f memory.img --profile=Win2003SP2x86 dumpfiles -Q 0x000000000484f900 -D ctf/

python vol.py -f memory.img --profile=Win2003SP2x86 windows

python vol.py -f memory.img --profile=Win2003SP2x86 memdump -p 1992 -D ctf/

volatility -f mem.vmem --profile=WinXPSP2x86 memdump -p 1464 -D ctf/  把进程保存到dmp下
得到dmp文件后,利用Elcomsoft Forensic Disk Decryptor来破解
pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
mendump:提取出指定进程,常用foremost 来分离里面的文件
filescan:扫描所有的文件列表
hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容
查看后利用john破解
svcscan:扫描 Windows 的服务
connscan:查看网络连接
netscan  网络连接
iehistory  浏览记录
userassist插件  获取注册表上的证据:
prefetchparser插件  预取文件
shimcache插件   跟踪应用程序的最近修改时间,文件完整路径和执行标志

shell命令

dt("重要的内核")

dt("_PEB")

strings

 你还可以使用 strings 这个工具将它的字符串打印出来。 

strings 1736.dmp > 1736.txt 

strings 1608.dmp > 1736.txt | grep shellcode 

1602329138420

可以可以看到这些进程地址

1602330793661

看看系统里的窗口列表 python vol.py -f memory.img --profile=Win2003SP2x86 windows

输出到1.txt中后查看flag.png查到了这个进程 explorer.exe,把这个进程dump出来

winhex veracrypt

对某些fat文件可以进行加载,可能需要密码(猜)。

某些文件有二层加密,不同的密码有不同的文件。

winhex可以打开一些隐藏的盘,可以在文本中搜索需要的字符串。

posted @ 2020-09-28 20:50  Scr1pt?  阅读(577)  评论(2编辑  收藏  举报