목록분류 전체보기 (151)
김승현
문제 다음 단계로 가기 위해서 우리는 홈 디렉토리에 있는 setuid binary를 사용해야 한다고 한다. 인자 없이 실행해서 어떻게 사용하는지 알아내라고 한다. password는 저번처럼 /etc/bandit_pass있다고 한다. 이번에는 Level20을 가기 위한 password니까 /etc/bandit_pass/bandit20에 있을 것 같다. 풀이 ls -al을 해보면 평소에 보던 것과 완전히 다른 느낌의 bandit20-do 파일을 볼 수 있다. file 명령어를 사용해보니까 setuid ELF 파일이라고 한다. ELF 파일 : Excutable Linkable Format의 줄임말로 리눅스 기반 시스템의 기본 바이너리 형식이다. 이름대로 실행가능하고 링킹이 가능한 파일이다. 문제에서 setui..
문제 다음 단계로 가기 위한 password는 홈디렉토리에 있는 readme라는 파일에 있다. 근데 누군가 .bashrc를 수정해서 접속하려고 하면 바로 내보낸다고 하는 것 같다. .bashrc는 로그인할 때 실행되는 스크립트인데 그렇기 때문에 로그인 해서 접속하자마자 팅기게 하는 문제인것 같다. 풀이 (원래 PuTTY로 풀었는데 이번엔 vmware의 우분투로 풀었다....) 접속하자마자 Byebye !가 뜨면서 접속을 종료시킨다. PuTTY로 항상 해왔는데 이거 때문에 이번엔 이거로 하게 됐다...ㅜ 그냥 간단하게 ssh를 사용할 때 뒤에 사용할 명령어를 붙이면 바로 된다고 한다. 그렇게 바로 aw........C의 password를 얻을 수 있었다..... 간단하게.... 다음 문제 https://k..
문제 홈디렉토리에 passwords.old와 passwords.new 총 두 개의 파일이 있다고 한다. passwords.old와 passwords.new 중 한 줄의 내용이 바꼈는데 그 바뀐 게 password라고 한다. NOTE : 만약 이 레벨을 풀고 bandit18로 접속하려고 할 때 Byebye! 본다면 다음 그 다음 bandit19와 관련이 있다고 한다. 풀기 위해 필요한 명령어들 목록을 보면 다른 건 다 익숙한데 diff라는 새로운 명령어가 생겼다. difference에서 유래된 명령어 같은데 두 파일의 차이점을 알아내야 하는 지금 필요한 명령어 같아서 구글링 해봤다. diff : differences의 줄임말로 두 파일 사이의 내용을 비교하는 명령어이다. 옵션 -c : 두 파일간의 차이점 ..
풀이 localhost의 31000~32000 포트 사이에서 하나의 서버에 이번 단계의 password를 입력하면 된다고 하는 것 같다. 문제를 보고 하나하나 다 시도를 해봐야 되나..?라고 생각했는데 필요한 명령어에서 nmap이라는 명령어를 찾아보니까 여기서 쓰면 될 것 같은 유용한 기능이 되게 많아 보였다. nmap network mapper의 줄임말로 고든 라이온(Gordon Lyon)님께서 개발한 오픈 소스 툴이다. 네트워크 탐색과 보안 감사를 검사하며 네트워크 지도도 만들 수 있다. 네트워크 운영이나 취약점을 발견할 때 유용하기 때문에 꼭 내용을 숙지해두는 게 좋다고 한다. nmap의 정보와 옵션에 대해서 찾아본 블로그입니다. 되게 내용이 많으니까 공부하실 때 참고 하시면 좋을 거 같아요! Nm..
문제 다음 단계로 가기 위해서 localhost 포트 30001에 현재 레벨의 password를 입력해야 된다고 하며 SSL 암호화를 이용하라고 한다. 주어진 명령어를 보면 openssl이 있는데 딱봐도 이 명령어를 사용하면 될 것 같다. 풀이 ls -al을 해보면 기존에 항상 있던 폴더들 외에 bandit14.password라는 파일이 있다. 파일을 실행해보면 bandit14의 password가 이름대로 있다. 근데 지금 푸는데 필요한 건 15의 password인데 왜 있지..? 일단 넘어가자 혹시나 해서 ssl, telnet, nc 모두 사용해 봤는데 당연히 되지 않는다. openssl을 사용하기 위해 어떤 옵션들이 있는지 보고 있는데 중간에 익숙해 보이는 s_client라는 단어가 있었다. 잘 떠올..
문제 로컬 호스트의 port 30000에 현재 단계의 password를 입력해서 다음 단계로 갈 수 있다는 뜻인 것 같다. 여기 나와있는 ssh, nc, telnet 모두 사용해서 접속할 수 있다. 풀이 ls -al 해보면 숨겨진 .ssh라는 디렉토리가 있는 것을 볼 수 있고 거기엔 authorized keys라는 파일이 있다. file 명령어를 사용해보면 OpenSSH RSA public key라고 뜬다. 이 파일도 저번 13 -> 14단계의 sshkey.private 파일과 마찬가지로 힌트는 얻을 게 없어보인다. 문제에서 localhost의 30000포트로 가보라고 했으니 ssh, telnet, nc 명령어를 이용해서 접속해보겠다. telnet : 다른 컴퓨터에서 특정 컴퓨터로 원격접속을 할 수 있도..
문제 비밀번호는 /etc/bandit_pass/bandit14에 있고 이 파일은 bandit14라는 유저만 읽을 수 있다. 우리는 private SSH key를 얻어야 된다고 한다. hostname은 localhost라고 한다. 문제에 ssh가 적혀있는 것과 사용할 명령어 리스트 중에 ssh가 있는 것으로 볼 때 ssh 명령어를 사용하면 될 것 같다. ssh : secure shell의 줄임말로 라이언트와 서버 간의 연결에 사용되는 암호화 네트워크 프로토콜이다. 풀이 u/gid는 모두 bandit13이고 우리가 읽을 수 있는 sshkey.private라는 파일이 있는 걸 볼 수 있다. file 명령어를 해당 파일에 사용해보면 PEM RSA private key라고 한다. 혹시 힌트 같은 게 있을까 싶어서..
문제 data.txt에 다음 단계로 가는 password가 있는데 반복적으로 압축된 파일의 hexdump라고 한다. 이 단계에서 mkdir을 이용해서 /tmp 아래에 디렉토리를 만드는 게 작업하는데 좋다고 합니다. 디렉터리 제작 예시 mkdir /tmp/myname123. 위와 같이 만들고 파일을 cp명령어를 이용해서 복사하고 mv를 이용해서 이름을 고치라고 하는 것 같습니다. hexdump란? 컴퓨터의 저장장치에 있는 데이터를 16진법으로 출력하는 방법 xxd : 파일을 hexdump로 만드는 명령어 -r 옵션을 이용해서 16진수를 binary로 만드는 것도 가능함 mkdir : 디렉터리를 새롭게 생성하는 명령어 cp : copy의 줄임말로 파일을 복사하는 명령어 mv : move의 줄임말로 파일을 이..
문제 password는 data.txt에 있고 소문자(a-z), 대문자(A-Z)들은 13번 이동됐다? 이런 의미인 것 같다. 구글에 찾아보니까 rot13이라는 카이사르 암호의 일종으로 영어 알파펫을 13글자씩 밀어서 만드는 것이고 흔히 ROT-13으로 불린다고 한다. 그림으로 설명하면 A는 13칸 이동해서 N자리에, N은 12칸을 이동하면 Z의 자리까지 이동하는데 이때 제일 앞자리인 A로 이동해서 숫자를 이어서 센다. O의 경우 Z의 자리까지 11칸 이동했기 때문에 A로 이동하면 12칸 이동, B로 이동하면 13칸을 이동했기 때문에 그 자리에 위치하게 된다. 사용할 명령어에서 tr이라는 것이 있는데 이건 특정 문자들을 새로운 문자들로 치환해주는 명령어이기 때문에 이 명령어를 이용해서 해결하면 될 것 같다..
문제 password는 data.txt에 있고 base64로 인코딩 되어있다고 한다. 여기서 base64란 binary data들을 일련의 문자열로 바꾸는 인코딩 방식이다. 명령어를 통해 base64를 디코딩할 수 있지만 간단하게 사이트를 통해서도 디코딩할 수도 있다. 참고 사이트 Base64 - Wikipedia From Wikipedia, the free encyclopedia Group of binary-to-text encoding schemes using 64 symbols (plus padding) In computer programming, Base64 is a group of binary-to-text encoding schemes that represent binary data (more..