[OverTheWire] Bandit Level 25 → Level 26
Level Goal
Logging in to bandit26 from bandit25 should be fairly easy… The shell for user bandit26 is not /bin/bash, but something else. Find out what it is, how it works and how to break out of it.
NOTE: if you’re a Windows user and typically use Powershell to ssh into bandit: Powershell is known to cause issues with the intended solution to this level. You should use command prompt instead.
Commands you may need to solve this level
- ssh
- cat
- more
- vi
- ls
- id
- pwd
My Answer (Step by step)
根據筆者嘗試,使用 Powershell 會無法完成該 Level,建議讀者聽從題目的建議使用 cmd
- 連線到伺服器並登入
ssh bandit25@bandit.labs.overthewire.org -p 2220
- 透過 ls 指令可以發現目錄中有 bandit26 的 ssh 金鑰檔
ls
# bandit26.sshkey
- 透過 ssh 指令連線至 bandit26
ssh bandit26@localhost -p 2220 -i bandit26.sshkey
連線後可以發現馬上被關閉
- /etc/passwd 會記錄系統上的使用者登入 shell,故透過 cat 與 grep 指令找出 bandit26 的登入 shell
cat /etc/passwd | grep bandit26
# bandit26:x:11026:11026:bandit level 26:/home/bandit26:/usr/bin/showtext
根據指令結果,可以發現 bandit26 使用的登入 shell 為 /usr/bin/showtext
- 透過 cat 指令查看 /usr/bin/showtext 內容
cat /usr/bin/showtext
# #!/bin/sh
# export TERM=linux
# exec more ~/text.txt
# exit 0
根據指令結果,可以發現登入 bandit26 後會執行 more 指令並立即離開(exit 0) 我們可以盡可能將視窗變小,使 more 指令進入互動模式
- 在將終端機視窗大小盡可能變小後,重新透過 ssh 指令連線至 bandit26
ssh bandit26@localhost -p 2220 -i bandit26.sshkey
當出現 - - more - - (XX%) 即代表成功進入互動模式,此時可以將視窗放大
- 我們可以按 V 進入編輯器,並按 Esc 退出插入模式,並透過 set 指令重新設定使用者 shell,並透過 shell 指令進入 bash
:set shell=/bin/bash
:shell
- 透過 cat 指令即可獲得 Level 26 密碼
cat /etc/bandit_pass/bandit26
筆者建議讀者若要繼續解關卡,不用登出,不然需要重做上述步驟才能再次進入 Level 26