Kerberos流量解密
Kerberos流量解密
特让他也让在学习 Kerberos 协议的时候,需要对 Kerberos 协议流量进行解密,以更好的了解 Kerberos 协议的传输过程。本篇文章是通过生成 keytab
文件,在 Wireshark 里加载实现对流量的解密。
keytab
(简称“密钥表”)存储一个或多个主体的长期密钥。通常 keytab
以标准格式的文件表示,在极少数情况下,它们可以以其他方式表示。keytab
最常用于允许服务器应用程序接受客户端的身份验证,但也可以用于为客户端应用程序获取初始凭据。
这里使用了两个工具
esedbexport
NTDSXtract
准备
域控导出 Ntds.dit
我们需要在域控里导出 Ntds.dit
域控环境为 Windows Server 2016
1 | vssadmin create shadow /for=C: |
执行该命令后,会给出副本卷名
接着将 ntds.dit
和 system.hive
拷贝出来,这里拷贝到 C盘
下。注意命令里的卷名,如果得到结果和图片不用,请自行修改命令。
1 | copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\Windows\NTDS\NTDS.dit C:\ntds.dit |
这样就得到了 ntds.dit
和 system.hive
esedbexport 安装
实验环境为 Kali Linux
1 | apt-get install autoconf automake autopoint libtool pkg-config |
至此,安装成功。
NTDSXtract 安装
执行如下命令,注意命令使用的是 python2
1 | git clone https://github.com/csababarta/ntdsxtract.git |
Keytab 生成
将 ntds.dit
存在在 Kali
里,执行命令
1 | esedbexport -m tables ntds.dit |
这样,我们就得到了一个 ntds.dit.export
文件夹
我们主要用的是
datatable.4
link_table.7
接着将 ntds.dit.export
和 SYSTEM 文件放入到 ntdsxtract
工具文件夹中,执行命令
1 | python2 dskeytab.py ntds.dit.export/datatable.4 ntds.dit.export/link_table.7 system.hive ./ kerberos.keytab |
可能会出现报错 ImportError: No module named Crypto.Hash
,请自行安装 python2
的 pycryptodome
库
至此,得到一个 kerberos.keytab
WireShark 解密
打开 wireshark,右击 kerberos
流量,按照下方图片进行操作
打开 Kerberos
首选项
选择你刚才生成的 keytab
。然后就能看到解密后的流量了。
蓝色代表解密成功。后面可以看到使用的密钥。