리눅스 워게임 bandit (overthewire.org) 15 Level -> 16Level
·
Wargame/Linux_bandit
Level 14에서 가져온 키 값을 복사해서 bandit15에 접속해 보자. 힌트도 한번 봅시다. 다음 레벨의 패스워드는 SSL 암호화를 이용하여 localhost의 30001 포트에 현재 레벨의 패스워드를 입력하면 구해질 수 있다고 합니다. 힌트와 같이 openssl 명령어를 사용해 보자 먼저 localhost와 30001이라는 포트번호 패스워드까지 아니까 s_client를 이용해 보자 https://ko.wikipedia.org/wiki/OpenSSL OpenSSL - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. OpenSSL은 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈 소스 구현판이다. C 언어로 작성되어 있는 중심 라이브러리 안에는, 기본적인 암호..
리눅스 워게임 bandit (overthewire.org) 14 Level -> 15 Level
·
Wargame/Linux_bandit
Level 13에서 가져온 키 값을 복사해서 bandit14에 접속해 보자 힌트도 한번 봅시다. 다음 레벨의 비밀번호를 구하기 위해서는 현재 레벨의 비밀번호를 localhost의 포트 30000 연결할 때 패스워드로 활용된다고 합니다. 이번 문제는 간단한 편이다. localhost 하고 포트번호까지 알려줘서 연결시켜주는 명령어만 쓰면 된다. nc 명령어를 통해서 접속을 해보겠습니다. NetCat(nc) : 네트워크 상에서 데이터를 간단하게 TCP/UDP 통신할 수 있도록 제공하는 리눅스 util nc를 기본적으로 쓸 때는 단일 포트, 포트 범위를 검색하는 게 먼저이지만 지금은 다 알려주었으니 바로 대입하겠습니다. 먼저 저번 레벨에 있던 bandit14에 키 값을 찾아서 복사한다. nc에 기본적인 명령어는..
리눅스 워게임 bandit (overthewire.org) 13 Level - > 14 Level
·
Wargame/Linux_bandit
Level 12에서 가져온 키 값을 복사해서 bandit13에 접속해 보자 힌트도 한번 보자 비밀번호는 /etc/bandit_pass 에 저장되어 있고 bandit14 계정만 읽을 수 있다고 한다. 현재 레벨에서는 다음 패스워드를 얻는게 아닌 private SSH key를 얻어야 한다. localhost는 자기 자신의 ip이다 (localhost = 127.0.0.1) cat으로 sshkey.private를 확인해 보았다. 여기서 private key 가 있는데 쉽게 예로 들면 집 도어록을 열라면 도어락 키가 필요한데 ssh 는 도어락 키를 줄 수 있다. 여기서 ssh를 먼저 알고 들어가는 게 좋을 거 같다. SSH(Secure Shell) : 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명..
리눅스 워게임 bandit (overthewire.org) 12 Level - > 13 Level
·
Wargame/Linux_bandit
Level 11에서 가져온 키 값을 복사해서 bandit12에 접속해 보자. 앞서 이번 레벨은 반복 작업이 많아서 요약본은 따로 올리지 않고 생략하는 부분이 없이 올릴 생각이다. 아는 사람이 봤을 때는 단순 반복이지만 배우는 사람 입장에서는 생략이 있으면 헷갈릴 거 같아서 전부 올릴 겁니다. 힌트도 봅시다. 이번에는 힌트가 꽤 길어졌다. 쉽게 말하면 반복적으로 압축된 파일의 hexdump인 data.txt파일에 저장되어 있다. /tmp 아래에 자신의 디렉터리를 만드는 것이 편할 것이라고 한다. mv를 사용하여 이름을 바꾸라고도 한다. , Hexdump에 대해서 공부도 하라고 한다. 그래 그럼 힌트 대로 Hexdump 에 대해서 좀 알아보자. https://ko.wikipedia.org/wiki/Hex_d..
리눅스워게임 bandit (overthewire.org) 11 Level - > 12 Level
·
Wargame/Linux_bandit
Level 10에서 가져온 키 값을 복사해서 bandit11에 접속해 보자. 힌트도 같이 봅시다. data.txt 파일 안에 13자리 알파벳 순서를 밀어냈다고 한다. A -> M 바뀌었다는 것이다. N - > Z Rot13에 대해서 알아보라고도 한다. cat을 사용해 보니 알파벳 순서가 뒤틀려 있어 보인다 한눈에는 안 보이지만 그전에 Rot13에 대해서 설명할 필요가 있어 보인다. Rot13 : 카이사르 암호(치환 암호) 영어 알파벳을 13 글자씩 밀어서 만듦 그러면 다시 13글자씩 알파벳을 밀면 될 거 같다. 새로운 명령어 'tr'을 써보자 (힌트를 보면 명령어 힌트도 있다) cat , | , tr를 같이 쓴 모습이다. tr : 지정한 문자를 변환하거나 삭제하는 명령어, 특정한 문자를 다른 문자로 변환..
리눅스 워게임 bandit (overthewire.org) 10 Level -> 11 Level
·
Wargame/Linux_bandit
Level 9에서 가져온 키 값을 복사해서 bandit10에 접속해 보자 힌트도 한번 체크 base64로 인코딩된 데이터 가 data.txt 파일 안에 있다고 한다. base64라는 명령어가 키 포인트인 거 같다. 먼저 cat , file를 이용해서 파일 안에 내용을 한번 확인해 보았다. 용량도 적고 키 값이 숨어 있는 거 같다는 느낌이 들었다 file은 정상적인 text 파일이고 base64 : 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념 쉽게 설명하면 ASCII 영역 문자들로만 이루어져 있고 코드에 영향 주지 않는 64진법 문자열이라고 생각한다. 지금 base64로 인코딩 되어 있으니 이걸 벗겨내는 디코를 ..
리눅스 워게임 bandit (overthewire.org) 9 Level -> 10 Level
·
Wargame/Linux_bandit
Level 8에서 가져온 키 값을 복사해서 bandit9에 접속해 보자. 그전에 힌트를 보자 data.txt 안에 여러 개의 '=' 문자 앞에 사람이 읽을 수 있는 몇 안 되는 문자열에 있다고 한다. cat으로 data.txt 파일을 읽어보니 정말 사람이 읽을 수 없는 것들만 있다. grep을 이용해서 "====" 입력했는데 바이너리 파일이라고 해서 grep 사용이 안된다고 한다. grep 사용이 안 되는 이유는 grep 명령어는 주로 텍스트 파일에서 문자열을 검색하는 데 사용하는데 바이너리 파일에서는 이진 데이터(data)가 포함이 되어서 텍스트 파일을 주로 다루는 grep 은 사용이 안된다. 정말 쉽게 말하면 텍스트 파일이 아니고 데이터라서 못쓰는 것이다. grep -a : 파일을 텍스트 파일로 강제..
리눅스 워게임 bandit (overthewire.org) 8 Level -> 9 Level
·
Wargame/Linux_bandit
Level 7에서 가져온 키 값을 복사해서 bandit8에 접속시켜보자. 힌트도 같이 보자 다음 레벨 패스워드는 data.txt 안에 한 번만 나오는 텍스트 줄이라고 한다. 한번 cat으로 data.txt를 읽어봤더니 정말 긴 텍스트로 되어있다. 일단 힌트에서는 한 번만 나오는 유일한 텍스트라고 했으니 중복된 행을 삭제하라는 의도인 거 같다. 여기서 파이프라인(|) 이 또 나온다 파이프라인의 설명은 전 단계에서 이미 말했다(https://grayom.tistory.com/9) 나머지 명령어 (sort , uniq)에 대해서 설명하자면 sort : 텍스트를 읽어 들여 알파벳 순서로 정렬하는 것 (옵션 없을 때) uniq : 정렬된 파일에서 중복된 행을 제거한다. uniq -u : 정렬된 파일에서 중복되지 ..
리눅스 워게임 bandit (overthewire.org) 7 Level -> 8 Level
·
Wargame/Linux_bandit
Level 6에서 가져온 키 값을 복사해서 bandit7에 접속을 시켜보자 힌트도 한번 봅시다. 다음 레벨 비밀번호는 'data.txt' 안에 'millionth' 단어 옆에 키 값이 존재한다고 한다. 용량을 보면 미리 예상한 분들이 있겠지만 'tail data.txt'로 봤을 때 단어들이 많고 옆에 키 값을 위장되어 있는 단어들도 있었다 늘 말하지만 일일이 보는 것은 정신건강에 안 좋은 선택이니 간편하게 찾아줄 명령어를 써보자. tail 파일명 : 파일의 마지막 행을 기준으로 10줄을 출력해준다 (기본값이 10줄 옵션으로 바꿀 수도 있음) 여기서는 'grep' , '|' (파이프) 를 쓰면 간편하게 끝낼 수 있다 cat 명령어는 전에 bandit시리즈에서도 많이 나왔으니까 다 알 거라고 생각합니다 gr..
리눅스 워게임 bandit (overthewire.org) 6 Level -> 7 Level
·
Wargame/Linux_bandit
Level 5에서 가져온 키 값을 복사해서 bandit6에 접속을 시켜보자. 힌트를 한번 보고 가자. 서버 어딘가의 password가 있다는 걸 알려주고 있고 , 소유자가 bandit7 그룹이 bandit6 , 33바이트 , 라는것을 알려줬다 bandit6 홈디렉터리 안에는 아무것도 없다. 힌트를 토대로 최상위 디렉터리 '/'에서부터 찾아야 할 듯하다 (find를 이용해서) 이렇게 find에 옵션을 더해서 검색을 해보았는데 'Permission denied' 라는 알림이 많이 뜬다. 일일이 'permission denied' 아닌것을 찾는 건 효율이 좋지 않으니까 'Permission denied'을 제외시키고 출력을 해보자 find 명령어의 '2>/dev/null' 옵션을 추가했더니 'Permissio..
리눅스 워게임 bandit (overthewire.org) 5 Level -> 6 Level
·
Wargame/Linux_bandit
Level 4에서 가져온 키 값을 복사해 bandit5에 접속을 시켜보자. 힌트도 한번 봅시다 암호는 inhere라는 디렉터리 아래의 파일에 저장되었다. 사람이 읽을 수 있고 , 1033 바이트 크기 일단 inhere 라는 디렉터리 안에 들어가서 확인을 해봤더니 많은 디렉터리가 있었다. 이것을 일일이 까보면서 찾는 거는 시간낭비이니 find, file 명령어를 활용해 보자. 먼저 1033 바이트 크기인 것을 찾아보자 inhere 디렉터리 안에 있는 모든 것 중에 사이즈가 1033 바이트인 게 있냐고 물어봤더니 바로 나와버렸다 find 옵션인 -size을 입력했고 byte 단위이기에 c라는 옵션을 추가했다. (단위마다 옵션 달라지니 확인 바랍니다.) file로 확인하니 text 파일이었고 바로 확인해 보니..
리눅스 워게임 bandit (overthewire.org) 4 Level -> 5 Level
·
Wargame/Linux_bandit
Level 3에서 가져온 키 값을 복사해서 bandit4에 접속을 시켜보자. 그전에 힌트를 한번 봐보자. inhere 디렉터리 안에 사람이 읽을 수 있는 파일에 있다고 한다. 뭐라는 건지 잘 모르겠지만 한번 해보자. 일단은 bandit4 안에 inhere이라는 디렉터리에 접근을 했다 inhere 안에 파일들을 보니 파일이 많다 한번 2개 파일들만 확인해보자 -file00 , -file01 확인해본 결과 사람이 읽을 수 없다 힌트의 뜻이 이해가 되었다. 이걸 일일이 확인하는 것도 방법이긴 하지만 출제 의도는 그게 아닐 테니 명령어를 활용해 보자. 문제를 해결하기 전에 먼저 설명해야 할 것이 있다. 바로 '*' (asterisk) 흔히 말하는 별표이다 이 별표는 현재 경로의 있는 모든 것을 의미한다. 이걸 ..