该公众号致力于分享各种工具和学习记录,与师傅共同进步
[安洵杯 2019]Attack [ 压缩包 ]
用wireshark打开,过滤器语句 http contains "flag"
看看有没有结果:
有结果肯定要追踪http流,(我自己做的时候只关注到了flag.txt)却没关注到 PK(zip压缩包的标志)
我的第一想法肯定要将它给拿出来进行分离zip获得flag.txt的
但看了Wp:直接分离这个流量包(附件)即可:用kali中的工具foremost -T Attack.pcap
获得zip压缩包,但是有加密,这个压缩包的 属性 -> 注释 中提示信息,指向了管理员的密码
哪里获取管理员密码呢,看Wp说是 dmp文件
dmp后缀文件是windows系统中的错误转储文件,当windows发生错误蓝屏的时候,系统将当前内存[含虚拟内存]中数据直接写到这类文件中去,方便定位故障原因。 里面包含了主机用户密码信息
经过过滤器,发现是有dmp的信息的 [ 之后感觉我这个过滤语句不太好,dmp只是三个字符而已,有可能出现偶尔情况,加个. ] [我不知道通配符是什么,我试了 *.dmp
没结果]
发现有,就导出
接下来需要用到工具 mimikatz
下载链接
https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20220919
//提升权限
privilege::debug
//载入dmp文件
sekurlsa::minidump lsass.dmp
//读取登录密码
sekurlsa::logonpasswords full
我不知道为什么 我输入提升权限的那句代码会报错,
但是输入后面的代码正常运行。
然后就会看到密码了。Password:
[NewStarCTF 公开赛赛道]最后的流量分析 [ tshark ]
tshark的使用:http://linux.51yip.com/search/tshark
tshark -r sqli.pcap -T fields -Y "http.request.method==GET or frame.len>765" -e "frame.len" -e "http.request.uri.query.parameter" > data.txt
-r 解析的流量文件
-T 指定输出的格式,fields => 只输出符合条件的字段
-Y 用于过滤流量包 => 上面的-Y表示 只取GET方法的或者流量包长度大于765的
-e 要输出的字段 => 上面的-e表示 输出流量包长度以及流量包中uri中的参数
> 重定向,这里表示将输出的东西 重定向到一个data.txt文件内
第一次用这个tshark 看手册吧.
from urllib.parse import *
import re
comment = ''
with open("E:OneDrive桌面CTFdata.txt") as f:
lines = f.readlines() # 读取txt文件中的每一行
for i in range(len(lines)): # len(lines)->读取的行数
# print(lines[i])
if int(lines[i][:3])>765:
comment += re.findall(r'"(.)"', unquote(lines[i-1]))[0] # 观察得到的txt文本,当出现>768的行数,上一行双引号中的内容就是flag的值 => 正是因为我们观察到了这个,才通过python来得到这个内容
# unquote -> 解码url编码的字符串
# r'' -> 将转义字符当做普通字符
# . 通配符
print(comment)
USB流量 - 键盘流量
附件 https://wuyong.lanzout.com/ihBPQ0uug8id
用tshark获取其中的数据
tshark -r usb.pcap -T fields -e usb.capdata | sed '/^s*$/d' > usbdata.txt
-> -r 是要解析的文件名
-> -T 是选择以什么形式输出 => fields 以字段形式输出,意味着只显示捕获数据中的特定字段,而不是整个数据包
-> -e usb.capdata 告诉tshark输出与USB相关的数据,
-> | 这是一个管道符,它将tshark输出传递给 sed命令
-> sed是流编辑器,用于处理文本流,后面这个 /^s*$/d 是正则表达式,删除所有空行
将获取到的数据没两个之间用:隔开
# 给每一行的数据 俩俩 用冒号隔开
f = open("E:\OneDrive\桌面\CTF\Misc流量\键盘\usbdata.txt", 'r')
f1 = open("E:\OneDrive\桌面CTF\Misc流量\键盘\out.txt", 'w')
# 读取每一行 进行去空,
while1:
a = f.readlines()
for i in range(len(a)):
a[i] = a[i].strip()
# print(a)
# if a[i]:
# print(len(a[i]))
if len(a[i]) == 16:
# print(f"[*] Success {i}")
out = ''
for j in range(0, len(a[i]), 2):
if j+2 != len(a[i]):
out += a[i][j] + a[i][j+1] + ":"
else:
out += a[i][j] + a[i][j+1]
f1.write(out)
f1.write("n")
else:
break
将文中的数据还原成键位
#最后用脚本提取 键盘数据 -> 字符
# print((line[6:8])) #输出6到8之间的值
#取出6到8之间的值
mappings = { 0x04:"A", 0x05:"B", 0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G", 0x0B:"H", 0x0C:"I", 0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O", 0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5", 0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"n", 0x2a:"[DEL]", 0X2B:" ", 0x2C:" ", 0x2D:"-", 0x2E:"=", 0x2F:"[", 0x30:"]", 0x31:"\", 0x32:"~", 0x33:";", 0x34:"'", 0x36:",", 0x37:"." }
nums = []
keys = open("E:\OneDrive\桌面\CTF\Misc流量\键盘\out.txt")
for line in keys:
if line[0]!='0'or line[1]!='0'or line[3]!='0'or line[4]!='0'or line[9]!='0'or line[10]!='0'or line[12]!='0'or line[13]!='0'or line[15]!='0'or line[16]!='0'or line[18]!='0'or line[19]!='0'or line[21]!='0'or line[22]!='0':
continue
nums.append(int(line[6:8],16))
keys.close()
output = ""
for n in nums:
if n == 0 :
continue
if n in mappings:
output += mappings[n]
else:
output += '[unknown]'
print ('output :n' + output)
flag{7200[DEL]53[DEL]93}
USB流量 - 鼠标数量
先用tshark获取
tshark -r usb2.pcap -T fields -e usb.capdata | sed '/^s*$/d' > usbdata.txt
将数据通过:分隔开
# 将上面的文件用脚本分隔,加上冒号;
f = open("E:\OneDrive桌面\CTF\Misc流量\鼠标\usbdata.txt", 'r')
f1 = open("E:\OneDrive桌面\CTF\Misc流量\鼠标\out.txt", 'w')
while1:
a=f.readline().strip()
if a:
if len(a)==8:#键盘流量的话len为16鼠标为8
out=''
for i in range(0,len(a),2):
if i+2 != len(a):
out+=a[i]+a[i+1]+":"
else:
out+=a[i]+a[i+1]
f1.write(out)
f1.write('n')
else:
break
f1.close()
通过脚本转换成图片
from PIL import Image
img = Image.new('RGB',(2000,2000),(255,255,255))#创建Image对象
f =open("E:OneDrive桌面CTFMisc流量鼠标out1.txt")#xy.txt文件
for line in f.readlines():
point =line.split()
img.putpixel((int(point[0]),int(point[1])),(0,0,0))#读取文件中的每一行,并修改像素
f.close()
img.show()
还可以通过gnuplot软件来生成图形,(windows和linux均可,都可以下载)
我是在windows下安装的,是个 exe软件,打开之后
plot ‘filepath’
我是直接放在当前目录了
生成之后用画图软件翻转一下即可
Buu - TLS流量分析
了解学习OSI模型TCP/IP模型了解学习OSI模型TCP/IP模型
学习 SSL/TLS会话流量分析
过滤http流量
发现有个数据包中有个log文件
保存到本地为1.log,然后导入TLS的秘钥中
再过滤http流量,发现多了一些流量,然后其中有一个保存有flag
往期推荐
MD5攻击全家桶:弱比较、数组绕过、长度扩展、碰撞攻击通通拿下!
原文始发于微信公众号(夜风Sec):「CTF流量题指南:从压缩包到USB,还原数据全过程」
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论