분류 전체보기
-
[Bandit] Level 13Wargame/Bandit 2022. 8. 28. 21:56
Level 13으로 가는 문제는 음.. 뭐랄까 좀 지저분(?)했다. 문제는 data.txt 파일 안에 있는 비밀번호를 알아내면 되는 간단한 것이었다. 물론 data.txt 파일은 일반적으로 읽을 수 없는 hexdump로 저장되어 있었다. 우선 문제에서 제시한 것처럼 /tmp 디렉터리에 /test 라는 디렉터리를 만들어 data.txt 파일을 복사해 진행했다. hexdump 파일을 풀기 위해 xxd 명령어의 -r 옵션을 활용해 redirection으로 새로운 파일을 만들었다. 그랬더니 나타난 파일은 file 명령어로 확인한 결과 gzip으로 압축이 되어 있었다. mv 명령어로 파일명 끝에 .gz를 붙여 압축을 해제할 수 있게 하고 생성된 파일을 확인하자.. 이번엔 bzip2이다. 또 mv 명령어로 확장자를..
-
[Bandit] Level 12Wargame/Bandit 2022. 8. 28. 08:23
Level 12로 가기 위해서는 고전암호를 Linux 명령어로 풀어야 한다. 해당 알파벳을 다음 13번째 자리의 알파벳으로 바꾸는 caesar 암호의 한 종류이다. cat 명령어로 data.txt 파일을 출력하면 어떤 의미인지 알기 힘들다. tr 명령어를 사용해 대문자는 N-Z, A-M으로 다음 13번째 자리로 다시 변환을 하고 소문자도 마찬가지로 변환한다. (지금까지의 문제들은 모르는 명령어가 나왔을 때 man 명령어로 해결이 가능했지만, tr 은 형식만 있을 뿐 N-Z, A-M으로 범위를 나누는 법을 몰라 검색을 통해 해결했다.) 암호문을 다시 복호화하면 Level 12로 접속할 수 있는 비밀번호가 나타난다.
-
[Bandit] Level 10Wargame/Bandit 2022. 8. 28. 07:54
Level 10으로 가기 위해서 새로운 명령어를 알아야 했다. 이번 data.txt 파일은 처음 cat 명령어로 출력했을 때 글자가 깨지는 것을 알게 되었다.file 명령어를 통해 data.txt 파일의 종류를 확인한 결과 data로 나타났다. 문제의 요구대로 사람이 읽을 수 있도록, 원하는 문자열을 출력하는 명령어 strings를 사용하였다. strings 명령어로 data.txt 파일을 읽으면 깨지지 않은 문자들이 출력되는데 pipe를 이용해 =이 들어간 문자열만 출력한다. 그 결과로 Level 10으로 접속할 수 있는 비밀번호가 나타났다.
-
[Bandit] Level 9Wargame/Bandit 2022. 8. 28. 07:41
Level 9로 접속할 수 있는 비밀번호를 알아내기 위해서는 새로운 명령어를 알아야 한다. data.txt 파일에서 중복되지 않은 단 한 번만 쓰인 라인이 비밀번호이다. cat 명령어를 이용해 data.txt 파일을 읽으면 많은 텍스트가 나타나는데, 중복되지 않은 것을 알기 힘들다. sort 명령어를 통해 정렬을 하면 알 수도 있지만 그 중 중복이 아닌 것을 찾는 데에 시간이 많이 소요된다. 방법을 모르고 있을 때, 문제의 힌트에 알아야 될 명령어 중 uniq 명령어가 있었다. uniq 명령어는 중복된 내용의 행을 하나의 행으로 만들어 주는 명령어이다. 정확히는 중복된 내용의 행이 연속으로 있을 때 하나의 행으로 만들어 주기 때문에 sort 명령어와 같이 쓰인다. sort 명령어로 data.txt 파일을..
-
[Bandit] Level 8Wargame/Bandit 2022. 8. 28. 07:06
Level 8로 가는 문제는 생각보다 간단했다. data.txt의 대용량 텍스트 파일에서 millionth라는 단어 옆에 비밀번호가 있다고 설명되어 있다. 단순하게 텍스트 파일을 읽으면 많은 내용들이 있어 눈으로 보는 것은 한계가 있다. grep 명령어를 사용하기 위해 pipe를 이용해 data.txt의 millionth에 대응되는 비밀번호를 찾을 수 있다. pipe로 cat 명령어의 출력을 grep 명령어의 입력으로 넣어주자 millionth에 대응되는 비밀번호가 나타났다.
-
[Bandit] Level 7Wargame/Bandit 2022. 8. 28. 01:15
Level 7을 가기 위해서는 서버 어딘가에 존재하는 비밀번호 파일을 찾아야 한다. 물론 아래의 조건을 충족하는 파일이어야 한다. owned by user bandit7 owned by group bandit6 33 bytes in size 항상 접속을 한 후에는 ls 명령어와 pwd 명령어를 사용하는 것 같다.. 조건에 맞는 파일을 찾기 위해 find 명령어에 최상위 디렉터리 /를 범위로 지정한다. -user 옵션으로 소유자를, -group 옵션으로 소유그룹을, -size 옵션으로 크기를 지정한다. 맨 뒤 2>/dev/null 같은 경우 없어도 되지만 Permission denied가 엄청 발생하는 것을 알게 될 것이다. 그래서 Redirection을 통해 이런 오류를 따로 처리해준다. 그 결과로 /v..
-
[Bandit] Level 6Wargame/Bandit 2022. 8. 28. 00:49
Level 6을 가기 위해서는 3가지 조건을 만족해야 한다. human-readable 1033 bytes in size not executable inhere 디렉터리 내에는 20개의 디렉터리가 있다. 하나하나 살펴보는 방법도 있겠지만.. 시간이 너무 걸리니 find 명령어를 활용하기로 한다. find 명령어의 -size 옵션을 통해 1033 byte 크기를 가지는 파일을 찾아본다. maybehere07 디렉터리의 .file2 파일이 1033 byte의 크기를 가지는 파일이라고 나타난다. 다른 두 조건도 만족하는지 확인하기 위해 maybehere07 디렉터리로 들어가 .file2의 정보를 확인한다. ls -al 명령어로 .file2의 허가권을 확인해 not executeble 조건을 만족하는 것을 확인..