KnockKnock是一款功能强大的用户信息枚举工具,在工具旨在通过查询OneDrive和/或Microsoft Teams来识别、枚举和验证潜在的有效用户名。该工具使用纯Python 3开发,并基于被动方法实现其功能,该工具还可以输出/创建通过通过Microsoft Teams枚举识别出来的遗留Skype用户列表。除此之外,该工具还可以为输出数据创建一个不包含冗余数据的干净列表,以便广大研究人员对其进行后续的深入分析。
工具下载
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。
接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/optiv/KnockKnock.git
工具使用
$ python3 .\KnockKnock.py -h
_ __ _ _ __ _
| |/ /_ __ ___ ___| | _| |/ /_ __ ___ ___| | __
| ' /| '_ \ / _ \ / __| |/ / ' /| '_ \ / _ \ / __| |/ /
| . \| | | | (_) | (__| <| . \| | | | (_) | (__| <
|_|\_\_| |_|\___/ \___|_|\_\_|\_\_| |_|\___/ \___|_|\_\
v0.9.1 Author: @waffl3ss
usage: KnockKnock.py [-h] [-teams] [-onedrive] [-l] -i INPUTLIST [-o OUTPUTFILE] -d TARGETDOMAIN [-t TEAMSTOKEN] [-threads MAXTHREADS] [-v]
options:
-h, --help 显示工具帮助信息和退出
-teams 运行Teams 用户枚举模块
-onedrive 运行One Drive 枚举模块
-l 将遗留Skype用户信息写入单独的文件中
-i INPUTLIST 要检测的用户输入文件(按行分隔)
-o OUTPUTFILE 将输出结果写入到文件中
-d TARGETDOMAIN 设置目标域名
-t TEAMSTOKEN Teams 令牌(包含令牌或字符串的文件)
-threads MAXTHREADS Teams用户枚举模块要使用的线程数量,默认为10
-v 开启Verbose模式
工具选项
1、只要所选模块提供了对应的运行模式,我们就可以选择一种或两种模式;
2、所有的模块都需要提供-d参数(域名选项)和-i参数(用户输入列表);
3、该工具可以不用将输出文件作为参数选项提供,如果不提供,它会将分析结果打印到屏幕上;
4、Verbose模式会将大量额外信息输出显示到屏幕上,包括无效用户的信息;
5、Teams选项需要一个Bearer令牌,脚本会自动删除令牌开头和结尾部分,以便只使用所需内容;
如何获取你的Bearer令牌?
如需获取你的Bearer令牌,你首先需要在浏览器上安装Cookie Manager插件,并通过浏览器登录到你自己的Microsoft Teams。
接下来,查看与当前网页(teams.microsoft.com/)相关的Cookie。
你要查找的Cookie是针对.teams.microsoft.com域的,标题为“authtoken”。找到之后,直接复制整个令牌,随后脚本将会帮助我们对其进行拆分,并生成真正可用的部分。
工具使用样例
./KnockKnock.py -teams -i UsersList.txt -d Example.com -o OutFile.txt -t BearerToken.txt
./KnockKnock.py -onedrive -i UsersList.txt -d Example.com -o OutFile.txt
./KnockKnock.py -onedrive -teams -i UsersList.txt -d Example.com -t BearerToken.txt -l