Hacking/[System]Bandit

OverTheWire [Bandit Level 23]

양선규 2023. 4. 2. 06:01
728x90
반응형

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로 주도록 하겠습니다.

 

 

777권한을 부여했다

 

제 프로그램 exploit.sh 파일과 sunkue23 디렉터리의 권한을 변경하였습니다.

이제 프로그램을 옮겨주기만 하면 됩니다.

 

 

기다리자

 

cp exploit.sh /var/spool/bandit24/foo/

 

cp : 파일을 복사하는 명령어

파일을 옮긴 후 ls -l 명령으로 디렉터리를 조회했지만 아직 password가 전달되지 않았습니다.

조금만 기다려 봅시다.

 

 

password가 도착했다

 

1분도 지나지 않아 password가 도착했습니다!

 

 

password 획득

 

이렇게 직접 프로그램을 만들어 password를 획득할 수 있었습니다.

 

# 만약 몇 분이 지나도 password 파일이 생성되지 않는다면, 프로그램 코드가 잘못되었거나 권한설정이 잘못되었을 확률이 높습니다!! 

728x90
반응형

'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