다음 단계로 가기 위해선 setuid를 home 디렉터리에서 사용해야 한다. 비번은 /etc/bandit_pass에 있다고 함!
ls -al 명령어를 입력했을 때, 현재 bandit20-do 파일에 -rwsr-x--- 권한이 주어져 있다. 즉 sticky bit가 설정되어 있음.
그냥 ./bandit20-do를 실행하면 Run a command as another user. 라는 명령어가 뜬다. 예시처럼 ./bandit20-do it라고 입력하면
뭐.. 이런식으로 뜬다.
아까 ls -al bandit20-do을 했을때 볼 수 있듯이 이 파일에는 sticky bit가 설정되어 있으니까 이 파일을 실행할 때 만큼은 bandit20 사용자로 권한 상승이 가능하단 소리고, 이 파일이 실행되고 있을 동안 /etc/bandit_pass 폴더의 bandit20 파일을 읽으면 비밀번호를 읽을 수 있게 된다.
그런데 처음에 grep 명령어를 같이 사용해서 cat 명령어를 주었는데 이렇게 하면 안되고
뒤에 바로 이어서 써줘야 한다...
Level 20도 setuid를 활용하는 문제다.
일단 뭐가 있는지 검색해봄. suconnect라는 파일이 있다. 여기도 sticky bit 설정되어 있음.
실행해봤더니 <portnumber>랑 같이 쓰라고 적혀있다. 그러니까 위에서 받은 bandit19->bandit20 비밀번호를 말하면 그 다음 비밀번호를 준다는 소린가보다..
여기서 중요한건 nc, netcat 명령어인데, nc -l 옵션을 사용하면 listen 모드로 동작한다. 즉, nc를 서버로 사용할 때 쓰이는건데, 터미널을 하나 더 띄워서 listen 모드로 동작시켜보자. -l 옵션을 쓰면 -p도 같이 써준다. 포트번호는 아무거나 적어도 되나보다.
아직도 nc.. port.. 서버 접속.. 이런 부분은 할 때마다 생소하고 신기하다.
일단 새로운 터미널을 켜서 bandit20에 접속한 후, nc 명령어를 작성한다. 나는 그냥 7777이라는 포트 번호를 적어줌.
그리고 원래 터미널에서 ./suconnect 7777로 연결해주면 접속 완료
리슨하고 있는 곳에다가 19 레벨 패스워드를 입력해주면
다음과 같이 비밀번호가 출력된다.
악 신기해~~!!
'Pwnable > Bandit' 카테고리의 다른 글
[Bandit Level 22->23] cron을 활용하자 (2) (0) | 2022.02.02 |
---|---|
[Bandit Level 21->22] cron을 활용하자 (0) | 2022.02.01 |
[Bandit Level 17->18, 18->19] diff 사용하기, ssh? (0) | 2022.01.14 |
[Bandit Level 16->17] 문제 풀이 (0) | 2022.01.14 |
[Bandit Level 13 -> 14] 비밀번호 획득 없이 SSH로 다음 단계 서버로 접속하기 (0) | 2021.06.09 |
댓글