bandit Write-up 7

Bandit Level 31 ~ 33

Bandit Level 31 → Level 32 역시나 동일한 git 문제이다. 이번에는 홈디렉토리에 .gitconfig 라는 파일이 있다. 내용을 보니 email 계정과 name이 적혀져있다. 아직까지는 무슨 힌트인지 알 수가 없다. git을 불러오고 working directory에 있는 파일들의 내용을 확인해보았다. 이번 단계에서는 파일을 만들고 원격 저장소로 push 해야한다고 한다. 'README.md' 에 주어진 내용대로 파일을 생성하고 'add' 했더니 에러메시지가 발생했다. 아까 봤던 '.gitignore' 파일에 '*.txt'라는 내용이 적혀있었느데 이게 모든 .txt 파일을 무시한다는 내용이었다. '.gitignore' 파일을 수정하여 '*.txt' 를 주석처리 한 뒤 다시 'add'를..

bandit Write-up 2023.12.13

Bandit Level 26 ~ 30

Bandit Level 26 → Level 27 지난 포스팅에서 bash쉘로 bandit26에 접속 성공했었다. bandit27 계정 소유의 setuid가 설정된 파일이 있어서 너무나 쉽게 다음 패스워드를 얻을 수 있었다. Bandit Level 27 → Level 28 이번에는 git을 이용한 문제이다. 2220 포트의 ssh://bandit27-git@localhost/home/bandit27-git/repo에 있는 git 저장소를 복사하고 다음 패스워드를 찾아야한다. 먼저 git을 불러올 폴더를 하나 만든 다음 git clone을 이용해서 저장소를 복사해온다. 복사해올 때 패스워드를 물어보는데 bandit27 패스워드를 입력하면 된다. 복사가 완료되고 해당 경로에 들어가보니 README라는 파일이 ..

bandit Write-up 2023.12.10

Bandit Level 21 ~ 25

Bandit Level 21 → Level 22 cron에 의해 자동으로 프로그램이 일정한 간격으로 실행되고 있고 /etc/cron.d/ 에서 어떤 명령이 실행되고 있는지 확인해보라고 한다. /etc/cron.d 디렉토리에 들어가서 어떤 파일들이 있는지 확인해보았다. 여러 스케줄링 작업이 있는데 우리가 필요한 bandit22의 cron을 살펴보니 매 분마다 cronjob_bandit22.sh 라는 스크립트를 실행하고 표준 출력과 표준 오류를 모두 /dev/null로 리다이렉션하여 출력을 무시하는 작업이 등록되어있다. '&> /dev/null' 는 출력을 생성하지 않고 명령을 조용히 실행하기 위해 종종 수행된다고 한다. 공격자가 root권한으로 cron에 작업을 등록하여 원하는 데이터를 지속적으로 탈취할 ..

bandit Write-up 2023.12.05

Bandit Level 16 ~ 20

Bandit Level 16 → Level 17 localhost의 31000~32000번 사이 특정포트에 현재 패스워드를 제출하면 다음 단계를 위한 자격증명을 받을 수 있다고 한다. 먼저 서버 포트 중 열려있는 포트를 찾고 그 중 SSL를 사용하는 포트를 찾아야한다. 'nmap' 명령어를 활용하여 포트스캔한 결과 범위 내에 5개 포트가 열려 있는 것을 확인하였다. 여기서 SSL을 사용하는 포트가 무엇인지 openssl 명령어에서 포트만 변경해가면서 하나씩 접속해 보기로 했고 1개 포트에서 패스워드를 입력하고 인증서를 얻을 수 있었다. 이 'RSA PRIVATE KEY'라고 적혀 있는 인증서로 뭘 할수 있을까? 이전 단계에서 sshkey.private 이라는 ssh 개인키를 통해 다른 계정으로 접속하는 ..

bandit Write-up 2023.12.05

Bandit Level 11 ~ 15

Bandit Level 11 → Level 12 역시 data.txt 파일 안에 패스워드가 있는데 모든 소문자와 대문자가 13 위치만큼 회전되었다??? 제대로 해석한건지 번역기도 돌려보고 했는데 무슨 말인지 도통 이해할 수 없다. 'Helpful Reading Material'에 적혀있는 'Rot13 on Wikipedia'가 힌트인 것 같다. 음.. 퀴즈 같은 곳에서 이런 암호방식으로 푸는 걸 본 적 있는 것 같다. 알파벳 순으로 13번 뒤 문자로 치환해야한다는건데.. 어떻게하징?? 명령어 힌트 중에 tr 명령어가 일반적으로 길이가 동일한 두 문자 집합을 허용하며 첫 번째 세트의 문자를 두번째 세트의 해당 문자로 대체한다고 한다. 그럼 'a-z' 문자세트를 알파벳 순으로 13번 뒤로 이동한 'n-m'으..

bandit Write-up 2023.12.04

Bandit Level 6 ~ 10

Bandit Level 6 → Level 7 이번에는 서버 안에서 user bandit7과 group bandit6가 소유하고 크기가 33 bytes인 것을 찾아야한다. user, group, size 옵션을 통해 검색한 결과 권한이슈로 인한 에러메시지 사이로 파일 하나를 찾을 수 있다. 이번에는 금방 눈에 들어와서 찾을 수 있었지만 에러메시지가 너무 많아서 정상적으로 검색된 파일을 찾기가 힘들다면? 에러메시지를 제외하고 깔끔하게 찾을 순 없을까? 위와 같이 '2> /dev/null' 문구를 추가하니 에러메시지가 사라지고 우리가 찾고자 하는 파일만 확인할 수 있었다. 이게 무슨 의미인지 알아보자. 표준 스트림 표준 입력 : stdin, 파일 디스크립터 0 표준 출력 : stdout, 파일 디스크립터 1 ..

bandit Write-up 2023.12.01

Bandit Level 0 ~ 5

bandit Level 21까지 풀다가 정리가 필요할 듯해서 Write-up을 써보기로 했다 지금까지 풀어왔던거 복기도 할겸 처음부터 써보자! (putty 설정 및 bandit0은 생략하고 적어보려고 한다.) Bandit Level 0 → Level 1 영어... 읽기 힘들다.. 홈디렉토리에 위치한 readme라는 파일에 다음 단계를 위한 비밀번호가 저장되어 있다고 한다. 기초적인 리눅스 명령어는 알고있기에 바로 해결했다. Next Level로 고고! Bandit Level 1 → Level 2 홈디렉토리에 '-' 라는 특수문자로 된 이름의 파일에 비밀번호가 저장되어 있다고 한다. ls 명령어로 파일을 확인해본다. '-' 라는 파일이 하나있다. 이전단계처럼 "cat -" 를 입력해도 반응이 없고 보통 문..

bandit Write-up 2023.11.27