Kaspersky Anti Targeted Attack (KATA) Platform

创建 keytab 文件

2024年6月26日

ID 228435

您可以创建一个用户账户以在多个中央节点服务器上进行身份验证。服务主体名称 (SPN) 为此,您必须创建一个keytab 文件,其中包含每个服务器的服务主体名称(以下也称为 SPN)。创建 keytab 文件时,必须使用属性来生成salt(哈希函数输入修饰符)。

生成的 salt 必须以任何方便的方式保存,以便将来向 keytab 文件添加更多 SPN。

您还可以为要为其设置 Kerberos 身份验证的每个中央节点服务器创建单独的 Active Directory 用户账户。

要使用一个用户账户创建 keytab 文件:

  1. 在域控制器上的Active Directory 用户和计算机管理单元中,创建一个用户账户(例如,使用control-user作为其名称)。
  2. 如果要使用 AES256-SHA1 加密算法,请在Active Directory 用户和计算机管理单元中:
    1. 打开您创建的用户账户的属性。
    2. 账户选项卡上,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为控制用户创建 keytab 文件。为此,请在命令行中运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser control-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <文件路径>\<文件名>.keytab

    该实用程序在执行命令时请求control-user密码。

    所选服务器的 SPN 将被添加到创建的 keytab 文件中。生成的盐显示在屏幕上:使用盐“<哈希值>”对密码进行哈希处理。

  4. 将每个后续中央节点服务器的 SPN 记录添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser control-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab -setupn -setpass -rawsalt "<在第 3 步创建 keytab文件时获得的盐的哈希值>"

    该实用程序在执行命令时请求control-user密码。

keytab 文件已创建。此文件包含所选服务器的所有添加的 SPN。

示例:

例如,您需要创建一个包含 3 个服务器的 SPN 名称的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 中创建包含服务器的 SPN 的filename1.keytab文件,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\filename1.keytab

假设您有“TEST.LOCALHTTPcontrol-01.test.local”作为盐。

要添加另一个 SPN,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

要添加第三个 SPN:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

这将创建一个filename3.keytab文件,其中包含所有三个添加的 SPN。

要使用每个中央节点服务器的单独账户创建 keytab 文件:

  1. 在域控制器服务器上的Active Directory 用户和计算机管理单元中,为每台服务器创建单独的用户账户(例如,control-usersecondary1-usersecondary2-user等)。
  2. 如果要使用 AES256-SHA1 加密算法,请在Active Directory 用户和计算机管理单元中:
    1. 打开您创建的用户账户的属性。
    2. 账户选项卡上,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为控制用户创建 keytab 文件。为此,请在命令行中运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser control-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <文件路径>\<文件名>.keytab

    该实用程序在执行命令时请求control-user密码。

    所选服务器的 SPN 将被添加到创建的 keytab 文件中。

  4. 将每个后续中央节点服务器的 SPN 记录添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser secondary1-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab

    该实用程序在执行命令时请求secondary1-user密码。

keytab 文件已创建。此文件包含所选服务器的所有添加的 SPN。

示例:

例如,您需要创建一个包含 3 个服务器的 SPN 名称的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 中创建包含服务器的 SPN 的filename1.keytab文件,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\keytabs\filename1.keytab

要添加另一个 SPN,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser secondary1-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab

要添加第三个 SPN:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser secondary2-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

这将创建一个filename3.keytab文件,其中包含所有三个添加的 SPN。

Did you find this article helpful?
What can we do better?
Thank you for your feedback! You're helping us improve.
Thank you for your feedback! You're helping us improve.