프롤로그
bandit 문제 풀이
저번 비밀번호는 4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw
문제
다음 레벨로 가는 비밀번호는 inhere디렉터리 내부에 있는데, 이게 어딘가에 있다. 이것의 특징은
- 사람이 읽을 수 있고
-1033바이트 크기이고
- 실행할 수 없다.
find
이전에는 file로 파일이 특징을 알아봤다면, 이번에는 find로 찾아야 한다. 왜냐? inhere가 어디있는지 모르니까, 이것의 위치를 찾든 뭐든 찾아야 하지 않겠나...
그래서 파일을 찾을 때에는 find 명령어를 써야하는데
find [경로] [옵션] [검색 조건] [후속 작업]
그래서 만약에 어딘가에 존재한다면... 경로를 / 로 설정해야한다.
옵션을 살짝 보자.
- -name : 대소문자를 구분해서, 검색조건에 이름에 일치하는 파일을 찾는다.
- -iname : 대소문자를 구분하지 않고, 검색조건에 일치하는 파일을 찾는다.
- -type : 파일의 종류를 토대로 찾는다. f 면 파일, d면 디렉토리
- -size : 크기를 기준으로 파일을 찾는드ㅏ. +500M 이면 500MB 이상, -1000KB이면 1000KB 이하, 1033c면 1033바이트 파일
- -mtime : 수정시간 기준 -7이면 7일 이내, +30이면 30일 이후
- -user : 소유자 기준
- -perm : 특정권한, 755로 한다면, rwxr-xr-x 파일들만 찾는다
그래서 위 속성들을 조합해서 사용할 수 있는데, 기본적으로 and 조건으로 조합이 된다고 보면 된다.
예시를 들자면
find . -type f -name "*.sh" -size +1M
이러면 현재 디렉터리에서 sh확장자로 끝나는 1MB 이상의 파일을 찾는 것이다.
OR조건으로 바꿀려면
find . \( -name "*.txt" -o -name "*.log" \)
\( \) 로 그룹화를 해준다음에, 중간에 -o 로 or조건을 넣어주면 된다.
뒤에 후속작업이라는 부분이 있는데
- -delete : 특정 파일 삭제
- -prune : 특정 디렉터리 검색에서 제외
이런식으로 있는데,
find . -name "*.tmp" -delete #tmp 파일 전부 삭제
find . -path "./temp" -prune -o -name "*.txt" #./temp 경로 파일 검색대상 제외
이런 느낌으로 쓴다.
풀이과정
우선 접속부터
ssh bandit5@bandit.labs.overthewire.org -p 2220
4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw
ls
헸을 때 inhere 파일이 존재하고, 여기에 들어가서 어떤 파일들이 있나 확인해보자.
그니까 이제 저기 어딘가에 파일들이 있다는 거다.
이제 위 find를 이용해서 검색 조건에 맞게 작성해보자.
find . -type f -size 1033c ! -executable
파일이고 , 1033바이트이고, 실행불가능하다를 표시한 것이다. !로 불가능, executable 를 실행가능한
이렇게 해서 찾아보면?
maybehere07번에 .file2가 해당 조건에 모두 충족하기에
찾아가서 확인해보면
비밀번호를 구할 수 있다.
정답
비밀번호는 HWasnPhtq9AVKe0dmk45nxy20cvUa6EG 이다.
출처
https://overthewire.org/wargames/bandit/bandit6.html
'bandit' 카테고리의 다른 글
[2024/bandit] bandit level7 -> level8 Write-up (1) | 2024.11.10 |
---|---|
[2024/bandit] bandit level6 -> level7 Write-up (0) | 2024.11.10 |
[2024/bandit] bandit level4 -> level5 Write-up (0) | 2024.11.09 |
[2024/bandit] bandit level3 -> level4 Write-up (0) | 2024.11.09 |
[2024/bandit] bandit level2 -> level3 Write-up (1) | 2024.11.09 |