流量分析刷题记录(一)writeup

本系列基本是根据b站上风二西大佬的视频边做题、边积累、边总结而成的,大家可以去支持一下

题目下载链接:https://pan.baidu.com/s/14I-Lm1FvhXrmsySbmtpKog?pwd=flag

提取码:flag

一:flag明文

       直接ctrl+F选择分组字节流,搜索字符串flag,成功找到flag

至此得到本题flag:flag{This_is_a_f10g}

二、flag编码

1、666c6167

第一步:

       尝试ctrl+F选择分组字节流,搜索字符串flag,发现不能直接搜出flag,尝试将flag字符串进行16进制编码后再次搜索

第二步:

       flag的16进制为:66 6c 61 67,再次搜索得到一段含flag的16进制编码,解码得到flag

至此得到本题flag:flag{7FoM2StkhePz}

2、attack_log_analysis

       这题和上一题一样,将flag字符串进行16进制编码为:666c6167后进行搜索,发现一段包含flag的16进制编码,解码后得到flag

至此得到本题flag:flag{".str_rot13($str)."}

3、可恶的黑客

       这个题是搜索flag的Unicode编码:flag,但是题目把flag关键字改成了f1ag,导致直接搜索flag的Unicode编码搜不出来,可以直接搜f然后显示分组字节,复制后转Unicode编码得到flag

至此得到本题flag:f1ag{si11yb0yemmm}

三、压缩包流量

1、caidao

第一步:

       打开流量包,点击统计->协议分级发现http协议的流量占比很高,选中http流量->作为过滤器应用->选中,过滤http流

第二步:

       过滤http流后选中一个流量右击追踪tcp流,发现是菜刀流量(题目也能看得出来),上传了一句话木马

第三步:

查看后面的流量,追踪tcp流在最后发现一堆不知道是什么的东西,解码前面的base64(流量包里的东西一般会有URL编码,所以一般可以先URL 解码再使用base64解码)

这里解码得到:

@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("X@Y");$F="C:\\wwwroot\\flag.tar.gz";$fp=@fopen($F,'r');if(@fgetc($fp)){@fclose($fp);@readfile($F);}else{echo('ERROR:// Can Not Read');};echo("X@Y");die();

发现有一个tar.gz压缩包,基本可以确定是发送了一个压缩包,所以最后那一堆不知道是什么的东西应该就是压缩包

第四步:

方法一:

       选中这个流量的返回流量,右击选中显示分组字节,设置开始于3,去掉X@Y,选择解码为压缩,得到flag

方法二:

       右击选中显示分组字节,选择显示为原始数据,然后点击另存为,导出压缩包,解压得到flag

至此得到本题flag:key{8769fe393f2b998fa6a11afe2bfcd65e}

2、test

第一步:

       打开流量包,点击统计->协议分级发现http协议的流量占比很高,选中http流量->作为过滤器应用->选中,过滤http流

第二步:

       过滤了http流,看到有上传一句话木马,查看后面的流量包发现有压缩包的特征,最后那堆东西就是压缩包

第三步:

方法一:

       选中这个流量的返回流量,右击选中显示分组字节,设置开始于3,去掉->|,选择解码为压缩,得到flag

方法二:

       右击选中显示分组字节,选择显示为原始数据,然后点击另存为,导出压缩包,解压得到flag

至此得到本题flag:ISG{China_Ch0pper_Is_A_Slick_Little_Webshe11}

3、被偷走的文件

第一步:

       打开流量包尝试直接搜索flag,发现在一个ftp协议的流量包中,有一个flag.rar

第二步:

       搜索关键字rar,发现一个rar压缩包,将其导出分组字节流,解压时发现需要密码

第三步:

       尝试暴力破解,得到密码为:5790,解压缩得到flag

至此得到本题flag:flag{6fe99a5d03fb01f833ec3caa80358fa3}

4、带密码的压缩包

第一步:

       打开流量包后直接搜索flag,能搜到一个flag{0a19b0453da898f5a8f4a7b3dfb53d74}但这个flag是假的,在搜索flag的过程中会发现很多flag.rar压缩包,推测flag应该是藏在压缩包中,搜索Rar,搜索时选择区分大小写,可以直接找到压缩包内容

第二步:

       由于是tcp协议,追踪流时会发现,在传输时会发现压缩包数据前面有个27FC,这个是tcp协议分段传输的标志位,直接导出可能导不全,可以追踪上面的http流量的返回包,然后导出分组字节流(导出时要将前面的菜刀标志去掉,也可以保存后用010editor修改)

第三步:

       导出来后发现压缩包有加密,而且用工具暴力破解不了,还是得用脚本,(使用时要将winrar安装目录下的Rar.exe复制到脚本和压缩包所在目录下)

风佬的脚本:

# -*- coding: utf-8 -*-
import subprocess
rar_name="flag.rar"   #压缩包名
#这个是字典爆破或者纯数字爆破,要用某一个把另一个注释起来就行了
#字典爆破
with open('dic.txt',"r",encoding='utf-8') as f:
    for p in f.readlines():
        cmd = "rar.exe e {0} -y -p{1}".format(rar_name,p.strip())
        r = subprocess.getstatusoutput(cmd)
        # print(r)
        # print(r[0])
        if r[0] == 0:
            print("pass = %s" % p)
            break
#纯数字爆破
# for p in range(0,999999):
#     cmd = "rar.exe e {0} -y -p{1}".format(rar_name,str(p))
#     r = subprocess.getstatusoutput(cmd)
#     if r[0] == 0:
#         print("pass = %s" % p)
#         break

        运行后得到pass = 123456,解压得到flag

至此得到本题flag:flag{3e3c7d63db892539f8c88a903bb6c7d1}

四:菜刀流量

1、liuliang

第一步:

打开流量包,点击统计->协议分级发现http协议的流量占比很高,选中http流量->作为过滤器应用->选中,过滤http流

第二步:

       在第最后一组流量处发现发现有菜刀特征的压缩包,在返回包处选择显示分组字节,选择显示为原始数据,直接另存为zip

第三步:

       解压时发现有密码,题目没有关于密码的提示,判断应该是伪加密使用010editor打开压缩包,ctrl+F搜索16进制504b0102,从50开始数到第九个字节,将09修改成00后保存,打开压缩包内的word文档,得到flag

至此得到本题flag:flag{2d6cb5b69212296f964dbc4f21171570}

2、菜刀666

第一步:

打开压缩包,点击统计->协议分级,发现大多是http流量

       点击统计->http->请求,发现应该是上传了有个1.php

第二步:

       过滤http流量,查看含1.php的流量,能看到是上传了一句话木马

       往后面看返回包,找到一个PK,这个是zip压缩包的头部,导出分组字节流保存成.zip文件

第三步:

       解压压缩包时发现要密码,尝试暴力破解无果后返回流量包查看,密码应该在流量包内,搜索password没有结果,过滤出http流的post请求

http.request.method==POST

在一处流量的分组详情中发现z2的值好像是一张图片,将其导出为key.txt,然后用010editor导入16进制,删除前面多余的东西,另存为图片,得到压缩包密码:Th1s_1s_p4sswd_!!!,最后解压得到flag

至此得到本题flag:flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

五:misc4

第一步:打开流量包,点击统计->协议分级发现http协议的流量占比很高,在统计中选择http->请求

第二步:

       在最后发现应该可疑的askld3lkj234.php,搜索askld3lkj234.php关键字,在对应流量返回包的分组字节流中看到flag

至此得到本题flag:flag{FLAG-GehFMsqCeNvof5szVpB2Dmjx}

六、telnet

第一步:

看题目能得到一个提示,本题考的应该是telnet远程登入协议,直接过滤telnet协议,追踪tcp流量

第二步:

可以看到登入的账户的flag,对应的密码应该就是要提交的flag,因为发送包和接收包有重叠,不方便查看,可以在下方选择192.168.147.1——>192.168.147.23的对话,可以更直观的看到输入的账号和密码

第三步:

其中s和9之间的三个点其实是不可打印字符,显示为Hex,找到这三个点对应的16进制数"08",在ascii表中查看0x08表示退格,说明在是输入时这里应该是三次退格,退格后flag就变成了28d982kwalx8e 

至此得到本题flag:flag{28d982kwalx8e}

七、s7comm

第一步:

       直接ctrl+F搜索flag,在1003的分组字节流处发现flag,但是不完整

第二步:

       通看整个流量包发现大多数是read,有几处是write,长度稍长,可以采取长度排序的方式,找到含write的流量

第三步:

       查看这几处含write的流量,在3009处发现从第35位写入了fd

       从第5位写入了1b

       从第34位写入了5

第四步:

       将flag复制出来,分别将第5位和第6位改成1b,第34位改成5,第35位改成fd

至此得到本题flag:flag{1b2c0163806149199f01431705cbe5fd}

八、蓝牙协议

OBEX是一种通信协议,用于在设备之间传输数据对象。它主要用于蓝牙和其他无线通信技术中,以实现设备间的数据共享和交互。

第一步:

点击统计,选择协议分级,过滤出OBEX协议,发现有一个7z的压缩包,直接导出分组字节流

第二步:

解压时发现需要密码,压缩包内的文件名提示了密码是蓝牙协议的pin

第三步:

       回到wireshak中,搜索字符串pin,在分组字节流中搜索没有结果,换成分组详情后找到应该pin的请求回复,展开分组详情看到pin的值为141854

第四步:

       输入密码解压缩后查看password_is_Bluetooth_PIN.txt得到flag

至此得到本题flag:flag{6da01c0a419b0b56ca8307fc9ab623eb}

九、USB-键盘流量

这个题我看到风佬直接用的脚本,将脚本放在和流量包同一个目录下,直接cmd运行即可得到flag
 

# -*- coding: cp936 -*-

#该脚本直接在流量包所在的目录下cmd运行

import os

os.system("tshark -r test.pcapng -T fields -e usb.capdata > usbdata.txt")

#test.pcapng改成要提取的流量包名字

#提取usb.capdata字段的内容,然后重定向到usbdata.txt,这里需要将wireshark安装目录下的tshark.exe配置在环境变量path中

normalKeys = {"04":"a", "05":"b", "06":"c", "07":"d", "08":"e", "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j", "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o", "13":"p", "14":"q", "15":"r", "16":"s", "17":"t", "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y", "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4", "22":"5", "23":"6","24":"7","25":"8","26":"9","27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\","32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".","38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}


shiftKeys = {"04":"A", "05":"B", "06":"C", "07":"D", "08":"E", "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J", "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O", "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T", "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y", "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$", "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"","34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}


nums = []

keys = open('usbdata.txt')

for line in keys:

    #print(line)

    if len(line)!=17: #���ȹ��˵����������豸��USB����

         continue

    nums.append(line[0:2]+line[4:6]) #ȡһ�����ֽ�

    #print(nums)

keys.close()

output = ""

for n in nums:

    if n[2:4] == "00" :

        continue


    if n[2:4] in normalKeys:

        if n[0:2]=="02": #��ʾ������shift

            output += shiftKeys [n[2:4]]

        else :

            output += normalKeys [n[2:4]]

    else:

        output += '[unknown]'

print('output :' + output)

运行结果:

       除此外,我在网上看到有其他大佬的脚本,这里补充积累一下,先使用tshart工具从流量包中提取capdata重定向到usbdata.txt中,将usbdata.txt和脚本放在同一目录下运行得到flag

tshark -r test.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt 

# -*- coding: cp936 -*-

#该脚本直接在流量包所在的目录下cmd运行

import os

os.system("tshark -r test.pcapng -T fields -e usb.capdata > usbdata.txt")

#test.pcapng改成要提取的流量包名字

#提取usb.capdata字段的内容,然后重定向到usbdata.txt,这里需要将wireshark安装目录下的tshark.exe配置在环境变量path中

normalKeys = {"04":"a", "05":"b", "06":"c", "07":"d", "08":"e", "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j", "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o", "13":"p", "14":"q", "15":"r", "16":"s", "17":"t", "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y", "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4", "22":"5", "23":"6","24":"7","25":"8","26":"9","27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\","32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".","38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}


shiftKeys = {"04":"A", "05":"B", "06":"C", "07":"D", "08":"E", "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J", "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O", "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T", "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y", "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$", "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"","34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}


nums = []

keys = open('usbdata.txt')

for line in keys:

    #print(line)

    if len(line)!=17: #���ȹ��˵����������豸��USB����

         continue

    nums.append(line[0:2]+line[4:6]) #ȡһ�����ֽ�

    #print(nums)

keys.close()

output = ""

for n in nums:

    if n[2:4] == "00" :

        continue


    if n[2:4] in normalKeys:

        if n[0:2]=="02": #��ʾ������shift

            output += shiftKeys [n[2:4]]

        else :

            output += normalKeys [n[2:4]]

    else:

        output += '[unknown]'

print('output :' + output)

运行结果:

十、USB-鼠标流量

        还是先使用tshart工具,不过不一样的是这次是从流量包中提取usbhid.data重定向到usbdata.txt中,将usbdata.txt和脚本放在同一目录下运行得到flag

       话不多说,上脚本!(运行时将中文注释删掉)
 

# -*- coding: cp936 -*-

#该脚本直接在流量包所在的目录下cmd运行

import os

os.system("tshark -r test.pcapng -T fields -e usb.capdata > usbdata.txt")

#test.pcapng改成要提取的流量包名字

#提取usb.capdata字段的内容,然后重定向到usbdata.txt,这里需要将wireshark安装目录下的tshark.exe配置在环境变量path中

normalKeys = {"04":"a", "05":"b", "06":"c", "07":"d", "08":"e", "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j", "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o", "13":"p", "14":"q", "15":"r", "16":"s", "17":"t", "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y", "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4", "22":"5", "23":"6","24":"7","25":"8","26":"9","27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\","32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".","38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}


shiftKeys = {"04":"A", "05":"B", "06":"C", "07":"D", "08":"E", "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J", "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O", "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T", "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y", "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$", "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"","34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}


nums = []

keys = open('usbdata.txt')

for line in keys:

    #print(line)

    if len(line)!=17: #���ȹ��˵����������豸��USB����

         continue

    nums.append(line[0:2]+line[4:6]) #ȡһ�����ֽ�

    #print(nums)

keys.close()

output = ""

for n in nums:

    if n[2:4] == "00" :

        continue


    if n[2:4] in normalKeys:

        if n[0:2]=="02": #��ʾ������shift

            output += shiftKeys [n[2:4]]

        else :

            output += normalKeys [n[2:4]]

    else:

        output += '[unknown]'

print('output :' + output)

       然后在用gunplot工具,将坐标转换成图片

plot " result.txt "

至此得到本题flag:flag{HDIM3}

十一:无线流量

第一步:

        打开流量包发现很多802.11,可以看出这是一道无线流量的题

802.11也叫做无线局域网通用标准,现今无线局域网(WLAN)普遍使用的标准

无线流量题一般要先知道无线流量包的密码,密码要么直接告诉,要么就是需要爆破,爆破的话一般用aircrack-ng来爆破

爆破:

aircrack-ng -w [密码字典] [要爆破的流量包]

aircrack-ng -w dic.txt ctf.pcap

第二步:

解码:

airdecap-ng [要解密的流量包] -e [流量包的ESSID] -p [爆破出来的密码] -o [生成的流量包名]

airdecap-ng ctf.pcap -e ctf -p password1

第三步:

        打开解密后的流量包,搜索flag

至此得到本题flag:flag{H4lf_1s_3n0ugh}

十二:SSL/TLS流量

第一步:

       打开流量包,协议分级中发现大量的TLS协议,推测出该流量包是SSL/TLS流量包

第二步:

       题目给了一个ssl_log.log,应该就是私钥,用私钥解密数据包后再显示额外内容,点击编辑->首选项->协议(protocols)->TLS->(Pre)-Master-Secret log filename,添加私钥

第三步:

       添加私钥后流量包中出现了额外的http流量,在统计->http>请求中发现flag.txt

       直接过滤http流量,找到该流量,查看flag.txt流量包的返回包,得到flag

至此得到本题flag:flag{This_is_tr0e_flAg}

十三:工业协议分析

       这个题中又学到了一个做流量题的小技巧,可以将流量按长度排序,重点关注长度和其他流量长度非常不一样的流量

第一步:

       点击length将流量按长度排序,发现有一处流量长度明显异于其他流量,点击查看

第二步:

       在分组字节流中的数据链路层发现一段base64加密的密文,并提示是png,

第三步:

       显示分组字节流,选择解码为base64,显示为图像,从第十八为开始,去掉前面不需要的东西

至此得到本题flag:flag{ICS-mms104}

十四:getshell

第一步:

       打开流量包协议分级发现没有http协议,但是有很多tcp协议,过滤tcp协议后在最后看到有很多4444端口的tcp流量

第二步:

        4444端口通常是反弹shell的端口号,追踪tcp流查看,在最后一组流量中发现在cmd执行的命令,查看了一个txt文件,有一段base64,解码一下,得到flag

至此得到本题flag:CCTF{do_you_like_sniffer}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值