전체 글 42

Bandit Level 18 → Level 19

문제 : Home 디렉터리의 readme 파일에 PW가 있다고한다. 하지만 누군가 SSH로 로그인 할떄 로그아웃 되도록 .bashrc를 수정했다고한다. 문제풀이 : bandit18로 접속이 안되기 때문에 bandit17로 bandit18의 home 디렉터리를 확인했다. readme 파일과 .bashrc의 권한중 Group 권한에 bandit18이 있는걸 확인할 수 있다. bandit18의 PW는 알고 있어서 ssh -t 옵션으로 터미널 기능을 부여해서 readme 파일을 열어본다. password 입력창에 18의 PW를 입력하면 readme 파일의 내용이 출력된다. 정답 : IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x

Bandit Level 17 → Level 18

문제 : home 디렉터리의 password.old 하고 password.new 파일이 있다. 다음 레벨 PW는 .new 파일에 있으며 .old 와 .new 사이에서 변경된 유일한 행이라고 한다. 문제풀이 : diff 명령어를 통해 두 파일의 다른 점만 확인할 수 있다. .new 파일의 있는게 다음으로 넘어가기 위한 PW라고 했으니까 아래에 출력된것이 PW 이다. 문제에 Byebye!가 표시되면 bandit18에 로그인하려고 할떄 이것은 다음 레벨인 bandit19와 관련 있다고했다. 정답 : kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd

Bandit Level 16 → Level 17

문제 : localhost의 포트중 31000~32000 사이중 수신 대기하는 포트중 SSL을 사용하는것을 찾아서 현재 레벨의 PW를 보내야한다. 문제풀이 : nmap 을 이용해 localhost로 열려 있는 포트를 검색한다 SSL 접속을 해야되니까 openssl 명령어를 통해 열려 있는 포트에 접속을 해본다. 31046 포트는 접속되자마자 바로 접속이 끊킨다. 31518 포트는 접속이 됬으나 현재 레벨의 PW를 보냈지만 똑같이 출력만 될 뿐이였다. 31790 포트로 접속하고 현재 레벨 PW를 보내니까 Correct !하고 RSA 키가 출력됬다. /tmp에 내 임시파일을 만들고 key란 이름으로 RSA키를 복사해서 파일을 만들어준다. 이 키를 이용해 SSH 접속을 할려고했으나 PW를 치라고한다. 어디선가..

Bandit Level 15 → Level 16

문제 : SSL 암호화를 이용하여 localhost의 포트 30001에 현재 레벨의 암호를 적으면 다음 레벨의 PW를 준다고한다. 문제풀이 : SSL 암호화를 사용하기 위해 openssl 명령어를 사용한다. s_client 는 SSL/TLS를 사용하는 원격 호스트에 저복하기 위한 명령어다. openssl s_client -host [호스트] -port [포트번호] 접속해서 현제 레벨의 PW를 적으면 다음 레벨의 PW를 출력한다. 정답 : cluFn7wTiGryunymYOu4RcffSxQluehd

Bandit Level 13 → Level 14

문제 : /etc/bandit_pass/bandit14에 PW가 있지만 bandit14 사용자만 읽을 수 있다. 하지만 다음 레벨로 넘어갈 수 있는 SSH 키가 있다고 한다. 문제풀이 : home 디렉터리에 파일을 보니 sshkey.privae 파일이 있다 이 파일은 RSA private key라고 한다. 이 키를 이용하여 bandit14로 로그인을 한다. ssh 옵션 -i : RSA 인증을 위한 비밀 키를 읽어 올 아이덴티티 파일을 선택한다. banit14로 접속해서 /etc/bandit_pass/bandit14 파일을 확인해서 PW를 확인한다. 정답 : 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e

Bandit Level 12 → Level 13

문제 : 반복적으로 압축된 파일의 hex dump인 data.txt 파일에 PW가 있다고 한다. 문제풀이 : data.txt 파일을 열어보니 hex dump로 이루어진걸 볼 수 있다. 먼저 작업을 하기 위해 tmp에 디렉터리를 만들고 data.txt 파일을 복사해서 가져온다. 16진수 데이터를 바이너리 데이터로 변환하기 위해 xxd 명령어와 16진수 -> 바이너리 데이터로 변환하는 옵션인 -r 을 이용해 변환 시킨다. 그렇게 만든 data 파일의 파일종류를 확인해보니 gzip으로 압축되었다고 한다. gzip 압축을 푸는 옵션으로 -d 를 사용하여 압축을 풀려고했지만 실패했다. 이유는 확장자명이였다. gzip 파일의 압축을 풀때는 무조건 확장자가 .gz이여야된다. 파일의 이름을 data -> data.gz..