리눅스 워게임 bandit (overthewire.org) 23 Level -> 24 Level
·
Wargame/Linux_bandit
Level 22에서 가져온 키 값을 복사해서 bandit23에 접속해 보자. cron이라는 시간 기반 작업 스케줄러를 통해 자동으로 실행되는 프로그램을 확인하라고 한다. /etc/cron.d/ 디렉터리에서 스케줄 구성을 찾아 실행되는 명령을 알아내야 한다고 한다 자신만의 스크립트를 만들라고도 한다. 자주 들어오는 디렉터리이다. cronjob_bandit23를 확인해 보자. 이 스크립트에 내용을 설명하자면 '/var/spool/$myname/foo' 디렉터리에 있는 스크립트 파일을 찾아서 소유자가 'bandit23'인 경우에만 실행하고 60초 지나서? 삭제한다. 일단 /var/spool/$myname/foo 경로에 bandit24 비밀번호를 얻을 수 있는 셸 파일을 만들라고 하는 거 같다. 임시파일 디렉터..
리눅스 워게임 bandit (overthewire.org) 20 Level -> 21 Level
·
Wargame/Linux_bandit
Level 19에서 가져온 키 값을 복사해서 bandit20에 접속하자. 홈 디렉터리에 setuid 바이너리가 있다고 한다 포트를 열어서 localhost에 연결을 생성하고 bandit20 비밀번호를 전송하면 bandit21의 비밀번호를 준다고 한다. 그러면 일단 접속부터 하고 포트를 한번 열어보자. file 명령어를 입력하면 suconnect 에 대해서 설명이 나온다 TCP를 이용해서 localhost에 있는 포트로 접속을 한다. 그러면 bandit20 의 비밀번호를 전송시켜 주면 bandit21의 비밀번호를 알려준다는 이야기가 된다. 그러면 포트를 열어보자 포트번호는 임의의 숫자를 썼다. nc : 네트워크를 연결을 생성 , 수신하는 데 사용하는 명령어 -lp : 특정포트에서 네트워크 연결을 기다린다...
리눅스 워게임 bandit (overthewire.org) 18 Level -> 19 Level
·
Wargame/Linux_bandit
Level 17에서 가져온 키 값을 복사해서 bandit18에 접속해 보려고 하는데 접속이 바로 끊긴다. 그러면 힌트를 한번 봐보자. 다음 레벨 비밀번호는 홈디렉토리 readme라는 파일에 있는 거 같다 하지만 '.bashrc' 리눅스 시스템 기본 쉘에서 바로 나가게끔 설정이 되어있는 거 같다. 참고로 '. bashrc' 파일은 사용자가 로그인할 때마다 실행되는 스크립트이다. 그래서 로그인하자마자 나가지는 거 같다. 그렇다면 로그인과 같이 명령어를 보내는 방법도 있다. ssh 명령어와 동시에 "cat readme"라는 명령어를 같이 보내서 패스워드를 보냈더니 연결동시에 "cat readme" 라는 명령어가 실행되고 나가지는 모습이다. ""
리눅스 워게임 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) 9 Level -> 10 Level
·
Wargame/Linux_bandit
Level 8에서 가져온 키 값을 복사해서 bandit9에 접속해 보자. 그전에 힌트를 보자 data.txt 안에 여러 개의 '=' 문자 앞에 사람이 읽을 수 있는 몇 안 되는 문자열에 있다고 한다. cat으로 data.txt 파일을 읽어보니 정말 사람이 읽을 수 없는 것들만 있다. grep을 이용해서 "====" 입력했는데 바이너리 파일이라고 해서 grep 사용이 안된다고 한다. grep 사용이 안 되는 이유는 grep 명령어는 주로 텍스트 파일에서 문자열을 검색하는 데 사용하는데 바이너리 파일에서는 이진 데이터(data)가 포함이 되어서 텍스트 파일을 주로 다루는 grep 은 사용이 안된다. 정말 쉽게 말하면 텍스트 파일이 아니고 데이터라서 못쓰는 것이다. grep -a : 파일을 텍스트 파일로 강제..