CTF取证技术实战,图片、文件、流等相关内容的取证技术

I、背景

取证技术,尤其是计算机数据取证技术,是一种针对信息犯罪和计算机数据的专业取证技术。它旨在帮助学习者理解电子证据及其形成过程,并掌握计算机数据相关的取证技术。
具体来说,计算机取证是对计算机犯罪证据的识别获取、传输、保存、分析和提交认证的过程。犯罪人员可能将敏感信息隐藏于各种各样的计算机存储文件中,做到传输隐蔽性。所以作为网络安全的一部分,计算机取证技术也是CTF比赛中常见的题型,用于检测取证人员对信息收集,以及敏感信息提取的技术。
接下来,我们来分享一下CTF中常见的取证题型,主要包括网络、键盘输入、USB传输、无线WIFI等流量取证,也包括基本的图片、系统文件、zip文件等基本存储文件的敏感信息取证。

II、CTF取证技术的基本原理

出题人员通过网络抓包工具对网络数据包捕获得到原始文件,以及系统的元数据、文件和文件系统元数据这些原始文件的获取。解题人员在比赛中,从以上的原始文件中通过对原始文件的分析获得敏感信息,过程中可能涉及多种复杂的技术挑战,例如文件格式分析、隐写术、内存转储分析和网络数据包分析等等。
在现实生活中,计算机取证技术非常有用,除了对可疑流量的分析,也包括对系统安全的审计工作,可以保护我们的系统运行,避免关键信息被窃取。以内存取证为例,它是计算机系统的内存中进行取证分析的方法,其目标是获取关于计算机系统当前状态的信息。通过内存取证,可以分析计算机系统上运行的进程、网络连接、文件、注册表等信息,这对于检测和分析恶意软件等计算机威胁十分有用。
其实计算机取证,对人员的细心程度有一定的要求,在取证的过程中要对信息充分的分析,确保证据的真实性合法性,避免对信息的误判和漏判。

III、CTF中常见的取证技术实战

3.1、gif图片分离取证

gif图像交换格式,适合较简单的图像,动图,每一帧动态变化都是一张图片
gif图片隐藏信息原理:利用gif的某张具体图片隐藏具体信息,加快gif播放速度使得肉眼无法识别flag值。
思路:分离gif文件中的图片
方法: 在linux 中或kali中使用convert命令对gif文件进行分离
命令1:convert 文件名.gif %02d.png 解释:该命令会将gif动图,分离成原来的一张一张静态图linux中查看图片
命令2:eog *.png 解释:该命令可以查看当前目录下所有的png图片

3.2、gif图片组合取证

gif图片组合场景:flag(通常是手写)被拆分为很小的一部分,比如一横一划,这样的单个图片,通过gif播放,我们只看到出现很多无规律的无法识别的图形。
思路:现将gif分离成单独一张一张的png图片,然后再将png图片组合(注意:组合的时候需要去除没一张图片的白色背景,不然无法看见组合之后的图形)
如题:
步骤1:gif进行分离得到如下,得到大量的图片
每一张图片全是黑点,无法知道具体内容
分离出来的图片
思考:可能每个黑点是flag的某一个点,考虑尝试将这些图片进行叠加组合,看是否能够组成一些有用的数据

步骤二:图片组合,图片要能叠加组合,需要移除背景白色,图片变透明,便于组合之后看出每张图片具体内容
ls *.png | while read filename; do convert $filename -transparent white $filename; done;
将每张png图片的白色背景去除
步骤三:合并图片,得到结果
ls *.png | while read filename; do convert $filename 00.png - gravity center -composite 00.ong; done
组合之后看到有效信息

3.3、系统文件取证

场景:我们获取一个文件,该文件通过file命令查看,发现是filesystem类型,说明该文件是系统文件
思路:系统文件需要进行挂载到linux才能查看
系统文件需要挂载才能查看

3.4、JPG的Magic header 修改

场景:通常该文件是无法打开的,强行打开是无法查看文件的,但是我们知道这个该文件是一个JPG文件,知道其是JPG文件通过010Editor查看到魔法数值(类比猜想)得知。
Magic Header: 在JPG中具有父爱解释含义的谓一致,用于识别文件格式或协议的常数值或文本值;CTF中通常是JPG文件头(JPEG (jpg) 文件头:FF D8 FF 文件尾:FF D9)

3.5、分离PCAP文件图片提取

场景:通过wireshark打开PCAP文件,我们同时也找到具体的信息(jpg图片),但是我们通过Wireshark无法正确导出jpg图片
思路:如果wireshark无法直接导出jpg图片,考虑使用binwalk命令分离
步骤1、通过流跟踪发现,请求了图片
通过wireshark进行流跟踪
发现了:JFIF头,说明请求了jpg图片
WireShark导出文件 file -> Export Objects -> http
但是导出的jpg不正确
步骤二:使用binwalk进行分离,命令:binwalk xxx.pcap 我们可以看到pcap中包含的文件数
binwalk查看pcap隐藏文件
通过这一步,我们可以看到pacp中的图片
第三步:分离pcap中的图片, formost xxx.pcap
就可以将pcap中的图片进行分离

3.6、从PCAP文件中提取敏感信息

场景:对于PCAP文件较大,使用wireshark分析较为复杂
思路:直接使用strings命令直接查找关键字 (flag、password、key、pwd、username)
对于较小的文件可以使用wireshark打开
或者通过Linux 的 strings 对较大的pcap文件进行关键字查找
命令: strings xx.pcap | grep -i “关键字”

3.7、提取USB键位信息

场景:我们的键盘和鼠标均是通过USB接口与主机相连,我们每按下一个按键或点击鼠标,均会产生对应的键码。如果我们采用抓包工具就会将这个键码抓取,形成USB流量包
思路:采用USB分析策略
第一步:读取pcap文件,提取USB内容。 URB_INTERRUPT in : 表示为键盘USB信息
原始流量包通过wireshark查看
第二步:分离usb.capdata , Leftover Capture Data
利用Kali中的 tshark 进行分离
tshark -r usb xxx.pcap -T fields -e usb.capdata
就会提取出来所有的usb信息
在这里插入图片描述
第三步:然后将这些键位信息赋值出来,存放到data1.txt文件中,通过脚本进行解码
解码usb键位信息的脚本

3.8、使用binwalk提取敏感信息

第一步:通过file命令查看文件类型
第二步:使用binwalk 获取文件的隐藏内容
命令:binwalk -e 文件名

3.9、提取系统文件敏感信息

如果是系统文件,思路,就是将文件进行挂载 mount命令
ls -lah 这个命令可以查看linux的隐藏文件

3.10、提取损坏的zip压缩包中的敏感信息

修复zip文件提取敏感信息
第一步:file获取文件类型,如果是zip文件使用unzip进行解压,如果是gz,使用gunzip进行解压
第二步:使用010Editor对接口进行修复,zip压缩包的头(50 4B 03 04)

3.11 无线包流量分析

第一步:通过wireshark,查看pcap文件
查看协议
通过protocol,我们发现该流量包的协议是802.11,说明该流量包是无线wifi协议
第二步:然后我们通过wireshark的协议分析功能,发现只有wireless LAN 协议,判断肯能是WPA或者WEP加密的无线数据包
协议分析
第三步:通过aircrack-ng工具进行wifi密码破解
首先、使用aircrack-ng就可以找到WIFI的类型,命令:aircrack-ng xxx.cap
然后、用字典去跑wifi的密码,命令aircrack-ng xxx.cap -w pass.txt
注意:这个pass.txt就是破解wifi密码的常用字典

3.12、通过wireshark提取数据

第一步:通过wireshark查看文件,我们得知整个流量包是一个视频流量包,接下来我们考虑如何将视频从流量包中进行分离
在这里插入图片描述
如果是通过流量包做了文件上传/下载,我们只需要关注类型为HTTP流中最大的
在这里插入图片描述

3.13直接通过wireshark进行关键字搜索

例如:http contains “flag”
http contains “key”
tcp contains “key”

当然还有其他更加复杂的取证技术,包括但不限于如下题目

3.14 内存取证技术

内存取证技术主要用于分析恶意软件的行为。常用的内存取证技术包括内存镜像分析、进程快照分析、注册表分析等。内存取证通常用于分析计算机系统上运行的进程、网络连接、文件、注册表等信息,并可以用于检测和分析恶意软件、网络攻击和其他安全事件。
内存取证技术

3.15 数据库取证技术

据库取证技术主要用于分析数据库中存储的信息。常用的数据库取证技术包括SQL注入分析、数据库备份恢复分析、数据库日志分析等。

3.16 web日志取证

可能结合SQL注入攻击相关日志进行分析
日志流量分析

||||、总结

取证技术在我们安全工作中非常重要,我们可以通过已经产生的流量、日志、文件等信息发现安全存在的蛛丝马迹。通过取证技术的应用,安全工作者可以明确系统存在的漏洞,以及都是谁在系统中做了什么事,其价值和意义对个人、企业、国家而言都是非常重要的。
今天我们总体分析了CTF中的取证技术,以及使用CTF各种提醒对取证技术进行了演示,则写内容可以应对大部分的CTF的取证提醒,当然取证一般不会单独出现,它一般会配合其他知识点进行出题,比如配合密码学、配合隐写、配合PWN等技术出现,具体还是要参考CTF等级以及对应题目的难易程度而定。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
图片隐写是指将一张图片隐藏在另外一张图片里面,而 PNG 文件是一种常见的图片格式,因此可以将一张图片隐藏在 PNG 文件中。以下是一个简单的例子: 1. 首先,将要隐藏的图片命名为 image.jpg,将要隐藏图片的 PNG 文件命名为 cover.png。 2. 将 image.jpg 转换为二进制文件,并将其插入 cover.png 中。 ```bash $ xxd -p -c 99999 image.jpg > image.hex $ cat image.hex | tr -d '\n' | xxd -r -p | dd of=cover.png bs=1 seek=100000 conv=notrunc ``` 这里的 `xxd -p -c 99999 image.jpg` 将 `image.jpg` 转换为十六进制,然后 `cat image.hex | tr -d '\n' | xxd -r -p` 将十六进制转回二进制,最后使用 `dd` 命令将二进制插入到 `cover.png` 的第 100000 个字节处。注意,这个位置可以根据具体情况进行调整。 3. 查看生成的 PNG 文件,可以看到图片已经被成功隐藏。 ```bash $ file cover.png cover.png: PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced $ eog cover.png ``` 可以使用 `file` 命令检查文件类型,并使用图片查看器查看图片内容。 4. 提取隐藏的图片。 ```bash $ dd if=cover.png of=image2.jpg bs=1 skip=100000 ``` 这里的 `dd` 命令将 `cover.png` 中的隐藏图片提取到 `image2.jpg` 中。同样地,提取位置可以根据具体情况进行调整。 以上是一个简单的示例,实际情况可能更加复杂。在实际的 CTF 中,可能需要使用更加高级的隐写技巧来隐藏图片,例如使用 Least Significant Bit (LSB) 算法或者 F5 算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Scalzdp

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值