Bandit Level 23 입니다. 이번에도 cron 문제네요.
cron에서 프로그램이 반복 실행되고 있고.. /etc/cron.d 디렉터리를 확인하라고 합니다.
이 문제를 해결하기 위해선 쉘 스크립트를 직접 작성해야 한다고 하네요!
cat /usr/bin/cronjob_bandit24.sh 파일입니다.
중간에 힌트가 있네요. /var/spool/$myname/foo 디렉터리의 모든 것을 실행한 후 삭제한다. 라는 뜻 같은데요
그 밑에 코드는.. 그걸 실행시키는 코드 같습니다.
해당 디렉터리의 모든것을 bandit24의 권한으로 실행 후 삭제한다. 그럼 어떻게 해야 할까요.
bandit24가 직접 자신의 password를 우리에게 전달하도록 하면 되겠는걸요?
간단한 프로그램을 만들어 봅시다.
아! 그 전에, /tmp 경로에 개인 디렉터리를 만드는 것 잊지 마세요.
#!/bin/bash
cat /etc/bandit_pass/bandit24 > /tmp/sunkue23/bandit24pass.txt
bandit24의 password를 제가만든 폴더에 저장하도록 하는 코드입니다.
이제 이 프로그램을 /var/spool/bandit24/foo 경로에 복사해주도록 합시다.
단, 그 전에!!
공격 프로그램과, 현재 디렉터리의 권한을 바꿔줘야 합니다.
bandit24 계정이, 우리가 만든 프로그램을 실행할 수 있도록 프로그램 실행권한과, 우리의 디렉터리에 파일을 저장할 수 있도록 디렉터리 쓰기권한을 줘야 합니다.
해당 권한만 딱 잘라 줘도 되지만, 편의상 777로 주도록 하겠습니다.
제 프로그램 exploit.sh 파일과 sunkue23 디렉터리의 권한을 변경하였습니다.
이제 프로그램을 옮겨주기만 하면 됩니다.
cp exploit.sh /var/spool/bandit24/foo/
cp : 파일을 복사하는 명령어
파일을 옮긴 후 ls -l 명령으로 디렉터리를 조회했지만 아직 password가 전달되지 않았습니다.
조금만 기다려 봅시다.
1분도 지나지 않아 password가 도착했습니다!
이렇게 직접 프로그램을 만들어 password를 획득할 수 있었습니다.
# 만약 몇 분이 지나도 password 파일이 생성되지 않는다면, 프로그램 코드가 잘못되었거나 권한설정이 잘못되었을 확률이 높습니다!!
'Hacking > [System]Bandit' 카테고리의 다른 글
OverTheWire [Bandit Level 25] (0) | 2023.04.02 |
---|---|
OverTheWire [Bandit Level 24] (2) | 2023.04.02 |
OverTheWire [Bandit Level 22] (0) | 2023.04.02 |
OverTheWire [Bandit Level 21] (0) | 2023.04.02 |
OverTheWire [Bandit Level 20] (0) | 2023.04.02 |