오늘도 힘내서 문제를 풀어봅시다
Bandit Level 21 → Level 22 문제 풀이
ssh bandit21@bandit.labs.overthewire.org -p 2220
password : NvEJF7oVjkddltPSrdKEFOllh9V1IBcq
Bandit Level 21 → Level 22 문제는 프로그램 시간 기반 작업 스케줄러인 cron에서 일정한 간격으로 자동 실행되고 있다고 하는데 /etc/cron.d/경로에서 어떤 명령어가 실행되고 있는지 확인해 보라고 합니다
우선 /etc/cron.d 경로에 들어가서 파일을 확인하여 다음 레벨의 비밀번호가 담겨 있어 보이는 cronjob_bandit22 파일을 읽어봅시다 해당 파일을 읽어보니 앞에 *(별) 표시가 있는데 이 *(별)은 앞에서부터 분, 시, 일, 월, 요일의 bandit22 사용자가 /usr/bin/cronjob_bandit22.sh 파일을 실행한다는 뜻입니다 이걸 crontab 파일 형식이라 부릅니다
crontab은 스케줄 시간과 실행할 파일의 경로를 관리하고, cron은 crontab을 실행하는 역할을 합니다
cron을 이용한 스케줄링은 시스템운영에 필요한 작업과, 사용자에게 필요한 작업 두 가지로 나뉩니다
크론(cron) : 미리 스케줄을 정하여 명령어와 프로그램, 작업 등을 실행할 수 있는 서비스입니다 (반복적으로 실행 가능)
시스템 운영에 필요한 작업 | root 권한으로 /etc/crontab에 등록해서 실행할 수 있습니다 |
사용자가 필요한 작업 | crontab 명령어를 통해 등록할 수 있습니다 |
이후 홈 디렉터리의 이동해 bandit22 사용자 실행파일 경로를 cat 명령어로 읽어보니 bandit22 내용이 tmp 파일 경로에 있는 걸 알 수 있습니다 이 경로를 다시 한번 읽어내면 다음 레벨의 패스워드를 획득할 수 있습니다
Bandit Level 22 → Level 23 문제 풀이
ssh bandit22@bandit.labs.overthewire.org -p 2220
password : WdDozAdTM2z9DiFEQ2mGlwngMfj4EZff
Bandit Level 22 → Level 23 문제도 이전 문제와 동일하게 cron에서 일정한 간격으로 자동으로 실행되고 있는데 /etc/cron.d/경로에서 어떤 명령어가 실행되고 있는지 확인하라는 문제입니다
이전 문제와 동일하게 /etc/cron.d 경로에 들어가서 bandit23 파일을 읽어와 실행 파일 경로를 복사합니다
여기서 echo 명령어를 실행해야 $mytarget 파일을 알 수 있는데 $myname 은 우리가 패스워드를 찾으려 하는 bandit23 계정입니다 이 계정을 $myname 위치에 넣고 echo 명령어를 실행해 주면 됩니다
echo 명령어는 문자열을 컴퓨터 터미널의 출력해 주는 명령어입니다
echo 명령어로 나온 $mytarget 값을 /tmp 경로에 넣고 읽어주면 bandit23의 패스워드를 획득할 수 있습니다