m0_01
题目描述:m0
题目环境:https://download.csdn.net/download/m0_59188912/86995259
- 打开12.pcapng文件,随机选择一条数据流量,发现是键盘流量。
- 使用wireshark命令行模式,提取出文件。
命令:tshark -r 12.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt
- 缺少冒号,使用python脚本添加冒号。
脚本源码:
f=open(‘usbdata.txt’,‘r’)
fi=open(‘usbdatacolon.txt’,‘w’)
while 1:
a=f.readline().strip()
if a:
if len(a)==16: # 键盘流量len=16,鼠标流量len=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]
fi.write(out)
fi.write(‘\n’)
else:
break
fi.close()
执行脚本。
命令:python colon.py
- 使用python脚本还原数据。
脚本源码:
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(‘usbdatacolon.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)
运行脚本。
命令:python keyboard2.py
- 得到一串数字,显然这串数字不是flag,仔细观察发现只有01248,判断为云影密码,使用python脚本解码。
脚本源码:
#云影密码
a=“884080810882108108821042084010421”
s=a.split(‘0’)
l=[]
print(s)
for i in s:
sum=0
for j in i:
sum+=eval(j)
l.append(chr(sum+64))
print(l)
运行脚本。
命令:python yy.py
- 得到flag。
Flag{THISISFLAG}
本篇博客为本人解题write up,如有错误之处,还望各位指正。
文章为原创,如要转载请注明出处