arrdeepee

arrdeepee(来源:攻防世界)

 

1.关卡描述


2.解题步骤


分析:

下载附件得到一个流量包,对tcp流进行追踪,没有发现什么:

特别注意的是流量包含有含有大量TLS流,且没有http流,说明

使用foremost没有检测出关键信息,使用binwalk,得到一个crt文件

文件的内容是乱码。

通过对所有流进行分析:

发现重要协议中比较重要的协议是tcp、udp、ssl

对tcp流进行追踪,没有发现什么有效信息,而且只有一个tcp流,含有的信息也是非常的的多,现在追踪udp流也没有发现什么。

毫无头绪。

==================================

参考资料:

思路一:

来自:HITBGSEC CTF 2017 - arrdeepee (Misc) - Nandy Narwhals CTF Team ▌

PCAP文件中有两个不同的流:UDP流和大型TCP流。

当我们分析流量的开始时,我们可以看到TCP流包含RDP数据。如果在打开PCAP文件时没有像您那样显示出来,则将TCP通信解码为TPKT。

(注:解码为TPKT:

此时,会发现所有的TLSv1都变成了TPTK

且:

RDP一般指远程桌面协议

另外,我们注意到RDP流量是通过SSL加密的,如下所示:

由此,我们可以猜测我们需要重播RDP会话,但为此,我们需要找到用于解密通信的密钥。这可能在UDP流中。

跟随UDP流,我们看到大量的二进制数据,其中包含一些有趣的字符串。“ TSSecKeySet1”和“ Microsoft Strong Cryptographic Provider”看起来像是对我们要查找的加密货币的非常有趣的引用。(这是细节啊)

我们可以将整个流转储到文件中并尝试对其进行分析。首先,让我们看看它是否可以识别为文件:

$ file extracted_data.bin

extracted_data.bin: data

似乎没有可识别的标头。因此,让我们尝试在其上运行binwalk:

$ binwalk -e extracted_data.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
30            0x1E            Certificate in DER format (x509 v3), header length: 4, sequence length: 2376
57            0x39            Certificate in DER format (x509 v3), header length: 4, sequence length: 1466
1546          0x60A           Private key in DER format (PKCS header length: 4, sequence length: 860

现在,它似乎包含一些证书和一个私钥。尝试将单个文件转换为我们可以使用openssl读取的纯文本格式似乎没有用。我们可以通过将其读取为ASN.1来对其进行调试。

$ openssl asn1parse -inform DER -in extracted_data.bin
    0:d=0  hl=4 l=2467 cons: SEQUENCE
    4:d=1  hl=2 l=   1 prim: INTEGER           :03
    7:d=1  hl=4 l=2399 cons: SEQUENCE
   11:d=2  hl=2 l=   9 prim: OBJECT            :pkcs7-data
   22:d=2  hl=4 l=2384 cons: cont [ 0 ]
   26:d=3  hl=4 l=2380 prim: OCTET STRING      [HEX DUMP]:省略
 2410:d=1  hl=2 l=  59 cons: SEQUENCE
 2412:d=2  hl=2 l=  31 cons: SEQUENCE
 2414:d=3  hl=2 l=   7 cons: SEQUENCE
 2416:d=4  hl=2 l=   5 prim: OBJECT            :sha1
 2423:d=3  hl=2 l=  20 prim: OCTET STRING      [HEX DUMP]:C6636BA1DC7A4063D2AD49F7DBB800AD92260253
 2445:d=2  hl=2 l=  20 prim: OCTET STRING      [HEX DUMP]:9BADF56CE6069E1EB9339E0E9FCD096ACD0DBC5B
 2467:d=2  hl=2 l=   2 prim: INTEGER           :07D0

我们得到了大量的数据。但是,由于该结构可以包含嵌套数据,因此我们可以通过指定要解码的八位位组字符串来进行向下钻取。

$ openssl asn1parse -inform DER -in extracted_data.bin -strparse 26
    0:d=0  hl=4 l=2376 cons: SEQUENCE
    4:d=1  hl=4 l=1489 cons: SEQUENCE
    8:d=2  hl=2 l=   9 prim: OBJECT            :pkcs7-data
   19:d=2  hl=4 l=1474 cons: cont [ 0 ]
   23:d=3  hl=4 l=1470 prim: OCTET STRING      [HEX DUMP]:省略
 1501:d=2  hl=2 l=   9 prim: OBJECT            :pkcs7-encryptedData
 1512:d=2  hl=4 l= 864 cons: cont [ 0 ]
 1516:d=3  hl=4 l= 860 cons: SEQUENCE
 1520:d=4  hl=2 l=   1 prim: INTEGER           :00
 1523:d=4  hl=4 l= 853 cons: SEQUENCE
 1527:d=5  hl=2 l=   9 prim: OBJECT            :pkcs7-data
 1538:d=5  hl=2 l=  28 cons: SEQUENCE
 1540:d=6  hl=2 l=  10 prim: OBJECT            :pbeWithSHA1And40BitRC2-CBC
 1552:d=6  hl=2 l=  14 cons: SEQUENCE
 1554:d=7  hl=2 l=   8 prim: OCTET STRING      [HEX DUMP]:135DB999CA2CD6B1
 1564:d=7  hl=2 l=   2 prim: INTEGER           :07D0
 1568:d=5  hl=4 l= 808 prim: cont [ 0 ]

同样,让我们​​对嵌套结构进行解码。

$ openssl asn1parse -inform DER -in extracted_data.bin -strparse 26 -strparse 23
    0:d=0  hl=4 l=1466 cons: SEQUENCE
    4:d=1  hl=4 l=1462 cons: SEQUENCE
    8:d=2  hl=2 l=  11 prim: OBJECT            :pkcs8ShroudedKeyBag
   21:d=2  hl=4 l=1270 cons: cont [ 0 ]
   25:d=3  hl=4 l=1266 cons: SEQUENCE
   29:d=4  hl=2 l=  28 cons: SEQUENCE
   31:d=5  hl=2 l=  10 prim: OBJECT            :pbeWithSHA1And3-KeyTripleDES-CBC
   43:d=5  hl=2 l=  14 cons: SEQUENCE
   45:d=6  hl=2 l=   8 prim: OCTET STRING      [HEX DUMP]:66AFD4385D4302C4
   55:d=6  hl=2 l=   2 prim: INTEGER           :07D0
   59:d=4  hl=4 l=1232 prim: OCTET STRING      [HEX DUMP]:省略
 1295:d=2  hl=3 l= 172 cons: SET
 1298:d=3  hl=2 l=  13 cons: SEQUENCE
 1300:d=4  hl=2 l=   9 prim: OBJECT            :Microsoft Local Key set
 1311:d=4  hl=2 l=   0 cons: SET
 1313:d=3  hl=2 l=  19 cons: SEQUENCE
 1315:d=4  hl=2 l=   9 prim: OBJECT            :localKeyID
 1326:d=4  hl=2 l=   6 cons: SET
 1328:d=5  hl=2 l=   4 prim: OCTET STRING      [HEX DUMP]:01000000
 1334:d=3  hl=2 l=  39 cons: SEQUENCE
 1336:d=4  hl=2 l=   9 prim: OBJECT            :friendlyName
 1347:d=4  hl=2 l=  26 cons: SET
 1349:d=5  hl=2 l=  24 prim: BMPSTRING
 1375:d=3  hl=2 l=  93 cons: SEQUENCE
 1377:d=4  hl=2 l=   9 prim: OBJECT            :Microsoft CSP Name
 1388:d=4  hl=2 l=  80 cons: SET
 1390:d=5  hl=2 l=  78 prim: BMPSTRING

这实际上看起来像是PKCS12文件,捆绑证书的存档格式和私钥。我们可以从中提取私钥:

$ openssl pkcs12 -in extracted_data.bin -nocerts -nodes -out private.key
Enter Import Password: mimikatz
MAC verified OK

我猜到了证书文件的密码“ mimikatz”,但我们可以在此处获取有关信息。获取私钥后,我们可以使用一个称为RDP-Replay的工具 来重播RDP会话,并找出攻击者在入侵期间正在做什么。

编译后,我们可以运行rdp_replay带有选项的可执行文件,以保存攻击者按下的键,并将捕获到的剪贴板事件中的数据转储到文件中。另外,我们将重播的视频保存到文件中。

$ rdp_replay -r ../e8e2ceb9-b77f-4b26-b09a-fcec86e27497.pcap -o recording.avi -p ./private.key --save_clipboard --show_keys > output

这是攻击者通过RDP所做的记录:

他的工作是使用未显示给用户的密码压缩和加密标志文件,然后将base64编码并复制到剪贴板。这就是为什么我们必须保存键入的键和剪贴板事件信息的原因。

输入的键记录:

RDP SSL MODE Requested by server!!
SSL private key found.
1024x756x8
REALLY DELICIOUS PANCAKES<Tab>REALLY DELICIOUS PANCAKES

剪贴板的内容:

N3q8ryccAATjAlOVMAAAAAAAAABqAAAAAAAAACmoQ4fA1DQXZvCzJGIg/8cxnh8QXnWoDkwNxjGL
37P7rvVC2SMn8+wquEv/A5HBL9djQewBBAYAAQkwAAcLAQACJAbxBwEKUweBdxD1DDirkCEhAQAB
AAwrJwAICgGwcALcAAAFARkJAAAAAAAAAAAAERMAZgBsAGEAZwAuAHQAeAB0AAAAGQAUCgEAAFNu
lssb0wEVBgEAIAAAAAAA

放在一起:

$ cat ../clip-00000000-down | base64 -d -i > flag.7z
$ 7z x flag.7z

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Processing archive: flag.7z


Enter password (will not be echoed) :
Extracting  flag.txt

Everything is Ok

Size:       39
Compressed: 186
$ cat flag.txt
HITB{44519a67ffc654e40febc09e20e8e745}

思路二:

XCTF 3rd-HITB CTF-2017 arrdeepee 复现_m0_46580995的博客-CSDN博客

得到的是一个pcap包

有大量的tcp和udp流

查看udp流有以下的关键字

“ TSSecKeySet1”和“ Microsoft Strong Cryptographic Provider”

保存下来进行分析

有一些证书和私钥尝试openssl进行读取

命令:openssl asn1parse -inform DER -in

有大量的hex,深入分析嵌套的数据,进行解码尝试

命令加一个-strparse

继续解码

有可能是密钥

提取出来

提取出来

提取需要密码结合题目的 mimikatz (https://github.com/FreeRDP/FreeRDP/wiki/Mimikatz)尝试做密码

成功提取

回过头看pcap包

有RDP和TPKT包(如果没有就右键decode解码)

其中的RDP 可以通过rdp_replay来重播RDP会话

命令

replay/rdp_replay -r 1.pcap -o recording.avi -p ./private.key --save_clipboard --show_keys > output

recording.avi-其它其他资源-CSDN下载

通过视频(视频等上传通过)可以知道攻击者,他的工作是使用未显示给用户的密码压缩和加密标志文件,然后将base64编码并复制到剪贴板。

上一步已经把键位和剪切板下载下来

以及粘贴板上的base64解码并写入文件发现一个7z压缩包

需要密码就是键盘键入的

RDP SSL MODE Requested by server!!

SSL private key found.

1024x756x8

REALLY DELICIOUS PANCAKESREALLY DELICIOUS PANCAKES

得到flag

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值