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

  1. 連線到伺服器並登入
ssh bandit25@bandit.labs.overthewire.org -p 2220
  1. 透過 ls 指令可以發現目錄中有 bandit26 的 ssh 金鑰檔
ls
# bandit26.sshkey
  1. 透過 ssh 指令連線至 bandit26
ssh bandit26@localhost -p 2220 -i bandit26.sshkey

連線後可以發現馬上被關閉

  1. /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

  1. 透過 cat 指令查看 /usr/bin/showtext 內容
cat /usr/bin/showtext
# #!/bin/sh

# export TERM=linux

# exec more ~/text.txt
# exit 0

根據指令結果,可以發現登入 bandit26 後會執行 more 指令並立即離開(exit 0) 我們可以盡可能將視窗變小,使 more 指令進入互動模式

  1. 在將終端機視窗大小盡可能變小後,重新透過 ssh 指令連線至 bandit26
ssh bandit26@localhost -p 2220 -i bandit26.sshkey

當出現 - - more - - (XX%) 即代表成功進入互動模式,此時可以將視窗放大

  1. 我們可以按 V 進入編輯器,並按 Esc 退出插入模式,並透過 set 指令重新設定使用者 shell,並透過 shell 指令進入 bash
:set shell=/bin/bash
:shell
  1. 透過 cat 指令即可獲得 Level 26 密碼
cat /etc/bandit_pass/bandit26

筆者建議讀者若要繼續解關卡,不用登出,不然需要重做上述步驟才能再次進入 Level 26