A program is running automatically at regular intervals from cron, the time-based job scheduler. Look in /etc/cron.d/ for the configuration and see what command is being executed.
어떤 프로그램이 cron에 의해서 정기적으로 자동 실행 된다고 합니다.
/etc/cron.d/ 경로에 가면 cron에 대한 설정과 실행되는 명령어를 볼 수 있나 봅니다.
한 번 풀어볼까요?
이 문제 풀기 전에 cron에 대해 알아야 할 것 같습니다.
📌 cron 이란
시간이 되면 자동으로 어떤 명령을 실행해주는 시스템
즉, 리눅스에서 예약 작업을 할 수 있게 해주는 도구!
📌 cron의 구성
✅ crontab(크론탭): cron에 어떤 작업을 언제 실행할 지 적는 설정 파일로
사용자 개인이 설정한 작업
✅ /etc/cron.d: 시스템 전체 작업(root 또는 관리자만 설정 가능)
📌 둘의 기능은 똑같은데 왜 나눠놨을 까요?
권한과 책임 분리를 하기 위함!
이제 대충 뭔지 알았으니 문제를 풀어보지요!
/etc/cron.d/ 경로로 이동하여 어떤 파일들이 있는지 봐야할 것 같습니다.
bandit21@bandit:/etc/cron.d$ ls -l
total 24
-rw-r--r-- 1 root root 120 Sep 19 2024 cronjob_bandit22
-rw-r--r-- 1 root root 122 Sep 19 2024 cronjob_bandit23
-rw-r--r-- 1 root root 120 Sep 19 2024 cronjob_bandit24
-rw-r--r-- 1 root root 201 Apr 8 2024 e2scrub_all
-rwx------ 1 root root 52 Sep 19 2024 otw-tmp-dir
-rw-r--r-- 1 root root 396 Jan 9 2024 sysstat
cronjob_bandit22이라는 파일이 있군요!
뭔가 비밀번호와 연관된 파일일 것 같습니다.
cat 명령어로 내용을 확인해 보겠습니다.
bandit21@bandit:/etc/cron.d$ cat cronjob_bandit22
@reboot bandit22 /usr/bin/cronjob_bandit22.sh &> /dev/null
* * * * * bandit22 /usr/bin/cronjob_bandit22.sh &> /dev/null
두 가지의 작업이 보이는데요!
위의 작업(@reboot)은 시스템이 부팅될 때 bandit22의 권한으로 /usr/bin/cronjobbandit22.sh을 실행한다는 뜻입니다.
이에 반해 아래 작업(* * * * *)은 매 분마다 bandit22의 권한으로
/usr/bin/cronjob_bandit22.sh을 실행한다는 뜻이지요!
**_cronjob_bandit22.sh**가 어떤 스크립트인지 알아야 겠군요.
bandit21@bandit:/etc/cron.d$ cat /usr/bin/cronjob_bandit22.sh
#!/bin/bash
> chmod 644 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
cat /etc/bandit_pass/bandit22 > /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
두 줄의 스크립트가 보이네요.
하나씩 해석해 보겠습니다.
📌 chmod 644 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
✅ /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv 파일의 권한을 644로 설정한다는 뜻입니다. 이 말은 즉, 모든 사용자가 해당 파일을 읽어 볼 수 있는 것이지요.
📌 cat /etc/bandit_pass/bandit22 > /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
✅ bandit22의 비밀번호를 읽어서 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv의 파일로 저장하는 것입니다.
즉, bandit22 계정의 비밀번호는 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv 저장될 것이며, 이 파일은 모든 사용자가 읽을 수 있을 것 입니다.
bandit21@bandit:/etc/cron.d$ cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
tRae0UfB9v0UzbCdn9cY0gQnds9GF58Q
비밀번호 얻기 성공!