本系列基本是根据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}
标签:http,writeup,流量,flag,本题,txt,压缩包,刷题 From: https://blog.csdn.net/2301_79697181/article/details/144027285