Misc专项

news/2024/11/16 2:28:58/文章来源:https://www.cnblogs.com/gsupl/p/18307066

一:文件操作与隐写

1、文件类型的识别

1、文件头完好情况:
(1)file命令
使用file命令识别:识别出file.doc为jpg类型
image
(2)winhex
通过winhex工具查看文件头类型,根据文件头部内容去判断文件的类型
image
eg:JPG类型
image
(3)notepad++
下载HEXeditor插件,查看文件的头部信息,和010editor,winhex原理相同
image
(4)0101editor
个人推荐使用这个,因为包含好用的模板,不用在记忆宽度、高度、CRC的具体位置
image
2、文件头部损坏情况:
场景:使用file命令无法显示文件类型,只显示data,说明文件头部被破坏,需要修复
(1)使用010editor等工具结合具体情况进行修复
image

2、文件分离操作

1、binwalk命令

分析文件 binwalk filename
分离文件 binwalk -e filename
分离分拣 binwalk filename -T png

2、foremost命令
场景:binwalk无法分离出文件、可以尝试使用foremost进行分离文件

foremost  filename -o 分离后的保存位置

3、dd命令
场景:binwalk和foremost都无法进行分离文件

解释:bs就是块的大小、count就是块的个数、skip就是跳过多少个块
dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数

eg1:假设1.txt 内容为1234567890
dd if=1.txt of=2.txt bs=5 count=1
2.txt当中的内容为12345
dd if=1.txt of=3.txt bs=5 count=1 skip=1
3.txt内容为67890,skip就是跳过第一块
eg2:
image
想要分离出AC3zlib文件(zlib文件为图片数据压缩文件),需要输入

dd if=2.png of=3 bs=1 skip=85

image

4、winhex手动分离

结合binwalk;直接将想要的数据复制出来(很简单,和上述dd原理一样)

3、文件合并

1、Linux下的文件合并
考点:题目可能会给出一个md5值,让你合并文件,只有按照一定的次序合并,MD5才能够吻合

cat 1.txt 2.txt 3.txt 4.txt >1.jpg
将1.txt,2.txt,3.txt.4.txt合并为1jpg
校验md5:md5sum1.jpg

2、windows下的文件合并

copy /B 1.txt+2.txt+3.txt 1.jpg
校验md5:certutil -hashfile 1.jpg

二:图片隐写

1、PNG隐写

思路:文件头部修复;16进制异或(1E);宽度和高度的修复

eg:
png文件头部:`89 50 4E 47 0D 0A 1A 0A`
png文件尾部:AE 42 60 82

(1)CRC爆破图片宽度和高度
CRC:指的是PNG图片的一个效验位,是一种不可逆运算,类似于MD5,作为数据效验或效验文件的完整性使用。

crc报错(linux中打不开)

image

image
脚本爆破示例:(就是根据CRC爆破高度和宽度)

image
在010editer对宽度和高度进行修复,发现了flag
image

image

2、直接嵌入式隐写

(1)考点:将flag、图片、文件、压缩包嵌入图片中隐写
eg1:winhex打开.png图片发现有一个.txt文件

image
(2)进行文件分离:

(1)通过binwalk提取(参考上述文件分离操作)
(2)通过foremost提取(参考上述文件分离操作)
(3)通过dd命令提取(通用)
(4)通过winhex和010editor工具进行手动分离

3、JPG图片隐写

jpg文件头部 FF D8 FF
jpg文件尾部 FF D9

思路:长度,宽度,高度对应的位置与PNG不同,其余步骤大致相同,根据上述步骤尝试,当然可以直接使用010editor中的jpg模板

image

4、exif隐写

(1)定义:exif可以记录数码照片的属性信息和拍摄数据;有时候flag就藏在里面;通过exiftool工具查看详细信息
(2)exiftool命令

exiftool 1.png|grep flag

image

image

5、BMP图片隐写

定义:BMP头部数据为424D
image

头部后四位是图片的大小;高度和宽度对应的位置

image

6、GIF图片的隐写

使用工具Stegsolve.jar逐帧逐帧地去看;可能会提取出相关的flag信息

7、盲水印

(1)数字水印用于保护文件的信息和版权;但是盲水印是看不见的
(2)盲水印提取脚本

blindwatermark下载地址
https://github.com/chishaxie/BlindWaterMark

8、LSB隐写

定义:LSB即为最低有效位,图片中的图像像素一般是由RGB三原色(红绿蓝)组成,每一种颜色占用8位,取值范围为0x00~0xFF,即有256种颜色,一共包含了256的3次方的颜色,即16777216种颜色。而人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216种。就是将最低位进行修改、人眼看不出来颜色的变化,但是可以隐藏信息
(1)stegsolve
思路:用工具打开图片,分析图片通道中是否存在隐藏信息
eg1:简单题目:
image
eg2:复杂题目:
工具打开图片;判断哪个轨道从在问题
image
然后选择data extract(数据提取)

image
设置red位和lsb模式后,点击save另存,一般就能找到flag(根据具体的情况设置)
image

(2)LSB隐写(有密码)
wbstego4工具:解密通过LSB加密的照片(最低有效位);主要针对.bmp/.pdf文件,原理和zsteg一样

image
zsteg命令
主要针对bmp图片
image

9、二维码隐写

1、二进制转换为二维码
场景:拿到一串二进制,如果它的长度被开方后正好是整数,比如这题,满足625=25*25,就可以考虑转二维码。

import PIL from PIL import Image MAX = 25 #图片边长 img = Image.new("RGB",(MAX,MAX)) str="二进制字符串" i = 0 for y in range (0,MAX): for x in range (0,MAX): if(str[i] == '1'): img.putpixel([x,y],(0, 0, 0)) else: img.putpixel([x,y],(255,255,255)) i = i+1 img.show() img.save("flag.png")

(2)二维码的修复
在线网站修复
https://merricx.github.io/qrazybox/
使用CQR工具进行二维码解码
image

10、特殊算法隐写

(1)CRC爆破
TweakPNG工具
场景:文件头部正常但是无法打开文件,利用TweakPNG修改CRC
eg:png文件头部显示正常,但是无法打开,可能是CRC校验出现错误(高度错误导致CRC错误,或者直接就是CRC错误)

image

(2)**Stegdetect**
场景:主要用于分析JPEG文件的加密方,可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等
常见的加密方式jsteg\jphide\outguess\invisible\f5\appendx
eg:
image
1、java盲水印-jphide
eg:
image
2、F5隐写
(1)首先下载/F5-steganography工具;在kali中输入git clone https://github.com/matthewgao/F5-steganography
下载成功之后进入该目录
image
3、在这个目录放放置了一张f5加密的图片123456.ipg;我们使用这个工具进行解密;输入
Java Extract 123456.jpg -p 123456(注意,Java环境需要1.8.0;我这里已经配置好了)
image
image
解密的内容在同一目录下的output.txt目录当中;直接查看得到flag
image
3、outguess
(1)outguess工具的下载:输入:git clone https://github.com/crorvick/outguess
image
(2)示例
我对cmd.jpg进行了outguess加密,在里面写入了flag;然后我进行解密
Outguess -k “my secret key” -r out.jpg flag.txt
image
查看得到flag
image
4、NTFS隐写
5、等等!自行查找资料!

三:压缩文件处理

1、伪加密

场景:告诉你是加密的,有可能是伪加密
如何处理伪加密(修改加密位置,你看到的文件就是加密的,还原加密位置即可)
(1)ZIP文件类型:打开winhex搜索504B0102,从50开始,往后面数第9,10个字符为加密字符,将其设置为0000即可变为无加密状态
image
(2)RAR文件类型:从头开始一般第24个字节为加密位置;将尾数修改为0,即可解除加密

2、暴力破解

(1)场景:就是修改完加密位之后、发现加密是没有了,但是文件却打不开了;这就说明不是伪加密;这时候就需要使用ARCHP.exe工具来破解zip/rar文件(python脚本自定义字典)
image

(2)特殊情况:已知部分密码,可以选择掩码的方式进行爆破,比如知道开头三位为abc,一共6位;可以这样设置abc???

3、明文攻击

题目给出加密zip文件中部分明文内容、利用已经知道的明文内容进行获取密钥或者获取其余有用的信息

4、压缩包的修复

场景:压缩包打不开;和图片修复大差不差!
image

四:流量分析技术

1、wireshark工具

思路:通常比赛中会给你一个pcap的文件,有时候我们需要对其进行修复或者重构文件之后pcap文件进行流量分析,就是根据提示信息一步一步的找到flag,关键在于过滤语法和基础知识以及题目要求找到对应flag,或者得到flag的相关信息,以下是wireshark基本的使用方法:

**1、wireshark过滤语法**

最重要的一个语法:http contains "关键字"

(1)过滤IP地址
image

ip.src x.x..x.x(过滤源IP地址)
ip.dst x.x.x.x(过滤目的IP)
ip.src==x.x.x.x or ip.dst==x.x.x.x

(2)过滤端口号

tcp.port==80(显示80端口)
tcp.srcport==80(显示tcp协议的源端口号)
tcp.dstport==80(显示tcp协议的目的端口号)

(3)过滤协议

直接输入协议名称 tcp/http/dns

image
(4)过滤MAC地址

eth.dst==A0:00:00:04:C5:84 过滤目标mac

image
(5)http模式的过滤(极其重要,尤其是http contains "关键字")

http.request.method=="GET"
http.request.method=="POST" 筛选请求方式
http.request.uri=="图片的路径"
http cantains "GET"
http contains "HTTP/1."
http contains "flag"
http contains "key"#看一下http协议流量包中有没有flag字段
tcp contains "flag"

image

**2、wireshark协议分析**

有ipv4和ipv6的数据包,一般先分析ipv4,根据比重找到主要的流量包,协议分析的目的就是为了对整个流量包有一个大致的分析(比重)
image

image

**3、wireshark 流汇聚**

(1)用于追踪tcp或者http的流量(flag可能藏在其中)(鼠标右键追踪流,选中TCP);有可能在详细信息里面
image
追踪流中直接寻找是否有flag
image

(2)http流汇聚考点
1、html中可能直接包含flag(或者是flag相关的信息,考察密码学) 2、上传或下载文件的内容,通常包括文件名、hash值等相关信息 3、一句话木马(一般常见的就是找到webshell,才能找到flag)、POST请求、内容包含eval,或者使用base64加密
wireshark数据提取

文件 -----> 导出对象 ------> HTTP

image

 手动导出(导出分组字节流)

image

2、无线wifi流量包

特点:wireshark打开之后会有wireless LAN协议802.11无线协议Tp-Link,,很可能是WPA或者WEP加密的无线数据包
(1)使用aircrack-ng工具进行wifi密码破解
常见的加密方式:WEP;WPA;WPA2
1、检查cap包的加密类型(BSSID表示MAC地址,ESSID表示wifi名字)

aircrack-ng xxx.cap

image
2、使用字典进行握手包的破解

aircrack-ng -a2 -b BC:F6:85:9E:4E:A3 -w pass.txt wifi.cap

image

image
2024-07-27 13:29:57 星期六
或者使用工具进行破解
image

3、USB流量包分析

考点:USB流量也是流量分析题的考查点,一般考察的流量涉及键盘击键,鼠标移动与点击,存储设备的明文传输通信,USB无线网卡网络传输内容等。
1、键盘的流量
USB协议的数据部分在Leftover Capture Data域之中

右键Leftover Capture Data->应用为列

image
image

2、提取Leftover Capture Data域数据
(1)手动操作:文件——导出分组解析结果——CSV,导出保存一个.csv文件
image
3、示例演示
示例脚本:(暂不提供脚本)
image

(1)键盘流量
使用tsshark工具,将Leftover Capture Data中的内容提取出来进行如下处理

tshark -r xxx.pacp -T fields -e usb.capdata >usbdata.txt

image

先使用usb+冒号.py脚本加上:
image
再用usb_keybord.py脚本跑(直接拿到flag)
image
(2)鼠标流量
字段解释:第一个字节,代表按键;第二个字节,可看作为signed byte类型;,代表垂直上下移动的偏移
思路:flag隐藏在usb流量中,通过USB协议数据中的鼠标移动轨迹转换成flag

提取鼠标流量信息:tshark -r usb2.pcap -T fields -e usb.capdata >flag.txt
剔除空行:tshark -r usb2.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > flag.txt
加上冒号:使用脚本,将len改为16

根据脚本获取坐标:
image
使用python脚本绘制图片:
image

4、HTTPS流量包分析

https流量包是经过TLS协议加密的,需要导入key才能查看到原始的HTTP流量(wireshark中会出现TLS,443等字段)
(1)如何导入密钥

编辑-首选项-protocols-SSH-导入

(2)如何获取密码
根据题目的提示信息可能会获得key
image

五、内存取证技术

1、volatility安装

Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。Volatility2.6需要python2,pip安装模块也需要2版本
安装pip2
Volatility2.6需要python2,pip安装模块也需要2版本,所以首先安装pip2
(1)检查python2(已安装)
image
(2)下载pip2

curl  https://bootstrap.pypa.io/pip/2.7/get-pip.py  -o get-pip.py

image
(3)安装pip2

sudo python2 get-pip.py

image
(4)检查安装情况

pip2 -h

image
安装依赖环境
(1)安装pycryptodome(我这里已经安装)

pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple

image
(2)安装distorm3

git clone https://github.com/vext01/distorm3.git
cd distorm3
sudo python2 setup.py install

image
image
安装volatility
(1)退出distorm3文件夹,下载volatility2

git clone https://github.com/volatilityfoundation/volatility.git

image
(2)进volatility,判断是否安装成功
如果缺少插件的话,会出现好多行报错的
image

2、常见题型

(1)CTF金砖技能大赛的一道题目
1、分析镜像
python2 vol.py -f /home/kali/桌面/worldskills3.vmem imageinfo

image

2、从内存中获取到用户admin的密码并且破解密码,以flag{admin,password}形式提交(密码为6位)
(1)查看系统用户
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"
image
(2)转储内存中的Windows帐户密码哈希
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 hashdump
image
发现没有解密成功;使用mimikatz插件获得密码(自行下载插件)
则Flag{admin:.dfsddew}
3、获取当前系统IP地址以及主机名,以Flag{ip:主机名}形式提交
(1)获取主机名
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 hivelist
image

(2)查看注册表信息
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printke y
image

image

答案为:WIN-9FBAEH4UV8C
(3)获取IP地址
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 netscan
image
IP地址为:192.168.85.129
Flag{WIN-9FBAEH4UV8C.192.168.85.129}
(4)获取当前系统浏览器搜索过的关键词,作为Flag提交
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 iehi story
image

Flag{admin@file:///C:/Users/admin/Desktop/flag.txt}
(5)当前系统中存在挖矿进程,请获取指定的矿池地址,以Flag{}提交
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 pslist
image

flag{54.36.109.161:2222}
(6)恶意进程在系统中注册了服务,请将服务名称以Flag{服务名}提交
上题已知恶意进程号为2588,找到process ID为3036
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 pslist -p 2588
image

根据process ID为3036,查找服务
python2 vol.py -f /home/kali/桌面/worldskills3.vmem --profile=Win7SP1x64 svcscan|grep 3036
image
flag{VMnetDHCP}

六、音频隐写

1、常见工具

(1)MP3Stego
(2)Adobe Audition CC
(3)coolpro2
注:后续会陆续更新、此处不做过多的赘述!MISX基础知识点就到此为止!谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774303.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zookeeper未授权访问(CVE-2014-085)

漏洞描述 默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据 漏洞影响 Apache ZooKeepe…

如何自动实现本地AD中禁用的用户从地址列表中隐藏掉?

我的博客园:https://www.cnblogs.com/CQman/ 如何自动实现本地AD中禁用的用户从地址列表中隐藏掉?需求信息:用户本地AD用户通过ADConnect同步到O365,用户想实现在本地已做同步的OU中禁用某一用户后,其可以自动实现把该用户从地址列表中隐藏掉。用户的ADConnect同步工具装在…

go高并发之路——消息中间件kafka(上)

一般高并发的业务都是某个时间段的请求量特别大,比如本人负责的直播业务,基本上一天就两个高峰段:早上和晚上的特定时间段。其它的时间里,流量基本都比较平稳。那么面对流量高峰,我们可以采取哪些措施呢?常见的有服务器和DB提前扩容、监控告警(盯监控)、流量削峰、加缓…

数组及数组JVM内存划分day4

java中第一个存储数据的容器:数组特点:1、数组的长度大小是固定的2、同一个数组中,存储的元素数据类型是一样的数组的定义语句格式:数据类型[] 数组名;举例:int[] arr; // 定义了一个可以存储int类型的一维数组,数组名叫做arr数组没有初始化,无法直接使用,数组是我们第…

借助流程表单设计器开源为流程化办公赋能

借助流程表单设计器做好数据管理工作,为行业发展贡献整套低代码技术平台解决方案。在经济高速发展的今天,想要实现流程化办公和数字化转型,需要利用更优质的平台为其加油助力。低代码技术平台、流程表单设计器开源为各行各业流程化办公高效赋能,一起摆脱信息孤岛、部门沟通…

AI/机器学习(计算机视觉/NLP)方向面试复习1

1. 判断满二叉树 所有节点的度要么为0,要么为2,且所有的叶子节点都在最后一层。 #include <iostream> using namespace std; class TreeNode { public:int val;TreeNode* left;TreeNode* right; //创建的时候输入参数x,会把x给val,nullptr给left和right TreeNode(int…

【PlantSaver】电容式土壤湿度传感器使用及原理(并以Arduino实验)

1.湿度检测原理 关于这个传感器检测的原理,网上找的资料不多。类似传感器经典的设计是美国DECAGON 公司生产的ECH2O 系列传感器。其结构如下:式中: ε0 = 8.85410-12 为真空介电常数,单位 F/m; S 为板间遮盖面积,单位 m2 ; C 为板间电容量,单位F; δ 为板件厚度,m; ε …

九章算术与线性方程组

通过介绍《九章算术》中线性方程组理论的发展,使学生 认识到,中国古代的数学研究不仅开展的较早,在一段时间内处于世界领先地 位,此增强学生的文化自信与民族自豪感,鼓励学生探寻我国传统文化中的瑰宝 遗珠.

工单管理系统全攻略:找到你的完美匹配

国内外主流的10款项目工单管理系统对比:PingCode、Worktile、浪潮云工单管理系统、华为企业智能工单系统、金蝶云苍穹、紫光软件管理系统、Jira、Asana、ServiceNow、Smartsheet。在管理日益复杂的个人项目时,找到一款能够真正符合需求的管理软件,常常是许多人面临的难题。市…

DPDK简介

DPDK简介 DPDK(Data Plane Development Kit)数据平面开发工具包,是一个开源软件项目。DPDK通过维护一系列能够加速多核CPU数据包处理的库,提供数据处理框架。DPDK通过绕过内核进行数据处理,表现出了比内核中断处理更高的效率。 DPDK项目架构EAL EAL(Environment Abstract…

项目管理者的生存工具:顶级工时软件推荐

国内外主流的10款项目工时管理软件对比:PingCode、Worktile、Teamwork、TAPD、JIRA、明道云、云效、Monday.com、Basecamp、ClickUp。在管理项目时,工时跟踪总是一个棘手的问题,尤其是在多个项目和团队成员需要协调的情况下。选择合适的项目工时管理软件不仅可以帮助您有效监…

[python] 启发式算法库scikit-opt使用指北

scikit-opt是一个封装了多种启发式算法的Python代码库,可以用于解决优化问题。scikit-opt官方仓库见:scikit-opt,scikit-opt官网文档见:scikit-opt-doc。 scikit-opt安装代码如下:pip install scikit-opt# 调用scikit-opt并查看版本 import sko sko.__version__0.6.60 背景…