一个默认凭证扫描器。

changeme 接续商业扫描器停止的地方。它专注于检测默认和后门凭证,而不一定检测常见凭证。它的默认模式是扫描 HTTP 默认凭证,但也支持其他凭证。
changeme 设计为可以轻松添加新凭证,而无需编写任何代码或模块。changeme 将凭证数据与代码分离。所有凭证都存储在 yaml 文件中,因此它们既易于人类阅读,也便于 changeme 处理。凭证文件可以通过使用 ./changeme.py --mkcred 工具并回答几个问题来创建。
changeme 支持 http/https、mssql、mysql、postgres、ssh、ssh w/key、snmp、mongodb 和 ftp 协议。使用 ./changeme.py --dump 可以输出所有当前可用的凭证。
你可以使用多种方法加载目标:单个 IP 地址/主机、子网、主机列表、nmap xml 文件和 Shodan 查询。除 Shodan 外,所有方法都作为位置参数加载,并自动推断类型。
changeme 仅在 Linux 上测试过,在 Windows 和 OS X/macOS 上存在已知问题。在不支持的平台上请使用 Docker 运行 changeme。它支持基于 Redis 的队列(最稳定)或基于内存的队列。
changeme 的稳定版本可以在 releases 页面找到。
为了支持 mssql,需要在安装 pyodbc 之前安装 unixodbc-dev。
为了支持 postgres,需要安装 libpq-dev。
HTML 报告截图需要在你的 PATH 中包含 PhantomJS。
使用 pip 安装所需的 Python 模块:pip install -r requirements.txt
运行 changeme 的一种便捷方式是在 Docker 容器中进行。你可以从 Docker Hub 运行预构建的容器,或者按照下面的说明构建自己的容器。
Docker 与 Redis 作为队列后端配合运行最佳。以下是设置链接容器与 Redis 配合使用的方法。
获取最新容器:docker pull redis && docker pull ztgrace/changeme
在后台启动 Redis:docker run -d --name redis1 redis
启动 changeme,通过名称链接 Redis 容器,并将本地目录挂载到容器的 /mnt 目录:docker run -it -v /tmp/results:/mnt --link redis1:redis ztgrace/changeme:latest /bin/sh
使用 --redishost 为 redis 以及挂载卷中的 --output 文件运行 changeme:./changeme.py --redishost redis --output /mnt/results.csv --protocols ssh --threads 20 -d 192.168.1.0/24
docker build -t changeme .docker run -it changeme /bin/bash以下是一些常见使用示例。
./changeme.py 192.168.59.100./changeme.py 192.168.59.0/24./changeme.py subnet.xml./changeme.py -n "Apache Tomcat" --timeout 5 192.168.59.0/24./changeme.py --shodan_query "Server: SQ-WEBCAM" --shodan_key keygoeshere -c camera./changeme.py --protocols ssh,ssh_key 192.168.59.0/24./changeme.py snmp://192.168.1.20查看更多详细示例,请参见 Wiki Examples。
telnet 扫描器已损坏。
此外,任何在 https://github.com/ztgrace/changeme/issues 被标记为 bug 的问题。
错误与增强在 https://github.com/ztgrace/changeme/issues 进行跟踪。
请求凭证: 请在 Github 上添加 issue 并应用凭证标签。
为凭证投票: 如果你想帮助我们确定添加哪些凭证的优先级,可以在凭证 issue 下添加评论。
更多详情请参见 wiki。
感谢代码贡献和建议。