文件类型识别

文件类型识别

命令使用场景:不知文件名后缀名

File命令

格式:file xxx(文件名)

常见文件头类型 文件头 文件尾
JPEG(jpg) FFD8FFE1 FF D9
PNG(Png) 89 50 4E 47 0D 0A 1A 0A 00 00 00 00 49 45 4E 44 AE 42 60 82
7IFF(tif) 49492A00
Windows Bitmap(bmp) 424DC001
ZIP 504B0304 50 4B
(psd) 38425053
rtf 7B5C727466
XmL 3C3F786D6C
(html) 68746D6C3E
pdf 255044462D312E
wav 57415645
pcap 4D3C2B1A
gif 47 49 46 38 00 3B
rar 52 61 72 21 1A 07 00 C4 3D 7B 00 40 07 00
7z 37 7A BC AF 27 1C

文件头残缺/错误
使用场景:文件头部残缺或文件名头部
字段错误无法正常打开文件
格式:file文件名 XXX=data

文件分离操作

1.Binwalk工具(会自动解压)

先切换到普通用户

用法:
分析文件:binwalk·filmname
分离文件:binwalk-e file name

2.foremost(目录中会按文件类型分离文件)

用法:
foremost文件名-o输出文件名

3、dd(自动分离出错或者因为其他原因无法分离)

格式:
dd if=源文件of=目标文件名bus/skip
if=five输入文件名,缺省为标
of=file输出文件名,缺省为标准输出
bs=bytes同时设置该写块的下小为bytes可代替its和obs
skip=blocks从输入文件开头跳过blocks个块后开始复制

例子:
1.txt : 1234567890 abcclefg
dd if=1.txt of=2.txt bs=5 count=1
2. txt: 12345
dd if=1. txt of=3. txt bs=5 count=2
3.txt: 1234567890
dd if=ixt of=4. txt bs=5 count=3 ski p=1
4.txt: 67890abcdefg 跳过了前面那个

DECIMAL(十进制) HEXADECIMAL(十六进制)
0 0X0 JPEG
22895 0X596F Zip
23046 0X5A06 End of Zip

dd if=sim.png of=1111. zip bs=1 count 23064 skip=22895

dd if =flag.jpg of=flag1.jpg bs 1 count 37475 skip =0 文件分离操作

4.010 Editor

1、010 Editor打开文件→选中右键→Selection →Save Selection
将16进制字符文件保存在一个文件
打开oloEditor import Hex

文件合并操作

1. Linux下的文件合并

格式:cat合并的文件>输出的文件
完整性检测:mod 5 sum文件名

2. Windows下的文件合并

格式:copy/B合并的文件输出的文件命令
完整性检测:certutil-hashlie文件名md5

MP3内容隐写

音频波形隐写

音频波形隐写典例:

参考我自己写的博客:ctf misc之MP3隐写_墨言ink的博客-CSDN博客_mp3隐写

用Audacity打开这个mp3

可以选择波谱图

直接点看不到什么东西

结合我之前说的音乐末尾有很违和的音乐,我们拉到末尾放大发现了密码

Stego隐写

1.打开cmd

2.进入工具的目录

cd Desktop\CTF工具包\MP3Stego\MP3Stego

3.使用Stego的命令

Decode -X -P 密码 文件名

Decode -X -P tb89fd9crw2ds 1.mp3

音频隐写莫尔斯密码

例题:buuctf-来首歌吧

用Audacity(mp3隐写)打开

放大后手动打出莫尔斯电码

..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.

解码得到

flag{5BC92H649CB0188FH2EBJ7D70929191C}

文件内容隐写

1.查找隐写

1、Winhex/010 Editor
2、Notepad++ (图片) 查找

2、Exif

图片右键属性查看exir或查看详细信息

3、Google Earth

查看经纬度

图片文件隐写

1. XOR(Stegoolve(两张jpg图片外观、大小、像意相同))

即将两个文件的像景RGB值进行XOR(异或)ADD(叠加)SUB(相减注意谁减谁)
使用方法:打开图片→analyse→Image combiner→选择另外一张图片 →save

2.LSB(最低有效位)

LSB替换隐写基本思想是用嵌入的秘密信息取代载体图像的最低比特位,原来的7个高位平面与替代秘密信息的最低位平面组合成隐藏信息的新图形
1、像素三原色(RGB)
2、通过修改像景中最低位的1 bit来达到隐藏效果
3、工具:stegsolve、zsteg、wbstego4(pdf,bmp). Python脚本

Stegsolve (LSB)

1.打开文件>Analvse>Data Extract 2.调整Bit Planes,BitOrder,
Bit Plane Order 3. preview
Bit Planes=000

Zsteg (png,jpg)

检测LSB隐写 : zsteg ×××. png

wbstego 4工具

解密(bmp/pdf的LSB加密)

3.提取图中的盲水印 (需要原图)

BlindWaterMark(盲水印 by python)

python bwm.py decode hui.png hui_with_wm.png wm_from_hui.png

4.图片逆向

例题:GUETCTF-Findme

用010editor打开图片

是一个png文件,寻找他的结尾

发现结尾82后还有D9 FF,拉到最底下还发现了jpg文件头(FFD8FFE1)倒过来的形式

写一个py脚本反转过来试试:

f1 = open('fl4g.png','rb+')
f2 = open('flag_true.jpg','wb+')
f2.write(f1.read()[::-1])
f1.close()
f2.close()

打开flag_true.jpg得到flag

flag{reverse_jpg}

5.图片长宽不够

我们使用winhex进行分析,修改宽度即可得到完整的图片

小知识:前面是固定的文件头。从第二行开始,前四位是宽,后四位是高。

无法正常打开文件

TweakPNG(文件头正常却无法打开文件、利用Tweak PNG修改CRC)

Incorrect crc for IHDR chunk lt is felasabb, should be b0a7a9f1

这显显示CRC是fe1a5ab6正确的是b0a7a9f1打开winhex搜索fe1a5ab6将其改为b0a7a9f1有时CRC无错误,但是图片的高度或宽度发生了错误.需要通过(CRC计算出正确高度或宽度)
用xiugaigao.py计算出原有的长宽和它们的十六进制在Winhex中修改

Bftools(使用场景:在windows的cmd下,对加密过的图片文件进行解密)

格式:Bftool. exe decode braincopter 要解密的图片名称-output输出文件名

Bftools.exe run上一步输出的文件
①D:进入D盘②cd bftools

JPG图像加密

Stegdetect 探测加密方式

stegdetect 程序主要用于分析JPEG文件。因此用Stegdetect可以检测到通过JStep JPHide OutGuess. invisible Secrets. F5, oppopend,和 Camouflage 等

命令:

stegdetect xxx jpgstegdetect-s敏感度(10.0)xxx、jpegxi

Jphide.(解密有密码的jpg)

Jphide是基于最低有效位LSB的JPEG格式图片隐写算法

例:Stegetect提示jphide加密时可以用JPhS工具进行解密,打开jphswin. exe.使用open. jpg打开图片、点击seek输入密码和确认密码在弹出文件框中选择要保存的解密文件位置即可结果保存成txt文件

Outguess(Stedict识别出来或者题目提示是outguess加密文件)

1.可以使用

apt-get install outguess

2.在github上下载

git clone https://github.com/crorvick/outguess

并cd进入该文件夹,用./configure && make && make install 进行安装

outguess

要提取文件,只需执行以下操作:

outguess -k '密码' -r output.jpg(机密数据文件的文件) secret.txt(输出的文件名称)

kali下面输入

outguess -k 'abc' -r mmm.jpg 3.txt

F5

F5用于一般解密文件信息( Stegdetect 识别出来或题目提示为F5)
进入F5- steganography -F5目录,将图片文件拷贝互该目录下,从CMD进入该目录
格式:Java Exrtact要解密的文件名-p 密码
运行结束后我们可以直接在目录下的outout. txt中看到结果

反向

画图

如果某个二维码的定位点中间是白色,可能被反色了,使用画图工具把颜色反色回来再扫描即可

steghide

命令:

steghide info good-已合并.jpg

 使用steghide extract -sf good.jpg,空密码即可

steghide extract -sf good.jpg

打开ko.txt得到压缩包密码

bV1g6t5wZDJif^J7

压缩文件分析

伪加密(伪加密文件)

winhex

操作方法:使用winhex打开压缩文件,找到文件头 第九第十个字符,将其修改为0000
1、使用win hex打开文件搜索16进制504B0102 1400后2个字节改为0000
504B0304,1400后两个字节改为0000

360压缩

强大的360可以直接破解伪加密

暴力破解

ARCHPR(暴力破解软件)

使用ARCHPR

1.掩码攻击 若已知密码前3位为abc.后三位未知,则在攻击类型中选择掩码.在掩码处输入 abc???
2.明文攻击(已知加密的zip部分文件明文内容)
明文攻击指知道加密ZIP中部分文件的明文内部容、利用这些内容推测出密钥并解密ZiP文件的攻击方法
过程:一个加密的压缩包有reading. txt和flag.txt其中我们想知道flag.txt中内容,而我们有reading.txt这个明文

操作:
1.将reading. txt的明文文件进行压缩变成readme.zip
2、打开ARCHPR.攻击类型选择明文,明文文件路径选择readmel.zip(即将明文文件不加密压缩后的文件),加密的文件选择要破解的文件点击开始,破解成功后会获得密码

zip2john工具爆破zip文件

1.通过 zip2john 工具输出 zip 文件 hash

命令:

python3 /usr/share/john/zip2john名称>> 转化文本名称

python3 /usr/share/john/zip2john aaabbb.zip >> passwd.txt

2.通过 john 工具进行 zip 文件爆破

john 转化文本名称

john passwd.txt

3.查看爆破的密码

john 转化文本名称 --show

john passwd.txt --show

RAR 压缩密码

首先获取 rar 文件的 hash 值,我们可以使用另一款哈希破解工具 John 提供的 rar2john 工具将 rar 文件里的 hash 提取出来。

1.进入cmd

cd E:\john\john1\John2\run

2.获取 rar 文件 hash

rar2john.exe 1.rar

hashcat 支持 RAR3-hp 和 RAR5

对于 RAR5,示例如下:

hashcat -a 3 -m 13000 --force '$rar5$16$b06f5f2d4c973d6235e1a88b8d5dd594$15$a520dddcc53dd4e3930b8489b013f273$8$733969e5bda903e4' ?d?d?d?d?d?d

对于 RAR3-hp

hashcat -a 3 -m 12500 --force '$RAR3$*0*5ba3dd697a8706fa*919ad1d7a1c42bae4a8d462c8537c9cb' ?d?d?d?d
RAR3-hp 哈希头为 R A R 3 RAR3RAR3*0*,而不是 R A R 3 RAR3RAR3*1*,中间的数值是0(-hp)而不是1(-p),-p 尚未得到支持,只支持 -hp关于 RAR 参数 -p 和 -hp 的区别:
-p:只对 RAR 文件加密,里面的目录和文件名没加密;
-hp:对目录中的文件名和子目录都进行加密处理

office 密码(docx)

和 rar 与 zip 破解过程一样,我们需要先提取 office 文件的哈希值,这里可以使用office2john.py 进行获取, office2john.py在上面下载的 rar2john.exe和zip2john.exe 的同级目录下。

获取 office 文件 hash

python3 /usr/share/john/office2john.py 文件名称 >保存文件位置和名称

python3 /usr/share/john/office2john.py test.doc > /root/hash.txt 

测试中发现 python 会出现告警信息,不过这个告警信息不会影响程序执行

hashcat -a 3 -m 9600 '$office$*2013*100000*256*16*cd8856416b1e14305a0e8aa8eba6ce5c*18cada7070f1410f3a836c0dfc4b9643*befcde69afeafb3e652719533c824413b00ce4a499589e5ac5bd7a7a0d3c4f3d' --force ?d?d?d?d?d?d

这里哈希头为 2013 所以使用 9600 破解模式,如果是 2010 则要使用 9500 破解模式,2007 则使用 9400 破解模式。

123456是密码

zip2john工具爆破zip文件

1.通过 zip2john 工具输出 zip 文件 hash命令:

python3 /usr/share/john/zip2john名称>> 转化文本名称

python3 /usr/share/john/zip2john aaabbb.zip >> passwd.txt

2.通过 john 工具进行 zip 文件爆破

john 转化文本名称

john passwd.txt

3.查看爆破的密码

john 转化文本名称 --show

john passwd.txt --show

crc爆破(得到一堆很小的zip压缩包)

利用crack.py这个脚本进行爆破

命令:

python3 crack.py 压缩包名称

得到

流量包文件分析

一句话找到flag

strings /root/xxxx.pcapng |grep flag

Wire Shark过滤器

常用的过滤命令:

1、过滤IP,如源IP或者目标x.x.x.x
ip.src eq x.x.x.x为or ip.dst eq x.x.x.x或者 ip.addr eqx.x.x.x

2、过滤端口
top. port eq 80 or udp. port eq 80
top. dstport==80只显tcp协议的目标端口为80

tcp. srcport==80只显tcp协议的源端口为80
tcp. port>=1 and tcp. port<=80
http横式过滤
http.request.method =="GET"
http.request.method=="POST"
http.request.uri=="/img/logo-edu.gift " http contains "GET"
http contains "HTTP/1."
http.request.method=="GET" &&http contains "User-Agent:"

http contains"flag"
http contains"key" tcp contains"flag"

tcp contains"command"

协议分级

中文版: 统计→协议分级 选中,作为过滤应用>选中

根据数据包特征进行筛选

比如查看数据包时,有的数据包有某种特征比如有http(80)就可以筛选出这种特征出来 右键→作为过滤器应用→选中

WireShark流汇聚

右关注的http数据包或tcp数据包中选择流江县可以将HTTP流或TCP流汇聚或还原成数据在弹出的柜中可以看到数据内容

常见的HTTP流关键内容:

1.HTML中直接包含重要信息。

2.上传或下载文件内容,通常包含文件名、hash值等 关键信息, 常用POST请求上传。

3.一句话木马,POST请求, 内容包含eval, 内容使用base64加密

WireShark数据提取

使用wireshark可以自动提取通过http传输的文件内容。 文件>导出对象> HTTP

在打开的对 象列表中找到有价值的文件,如压缩文件、文本文件、音频文件、图片等,点击saveas进行保存,或者saveall保存所有对 象再进入文件夹进行分析。 

例题:buuctf-菜刀666(流量分析)

首先是很常规的套路,用winshark打开,搜索flag,发现有个txt文件藏在里面

1.根据提示,打开直接过滤POST请求,发现可疑点。

2.右键跟踪流

发现两个疑点。 3.可能是base64,先将z1转换

出来图片字样,并且z2开头是jpg文件的文件头FFD8DDE猜测下面z2应该是十六进制转图片。 用py脚本转换出来后,一张图片。

python脚本代码:

a="十六进制"
import binascii
out=open('2.jpg','wb')
out.write(binascii.unhexlify(a))
out.close()

得到一个密码:

Th1s_1s_p4sswd_!!!

无限流量包跑密码

无线wif流量包

aircrack-ng工具进行wifi密码破解

1.用aircrack ng检查cap包: aircrack-ng xxx.cap

2.用aircrack-ng跑字典进行握手包破解: aircrack-ng xxx.cap -w pass.txt

例题:bugkuctf-想蹭网先解开密码

flag格式:flag{你破解的WiFi密码} tips:密码为手机号,为了不为难你,大佬特地让我悄悄地把前七位告诉你 1391040** Goodluck!! 作者@NewBee

这个应该是破解WiFi过程中,抓取的流量包

用Wireshark打开了这个文件包

2、打开kali,开始破解咯

①、第一步:使用crunch生成密码字典,注意是手机号,所以是11位,前8位已知,后四位用%%%%替代,把生成的字典导入到wifipassword.txt文本里面,如下图所示:

crunch 11 11 -t 1391040%%%%>>wifipassword.txt

②、第二步:使用aircrack-ng破解wifi密码 //前提把wifi.cap放到当前目录下,也就是与wifipassword.txt字典在同一个目录下(毕竟用的相对路径嘛)

aircrack-ng -w wifipassword.txt wifi.cap

注意,根据提示还要再键入3,如下图所示:

执行命令,开始破解

USB键盘流量抓取分析

 USB数据包,直接使用UsbKeyboardDataHacker脚本提取内容

命令:

python3 UsbKeyboardDataHacker.py 数据包名称

例题:buuctf-USB

使用010 Editor打开key.ftm,搜索关键词key,有很多key的关键词,但在其中发现zip数据

将zip数据另存出来,里面是一个key.pcap,直接可以解压,或者使用WinRAR直接打开key.ftm,直接可以得到key.pcap


USB数据包,直接使用UsbKeyboardDataHacker脚本提取内容

命令:

python3 UsbKeyboardDataHacker.py 数据包名称

python3 UsbKeyboardDataHacker.py key.pcap

后续略~~~~

CTF MICS笔记总结相关推荐

  1. 合天每周CTF学习笔记 — 神奇的磁带

    这是真小白的第一次学习,做个笔记记录一下思路和辅助知识. 思路 整体思路是借助提供的提示和寻找隐藏的提示. 1.查看页面源码 根据实验指导书说明,首先访问攻击的网页,并查看源码. 2.查看源码中的提示 ...

  2. CTF初学笔记解题-密码1

    题目:萌新_密码1 题目来源:https://ctf.show/challenges#%E8%90%8C%E6%96%B0_%E5%AF%86%E7%A0%811-74 密文: 53316C6B5A6 ...

  3. 我的ctf学习笔记 misc(二)

    1.easypdf 给了一个pdf文件,图片将flag隐藏了 2.损坏的图片 给了一个不能打开的png,首先尝试修复,用winhex打开,发现首尾格式是错误的,整个顺序需要颠倒过来,在储存会发现图片变 ...

  4. CTF学习笔记一——RSA加密

    RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,"由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制. 在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息, ...

  5. CTF学习笔记——SQL注入

    SQL注入 sql注入的分类 1)可回显的注入 可以联合查询的注入 报错注入 通过注入进行DNS请求,从而达到可回显的目的 2)不可回显的注入 bool盲注 时间盲注 3)二次注入 通常作为一种业务逻 ...

  6. CTF学习笔记——Easy Calc

    一.[RoarCTF 2019]Easy Calc 1.题目 2.解题步骤 发现框框-应该是注入题-源码中提示有个waf,继续看源码,发现有个calc.php,进去看看 初步理解应该是用num传参,然 ...

  7. CTF学习笔记:misc

    1.来题中等的吧: 下载压缩后,得到一张图片 仔细观察上面的青色条纹,可以发现这是摩斯密码,把它记录下来: .- .-.. .--. .... .- .-.. .- -... 在线网站上翻译得到fla ...

  8. CTF学习笔记——sql注入(2)

    一.[SUCTF 2019]EasySQL 1.题目 2.解题步骤 看标题就知道是关于sql注入的题目.老规矩,先跑一下sqlmap,再用1' or 1=1 #试试. Nonono. 不死心再试一下别 ...

  9. CTF学习笔记20:iwebsec-文件上传漏洞-05-htaccess文件上传

    本练习最终只能上传图片,关键要让图片文件可以调用,也就是作为php解析. 一.通过之前的方法均不能上传php文件 通过burpsuite配合改扩展名.大小写.双写等手段均不上传成功. 二.编写并上传. ...

最新文章

  1. Alibaba 之 Nacos
  2. 美多商城之项目准备-工程创建和配置
  3. Qt 4.3 公布揭晓
  4. Linux-鸟菜-1-Linux简介
  5. 【攻防世界001】Guess-the-Number
  6. nodejs redis 发布订阅_太赞了:Spring boot+redis实现消息发布与订阅
  7. javascript 之---正则表达式
  8. oppo刷机工具_黔隆科技刷机教程OPPOR9TM忘记密码免刷机保资料解屏幕锁教程
  9. python汉字拼音查询_python获取一组汉字拼音首字母的方法
  10. 【Linux】Linux的关机和虚拟机克隆、快照
  11. 2010谷歌校园招聘笔试题
  12. vscode彻底卸载记录/使用经验
  13. Nature:阐明肿瘤代谢的脆弱性
  14. 如何修改BOOT.INI启动项,添加一个D盘的启动系统上去?
  15. vivo手机打开手机测试页面,查看电池损耗代码
  16. 用友NC平台之基本概念解析(一)
  17. Vue项目supermall仿蘑菇街详解(一)首页开发详解
  18. Error instantiating servlet class com.web.SelectAllServlet 所有的servlet都不能运行,终于找到解决办法
  19. 最新前端教学视频 百度网盘汇总
  20. 类同属性不为null 拷贝赋值

热门文章

  1. CAN记录仪 can数据记录仪简介和功能应用 can总线记录
  2. Linux安装Mycat1.6.7.6实现Mysql数据库读写分离
  3. oracle如何上个月和下个月的月份
  4. MATLAB新手简明使用教程(八)——高级积分运算、二重积分——新手来看,保证看懂
  5. 解决ultraedit-32卸载后文件关联问题
  6. 物联网RFID技术在智能交通系统的应用
  7. 为何学Python(转)
  8. 5.4呈献:HP-Socket v5.3.1 支持 Android NDK
  9. mysql差异备份提权_MSSQL差异备份取系统权限的相关软件下载
  10. 结合代码彻底理解Spring AOP的术语