사용 툴: cygwin
1) 문제
프로그램은 시간 기반 작업 스케줄러인 cron으로부터 일정한 간격으로 자동으로 실행되고 있다. /etc/cron.d/에서 구성을 살펴보고 실행 중인 명령을 확인해라..
NOTE: 다른 사람들이 쓴 shell 스크립트를 보는 것은 매우 유용한 기술이다. 이 스크립트는 의도적으로 읽기 쉽게 만들어진다. 이 기능이 무엇인지 이해하는 데 문제가 있는 경우 그냥 실행해 봐라..
2) 문제풀이
bandit22로 로그인 해 준 후, 일단 홈디렉터리를 살펴보았다.
bandit22@bandit:~$ ls -al
total 20
drwxr-xr-x 2 root root 4096 Oct 16 2018 .
drwxr-xr-x 41 root root 4096 Oct 16 2018 ..
-rw-r--r-- 1 root root 220 May 15 2017 .bash_logout
-rw-r--r-- 1 root root 3526 May 15 2017 .bashrc
-rw-r--r-- 1 root root 675 May 15 2017 .profile
bandit22@bandit:~$ cd /etc/cron.d
bandit22@bandit:/etc/cron.d$ ls -al
total 28
drwxr-xr-x 2 root root 4096 Dec 4 01:58 .
drwxr-xr-x 88 root root 4096 Aug 3 2019 ..
-rw-r--r-- 1 root root 189 Jan 25 2017 atop
-rw-r--r-- 1 root root 120 Oct 16 2018 cronjob_bandit22
-rw-r--r-- 1 root root 122 Oct 16 2018 cronjob_bandit23
-rw-r--r-- 1 root root 120 Oct 16 2018 cronjob_bandit24
-rw-r--r-- 1 root root 102 Oct 7 2017 .placeholder
bandit22@bandit:/etc/cron.d$
하지만 별다른 단서가 보이지않아 문제에서 언급했던 /etc/cron.d로 가보았다.
bandit22@bandit:/etc/cron.d$ cat cronjob_bandit23
@reboot bandit23 /usr/bin/cronjob_bandit23.sh &> /dev/null
* * * * * bandit23 /usr/bin/cronjob_bandit23.sh &> /dev/null
bandit22@bandit:/etc/cron.d$ cat /usr/bin/cronjob_bandit23.sh
#!/bin/bash
myname=$(whoami)
mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)
echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget"
cat /etc/bandit_pass/$myname > /tmp/$mytarget
bandit22@bandit:/etc/cron.d$
바로 직전 문제랑 비슷한 양상이다...
재부팅할 때마다, 매순간마다 /usr/bin/cronjob_bandit23.sh이 파일이 휴지통으로 버려진다고 한다.
그래서 cat으로 열어보았다.
#!/bin/bash #bash 쉘을 사용한다
|
myname과 mytarget은 저기서 변수처럼 쓰이고 있다.
맨 마지막 echo에서 말했듯이 패스워드 파일은 /tmp/$mytarget에 복사되어있다고 한다.
우리는 mytarget에 해당하는 값을 구한 뒤 cat으로 복사된 패스워드 파일을 보면 된다.
bandit22@bandit:/etc/cron.d$ echo I am user bandit23 | md5sum | cut -d ' ' -f 1
8ca319486bfbbc3663ea0fbe81326349
bandit22@bandit:/etc/cron.d$ cat /tmp/8ca319486bfbbc3663ea0fbe81326349
jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n
bandit22@bandit:/etc/cron.d$
bandit22@bandit:/etc/cron.d$ ssh bandit23@localhost
bandit23@bandit:~$ id
uid=11023(bandit23) gid=11023(bandit23) groups=11023(bandit23)
bandit23@bandit:~$
끝!
'WAR GAME > Bandit' 카테고리의 다른 글
[OverTheWire: Bandit] level24 -> level25 (2) | 2020.03.07 |
---|---|
[OverTheWire: Bandit] level23 -> level24 (6) | 2020.03.03 |
[OverTheWire: Bandit] level21 -> level22 (0) | 2020.03.01 |
[OverTheWire: Bandit] level20 -> level21 (0) | 2020.03.01 |
[OverTheWire: Bandit] level19 -> level20 (0) | 2020.03.01 |