728x90
반응형

시스템해킹 40

OverTheWire [Bandit Level 9]

Bandit Level 9 입니다. 문제입니다. password는 data.txt 파일에 저장되어 있다. 여러 개의 "=" 가 password 앞에 있고 사람이 읽을 수 있는 문자열이다.. 대충 이런 뜻인 것 같습니다. cat data.txt 그냥 바로 cat으로 읽어보았습니다. 알수없는 문자들이 막 뜨고.. 이건 읽을수가 없군요. strings data.txt strings : 파일에서 문자열만 긁어올 수 있음 즉, data.txt파일에서 문자열만 긁어온 결과입니다. 하지만 여전히 password는 보이지 않습니다. password는 읽을 수 있는 문자열이라고 했으니, 분명히 이 안에 있을 겁니다. 여기에 grep 을 해봅시다. strings data.txt | grep == |(파이프)를 이용해서 g..

OverTheWire [Bandit Level 8]

Bandit Level 8 입니다. password는 data.txt 파일에 저장되며, 유일하게 딱 한 줄만 있는 문장이라고 합니다. 그렇군요.. cat data.txt password와 비슷한 문장들이 매우매우 많이 있습니다. 이 중에서 딱 한번만 등장하는 문장을 골라내야 합니다. 일단 정렬부터 해볼까요? cat data.txt | sort | : 파이프 라고 하며, 이전 명령어의 결과가 뒤 명령어의 인자로 들어감 sort : a-z 순으로 오름차순 정렬해주는 명령어 즉, data.txt 파일을 오름차순 정렬하여 읽어오라는 뜻입니다. 하지만 이래선 뭐가 한 줄만 있는지 알 수가 없군요. cat data.txt | sort | uniq -u uniq -u : 중복되는 단어나 문장 등을 제거해줍니다. 그러..

OverTheWire [Bandit Level 7]

Bandit Level 7 입니다. password는 data.txt 파일에 저장되어 있으며, "millionth" 이라는 단어 옆에 존재한다고 하네요. data.txt 파일이 홈 디렉터리에 있습니다. 한번 읽어볼까요? cat data.txt 어우 내용이 엄청나게 많습니다. 이래선 뭐가 password인지 못찾겠는걸요? 아까 문제에서 "millionth" 옆에 password가 있다고 했으니, 해당 부분만 추출해 봅시다. grep millionth data.txt grep : 특정 문자열을 매칭하여 찾을 수 있는 명령어 (기본적으로 매칭되는 문자열이 있는 행을 출력함) -> data.txt 파일에서 millionth 문자열이 포함된 행을 출력해라 가 되겠습니다. password 획득!

OverTheWire [Bandit Level 6]

Bandit Level 6 입니다. password는 서버 어딘가에 저장되어 있다고 합니다. password 파일의 특징은, 1. 소유자 bandit7 2. 소유그룹 bandit6 3. 파일크기 33byte 이라고 합니다. 이번엔 inhere 디렉터리가 아닌, 시스템 전체 어딘가에 있다고 하네요. 홈 디렉터리엔 아무것도 없군요. find 명령어로 찾아야 할 것 같습니다. find / -user bandit7 -group bandit6 -size 33c 2>/dev/null -exec cat {} \; / : 루트 디렉터리 이하(시스템 전체)에서 찾아라 -user bandit7 : 소유자가 bandit7 -group bandit6 : 소유그룹이 bandit6 -size 33c : 파일크기가 33byte 2..

OverTheWire [Bandit Level 5]

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가지가 제시되었지만, 저는 ..

OverTheWire [Bandit Level 4]

Bandit Level 4 입니다. inhere 디렉터리 안에 사람이 읽을 수 있는 파일에 password가 저장되어 있다고 합니다. 터미널이 먹통이 되면 reset 커맨드를 입력하라고 하네요. 어떤 문제길래? inhere 디렉터리 입니다. 파일이 10개가 있는데요.. 뭐가 password가 저장된 파일일까요? cat ./-file00 파일들을 읽어봤더니, 이상한 문자가 출력되고 읽히지가 않습니다. 10개의 파일 중 뭐가 읽을 수 있는 파일인지 모르겠습니다. 이럴 때 사용할 수 있는 방법은 "file" 명령어를 이용하여 파일의 형식을 확인하는 것입니다. file ./-file00 파일 00,04,06은 data, 그리고 ..뭐 이상한 걸로 되어 있는데 07번은 ASCII text 로군요 ASCII cod..

OverTheWire [Bandit Level 3]

Bandit Level 3 입니다. password파일은 "inhere" 디렉터리 안에 숨김파일로 존재한다고 합니다. 확인해 봅시다. ls 홈 디렉터리에 "inhere" 디렉터리가 존재합니다. cd inhere/ inhere 디렉터리로 이동하라. cd : 디렉터리를 이동할 수 있는 명령어 저는 Tab으로 자동완성 했기 때문에 inhere 뒤에 /(슬래시) 가 붙었습니다. /는 입력하셔도 되고 빼셔도 됩니다. 그리고 ls 를 눌러 디렉터리 내용물을 확인했는데, 아무것도 없습니다. 당연합니다. password 파일은 숨김파일 이라고 했으니까요. ls -a ls -a : 숨김 파일까지 출력하는 옵션 자, 숨겨진 파일인 ".hidden" 을 발견했습니다. 저 파일을 읽으면 password를 획득할 수 있습니다...

OverTheWire [Bandit Level 2]

Bandit Level 2 입니다. "spaces in this filename" 이라는 파일에 password가 저장되어 있다고 합니다. ls -al ls -a : 숨김파일도 표시함 ls -l : 파일정보를 상세히 표시함 파일명 앞에 "." 이 붙으면 숨김파일임 자, spaces in this filename 파일을 발견하였습니다. 저게 하나의 파일입니다. 저걸 읽어 봅시다. cat spaces in this filename 그런데.. 공백 때문에 하나의 파일이 아닌 여러개의 파일로 인식합니다. 저 긴 파일명을 하나의 파일로 인식하게 하려면 어떻게 해야 할까요? 방법은 "(더블쿼터)로 묶어주는 것입니다. 또는 '(싱글쿼터)로 묶어도 됩니다. 저렇게 묶어줄 경우 시스템이 하나의 문자열로 인식하게 됩니다...

OverTheWire [Bandit Level 1]

Bandit Level 1 입니다. password는 홈 디렉터리에 있는 "-" 라는 파일에 저장되어 있다고 합니다. ls "-" 파일이 존재하는군요. 읽어 봅시다. cat - 근데 아무것도 뜨질 않습니다. 무엇이 문제인 걸까요? 보통 - 문자는, 명령어 뒤에 옵션을 전달하는 용도로 사용됩니다. cat -b cat -e 이런 식으로 말이죠. 따라서 cat - 라고 입력할 경우, 시스템이 옵션을 사용하려는 것으로 인식하여 "-" 가 파일명으로 인식되지 않는 것입니다. 따라서 "-" 를 파일명으로 인식하게 해야 합니다. 참고로 저렇게 되서 먹통일 경우에는 Ctrl+C 눌러주시면 됩니다. 윈도우에서는 복사기능이지만, 리눅스에서는 "현재 진행중인 작업 취소" 정도로 이해하시면 될 것 같습니다. 그 방법은, 앞에..

시스템해킹 워게임 / 시스템해킹 입문 / 시스템해킹 초보 OverTheWire [Bandit Level 0]

Bandit 은 기초적인 리눅스 기반의 시스템해킹 워게임입니다. 비교적 크게 어렵지 않아 초보자들이 시스템해킹을 시작하기 좋다고 생각합니다. 저는 지금 OverTheWire에서 나온 Natas라는 웹해킹 워게임도 진행하고 있는데, 시스템해킹도 도전하고 싶어 글을 올리게 되었습니다. https://overthewire.org/wargames/bandit/bandit0.html OverTheWire: Level Goal We're hackers, and we are good-looking. We are the 1%. Level Goal The goal of this level is for you to log into the game using SSH. The host to which you need to c..

728x90
반응형