4 min read

TryHackMe Ninja Skills writeup (zh-TW)

TryHackMe Ninja Skills writeup (zh-TW)

題目資訊

練習目標

需要找到並分析以下檔案:

  • 8V2L, bny0, c4ZX, D8B3, FHl1, oiMO, PFbD, rmfX, SRSq, uqyw, v2Vb, X1Uy

Step 1: 初始探索

登入系統

ssh new-user@<TARGET_IP>
# 密碼: new-user

檢查當前目錄

[new-user@ip-10-201-107-70 ~]$ ls -al /home/
total 36
drwxr-xr-x  5 root       root        4096 Oct 23  2019 .
dr-xr-xr-x 25 root       root        4096 Oct 20 07:07 ..
drwx------  3 ec2-user   ec2-user    4096 Oct 23  2019 ec2-user
drwx------  2 newer-user newer-user  4096 Oct 23  2019 newer-user
drwx------  3 new-user   new-user    4096 Oct 23  2019 new-user
-rw-rw-r--  1 new-user   best-group 13545 Oct 23  2019 v2Vb

第一個發現v2Vb/home/ 目錄下!

Step 2: 系統性搜索檔案

順序 1: 按群組搜索

find / -group best-group 2>/dev/null

結果

/mnt/D8B3
/home/v2Vb

順序 2: 按擁有者搜索

find / -user new-user 2>/dev/null

結果

/mnt/D8B3
/mnt/c4ZX
/var/FHl1
/opt/PFbD
/opt/oiMO
/media/rmfX
/etc/8V2L
/etc/ssh/SRSq
/var/log/uqyw
/home/v2Vb

順序 3: 按檔名搜索

find / -name "X1Uy" 2>/dev/null

結果

/X1Uy

Step 3: 完整檔案清單

檔案名 位置 擁有者 群組
8V2L /etc/8V2L new-user new-user
bny0 ❌ 未找到 - -
c4ZX /mnt/c4ZX new-user new-user
D8B3 /mnt/D8B3 new-user best-group
FHl1 /var/FHl1 new-user new-user
oiMO /opt/oiMO new-user new-user
PFbD /opt/PFbD new-user new-user
rmfX /media/rmfX new-user new-user
SRSq /etc/ssh/SRSq new-user new-user
uqyw /var/log/uqyw new-user new-user
v2Vb /home/v2Vb new-user best-group
X1Uy /X1Uy newer-user new-user

Step 4: 批量分析檔案屬性

一鍵分析腳本

for file in /etc/8V2L /mnt/c4ZX /mnt/D8B3 /var/FHl1 /opt/oiMO /opt/PFbD /media/rmfX /etc/ssh/SRSq /var/log/uqyw /home/v2Vb /X1Uy; do
    echo "=== $file ==="
    ls -l $file
    wc -l $file 2>/dev/null
    sha1sum $file 2>/dev/null
    file $file
    echo ""
done

關鍵發現摘要

/etc/8V2L: -rwxrwxr-x (可執行), 209 行, SHA1: 0323e62f...
/mnt/c4ZX: -rw-rw-r--, 209 行, SHA1: 9d54da75... ✓
/opt/oiMO: 包含 IP: 1.1.1.1 ✓
/X1Uy: Owner UID: 502 ✓

Step 5: 回答題目問題

Q1: 哪些檔案屬於 best-group?

find / -group best-group 2>/dev/null

答案: D8B3 v2Vb

Q2: 哪個檔案包含 IP 地址?

grep -H '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+' /etc/8V2L /mnt/c4ZX /mnt/D8B3 /var/FHl1 /opt/oiMO /opt/PFbD /media/rmfX /etc/ssh/SRSq /var/log/uqyw /home/v2Vb /X1Uy

結果

/opt/oiMO:wNXbEERat4wE0w/O9Mn1.1.1.1VeiSLv47L4B2Mxy3M0XbCYVf9TSJeg905weaIk

答案: oiMO

Q3: 哪個檔案的 SHA1 hash 為 9d54da7584015647ba052173b84d45e8007eba94?

sha1sum /etc/8V2L /mnt/c4ZX /mnt/D8B3 /var/FHl1 /opt/oiMO /opt/PFbD /media/rmfX /etc/ssh/SRSq /var/log/uqyw /home/v2Vb /X1Uy 2>/dev/null

答案: c4ZX

Q4: 哪個檔案包含 230 行?

由於找到的 11 個檔案都是 209 行,通過排除法得知:

答案: bny0

Q5: 哪個檔案的 owner ID 為 502?

ls -n /etc/8V2L /mnt/c4ZX /mnt/D8B3 /var/FHl1 /opt/oiMO /opt/PFbD /media/rmfX /etc/ssh/SRSq /var/log/uqyw /home/v2Vb /X1Uy

結果

-rw-rw-r-- 1 502 501 13545 Oct 23  2019 /X1Uy

答案: X1Uy

Q6: 哪個檔案所有人都可以執行?

從權限分析:

-rwxrwxr-x 1 501 501 13545 Oct 23  2019 /etc/8V2L

最後三位 r-x 表示 others 擁有執行權限。

答案: 8V2L

技術要點總結

1. Find 命令的高效使用

# 按檔名搜索
find / -name "filename" 2>/dev/null

# 按擁有者搜索
find / -user username 2>/dev/null

# 按群組搜索
find / -group groupname 2>/dev/null

# 組合搜索多個檔案
find / -type f \( -name "file1" -o -name "file2" \) 2>/dev/null

2. 批量分析檔案屬性

# 查看詳細權限和數字 UID/GID
ls -ln filename

# 計算行數
wc -l filename

# 計算 SHA1 雜湊值
sha1sum filename

# 檢查檔案類型
file filename

3. 內容搜索技巧

# 搜索 IP 地址
grep -H '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+' files

# 在多個檔案中搜索
grep -r "pattern" /path/

4. Linux 權限理解

  • rwxrwxrwx = Owner / Group / Others
  • 第三組權限(others)有 x = 所有人可執行
  • ls -n 顯示數字 UID/GID 而非名稱

經驗分享

這個靶機作者在打的時候挺可愛的,一直在/files這個路徑等檔案,還以為靶機壞掉了,重開了一次,結果後來就 cd home,才發現第一個檔案v2Vb,後來才用上述方法一個一個找出來~