Bandit Level 5 입니다.
password는 "inhere" 디렉터리 안에 존재한다고 합니다.
password 파일의 조건은
1. 사람이 읽을 수 있음 (ASCII text?)
2. 파일크기가 1033byte
3. 실행 불가
라고 합니다.
오.. 파일이 엄청나게 많습니다.
이 많은 파일 중에서 password 파일을 어떻게 찾죠?
음.. find 명령어를 이용하면 될 것 같습니다!
find ./ -size 1033c 2>/dev/null
find : 찾기 명령어
./ : 현재 디렉터리 이하에서 찾아라
-size : 파일크기를 조건으로 거는 옵션
1033c : 1033byte 를 의미함
2>/dev/null : 표준에러를 /dev/null 경로로 보내라
파일의 특징은 3가지가 제시되었지만, 저는 1033byte라는 특징만을 활용해 검색하였습니다.
딱 1개의 파일이 검색된 모습입니다.
maybehere07/.file2 해당 파일이 password가 있는 파일이겠군요.
아마.. 마지막 옵션에서 엥?? 하실 것 같은데요. 해석해 드리겠습니다.
리눅스에서 "2" 는 표준에러를 의미합니다. ( 참고로 "1"은 표준출력, 즉 정상출력 )
> 는 리다이렉션을 의미합니다. 쉽게 말하면 2(표준에러)를 /dev/null 경로로 보낸다. 라는 뜻입니다.
/dev/null : 쓰레기통 같은 존재입니다. 뭐가 되었든 이 경로로 보내면 그냥 없어져 버립니다. 휴지통 같은 존재입니다.
만약 2>/dev/null 옵션 없이 find 명령어를 쓰게 되면,
find / -size 1033c
이렇게 권한이 부족하다고 엄청난 수의 에러를 출력합니다.
이전 명령어와는 다르게 많은 오류를 보여드리기 위해, 검색위치를 시스템 전체 /(루트 디렉터리) 로 설정한 결과입니다.
저렇게 에러가 많이 출력되면, 정작 내가 찾는 파일은 제대로 볼 수가 없죠.
그래서 2>/dev/null 옵션으로 에러를 없애 버리는 것입니다. 알맹이만 볼 수 있게요.
물론, 에러가 아예 사라지는 건 아닙니다. 에러는 당연히 발생하지만, 우리에게 출력만 하지 않는 것 입니다.
이제 ~/inhere/maybehere07/.file2 파일을 읽어 password를 획득해 봅시다.
( "~" 은 홈 디렉터리를 의미합니다 )
cat maybehere07/.file2
.file2 파일을 열어 password를 획득하였습니다.
파일 크기를 1033byte로 맞추기 위해 공백으로 파일을 꽉 채웠군요.
'Hacking > [System]Bandit' 카테고리의 다른 글
OverTheWire [Bandit Level 7] (0) | 2023.03.30 |
---|---|
OverTheWire [Bandit Level 6] (0) | 2023.03.30 |
OverTheWire [Bandit Level 4] (0) | 2023.03.29 |
OverTheWire [Bandit Level 3] (0) | 2023.03.29 |
OverTheWire [Bandit Level 2] (0) | 2023.03.29 |