第一层:下载后打开得到一张图片,根据题意和图片名guess.jpg猜测,尝试outguess爆破
python3 outguess爆破脚本
# OGBrute.py
import os
import pandas
from datetime import datetime
beginDate = '18810101' #密码开始值
endDate = '19001231' #密码结束值
dic = [datetime.strftime(x, '%Y%m%d') for x in list(pandas.date_range(start = beginDate, end = endDate))]
dic = dic[::-1]
for p in dic:
out = './' + p
cmd = 'outguess -k ' + p + ' -r guess.jpg ' + out
os.system(cmd)
o = open(out, 'rb').read()
if len(o) == 0:
os.system('rm ' + out)
跑完后,生成很多文件,在kali中可以直观看到文件类型,其中文本类只有三个,分别为18931107、19860818、18971210,在18961210中发现关键内容
如果是脑回路清奇的人,社工联想到炸药之父—诺贝尔的忌日:18961210,直接就能用正常outguess用法语句获得隐写文本
outguess -k '18961210' -r guess.jpg 001.txt
打开隐写文本,将网址中s更改为i,下载链接内容
第二层:得到crc.zip压缩包,打开为1X1的png图片,再次根据题意和图片名crc.png猜测,尝试crc高宽爆破
import zlib
import struct
# 同时爆破宽度和高度
filename = "crc.png"
with open(filename, 'rb') as f:
all_b = f.read()
data = bytearray(all_b[12:29])
n = 4095
for w in range(n):
width = bytearray(struct.pack('>i', w))
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
crc32result = zlib.crc32(data)
#此处crc值替换成图片的crc
if crc32result == 0xD3D5B18: #听说你喜欢爆破crc值
print("宽为:", end = '')
print(width, end = ' ')
print(int.from_bytes(width, byteorder='big'))
print("高为:", end = '')
print(height, end = ' ')
print(int.from_bytes(height, byteorder='big'))
在010 Editor中根据结果更改正确高宽值,得到原图
第三层:再再次根据题意和图片底部提示猜测,尝试MD5hash值爆破,这里有三个方法
①Windows中下载hashcat进行掩码爆破,然后十六进制转ascii字符
hashcat64.exe -a 3 -1 ?l?d -m 5100 fd7e8e47cd47f001 https://www.lanzous.com/i?1?1?1?1?1?1
②kali中使用自带hashcat进行爆破,然后十六进制转ascii字符
hashcat -a 3 -m5100 fd7e8e47cd47f001 https://www.lanzous.com/i?1?1?1?1?1?1 -1 ?l?d
$HEX[68747470733a2f2f7777772e6c616e7a6f75732e636f6d2f69613335746d6a]
③python3脚本hash值掩码爆破
第四层:将得到的下载链接,s改为i,下载文件Blasting it.zip,为加密压缩包
全选右边注释,发现透明文字,由点和杠组成,分别替换为0和1,然后二进制转字符为rocky
由rocky联想到kali自带的rocky爆破字典,kali中使用fcrackzip对Blasting it.zip进行字典爆破
darkdumymohamed0351409575
解压后得到office文档
第五层:打开发现文档为加密文档,再再再再次根据题意和文档名4num.xlsx操作,尝试AOPR进行4位数字爆破,得到密码
最后一步:输入文档密码,打开得到flag