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.
hint: ssh, cat, more, vi, ls, id, pwd
문제를 풀기 위해 바로 bandit25 서버로 입장해봤습니다
bandit25@bandit:~$ ls -al
total 40
drwxr-xr-x 2 root root 4096 Oct 14 09:26 .
drwxr-xr-x 150 root root 4096 Oct 14 09:29 ..
-rw-r----- 1 bandit25 bandit25 33 Oct 14 09:26 .bandit24.password
-r-------- 1 bandit25 bandit25 1679 Oct 14 09:26 bandit26.sshkey
-rw-r----- 1 bandit25 bandit25 151 Oct 14 09:26 .banner
-rw-r--r-- 1 root root 220 Mar 31 2024 .bash_logout
-rw-r--r-- 1 root root 3851 Oct 14 09:19 .bashrc
-rw-r----- 1 bandit25 bandit25 66 Oct 14 09:26 .flag
-rw-r----- 1 bandit25 bandit25 4 Oct 14 09:26 .pin
-rw-r--r-- 1 root root 807 Mar 31 2024 .profile
bandit25@bandit:~$ cat bandit26.sshkey
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEApis2AuoooEqeYWamtwX2k5z9uU1Afl2F8VyXQqbv/LTrIwdW
pTfaeRHXzr0Y0a5Oe3GB/+W2+PReif+bPZlzTY1XFwpk+DiHk1kmL0moEW8HJuT9
/5XbnpjSzn0eEAfFax2OcopjrzVqdBJQerkj0puv3UXY07AskgkyD5XepwGAlJOG
xZsMq1oZqQ0W29aBtfykuGie2bxroRjuAPrYM4o3MMmtlNE5fC4G9Ihq0eq73MDi
1ze6d2jIGce873qxn308BA2qhRPJNEbnPev5gI+5tU+UxebW8KLbk0EhoXB953Ix
3lgOIrT9Y6skRjsMSFmC6WN/O7ovu8QzGqxdywIDAQABAoIBAAaXoETtVT9GtpHW
qLaKHgYtLEO1tOFOhInWyolyZgL4inuRRva3CIvVEWK6TcnDyIlNL4MfcerehwGi
il4fQFvLR7E6UFcopvhJiSJHIcvPQ9FfNFR3dYcNOQ/IFvE73bEqMwSISPwiel6w
e1DjF3C7jHaS1s9PJfWFN982aublL/yLbJP+ou3ifdljS7QzjWZA8NRiMwmBGPIh
Yq8weR3jIVQl3ndEYxO7Cr/wXXebZwlP6CPZb67rBy0jg+366mxQbDZIwZYEaUME
zY5izFclr/kKj4s7NTRkC76Yx+rTNP5+BX+JT+rgz5aoQq8ghMw43NYwxjXym/MX
c8X8g0ECgYEA1crBUAR1gSkM+5mGjjoFLJKrFP+IhUHFh25qGI4Dcxxh1f3M53le
wF1rkp5SJnHRFm9IW3gM1JoF0PQxI5aXHRGHphwPeKnsQ/xQBRWCeYpqTme9amJV
tD3aDHkpIhYxkNxqol5gDCAt6tdFSxqPaNfdfsfaAOXiKGrQESUjIBcCgYEAxvmI
2ROJsBXaiM4Iyg9hUpjZIn8TW2UlH76pojFG6/KBd1NcnW3fu0ZUU790wAu7QbbU
i7pieeqCqSYcZsmkhnOvbdx54A6NNCR2btc+si6pDOe1jdsGdXISDRHFb9QxjZCj
6xzWMNvb5n1yUb9w9nfN1PZzATfUsOV+Fy8CbG0CgYEAifkTLwfhqZyLk2huTSWm
pzB0ltWfDpj22MNqVzR3h3d+sHLeJVjPzIe9396rF8KGdNsWsGlWpnJMZKDjgZsz
JQBmMc6UMYRARVP1dIKANN4eY0FSHfEebHcqXLho0mXOUTXe37DWfZza5V9Oify3
JquBd8uUptW1Ue41H4t/ErsCgYEArc5FYtF1QXIlfcDz3oUGz16itUZpgzlb71nd
1cbTm8EupCwWR5I1j+IEQU+JTUQyI1nwWcnKwZI+5kBbKNJUu/mLsRyY/UXYxEZh
ibrNklm94373kV1US/0DlZUDcQba7jz9Yp/C3dT/RlwoIw5mP3UxQCizFspNKOSe
euPeaxUCgYEAntklXwBbokgdDup/u/3ms5Lb/bm22zDOCg2HrlWQCqKEkWkAO6R5
/Wwyqhp/wTl8VXjxWo+W+DmewGdPHGQQ5fFdqgpuQpGUq24YZS8m66v5ANBwd76t
IZdtF5HXs2S5CADTwniUS5mX1HO9l5gUkk+h0cH5JnPtsMCnAUM+BRY=
-----END RSA PRIVATE KEY-----
우선 bandit26 서버로 넘어가는 키는 그냥 줬길래 scp 명령어로 서버에서 로컬로 파일을 가져왔습니다
바로 ,bandit26 로그인까지 진행해보겠습니다
┌──(miso㉿Miso)-[~]
└─$ scp -P 2220 bandit25@bandit.labs.overthewire.org:/home/bandit25/bandit26.sshkey .
_ _ _ _
| |__ __ _ _ __ __| (_) |_
| '_ \ / _` | '_ \ / _` | | __|
| |_) | (_| | | | | (_| | | |_
|_.__/ \__,_|_| |_|\__,_|_|\__|
This is an OverTheWire game server.
More information on http://www.overthewire.org/wargames
backend: gibson-1
bandit25@bandit.labs.overthewire.org's password:
bandit26.sshkey 100% 1679 2.0KB/s 00:00
┌──(miso㉿Miso)-[~]
└─$ ssh -i bandit26.sshkey -p2220 bandit26@bandit.labs.overthewire.org
_ _ _ _
| |__ __ _ _ __ __| (_) |_
| '_ \ / _` | '_ \ / _` | | __|
| |_) | (_| | | | | (_| | | |_
|_.__/ \__,_|_| |_|\__,_|_|\__|
This is an OverTheWire game server.
More information on http://www.overthewire.org/wargames
backend: gibson-1
.
.
.
_ _ _ _ ___ __
| | | (_) | |__ \ / /
| |__ __ _ _ __ __| |_| |_ ) / /_
| '_ \ / _` | '_ \ / _` | | __| / / '_ \
| |_) | (_| | | | | (_| | | |_ / /| (_) |
|_.__/ \__,_|_| |_|\__,_|_|\__|____\___/
Connection to bandit.labs.overthewire.org closed.
연결이 바로 끊겨버리더라구요 그래서 bandit26 서버를 입장할 때 어떤 쉘이 실행되는지 확인해야하는데 아까 문제에서 bandit26번은 /bin/bash에서 쉘이 실행되지 않는다고 했잖아요? 그래서 일단 어떤 쉘이 실행되는지부터 찾아봐야해요
bandit25@bandit:/home/bandit26$ cat /etc/passwd
.
.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
.
.
.
.
.
bandit26:x:11026:11026:bandit level 26:/home/bandit26:/usr/bin/showtext <--여기--
다들 명령어에grep bandit26 꼭 쓰세요 저처럼 하나하나 읽어보시지 마시고..
ex)
bandit25@bandit:~$ cat /etc/passwd | grep bandit26
bandit26:x:11026:11026:bandit level 26:/home/bandit26:/usr/bin/showtext
그럼 showtext에 있다고 하니 한번 읽어볼까요
/home/bandit26 경로에 text.txt 파일을 more 형식으로 읽고 바로 나가진다고 하네요 그래서 아까 로그인하면 바로 나가졌던 것 같습니다.
bandit25@bandit:~$ cd /usr/bin
bandit25@bandit:/usr/bin$ cat showtext
#!/bin/sh
export TERM=linux
exec more ~/text.txt
exit 0
그럼 more 형식으로 txt 파일을 다 읽어야 서버가 종료되는거니까 다 읽지 못하게 창을 아주 작게 해봤습니다
왼쪽 상단에 터미널 창 보이시나요?

창이 작아서 txt 파일을 다 못읽었기 때문에 서버가 닫히지 않았습니다 그래서 이걸 활용하여 vi를 해당 터미널에 입력했더니

이렇게 ENTER 누르면 진행된다고 하길래 눌렀더니

이렇게 vi 화면으로 넘어가집니다. 지금은 현재 INSERT 상태니까 저희가 명령어를 치려면 명령모드로 변경해야겠죠?
_ _ _ _ ___ __
| | | (_) | |__ \ / /
| |__ __ _ _ __ __| |_| |_ ) / /_
| '_ \ / _` | '_ \ / _` | | __| / / '_ \
| |_) | (_| | | | | (_| | | |_ / /| (_) |
|_.__/ \__,_|_| |_|\__,_|_|\__|____\___/
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERT --
ESC 눌러서 명령모드로 변환하고, 쉘 모드로 들어가기 위해 명령어를 쳐줍니다
_ _ _ _ ___ __
| | | (_) | |__ \ / /
| |__ __ _ _ __ __| |_| |_ ) / /_
| '_ \ / _` | '_ \ / _` | | __| / / '_ \
| |_) | (_| | | | | (_| | | |_ / /| (_) |
|_.__/ \__,_|_| |_|\__,_|_|\__|____\___/'
~
~
~
~
~
~
~
~
~
~
~
~
~
:set shell=/bin/bash
(ENTER 치고, 다시 sh 치면 쉘로 넘어가집니다)
:sh
bandit26@bandit:~$ ls
bandit27-do text.txt
bandit26@bandit:~$ cat /etc/bandit_pass/bandit26
s0773xxkk0MXfdqOfPRVr9L3jJBUOgCZ <-- bandit26 password는 나왔어요
마침 bandit26 경로 폴더에 bandit27-do 파일도 있고, bandit26 password는 알았는데 이대로 끝나면 다음에 bandit26 -> 27들어갈때 또 쉘 변경하면서 고생해야 하니까 이왕 쉘 들어온 김에 bandit27 password도 찾아서 나갑시다
bandit26@bandit:~$ ls -al
total 44
drwxr-xr-x 3 root root 4096 Oct 14 09:26 .
drwxr-xr-x 150 root root 4096 Oct 14 09:29 ..
-rwsr-x--- 1 bandit27 bandit26 14884 Oct 14 09:26 bandit27-do
-rw-r--r-- 1 root root 220 Mar 31 2024 .bash_logout
-rw-r--r-- 1 root root 3851 Oct 14 09:19 .bashrc
-rw-r--r-- 1 root root 807 Mar 31 2024 .profile
drwxr-xr-x 2 root root 4096 Oct 14 09:26 .ssh
-rw-r----- 1 bandit26 bandit26 258 Oct 14 09:26 text.txt
역시 저번과 같이 bandit27-do 파일에 특수권한이 있습니다!
그럼 특수권한을 사용해서 bandit27 서버의 password를 가져와 봅시다
bandit26@bandit:~$ ./bandit27-do cat "/etc/bandit_pass/bandit27"
upsNCc7vzaRDx6oZC6GiR6ERwe1MowGB'bandit' 카테고리의 다른 글
| [OverTheWire] bandit 28 -> 29 (0) | 2025.12.11 |
|---|---|
| [OverTheWire] bandit27 -> 28 (0) | 2025.12.10 |
| [OverTheWire] bandit 24 -> 25 (0) | 2025.11.30 |
| [OverTheWire] bandit 23 -> 24 (0) | 2025.11.28 |
| [OverTheWire] bandit 22 -> 23 (0) | 2025.11.27 |