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

2023-10-25 13:29

本文主要是介绍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等级以及对应题目的难易程度而定。

这篇关于CTF取证技术实战,图片、文件、流等相关内容的取证技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282859

相关文章

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

springboot项目redis缓存异常实战案例详解(提供解决方案)

《springboot项目redis缓存异常实战案例详解(提供解决方案)》redis基本上是高并发场景上会用到的一个高性能的key-value数据库,属于nosql类型,一般用作于缓存,一般是结合数据... 目录缓存异常实践案例缓存穿透问题缓存击穿问题(其中也解决了穿透问题)完整代码缓存异常实践案例Red