CTF隐写常见套路归纳
雜項(xiàng)
1文件操作與隱寫
2圖片隱寫術(shù)
3壓縮文件處理
4流量取證技術(shù)
文件操作與隱寫
文件類型識(shí)別
1.File命令(linux下)
使用:不知道后綴名,無法打開文件。
file 文件名
2.winhex
通過winhex去查看文件頭類型,根據(jù)文件頭類型判斷出文件類型。
使用:Windows下通過文件頭信息判斷文件類型
常見文件頭類型
JPG FFD8FFE1
PNG 89504E47
ZIP 504B0304
pcap 4D3C2B1A
等等
常見的
會(huì)把文件頭格式進(jìn)行破壞,修復(fù)就好
直接notepad打開,尋找字符串
3.文件頭殘缺,錯(cuò)誤
先file一波,再去修復(fù)
文件分離操作
…
…
1.Binwalk 工具
分析文件
binwalk filename
分離文件
binwalk -e filename
PS:
當(dāng)binwalk無法正確分離文件,
可以使用foremost
foremost 文件名 -o 文件夾名字
`第三種分離方式:
當(dāng)文件自動(dòng)分離出錯(cuò)或者因?yàn)槠渌驘o法自動(dòng)分離時(shí),可以使用dd實(shí)現(xiàn)文件手動(dòng)分離。
用前面兩種方法都無法做出的時(shí)候
格式:
dd if=源文件名字 of =目標(biāo)文件名 bs=1 [count]skip=開始分離的字節(jié)數(shù)
參數(shù)說明:
bs=bytes 同時(shí)設(shè)置讀寫塊的大小為bytes
skip=blocks 從輸入文件開頭跳過blocks個(gè)塊后開始復(fù)制
count 指拿多少塊讀寫塊長(zhǎng)度的區(qū)域
例子
假設(shè)現(xiàn)在有一個(gè)1.txt
內(nèi)容:123456789abcdefgh
dd if=1.txt of=2.txt bs=5 count=1
得到2.txt
內(nèi)容:12345
.
.
dd if 1.txt of = 3.txt bs=5 count=2 skip=1
3.txt
content:23456789a
.
.
圖片中分類壓縮包實(shí)例:
dd if=easy.jpg of=easy.zip bs=1 count=666
skip=6666
PS:還有一種很簡(jiǎn)便的方法
winhex
新建一個(gè)文件,文件大小為1byte,直接在要分離的位置復(fù)制,粘貼過去,
再將文件保存為相應(yīng)的后綴名即可。
==也可以用010editor直接導(dǎo)出
小題型:
有時(shí)候
會(huì)將一個(gè)hex數(shù)據(jù)給你,讓你自己導(dǎo)入文件。
.
.
.
.
文件合并操作
題型:校驗(yàn)md5
linux下的合并:
cat 合并的文件>輸出的文件
cat chapter01 chapter02 chapter03>book
也可以這樣寫 cat chapter*>book
然后(題目會(huì)給一個(gè)md5值來矯正)
md5sum 文件名
來計(jì)算文件的md5值是否與給出的相等
多嘮叨一點(diǎn):文件的md5值,
從百度上找的:
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MD5在論壇上、軟件發(fā)布時(shí)經(jīng)常用,是為了保證文件的正確性,防止一些人盜用程序,加些木馬或者篡改版權(quán),設(shè)計(jì)的一套驗(yàn)證系統(tǒng)。每個(gè)文件都可以用MD5驗(yàn)證程序算出一個(gè)固定的MD5碼來。軟件作者往往會(huì)事先計(jì)算出他的程序的MD5碼并帖在網(wǎng)上。因此,在網(wǎng)上看到某個(gè)程序下載旁注明了MD5碼時(shí),可以把它記下來,下載了這個(gè)程序后用MD5驗(yàn)證程序計(jì)算你所下載的文件的MD5碼,和你之前記下MD5碼比較,就知道你下的是不是原版了,如果兩者相同,那么你所下載的是原版。如果計(jì)算出來的和網(wǎng)上注明的不匹配,那么你下載的這個(gè)文件不完整,或是被別人動(dòng)過手腳。
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
windows下的合并
copy /B 需要合并的文件名 合并后的文件名
文件內(nèi)容隱寫
winhex notpad
尋找關(guān)鍵字符串
flag和key
(最睿智無腦的一種題型)
圖片隱寫
這個(gè)只能靠套路,不然只有天才才能想出來。
1 細(xì)微的顏色差別
2 GIF多幀隱藏
顏色通道隱藏
不同幀圖信息隱藏
不同幀對(duì)比隱寫
3Exif 信息隱藏
開了GPS的照相機(jī),
照出來的照片,里面會(huì)有神奇的隱藏信息,
拿來用來取證之類的還是很有用的。
4圖片修復(fù)
圖片頭修復(fù)
圖片尾修復(fù)
CRC校驗(yàn)修復(fù)
長(zhǎng)寬高修復(fù)
5.最低有效位LSB隱寫
圖片三基色
red green blue
把這些圖片的最低位的0和1的修改對(duì)圖片不會(huì)太大影響
6.圖片加密(會(huì)給出一點(diǎn)提示)
Stegdetect
outguess
jphide
F5
(看好題目有木有提示,標(biāo)題之類的,認(rèn)真想想有木有可能有提示)
.
.
1.Firework
使用winhex看到文件頭有firework,
就用這個(gè)去打開,就能看到了。
可以看層,可以看幀。
…
…
2.Exif
就是直接看屬性就可以了
不關(guān)GPS會(huì)有經(jīng)緯度
美滋滋
…
…
3.神器 Stegsolve
當(dāng)兩張jpg圖片看起來都差不多的時(shí)候,
可以考慮將GRB像素進(jìn)行亦或,相減,相加之類的操作。
PS:第一張圖片打開的順序會(huì)影響結(jié)果,
所以把兩張都試試(sub操作)。
–手機(jī)的二維碼掃的最好是黑白的
.
.
4.LSB
能隱寫的信息不會(huì)很多,
因?yàn)槎际侵荒芨淖畹陀行?/p>
.
.
工具:stegsolve pyhton腳本之類的
(高級(jí)技能:通過題目提示改腳本)
stegsolve
data extract
慢慢點(diǎn)–嗚嗚嗚,還只是猜測(cè)的
很麻煩,用stegsolve
.
.
用zsteg工具 這個(gè)好
安裝:gem install zsteg
檢測(cè)LSB隱寫
zsteg xxx.png
就會(huì)把所有可能出現(xiàn)的都弄出來,查看就行了!!
嘻嘻!
.
.
wbstego4工具(是一個(gè)軟件)
.bmp文件
用之前要改成.bmp后綴名
然后就生成了一個(gè)js
用十六進(jìn)制打開
。。
。。
正規(guī)正劇的能做出這個(gè),
有時(shí)出了難度,這時(shí)候就要用腳本了,
python腳本
自己上網(wǎng)找
bmp改成png
用畫圖軟件打開,另存為,不要直接改名字哦,
可能不行(我小菜雞猜的)
直接拿stegsolve查看通道,點(diǎn)一遍就幾十秒,
這個(gè)也是蠻基礎(chǔ)的。
5.CRC檢驗(yàn)
TweakPNG
使用場(chǎng)景:文件頭正常卻無法打開png,
或者是打開一半另一半弄個(gè)不出來。
用TweakPNG
直接拖進(jìn)去,
然后會(huì)彈出正確的教校驗(yàn)值,去修改就行了。
用winhex去搜索字符串,
然后修改成正確的校驗(yàn)值就行了。
。
。
。
第二種,是因?yàn)楦叨葘挾扔袉栴},
不是CRC錯(cuò)誤,
需要通過CRC去算出正確的,
然后就是學(xué)習(xí)一波文件頭結(jié)構(gòu)。
都是在前面那一段滴。
自己去找腳本去算,正確的高度和寬度。
python腳本。
改文件名,和crc值。
用的是bugku的一道練習(xí)題哦。
自己去試試這個(gè)腳本。
import os
import binascii
import struct
crcbp=open(“文件名”,“rb”).read()
for i in range(1024):
for j in range(1024):
data=crcbp[12:16]+struct.pack(’>i’,i)+struct.pack(’>i’,j)+crcbp[24:29]
crc32=binascii.crc32(data)&0xffffffff
if crc32 == 0xcbd6df8a:(crc那個(gè)值)
print i,j
print “hex”,hex(i),hex(j)
就知道高度了。
- 6Bftools
windows環(huán)境下的。
bftools.exe decode braincopter 要解密的圖片 -output 輸出文件名
bftools.exe run 上一步輸出的文件
有的話就出來了。
- 7SilentEye
直接打開,
要密碼的就用密碼,不用跳過,即可。
8JPG圖像加密
- stegdetect 工具探測(cè)加密方法
stegdetect 132456.jpg
stegdetect -s 敏感度 xxxx.jpgexi
-
JPhide
-
Outguess
-
F5
上面的一些可以用Stegdetect,可能出現(xiàn)提示o。
二維碼處理
-
CQR.exe
找到內(nèi)容字段 -
自己弄全二維碼的定位符
-
二維碼反色操作
點(diǎn)擊,導(dǎo)入畫圖,點(diǎn)選擇,然后右鍵反色。
便捷工具:電腦桌面二維碼掃描器
- 彩色的二維碼
用stegsolve去看看通道,
或者有的需要取反后的通道才能看的到。
PS:可能會(huì)存在多張,慢慢掃哦,
可能會(huì)突然變成密碼學(xué)。
壓縮文件分析
1.偽加密
zip文件頭有一段專門標(biāo)識(shí)了文件是否加密
其為00表示該文件未加密
查找504B0102這個(gè),
找后面的第9到第10個(gè)的字節(jié)。
上面的貌似是zip的。
下面聊聊rar的。
rar有頭部校驗(yàn),
也很簡(jiǎn)單,用winhex打開文件,找到第二十四個(gè)字節(jié),若它的尾數(shù)是4,加密,尾數(shù)是0,偽加密。
- 2真加密
暴力破解
工具 ARCHPR.exe
自己去下載
使用小技巧:進(jìn)行掩碼,來進(jìn)行復(fù)雜的暴力破解。
用明文來寫已經(jīng)知道了,
選擇掩碼,
然后不知道的用???來弄,在選擇范圍。
比如:知道密碼前三位是abc,后三位為數(shù)字,則在攻擊類型選擇掩碼,
在掩碼處輸入abc???,就行了。
3明文攻擊
使用場(chǎng)景:已知部分明文
明文攻擊指知道壓縮包中一部分文件明文的內(nèi)容,
如知道有個(gè)key.txt
那就把它壓縮起來,
路徑,攻擊。
小套路:有時(shí)候跑不到口令,但跑出了加密秘匙,可以去試一試。
明文攻擊需要注意的兩個(gè)關(guān)鍵點(diǎn)
1.壓縮后CRC值與原來的文件一致。
2.明文文件的壓縮方法跟原來的一樣。
有時(shí)候故意修改部分結(jié)構(gòu),導(dǎo)致讀不出文件。
ps:先來再了解一波文件頭結(jié)構(gòu)。
文件 塊 的第三個(gè)字節(jié)為塊類型,也叫頭類型。
頭類型0x72 標(biāo)記塊
0x73 壓縮文件頭塊
0x74 文件頭塊(有這個(gè)才能標(biāo)識(shí)出這是個(gè)待解壓的文件)
0x75 注釋頭
也就是說,可能存在多個(gè),但只顯示一個(gè)。
你解壓出來也只能拿到一個(gè)(哈哈),
這個(gè)時(shí)候又找不到什么線索的時(shí)候,就要去查看一下,
是否hex中存在第二個(gè)文件木有顯示出來。
給出的例題:
打開txt,發(fā)現(xiàn)木有東西,
到hex中找,找到文件中的字符,然后開始找下一個(gè)。
看第三個(gè)字節(jié)。
弄出來半張二維碼,diao,修改長(zhǎng)度去。
流量分析技術(shù)
wireshark
流量包.pcap
在流量包里面尋找文件
- 直接在里面
- 把一些東西塞在壓縮包中,圖片隱寫等
- web安全,攻擊,敏感信息
總的來說,可以分為三個(gè)方向:
- 流量包修護(hù)
- 協(xié)議分析
- 數(shù)據(jù)提取
總體把握
- 協(xié)議分級(jí)
- 端點(diǎn)統(tǒng)計(jì)
過濾篩選
+++
+++
+++
那么就來看看雜項(xiàng)中難度比較高的流量分析問題了
一些知識(shí)點(diǎn):
數(shù)據(jù)包是有來有回的。
先看看有啥協(xié)議。
都是常見那些,多點(diǎn)做就ok。
常見過濾命令
-
1.過濾ip
ip.src eq x.x.x.x or ip.dst eq x.x.x.x -
2.過濾端口
tcp.port eq 80
tcp.dstport ==80
tcp.srcport ==80 -
3過濾協(xié)議
直接弄個(gè)名字ok -
http模式過濾
http.request.method==‘GET’
http contains “GET”
http contains “flag”
http contain “key”
(很好用,因?yàn)榭扇フ艺铱纯词遣皇侵苯泳湍苷业絝lag的)
wireshark 協(xié)議分析
->協(xié)議分級(jí)
一般去分析IPV4的包
看看占比多的是些什么東西。
小技巧:
根據(jù)數(shù)據(jù)包的某些特征作為過濾器,右鍵->作為過濾器應(yīng)用
小技巧:
Wireshark流匯聚
右鍵->跟蹤流
選擇相應(yīng)的流
跟蹤流(看看后續(xù)流去哪里)
查找下一個(gè)
HTML流關(guān)鍵內(nèi)容:
1.直接查看內(nèi)容
2.上傳下載文件
一些文件名,hash值
常用post
3.一句話木馬
POST請(qǐng)求
內(nèi)容中含有eval
常用
base64解密
shell->就是命令行,就是可以控制了別人的電腦。
bugku 的 這么多數(shù)據(jù)包
先getshell再找flag
關(guān)鍵知道如何getshell
tcp contains “command”
然后逐個(gè)分析就好了
++
+
+
+
wireshark 導(dǎo)出http
或者也可以手動(dòng)提取
直接右鍵->導(dǎo)出分組字節(jié)流
無線流量包
協(xié)議分析只有wireless LAN協(xié)議
很有可能是WP或者WEP加密的無線流量包。
Tp-Link MAC地址
無限流量包跑密碼
aircrack-ng 進(jìn)行wifi密碼破解
檢查cap包
aircrack-ng(連在一起的) xxx.cap
看看加密類型
ESSID wlan名字
BSSID 地址
握手包的基本信息。
加個(gè)字典去跑
aircrack-ng xxx.cap -w passwd.txt
難:USB流量包文件分析
一般考察的流量涉及鍵盤擊鍵,鼠標(biāo)移動(dòng)與點(diǎn)擊,
存儲(chǔ)設(shè)備的明文傳輸通信,USB無線網(wǎng)卡網(wǎng)絡(luò)傳輸內(nèi)容
總結(jié)
以上是生活随笔為你收集整理的CTF隐写常见套路归纳的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在 win 10 上安装 IIS
- 下一篇: UDT 调试