Level Goal
Good job getting a shell! Now hurry and grab the password for bandit27!
Commands you may need to solve this level
ls
0. 풀이에 필요한 개념
- uid, gid, euid 그리고 groups
1. 로그인
Bandit Level 25 → Level 26 풀이를 이어서 진행하는 방식이다
2. 파일 확인
bandit26@bandit:~$ ls -l bandit27-do
-rwsr-x--- 1 bandit27 bandit26 7296 Oct 16 2018 bandit27-do
bandit26@bandit:~$ ./bandit27-do
Run a command as another user.
Example: ./bandit27-do id
home 에는 bandit27-do 실행파일이 들어있으며 set uid bit가 설정된 프로그램이다. 실행시 bandit27의 권한으로 실행이 된다.
bandit26@bandit:~$ ./bandit27-do id
uid=11026(bandit26) gid=11026(bandit26) euid=11027(bandit27) groups=11026(bandit26)
여기서 id 는 리눅스 기본프로그램중의 하나이다. 해당프로그램으로 id를 실행하면 euid에 설정된 bandit27의 권한을 가진다. 해당 프로그램을통해 다른프로그램을 실행시키면 bandit27 권한으로 접근이 가능하다.
3. 비밀변호 확인
bandit26@bandit:~$ ls -l /etc/bandit_pass/bandit27
-r-------- 1 bandit27 bandit27 33 Oct 16 2018 /etc/bandit_pass/bandit27
bandit26@bandit:~$ ./bandit27-do cat /etc/bandit_pass/bandit27
3ba3118a22e93127a4ed485be72ef5ea
bandit26은 bandit27에 대한 암호파일을 권한이 없기때문에 열람할수없다. 하지만 bandit27-do를 이용해 bandit27의 권한을 얻어 암호내용을 읽을수있다.
4. bandit27 로그인 비밀번호
3ba3118a22e93127a4ed485be72ef5ea