환경 : Linux Ubuntu 22.04
The password for the next level is stored somewhere on the server and has all of the following properties:
owned by user bandit7
owned by group bandit6
33 bytes in size
풀이하는 도중 알게 된 것들을 먼저 정리해야겠다.
bandit6@bandit:~$ ls -al
bandit6@bandit:/$ ls -al
두 명령어는 $ 앞에 각각 ~과 /가 붙어있다.
이로 인한 차이점은 다음과 같다 :
~$ : 홈 디렉토리, /$ : 루트 디렉토리
홈 디렉토리(~)는 최상위 루트 디렉토리 하위에 있는 home 디렉토리가 아닌
그 아래의 사용자 홈 디렉토리를 의미한다.
계정명으로 설정된 폴더를 말하며 리눅스에 처음 로그인하면 접속되는 위치를 말한다.
계정명(사용자 아이디)는 5글자까지만 나타난다.
+)루트 디렉토리 하위의 home 디렉토리는 여러 사용자의 홈 디렉토리가 모여있음.
ls-al 명령어를 실행했을 때 각 파일 또는 디렉토리에 대한 정보가 다음과 같이 출력된다.
1. Permission
맨 앞에 나오는 알파벳과 -의 조합으로 이루어진 정보가 permission과 관련된 정보이다.
d | 디렉토리 |
---|---|
b | 블록 장치 |
c | 문자열 장치 |
- | 보통 파일 |
l | 심볼릭 링크 |
p / = | named pipe/FIFO |
s | 소켓 |
위의 예시에서는 d로 시작하므로 디렉토리를 의미한다는 것을 알 수 있다.
이후 9자리는 rwx가 3번 반복되며, 중간중간 -가 대신 들어간 것을 볼 수 있다.
r(readable) w(writable) x(executable)의 의미를 지니며,
반복되는 3번의 rwx 집합은 각각 owner, group, others의 권한을 표시한다.
알파벳이 있다면 그 권한이 있는 것이고, 없다면 -로 표시된다.
2. others
첫 번째 root → home 디렉토리의 실제 소유자가 root라는 것을 나타낸다.
두 번째 root → home 디렉토리의 실제 소유자 그룹이 root라는 것을 나타낸다.
4096 → home 디렉토리의 크기를 나타낸다.
보통의 파일들은 파일 사이즈에 맞는 크기를 할당받으며, 위 예시의 home은
디렉토리이기 때문에 4096바이트(=4KB)의 크기를 할당받는 것을 확인할 수 있다.
Apr 23 18:05 → 파일 또는 디렉토리가 생성된 시간을 의미한다.
다시 풀이로 돌아와서, 우선 ls -al 명령어를 통해 어떤 것들이 있는지부터 확인한다.
딱히 보이는 게 없으니 find 명령어를 통해 원하는 파일을 바로 찾아주자.
find / -size 33c -user bandit7 -group bandit6
숨어있는 접근 가능한 유일한 파일을 찾아냈다.
저 파일을 읽어주면 비밀번호가 나올 것이다.
password : z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S