Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- overthewire bandit level 0
- overthewire bandit 문제풀이
- bandit 비밀번호
- 해킹
- 포인터와 배열
- sk루키즈
- sk shieldus rookies 23기
- overthewire 문제
- 네트워크정리
- Dreamhack
- bandit level 11 -> level 12 문제풀이
- overthewire bandit 문제
- 객체지향
- 공부기록
- 오블완
- AWS
- 네트워크문제
- 혼공네트
- 네트워크이론정리
- kbdinteractiveauthentication
- 데이터와 로직
- 보안
- 함수와 디버깅
- web hacking
- bandit 문제풀이
- bandit level
- 혼자공부하는네트워크
- 티스토리챌린지
- 정보보안
- 취약점진단
Archives
- Today
- Total
아임노드
[OverTheWire Bandit] Bandit Level 21 -> Level 22 문제풀이 (+cron(the time-based job scheduler)) 본문
[SK shieldus Rookies 23기] 공부 노트/OverTheWire Bandit 문제풀이
[OverTheWire Bandit] Bandit Level 21 -> Level 22 문제풀이 (+cron(the time-based job scheduler))
Noody 2024. 12. 16.OverTheWire Bandit
Level 21 -> Level 22
목표 : cron을 통해 실행되는 프로그램 이해
- cron에 대한 이해
- cron으로 작성된 파일 확인
풀이 방법
1. bandit21 서버 접속
ssh bandit21@bandit.labs.overthewire.org -p 2220
2. cron에 대한 이해
문제에서 아예 cron을 언급하고 있으니 먼저 cron이 무엇인지 알아보자.
Cron은 Unix/Linux 기반 운영 체제에서 사용하는 시간 기반 작업 스케줄러(the time-based job scheduler)이다.
정기적으로 반복되거나 특정 시간에 실행해야 하는 작업(스크립트, 명령어 등)을 자동화하는 데 사용됩니다. 시스템 관리 작업(예: 로그 정리, 백업, 업데이트 등)뿐만 아니라 사용자 정의 작업에도 널리 활용된다.
- cron의 스케즐
* * * * * bandit22 /usr/bin/cronjob_bandit22.sh
| | | | +--- 요일: 매일 (0-7, 모든 요일)
| | | +----- 월: 매월 (1-12, 모든 달)
| | +------- 일: 매일 (1-31, 모든 날짜)
| +--------- 시간: 매시간 (0-23, 모든 시간)
+----------- 분: 매분 (0-59, 모든 분)
예를 들어, cron의 스케줄이 아래와 같다고 한다면 다음과 같이 해석할 수 있다.
0 0 * * * /path/to/backup.sh
-> 매일 자정에 백업 스크립트 실행
0 9 * * 1 /path/to/email_script.sh
-> 매주 월요일 오전 9시에 이메일 전송
*/5 * * * * /path/to/cleanup.sh
-> (*/5)는 0, 5, 10, 15, ..., 55의 패턴을 의미
-> 즉, 매 5분 간격으로 작업 실행
3. cron으로 작성된 파일 확인
이제 cron 파일을 확인해보록 한다.
문제에서 'Look in /etc/cron.d/' 라고 하였으니 해당 경로에서 파일을 확인하고 읽어본다.
파일 내용은
/usr/bin/cronjob_bandit22.sh 이 스크립트가 매분마다 실행된다고 해석할 수 있다.
다시 파일 내용에 나와있는 경로의 쉘 스크립트 내용을 읽어보자.
cat /etc/bandit_pass/bandit22 > /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
여기서 리다이렉션(>) 은 명령어 출력 결과를 파일로 저장하거나 다른 명령어로 전달할 때 사용되므로,
여기서는 cat 명령어의 출력 결과를 파일(/tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv)로 저장한다.
확인해보면, /etc/bandit_pass/bandit22 경로를 읽기 권한이 없고
/tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv 경로에서는 다음 레벨의 패스워드가
출력되는 것을 확인할 수 있다.