2022第六届蓝帽杯WP

Misc

Domainhacker

简单流量分析过程就是目标用猕猴桃把目标的hash保存到了1.txt 然后压缩到了1.rar。

文件只有TCP和HTTP流,追踪TCP流能够发现蚁剑流量特征

继续追踪,在流15中传输了一个Rar文件。手动导出

Rar是加密的,我们能在流13中找到压缩的过程

分析蚁剑流量,命令Base64后通过参数传输,提取拼接得到base64如下

TwYNY2QgL2QgImM6XFxXaW5kb3dzXFxUZW1wIiZyYXIuZXhlIGEgLVBTZWNyZXRzUGFzc3cwcmRzIDEucmFyIDEudHh0JmVjaG8gZWZhOTIzYmE1MDQmY2QmZWNobyAxYTRiZTg4MTVlZjg=

解码如下

Ocd /d "c:\\Windows\\Temp"&rar.exe a -PSecretsPassw0rds 1.rar 1.txt&echo efa923ba504&cd&echo 1a4be8815ef8 

得到压缩包密码为SecretsPassw0rds,解压得到NTMLhash

Domainhacker2

得到压缩包的密码FakePassword123$。解压缩得到里面的文件。其中有一个ntds.dit文件,通过搜索可知ntds.dit文件是域环境中AD的数据库信息文件

这里我们使用impacket/examples/secretsdump.py工具进行离线解密

python3 secretsdump.py -ntds ntds.dit -system SYSTEM -security SECURITY -history LOCAL > hash.txt

Web

Ez_gadget

fastjson版本为1.2.62,但是过滤了rmi,ldap,jndi关键字。网上大部分1.2.62链子都需要依赖这几个协议

    public String Unserjson(@RequestParam String str, @RequestParam String input) throws Exception {
        if (str != null && Objects.hashCode(str) == secret.getKey().hashCode() && !secret.getKey().equals(str)) {
            String pattern = ".*rmi.*|.*jndi.*|.*ldap.*|.*\\\\x.*";
            Pattern p = Pattern.compile(pattern, 2);
            boolean StrMatch = p.matcher(input).matches();
            if (StrMatch) {
                return "Hacker get out!!!";
            }

            ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
            JSON.parseObject(input);
        }

        return "hello";
    }

首先需要绕过hash判断,参考虎符CTF2022赛后复现。首先构造hash相等的字符串,根据hashcode源码可构造出如下等式

31*h1 + a[i] = 31*h2 = b[j]
(h1-h2)*31 = b[j]-a[i]

比如

//HF=Ge
72*31+70 = 71*31+101

先探测一下是否出网

下面就是绕过正则

使用Unicode编码绕过正则

取证

手机取证1

打开提供的盘古石取证软件,直接搜索关键字

手机取证2

依旧搜索关键词单号即可

计算机取证1

直接使用PasswareKitForensic分析即可得到系统密码

计算机取证2

使用volatility分析dump文件

发现可疑进程

经过搜索可知该软件可能被用来dump内存,提交进程号即可

计算机取证3

首先使用AFTK软件挂载E01磁盘镜像

然后使用EFDD工具解密bitlokcer加密磁盘,得到密钥

然后使用DiskGenius解密磁盘能够得到几个文件

分别导出,docx和pptx文件都有密码,可以使用pass.txt进行字典爆破最终爆破出pptx中的密码287fuweiuhfiute

Any PowerPoint Password Recovery 9.9.8

得到flag

程序分析1

扔进GDA分析,看BaseInfo得到包名

程序分析2

同上,可以看见主类

程序分析3

主类中

解码发现是地址,提交密文即可

程序分析4

放到模拟器中会自动退出,根据提示找到如下位置,尝试提交h和a,最终a为flag

网站取证1

有源码,直接丢到D盾扫描

网站取证2

Seay分析,搜索password

再搜索my_encrypt定义,很明显是分组加密

复制运行即可得到密码

网站取证3

根据sql文件可得”金额”所对应的数据库列名money

Seay中搜索money可以发现使用encrypt函数来加密money

跟进encrypt

得到盐值jyzg123456

网站取证4

首先根据转账的时间区间过滤出sql语句

然后过滤转账人,找张宝和王子豪对应的编号

分别为3和5,再次过滤。由于转账的货币是GG币,我们还需要计算每日的汇率

最后由于转账金额被加密了,我们还需要根据第三题的加密函数求逆,最终的计算思路为Total = GG币金额*汇率*转账次数。脚本如下

total=根据时间的转账人过滤出的记录
total_list = total.split("\n")
# print(total_list)
# print(total_list[0][98])

target = []

for i in total_list:
    if i[-18] == "5" and i[-15] == "3":
        target.append(i)
print("收款记录:"+str(target))
# print(target[0][57])

#获取日期
def get_date(str):
    if str[57] == ",":
        return str[97:99]
    else:
        return str[98:100]


#汇率
c=汇率

date=[]
transfer=[]
transfer_price=c.split('\n')
# print(transfer_price[29][58])
for j in transfer_price:
    date.append(j[45:47])
    transfer.append(float(j[57:61]))

dic=dict(zip(date,transfer))
print("汇率:")
print(dic)



#金额
money=[]
d=[]
# print(target[70][119:127])
for k in target:
    d.append(get_date(k))
    if k[57] == ",":
        money.append(k[118:126])
    else:
        money.append(k[119:127])
print(d)
print(money)


import base64
# 解密金额
def dec(string):
    key = "cd9d86dd286a0b0079146c1c57e51576"
    string = list(base64.b64decode(string))
    l=len(string)
    char = key[:l]
    mon=''
    for i in range(l):
        mon += chr( string[i] - ord(char[i]) )
    return mon

T=0
for i in range(149):
    m=dec(money[i])
    # print(m)
    # print(dic[d[i]])
    rmb=int(m)*float(dic[d[i]])
    T+=rmb
print(T)

最后保留两位小数即可

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇