前言
GitHub Enterprise 是一款由GitHub.com所出品,可将整个 GitHub 服务架设在自身企业内网中的应用软体。 有兴趣的话你可以从enterprise.github.com下载到多种格式的映像档并从网页上取得 45 天的试用授权!
安装完成后,你应该会看到如下的画面:
好!现在我们有整个 GitHub 的环境了,而且是在 VM 里面,这代表几乎有完整的控制权可以对他做更进一步的研究,分析环境、程式码以及架构等等…
环境
身为一个骇客,再进行入侵前的第一件事当然是 Port Scanning! 通过Nmap 扫描后发现 VM 上一共有 6 个端口对外开放:
$ nmap -sT -vv -p 1-65535 192.168.187.145...PORT STATE SERVICE
22/tcp open ssh
25/tcp closed smtp
80/tcp open http
122/tcp open smakynet
443/tcp open https
8080/tcp closed http-proxy
8443/tcp open https-alt
9418/tcp open git
这 6 个端口大致的作用是:
22/tcp 及 9418/tcp 是 haproxy 协议,并将收到的连线转发到后段的 babeld 服务
80/tcp 及 443/tcp 为 GitHub 主要服务的端口
122/tcp 就是 SSH 服务
8443/tcp GitHub Enterprise 的网页管理介面
额外一提的是,GitHub 的网页管理介面需要一组密码以供登入,但如果你有密码的话你可以直接通过管理介面新增自己的 SSH 密钥并登入 122/tcp 上的 SSH 所以 有管理员密码 == 可以远端代码执行 !
使用 SSH 连线进去后,审视一下整个系统发现所有服务的代码皆位于目录/data/下,大致目录架构如下:
# ls -al /data/total 92 drwxr-xr-x 23 root root 4096 Nov 29 12:54 . drwxr-xr-x 27 root root 4096 Dec 28 19:18 .. drwxr-xr-x 4 git git 4096 Nov 29 12:54 alambic
drwxr-xr-x 4 babeld babeld 4096 Nov 29 12:53 babeld
drwxr-xr-x 4 git git 4096 Nov 29 12:54 codeload
drwxr-xr-x 2 root root 4096 Nov 29 12:54 db
drwxr-xr-x 2 root root 4096 Nov 29 12:52 enterprise
drwxr-xr-x 4 enterprise-manage enterprise-manage 4096 Nov 29 12:53 enterprise-manage
drwxr-xr-x 4 git git 4096 Nov 29 12:54 failbotd
drwxr-xr-x 3 root root 4096 Nov 29 12:54 git-hooks
drwxr-xr-x 4 git git 4096 Nov 29 12:53 github
drwxr-xr-x 4 git git 4096 Nov 29 12:54 git-import drwxr-xr-x 4 git git 4096 Nov 29 12:54 gitmon
drwxr-xr-x 4 git git 4096 Nov 29 12:54 gpgverify
drwxr-xr-x 4 git git 4096 Nov 29 12:54 hookshot
drwxr-xr-x 4 root root 4096 Nov 29 12:54 lariat
drwxr-xr-x 4 root root 4096 Nov 29 12:54 longpoll
drwxr-xr-x 4 git git 4096 Nov 29 12:54 mail-replies
drwxr-xr-x 4 git git 4096 Nov 29 12:54 pages
drwxr-xr-x 4 root root 4096 Nov 29 12:54 pages-lua
drwxr-xr-x 4 git git 4096 Nov 29 12:54 render
lrwxrwxrwx 1 root root 23 Nov 29 12:52 repositories - |