본문 바로가기
Pwnable/Bandit

[Bandit Level 23->24] cron을 활용하자 (3)

by secumark 2022. 2. 3.
728x90

 

저 크론 그만 풀고 싶은데요..

 

 

NOTE: 내가.. 내가 SHELL script를 만들어야 한다. very big step...

NOTE2: 내 쉘 스크립트는 한 번 실행되면 지워지는거라 미리 복사해놓아야 한다.

 

오케이!!

 

 

 

일단 /etc/cron.d의 cronjob_bandit24 파일을 읽어보았고, 그 전 문제들과 코드는 동일했다.

 

 

 

cronjob_bandit24.sh을 읽어보았다. 

/var/spool/$myname에 있는 파일을 모두 지워버린다.. 현재 디렉토리랑 상위 디렉터리만 제외하고(?)

+ 만약 owner가 bandit23일때 말이다. 

이때 조건은 60초마다 지운다는 것 같다.

 

 

 

/var/spool에 가봤는데 bandit24 폴더가 있었다.

 

근데 이 폴더 안에는 권한이 없어서 ls -al 명령어 사용을 못 함.

 

 

 

그리고 cronjob_bandit24.sh 파일을 읽어봤는데

owner가 bandit23인..? 파일을 다 지우는.. 명령어였던거 같다.

 

 

여기서 중요한건 아까 위에서 나온 echo 명령어에 파일을 지우기 전에 실행을 먼저 한다고 써있었다는 것이다.

그러니까 우리가 쉘을 만들어서 /var/spool/bandit24 폴더에 넣으면

이 폴더에 있던 모든 파일이 실행된다는건데,

아까 봤듯이 bandit24에는 내 권한으론 무슨 파일이 있는지도 모르고 실행이 안되지만 cron 명령어에 의해서 내가 만들어놓은 파일을 실행할 수 있게 된다.

그러니까 비밀번호를 알고 싶으면 cat /etc/bandit_pass/bandit24 > /tmp/내가 만든 폴더로 옮기면 되겠다.

 

그전에 /tmp 폴더에 가서 나만의 폴더를 하나 만들고, 거기서 쉘을 짠 다음, 그 파일을 /var/spool/bandit24에 옮긴 뒤,

1분만 기다리면 /tmp/~에 비밀번호가 추가되어 있을 것이다.

 

 

 

+ pass뒤에 .txt 확장자 추가해줬음

 

나는 /tmp 아래에 band라는 폴더를 만들었고, tik.sh이라는 쉘 스크립트를 생성해서 다음과 같이 코드를 짜줬다.

 

 

 

그리고 얘를 /var/spool/bandit24 폴더에 옮겨주고 1분 기다려..야되는데

생각해보니까 권한 변경을 안해줬다.

 

bandit23만.. 쓸 수 있음

 

 

chmod 를 사용해서 쓰기 권한을 줘보자.

 

 

근데 1분 지나도 안돼서 .. 고민하다가 디렉터리에 문제가 있는게 아닌가 싶어.. band 폴더 ls -al을 실행해봤다

 

 

그렇다.. 쓰기 권한이 없다

 

 

 

최강의 권한을 쥐어줌

 

다시 cp 명령어 주고... 1분 기다렸다..

 

 

 

 

어머!!!!!!

 

눈물

 

 

 

 

하지만 역대급 문제는 바로 24단계라는거.

 

 

728x90

댓글