일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리챌린지
- 오블완
- bandit level 11 -> level 12 문제풀이
- 보안
- 네트워크이론정리
- Dreamhack
- sk루키즈
- 혼자공부하는네트워크
- overthewire bandit 문제
- overthewire bandit level 0
- 해킹
- 혼공네트
- 공부기록
- 네트워크문제
- bandit 비밀번호
- overthewire bandit 문제풀이
- AWS
- 취약점진단
- 네트워크정리
- 객체지향
- 데이터와 로직
- kbdinteractiveauthentication
- bandit level
- 포인터와 배열
- 함수와 디버깅
- web hacking
- 정보보안
- overthewire 문제
- bandit 문제풀이
- sk shieldus rookies 23기
- Today
- Total
아임노드
[OverTheWire Bandit] Bandit Level 23 -> Level 24 문제풀이 (+cron.d 스크립트를 분석하여 파일 생성/복사/읽기) 본문
[OverTheWire Bandit] Bandit Level 23 -> Level 24 문제풀이 (+cron.d 스크립트를 분석하여 파일 생성/복사/읽기)
Noody 2024. 12. 19.OverTheWire Bandit
Level 23 -> Level 24
목표 : cron.d을 분석하고 스크립트를 이해한 상태로 패스워드 찾기
- bash 셸 내용 접근 및 실행 (패스워드 파일 복사)
- 실행 권한 부여
- 잠시 기다렸다가 파일 내용 확인
풀이 방법
1. bandit23 서버 접속
ssh bandit23@bandit.labs.overthewire.org -p 2220
2. bash 셸 내용 확인까지 접근하기
접근에 관련해서는 이전 문제와 동일하므로
자세히 정리하지 않도록 하겠다.
파일 내용의 결과 목적을 간단히 요약하자면,
- /var/spool/$myname/foo에 업로드된 스크립트 파일을 실행 후 삭제하는 자동화 작업을 수행
- 파일의 소유자가 bandit23인 경우:
- 파일을 60초 동안 실행(시간 초과 시 강제 종료)
- 실행 후 파일을 삭제
여기까지 확인
3. bash 셸 내용대로 진행하기
가이드에 따라 셸에 해당 경로로 이동한다.
cd /var/spool/bandit24/foo
다음 명령어에 대해서 하나하나 살펴보겠다.
echo "cat /etc/bandit_pass/bandit24 > /tmp/pass24.txt" > pass.sh
ehco
- echo 명령어는 뒤에 오는 문자열을 출력
- 여기서는 cat /etc/bandit_pass/bandit24 > /tmp/pass24.txt라는 문자열을 출력
"cat /etc/bandit_pass/bandit24 > /tmp/pass24.txt"
- cat /etc/bandit_pass/bandit24: 파일 /etc/bandit_pass/bandit24의 내용을 출력
- >: 출력된 내용을 파일로 저장(덮어쓰기)
- /tmp/pass24.txt: 출력 내용을 저장할 파일의 경로(임시 디렉토리인 /tmp에 생성됨)
마지막으로,
pass.sh라는 파일이 생성되고 그 안에 cat /etc/bandit_pass/bandit24 > /tmp/pass24.txt라는 내용이 저장된다.
즉, 패스워드 파일을 pass24.txt 파일에 복사하여 저장한다.
4. 실행 권한 부여
실행 권한이 없으므로 권한을 부여하도록 하겠다.
chmod 777 pass.sh -> 실행권한 부여
ls pass.sh -> 파일 존재 확인
5. 실행 주기에 따른 잠시 기다렸다가 파일 내용 확인
cron.d의 실행 주기(60초)가 있으므로 복사한 파일은 다음 실행주기에 처리된다.
따라서 파일을 복사한 후 다음 주기까지 기다렸다가 내용을 읽으면 다음 패스워드를 확인할 수 있다.
* 기다리는 시간은 30초내로 계속 cat 명령어로 확인해보자.
* 파일을 바로 읽으면 실행 주기에 따라 위와 같이 파일 내용을 확인할 수 없다.
자료를 찾아도 bandit 문제가 지속적으로 업데이트 되는 건지 패스워드도 몇 달 전 것과 다른 것을 보면
이전 문제풀이와 완전히 겹치진 않는 것 같다. 나름 이해를 하고 변형을 해야하는 부분이 있다.