리눅스 워게임 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) 22 Level -> 23 Level
·
Wargame/Linux_bandit
Level 21에서 가져온 키 값을 복사해서 bandit22에 접속해 보자. 주기적으로 실행되는 프로그램이 cron이라는 시간 기반 작업 스케줄러에서 자동으로 실행되고 있다. /etc/cron.d/ 디렉터리에서 해당 설정을 확인하고 실행되는 명령어를 확인해 보라고 한다. 다른 사람들에 의해 쓰인 쏄 스크립트는 유용하다 의도적으로 읽기 쉽게 만들어졌다. 이거까지는 badirt21 하고 과정이 똑같다. 시스템이 부팅할 때 bandit23 권한으로 /usr/bin/cronjob_bandit23.sh 셸 스크립트가 실행 표준출력과 에러, 실행결과를 출력하지 않는다. 매 분마다 bandit23 권한으로 /usr/bin/cronjob_bandit23.sh 스크립트 실행 똑같이 실행결과를 출력하지 않는다. 그러면 뭘..
리눅스 워게임 bandit (overthewire.org) 21 Level -> 22 Level
·
Wargame/Linux_bandit
Level 20에서 가져온 키 값을 복사해서 bandit21에 접속해 보자. 접속을 했으니 힌트도 보자 주기적으로 실행되는 프로그램이 cron이라는 시간 기반 작업 스케줄러에서 자동으로 실행되고 있다. /etc/cron.d/ 디렉터리에서 해당 설정을 확인하고 실행되는 명령어를 확인해 보라고 한다. 일단 cron , crontab 명령어를 써봤지만 거부한다 일단 cron , crontab에 대해서 간단 설명하자면 Cron 은 컴퓨터가 부팅될 때부터 시작하며 주기적으로 실행되어 야 할 작업을 확인하고 실행하는 역할이다 그러면 Cron table 은 예약된 작업 목록을 저장하는 파일이라고 할 수 있다. 힌트가 알려준 경로에는 cronjob_bandit22 파일이 있다 확인해 보자. 일단 첫 번째 줄부터 해석하..
리눅스 워게임 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) 19 Level -> 20 Level
·
Wargame/Linux_bandit
Level 18에서 가져온 키 값을 복사해서 bandit19에 접속하자. 힌트를 보면 홈 디렉터리에 있는 'setuid'를 사용해야 한다고 합니다. 비밀번호 위치는 '/etc/bandit_pass' 에 있다고 합니다 여기서 막히는 사람들은 리눅스 특수권한에 대해서 공부할 필요가 있다 개인적으로 간단한 개념은 아니라고 생각해서... 실제로 시스템 보안 쪽에서는 setuid 를 이용한 해킹기법들도 많다. 실제로도 침해사례가 있다. 그래도 정말 정말 간단히 설명하자면 내 자신의 권한 말고 다른 사람의 권한을 사용하는 거라고 생각하면 된다. 요약은 많이 되었지만 그 부분이 핵심이다. bandit20-do 는 setuid이다 즉 bandit20의 권한을 쓸 수 있는 키 같은 느낌이다. 여기서 보면 bandit20..
리눅스 워게임 bandit (overthewire.org) 18 Level -> 19 Level
·
Wargame/Linux_bandit
Level 17에서 가져온 키 값을 복사해서 bandit18에 접속해 보려고 하는데 접속이 바로 끊긴다. 그러면 힌트를 한번 봐보자. 다음 레벨 비밀번호는 홈디렉토리 readme라는 파일에 있는 거 같다 하지만 '.bashrc' 리눅스 시스템 기본 쉘에서 바로 나가게끔 설정이 되어있는 거 같다. 참고로 '. bashrc' 파일은 사용자가 로그인할 때마다 실행되는 스크립트이다. 그래서 로그인하자마자 나가지는 거 같다. 그렇다면 로그인과 같이 명령어를 보내는 방법도 있다. ssh 명령어와 동시에 "cat readme"라는 명령어를 같이 보내서 패스워드를 보냈더니 연결동시에 "cat readme" 라는 명령어가 실행되고 나가지는 모습이다. ""
리눅스 워게임 bandit (overthewire.org) 17 Level -> 18 Level
·
Wargame/Linux_bandit
Level 16에서 가져온 키 값을 복사해서 bandit17에 접속해 보자. 힌트도 확인해 보자. passwords.old , passwords.new 파일 중 바뀐 줄이 있다고 합니다 그 기준에서 passwords.new 가 정답이라고 말하고 있다. 힌트에 나와 있듯이 diff 명령어를 활용해 보자 diff : 두 파일을 비교하여 차이점을 출력함 -d : 상세하게 차이점을 알려줌 보면 42 c42 가 있다 이게 무슨 뜻이냐면 파일 1(passwords.new)의 42번째 라인과 파일 2(passwords.old)의 42번째 라인 서로 다르다는 것을 상세하게 알려주고 있다. passwords.new 가 정답이라고 했으니 hga~ 로 시작하는 문자열이 정답이라는 이야기다. 패스워드를 입력해서 bandit1..
리눅스 워게임 bandit (overthewire.org) 16 Level -> 17 Level
·
Wargame/Linux_bandit
Level 15에서 가져온 키 값을 복사해서 bandit16에 접속해 보자. 힌트도 한번 봐주자. 포트번호 31000 ~ 32000에서 올바른 포트를 찾아서 들어가라고 하네요 먼저 nmap 에 대해서 간단히 설명하면 네트워크 스캔하는 명령어라고 생각하면 쉽다 네트워크 상에 있는 호스트들과 열려있는 포트들을 스캔하여 보여주는 도구라고 생각하면 된다. 네트워크 점검이나 포트 상태 확인에서 다양한 용도로 사용되고 있으니 중요한 명령어라고 기억하면 될 거 같다. 여기서 옵션인 '-p'를 추가하였는데 포트범위에 대한 스캔을 요구할 때 쓸 수 있는 옵션이다. 말로 표현하자면 포트번호 31000부터 32000까지 스캔해 줘 ~라는 말이 된다. 다시 본론으로 넘어가자면 총 5개의 포트가 열려있는 걸 볼 수 있다. 확인..
리눅스 워게임 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 언어로 작성되어 있는 중심 라이브러리 안에는, 기본적인 암호..