사용 툴: cygwin
1) 문제
홈 디렉터리에는 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:~$
성공!
'WAR GAME > Bandit' 카테고리의 다른 글
[OverTheWire: Bandit] level22 -> level23 (0) | 2020.03.03 |
---|---|
[OverTheWire: Bandit] level21 -> level22 (0) | 2020.03.01 |
[OverTheWire: Bandit] level19 -> level20 (0) | 2020.03.01 |
[OverTheWire: Bandit] level18 -> level19 (0) | 2020.02.29 |
[OverTheWire: Bandit] level17 -> level18 (0) | 2020.02.29 |