Github

Github 是一个有惊人数据的宝库。在一些渗透测试和红队评估中,我们能够获得密码,API 密钥,旧的源代码,内部主机名/ IPs 以及更多。这些要么导致直接攻击沦陷,要么帮助发动另一场攻击。我们看到的是,许多开发人员要么将代码保存到错误的仓库(将其发送到他们的公开仓库而不是公司的私有仓库),要么意外地保存敏感数据(如密码),然后试图删除它。Github 的一个优点是,它可以在每次修改或删除代码时进行记录。这意味着如果有一次将敏感数据保存到仓库中,那么即使删除了该敏感数据,那么它仍然会在数据更改中被记录。只要仓库是公开的,你就能够查看所有这些更改。

我们可以使用 Github 搜索来识别某些主机名/组织名,或者甚至仅仅使用简单的 Google Dork 搜索,例如:

  • site:github.com + “cyberspacekittens”

尝试使用不同的方法搜索 bug 赏金程序,而不是仅仅搜索 cyberspacekittens。

通过你所有的搜索,你会遇到: https://github.com/cyberspacekittens/dnscat2 (为 GitHub 实验准备的修改过的示例)。你可以手动检索这个仓库,但通常它非常大,你很难遍历所有的项目来找到一些有趣的东西。

如前所述,当你在 Github 中编辑或删除文件时,一切都会被跟踪记录。对于红队队员来说,幸运的是,许多人忘记了这个特性。因此,我们经常看到人们把敏感信息放到 Github 中,然后删除,却没有意识到它还在那里!让我们看看能不能找到这些珍宝。

Truffle Hog

Truffle Hog工具会扫描不同的提交历史记录和分支来获取高机密的密钥,并输出它们。这对于查找机密数据、密码、密钥等非常有用。让我们看看能否在 cyberspacekittens 的 Github 仓库中找到一些敏感的数据。

实验:

Github - 图1

正如我们在 commit 历史记录中看到的,AWS 密钥和 SSH 密钥被从 server/controller/csk.config 文件中删除了。但是如果查看当前仓库,你找不到这个文件。

更好的设置(但是设置起来有点复杂)是 git-all-secrets。在查看大型项目时,Git-all-secrets 非常有用。你只需指定某个项目并在本地克隆该项目代码,然后使用 Truffle-hog 和 repo-supervisor 扫描它。在此之前你需要创建一个 Github 访问令牌,令牌是免费的,通过创建一个 Github 并在设置中选择 Generate New Token 选项来生成。

运行 git-all-secrets:

  • cd /opt/git-all-secrets
  • docker run -it abhartiya/tools_gitallsecrets:v3 -repoURL=https://github.com/cyberspacekittens/dnscat2 -token=[API Key] - output=results.txt
  • 这将克隆仓库并开始扫描。你甚至可以使用-org参数跑完该组织在 Github 上的所有内容。
  • 容器(container)运行完成后,输入以下命令检索容器 ID:
    1. docker ps -a
  • 有了容器 ID 后,就可以输入以下命令将结果文件从容器(container)发送到主机:
    1. docker cp <container-id>:/data/results.txt ./results.txt