跳转至

杂项随记(汇总)

杂项随记(汇总)

常见编码

对常见的编码进行整理,原文本与编码后进行对比,直观一点

参考:CTF中那些脑洞大开的编码与加密

CTF中那些脑洞大开的编码和加密.md

ASCII编码

ASCII HEX DEC
flag{hello_ctfer} 66 6c 61 67 7b 68 65 6c 6c 6f 5f 63 74 66 65 72 7d 102 108 97 103 123 104 101 108 108 111 95 99 116 102 101 114 125

Base64/58/32/16编码

原文 base64 base58 base32 base16
flag{hello_ctfer} ZmxhZ3toZWxsb19jdGZlcn0= xpoetRPM7vtSVFL9Lrjejfr MZWGCZ33NBSWY3DPL5RXIZTFOJ6Q==== 666c61677b68656c6c6f5f63746665727d

shellcode编码

原文 shellcode编码
flag{hello_ctfer} \x66\x6c\x61\x67\x7b\x68\x65\x6c\x6c\x6f\x5f\x63\x74\x66\x65\x72\x7d

Quoted-printable编码

原文 Quoted-printable编码
你好希提爱抚选手 =E4=BD=A0=E5=A5=BD=E5=B8=8C=E6=8F=90=E7=88=B1=E6=8A=9A=E9=80=89=E6=89=8B

Xxencode编码

原文 Xxencode编码
flag{welcome_yichen} INalVNrhrNKlXPqpZLrZdMqVZPbo+

UUencode编码

原文 Uuencode
flag{welcome_yichen} 49FQA9WMW96QC;VUE7WEI8VAE;GT 

URL编码

原文 URLencode
flag{welcome_yichen} %66%6c%61%67%7b%77%65%6c%63%6f%6d%65%5f%79%69%63%68%65%6e%7d

Unicode编码

原文 unicode
flag{welcome_yichen} \u0066006c00610067007b00770065006c0063006f006d0065005f00790069006300680065006e007d

Escape/Unescape编码

这是一个js函数,该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

原文 Escape
flag{welcome_yichen} flag%7Bwelcome_yichen%7D

HTML实体编码

flag{welcome_yichen} flag{welcome_yichen}

敲击码(Tap code)

原文 Tap code
flag{welcome_yichen} 2131112252153113343215542413231533

莫尔斯电码(Morse Code)

welocme yichen ·-- · ·-·· --- -·-· -- ·/-·-- ·· -·-· ···· · -·

Ook编码

原文 Ook short Ook
yichen Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.  ..... ..... ..... ..... ..!?! !.?.. ..... ..... ..... ..... ?.?!. ?!.?.
..... ...!? !!.?! !!!!! !!?.? !.?!. !!!!! !!!!! !!!.. ..... ....! .!!!!
!!!.. ..... ..... ..... ..!.? .

brainfuck

原文 brainfuck
flag{welcome_to_misc_world} --[----->+<]>.++++++.-----------.++++++.[----->+<]>.----.[->+++<]>.+++++++.---------.++++++++++++.--.--------.------.[--->+<]>-.-----.+[----->++<]>-.++++++++++++++.----.++++++++++.+++[->+++<]>+.----.[--->+<]>++.--------.+++.------.--------.>--[-->+++<]>.

社会主义价值观编码

原文 社会主义价值观编码
flag{welcome_to_misc_world} 公正公正公正诚信文明公正民主公正法治法治诚信民主法治法治公正平等公正诚信文明公正和谐公正友善敬业公正诚信和谐公正平等平等诚信平等法治自由公正诚信平等平等诚信平等公正诚信和谐公正敬业法治和谐公正和谐平等友善敬业法治法治公正诚信平等法治文明公正友善公正公正自由法治友善法治

Handycode

原文 Handycode
flag{welcome_to_misc_world} 333 555 2 4 9 33 555 222 666 6 33 8 666 6 444 7777 222 9 666 777 555 3

BubbleBabble

原文 BubbleBabble
flag{welcome_to_misc_world} xinik-samak-luval-lanek-semyk-zerek-helol-gireh-ziryk-nusak-filol-luril-derik-gyzox

AAencode

原文 AAencode
yichen ゚ω゚ノ= /`m´)ノ ~┻━┻   //´∇`/ ['']; o=(゚ー゚)  ==3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^^o)/ (o^^o);(゚Д゚)={゚Θ゚: '' ,゚ω゚ノ : ((゚ω゚ノ==3) +'') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '')[o^^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'') [c^^o];(゚Д゚) ['c'] = ((゚Д゚)+'') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'')[゚Θ゚]+ ((゚ω゚ノ==3) +'') [゚ー゚] + ((゚Д゚) +'') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'') [゚Θ゚]+((゚ー゚==3) +'') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'') [゚Θ゚];(゚Д゚) [''] =(o^^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'') [o^^o -゚Θ゚]+((゚ー゚==3) +'') [゚Θ゚]+ (゚ω゚ノ +'') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'')[c^^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) [''] ( (゚Д゚) [''] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (c^^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^^o) +(o^^o))+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');

Jsfuck

原文 jsfuck
yichen (+[![]]+[+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]]+[+[]])])[+!+[]+[+[]]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(+(+!+[]+[+[]]+[+!+[]]))(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]][+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+([][[]]+[])[+!+[]]

与佛论禅

原文 与佛论禅
flag{hello_world} 佛曰:侄藝顛冥耨俱度哆所皤伽冥槃彌俱彌侄怛侄寫摩皤離冥蘇梵礙得怯真侄槃佛俱遮諳提知寫奢滅無究都依俱是呐依喝菩。殿智三集朋栗俱蒙僧侄輸冥大諳尼三冥栗侄是漫

常见文件头汇总

JPEG (jpg),文件头:FFD8FF   文件尾:AE 42 60 82

PNG (png),文件头:89504E470D0A1A0A

GIF (gif),文件头:47494638

TIFF (tif),文件头:49492A00

Windows Bitmap (bmp),文件头:424D

CAD (dwg),文件头:41433130

Adobe Photoshop (psd),文件头:38425053

Rich Text Format (rtf),文件头:7B5C727466

XML (xml),文件头:3C3F786D6C

HTML (html),文件头:68746D6C3E

Email [thorough only] (eml),文件头:44656C69766572792D646174653A

Outlook Express (dbx),文件头:CFAD12FEC5FD746F

Outlook (pst),文件头:2142444E

MS Word/Excel (xls.or.doc),文件头:D0CF11E0

MS Access (mdb),文件头:5374616E64617264204A

WordPerfect (wpd),文件头:FF575043

Adobe Acrobat (pdf),文件头:255044462D312E

Quicken (qdf),文件头:AC9EBD8F

Windows Password (pwl),文件头:E3828596

ZIP Archive (zip),文件头:504B0304

RAR Archive (rar),文件头:52617221

Wave (wav),文件头:57415645

AVI (avi),文件头:41564920

Real Audio (ram),文件头:2E7261FD

Real Media (rm),文件头:2E524D46

MPEG (mpg),文件头:000001BA

MPEG (mpg),文件头:000001B3

Quicktime (mov),文件头:6D6F6F76

Windows Media (asf),文件头:3026B2758E66CF11

MIDI (mid),文件头:4D546864

Word隐写

word本质是一个压缩包,可以隐藏图片或txt

显示隐藏内容:文件->显示->隐藏文字

1567172238156-354bb9da-04b7-403d-852a-c8ea2b5477ec.png

base64隐写

2020科来杯,CTF的起源这道题,给了一个 txt,里面全是 base64 编码后的内容,正常 base64 解码没啥信息,属于 base64 隐写,放两个师傅们的脚本

import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:
    flag = ''
    bin_str = ''
    for line in f.readlines():
        stegb64 = str(line, "utf-8").strip("\n")
        rowb64 =  str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
        offset = abs(b64chars.index(stegb64.replace('=','')[-1]) - b64chars.index(rowb64.replace('=','')[-1]))
        equalnum = stegb64.count('=') #no equalnum no offset
        if equalnum:
            bin_str += bin(offset)[2:].zfill(equalnum * 2)
        print([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)])
# -*- coding: cp936 -*-
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('base64stego.txt', 'rb') as f:
    bin_str = ''
    for line in f.readlines():
        stegb64 = ''.join(line.split())
        rowb64 =  ''.join(stegb64.decode('base64').encode('base64').split())
        offset = abs(b64chars.index(stegb64.replace('=','')[-1])-b64chars.index(rowb64.replace('=','')[-1]))
        equalnum = stegb64.count('=') #no equalnum no offset
        if equalnum:
            bin_str += bin(offset)[2:].zfill(equalnum * 2)
        print ''.join([chr(int(bin_str[i:i + 8], 2)) for i in xrange(0, len(bin_str), 8)]) 

图片相关

PNG 格式简介

文件格式:对于PNG文件来说,其文件头总是由固定的字节来描述的,剩余的部分由3个以上的PNG数据(Chunk)按照特定的顺序组成。

文件头:89 50 4E 47 0D 0A 1A 0A + 数据块 + 数据块 + 数据 块…..

zsteg工具

png 隐写神器,他会自动的找一些东西,比如

1592054337731-b0256fdb-ba7d-4114-ab5a-d8353dd753d5.png

-E 参数可以提取隐藏的文件

1595740366538-e297fcc5-7a5c-41b7-9080-8724b1b10bd3.png

zsteg -E "b1,r,lsb,xy" red_blue.png > 1.png

修改图片高度

如果linux下打不开,windows下打得开可能就是该高度了

左边是宽度,圈起来的是高度,,把高度改成跟宽一样的

1567165442893-464c4f58-d908-47a5-8fd5-634ba2a4eb67.png

文件尾追加文件

直接十六进制编辑器

图片元数据

元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(Data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

元数据中隐藏信息在比赛中是最基本的一种手法,通常用来隐藏一些关键的 Hint 信息 或者一些重要的比如 password 等信息。

这类元数据可以 右键 -> 属性 查看

outguess

kali下使用outguess -r avatar.jpg -t 1.txt

把 avatar.jpg 图片破解信息的数据输出到 1.txt

f5-steganography

F5-steganography-james.zip

F5隐写加密:

java Embed 原图片.jpg 生成的图片.jpg -e 隐藏的文件.txt -p 密码

F5隐写解密:

java Extract 生成的图片.jpg -p 密码

演示:

1580386028734-a57f5911-0caa-4af7-8bab-1c151f768851.png

1580385926648-4f6d39b0-7a77-407d-a9ad-5ecbf615382e.png

ps. 之所以使用jview是看自带的.bat文件是用的这个,但是用java貌似没啥影响

1580386387655-acda49cb-ca7a-434a-9671-6093853afe35.png

Beyond Compare

使用软件:Beyond Compare 提取码: uuch

安装打开后界面是这样的:点击红框框出来的

1575086852035-092de3b1-ca79-47d8-bced-c07067993e54.png

选择图片比较

1575086897546-f92c1ce6-ab60-49bd-9807-427b62aa126d.png

上面还有一些选项可以试试

1575086957741-d29ddbd6-cbc9-4cd1-bab6-bd6db280fff9.png

IDAT信息隐藏

IDAT:存储实际的数据,在数据流中可包含多 个连续顺序的图像数据块,储存图像像数数据。

在数据流中可包含多个连续顺序的图像数据块。

采用 LZ77 算法的派生算法进行压缩。

可以用 zlib 解压缩。

IDAT块只有当上一个块充满时,才会继续下 一个新块

如果有 IDAT 还没填满就填充了下一个就要考虑是不是有问题

命令:pngcheck.exe -v sctf.png 可以查看

1567167857257-3fe4637c-dae1-496b-9f9c-28355804361d.png

也可以使用 Stegsolve -> Analysis -> ** File Format **有详细介绍

这就说明这 138 是认为添加的,把这个位置的内容串保存出来,在进行其他操作(文本进制转换、写图片)

LSB信息隐藏

PNG文件中的图像像数一般是由RGB三原色组成,每一种颜色占用8位,取值范围为 0×00~0xFF,即256种颜色,一共包含了256的三次方的颜色,即16777216(1千677W)种 颜色。人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216(677W)种

LSB隐写就是修改RGB颜色分量的最低二进制位(LSB),每个颜色都会有8bit,LSB隐写就是修改了像数中的最低的1Bit,而人类的眼睛不会注意到这前后的区别,每个像数可以携带 3Bit的信息,这样就把信息隐藏起来了

使用 Stegsolve 各个通道都看看,或者 Analysis -> Data Extract 合起来看看,有什么熟悉的保存出来

cloacked-pixel

https://github.com/livz/cloacked-pixel

这是一个用来看 LSB 隐写的东西(带密码的 LSB)

可以提取数据,用法很明确了

$ python lsb.py 
LSB steganogprahy. Hide files within least significant bits of images.

Usage:
  lsb.py hide <img_file> <payload_file> <password>
  lsb.py extract <stego_file> <out_file> <password>
  lsb.py analyse <stego_file>

GIF信息隐藏

在某一帧图片藏着信息,用 ps 或者爱奇艺万能播放器也可以一帧一帧的看

每一帧图片间隔时间,可能藏着规律,或许是二进制编码、或许是摩斯密码

ZIP相关

ZIP介绍

ZIP文件格式的组成: 压缩源文件数据区[文件头+文件数据+数据描述符]{此处可重复多次} +核心目录 +目录结束标识

1567161962704-41d3c616-0ded-4483-8cbf-320843db45be.png

1567162073401-2e4a759a-d4b4-47ea-92b8-f9dca5ad074b.png

格式缺失

文件头删掉的,但不开,但是用 binwalk 分析可以查出有 zip 个文件尾,可以用 winhex 添上文件头

ZIP伪加密

全局方式位标记,如果是 09 00 就会提示需要密码,一共有两处,如果想要实现伪加密,改前面的压缩源文件数据区的是不管用的

1606460250424-ff6a64ea-3a51-4c7d-af8c-f985ffe146c0.png

在后面的压缩源文件目标区管用,甚至只改后面这个就行

1606459522313-c6262f37-5c73-4b0f-aade-6f4f4b5e7729.png

当然,如果本来是有密码的,你改掉是会出错的

密码爆破

。。。ARCHPR

RAR会比其他格式慢,RAR不管密码对不对,直接去试,解不出来就不对,而ZIP是先检验密码是不是正确的

ZIP明文攻击

手里有原压缩包和压缩包内部分文件,可以使用明文攻击方式。 可以将压缩包内的文件进行压缩,然后用ARCHPR这个工具进行明文攻击

举个例子,已知 明文攻击.zip 中存在的文件 明文.txt


因此将 明文.txt 压缩,这里需要判断明文压缩后的CRC32是否与加密文件中的一致,若不 一致可以换一个压缩工具。

1567164221868-105cfbe6-30d7-4b3d-a84e-223c1de28bae.png

当明文的大小比较小时,攻击速度会比较慢;即使有时没有恢复密码,也可以使用明文攻 击,最后点保存还是能得到压缩包里内容的。

如果做题的时候,压缩包里有五个文件,是加密的,但是你有四个文件是直接可以查看的,就可以猜测是不是明文攻击

CRC爆破

CRC32:CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值

在产生CRC32时,源数据块的每一位都参与了运算,因此即使数据块中只有一位发生改变也 会得到不同的CRC32值,利用这个原理我们可以直接爆破出加密文件的内容

https://github.com/theonlypwner/crc32

python crc32.py reverse crc值    根据爆破出来的看看有是不是有啥特殊意思

1567165033125-11580e03-67ff-4361-848a-00ef3ea6f0fc.png

NTFS流隐写

安恒的一道题:猫片,先是LSB提取一个png,然后改高度得到完整的取反色,下载文件,得到RAR,使用NTFS流隐写,打开软件,然后用 winrar 解压缩,然后扫描一下,发现一些其他的东西,导出就可以了

1567171060656-78335963-22f5-4dcd-a716-ad28904092db.png

zlib解压

import zlib
def compress(infile, dst, level=9):
    infile = open(infile, 'rb')
    dst = open(dst, 'wb')
    compress = zlib.compressobj(level)
    data = infile.read(1024)
    while data:
        dst.write(compress.compress(data))
        data = infile.read(1024)
    dst.write(compress.flush())
def decompress(infile, dst):
    infile = open(infile, 'rb')
    dst = open(dst, 'wb')
    decompress = zlib.decompressobj()
    data = infile.read(1024)
    while data:
        dst.write(decompress.decompress(data))
        data = infile.read(1024)
    dst.write(decompress.flush())

if __name__ == "__main__":
    #compress('in.txt', 'out.txt')
    decompress('zlib_out', 'out_decompress.txt')

流量分析

wireshark介绍

Wireshark(前称Ethereal)是一个网络封包分析软件

网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换

捕捉过滤器

数据经过的第一层过滤器, 它用于控制捕捉数据的数量,以避免产生过大的日志文件,用于决定将什么样的信息记录在捕捉结果中,需要在开始捕捉前设置

1567141475266-23af32ac-a263-44d2-8786-e746c71cc2d4.png

显示过滤器

在 CTF 中基本都是给一个数据包,所以基本都是用显示过滤器来筛选

基本语法
语法 protocol . string1 . string2 comparison operator value logical operations other expression
例子 http . request . method == "post" or icmp.type

string1和string2是可选的,依据协议过滤时,可直接通过协议来进行过滤,也能依据协议属性值进行过滤

实际使用

打开一个数据包,点击 表达式 会看到很多字段

1567142590422-c5a9d6c1-29ba-4e1c-8bb6-5c9685134a2e.png

1567142951306-77d27447-1f2b-409b-b0a3-17f2b954968e.png

也可以直接输入 http 就会自动过滤

1567142890127-41f6ff63-638a-47d0-87cb-bcb77e4d0462.png

http.request.method==GET

这样就可以过滤用 GET 方式请求的数据

1567143044501-b1008685-8149-4789-b39a-f3f1c2f8d9ef.png

过滤数据

按照协议过滤:

snmp || dns || icmp

按照协议属性值:

ip.src == 10.230.0.0/16   显示来自10..230网段的封包

tcp.port == 25    显示来源或目的TCP端口号为25的封包

tcp.dstport == 25   显示目的TCP端口号为25的封包

http.request.method == "POST"   显示post请求方式的http封包

http.host == "example.com"     显示请求域名为example.com的http封包

内容过滤语法:

tcp contains "http"   显示payload中包含"http"字符串封包

http.request.url contains "online"   显示请求的url包含"online"的http封包

还有个matches来做正则匹配,以后补充

搜索字符串:ctrl+F 选择分组详情、字符串,然后输入想找的查找就可以

1567152857082-88dd932b-24e1-4750-9bfb-46557cee3b27.png

右键 -> 追踪 -> TCP流,可以跟踪TCP会话的过程

1567151708808-bcf67967-52c9-453d-a6a5-dd443715a989.png

1567151791673-ee553209-3148-4916-8754-894fb833cdaa.png

有时候这里会有一些 zip、png、jpg的信息,如果熟悉文件头的话一眼就能看出来,用下面的save as...就可以保存成出来,然后用 winhex 保存成图片或压缩包

wireshark着色规则

1567151343348-ecfa7abf-6222-4d68-8abd-6ad10edcc35b.png

Tshark

在 wireshark 命令行里的工具

常用参数: -r 设置读取本地文件

-R 

键盘流量分析

数据长度为八个字节

USB流量分为键盘流量和鼠标流量。

键盘数据包的数据长度为8个字节,击键信息集中在第3个字节

映射关系

https://usb.org/sites/default/files/documents/hut1_12v2.pdf

可以用tshark命令可以将 leftover capture data进行提取

tshark -r 流量包 -T fields -e usb.capdata > usbdata.txt

提取出来后根据映射关系还原即可

状态不好,以后再弄

原文: https://www.yuque.com/hxfqg9/misc/uew75k