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

相关文章

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议