WAR GAME/Bandit

[OverTheWire: Bandit] level20 -> level21

jir4vvit 2020. 3. 1. 17:03

사용 툴: cygwin

 

1) 문제

level20 -> level21 문제

홈 디렉터리에는 localhost에 연결하는 setuid 바이너리가 있다.

연결해서 bandit20의 패스워드를 전송하면 bandit21의 패스워드를 전송해준다.

 

 

2) 문제풀이

홈디렉터리에서 setuid가 걸린 파일을 찾아 실행시켜보았다.

bandit20@bandit:~$ ls -al
total 32
drwxr-xr-x  2 root     root      4096 Oct 16  2018 .
drwxr-xr-x 41 root     root      4096 Oct 16  2018 ..
-rw-r--r--  1 root     root       220 May 15  2017 .bash_logout
-rw-r--r--  1 root     root      3526 May 15  2017 .bashrc
-rw-r--r--  1 root     root       675 May 15  2017 .profile
-rwsr-x---  1 bandit21 bandit20 12088 Oct 16  2018 suconnect
bandit20@bandit:~$ ./suconnect
Usage: ./suconnect <portnumber>
This program will connect to the given port on localhost using TCP.
If it receives the correct password from the other side, the next password is transmitted back.
bandit20@bandit:~$

 tcp를 사용하여 localhost의 지정된 포트에 전송된다고 한다.

사용방법은 ./suconnect [포트번호] 라고 한다.

 

이런식으로 서로다른 터미널을 사용하여

3333번 포트를 열어주고 bandit20의 패스워드를 보내면 성공적으로 bandit21의 패스워드를 얻을 수 있다.

 

SHJ@DESKTOP-CK691IG ~
$ ssh -p 2220 bandit21@bandit.labs.overthewire.org
bandit21@bandit:~$ id
uid=11021(bandit21) gid=11021(bandit21) groups=11021(bandit21)
bandit21@bandit:~$

 

성공!