[Bru1s3rs] Bandit - Level 5 ~ 10
브루저는 현재 활동하고 있는 보안 및 해킹 팀이다.(본인이 창설함)
Level 5 -> Level 6
문제 설명
요약: 1033 bytes 사이즈의 인간이 읽을 수 있는 파일이 있따고 한다.
패스워드 읽자
문제 풀이
보면 디렉토리가 굉장히 많다.
저거 하나씩 다들어가서 확인하기에는 귀찮다.
딱 보니 find 명령어 사용하는 거다
위 사이트에서 find 명령어에 대해 알 수 있다.
find . -size 1033c
사이즈 찾는 옵션을 달아서 찾자
찾았으니 읽으면 패스워드가 나올 것이다.
-완-
Level 6 -> Level 7
문제 설명
요약: user 권한은 bandit 7, group 권한은 bandit6 이고, 33bytes 크기의 파일에 패스워드가 있다.
어딘가에 있으니 찾아라~~
문제 풀이
일단 위 문제와 비슷하게 find명령어로 찾는 문제이다.
find / -user bandit7 -group bandit6 -size 33c 이거로 찾으면 끝일거 같다.
1. find / -user bandit7 -group bandit6 -size 33c
파일이 너무 많다.
여기서 보면 Permission denied 라는 권한 관련 오류 문제가 나오는데,
이를 걸러줄 필요가 있어보인다.
0(표준 입력), 1(표준 출력), 2(표준 에러)
이런거를 파일디스크립터(file descriptor)라고 하는데, 권한 관련해서 설정할 때 쓰인다.
그리고 에러 나는 부분을 어디다가 버려놔야 하는데
그게 바로 /dev/null 이라는 곳이다.
그래서 2>/dev/null 을 하게 되면
2(오류출력) 을 >(리다이렉션)를 통해서 /dev/null에 버리면 끝이다.
2. find / -user bandit7 -group bandit6 -size 33c 2>/dev/null
깔끔하게 얻었다. 패스워드 뽑아내자
-완-
Level 7 -> Level 8
문제 설명
요약: data.txt라는 파일에 millionth 라는 단어를 가진 곳에 패스워드가 있다고 한다.
문제 풀이
일단 cat data.txt를 해보니
너무많은 데이터들이 쏟아진다.
이거를 걸러야하는데 마침 문제에서 millionth라는 단어가 있는 곳에 패스워드가 있다고 한다.
grep 명령어로 거르기
거르니까 바로 패스워드가 나왔다.
-완-
Level 8 -> Level 9
문제 설명
요약: data.txt라는 파일에 패스워드가 있는데, 다른건 다 반복되지만, 이거는 딱 하나만 있는 텍스트이다.
찾아라~
문제 풀이
어질어질하다. 너무 많다.
거를 필요가 있는데, 어떻게 할까?
sort 명령어
내용을 숫자, 알파벳 순으로 정렬함.
uniq 명령어
이어진 내용의 중복을 제거한다.
-c옵션을 쓰면 몇 번 중복되었는지 출력해준다.
cat data.txt | sort | uniq -c
출력해주고, 정렬하고, 중복되는거를 출력해줌
일단 확인해보자
바로 나왔다.
-완-
Level 9 -> Level 10
문제 설명
요약: data.txt 가 있고, 사람이 읽을 수 있는 것이 있는데 그게 "="문자가 앞에 온다.
읽어라
문제 풀이
명령어를 쳐보니 뭔가 사람이 읽을 수 없는 것들이 많다.
문제설명에서, "="으로 시작되는 곳에 사람이 읽을 수 있다고 하는 것이 패스워드라고 하니
좀 걸러서 봐야할 필요가 있다.
strings 명령어
파일에 포함된 문자열을 뽑아내는 명령어
strings data.txt | grep "===="
이거로 뽑아낼 수 있을거 같다.
성공적으로 패스워드를 획득했다.
새롭게 알게 된 명령어
sort [옵션]
정렬 명령어에 대해서 좀 알게 되었다
uniq [옵션]
uniq 명령어를 통해 중복하는 걸 제거해주고,
-c옵션 달면, 몇번 중복했는지 출력해주는 것을 알게 되었다.
strings
파일에 있는 문자열을 뽑아내는 명령어를 알게됨
Reference