[ftz] hackerschool level2 풀이

l hackerschool level2 풀이

실행 환경 : VMware Workstation 14 Player, Red Hat Linux 9.0

참고 도서 : 문제 풀이로 배우는 시스템 해킹 테크닉

 

** 공부를 하면서 기록하는 내용이다 보니 틀린 내용이 있을 수도 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사드리겠습니다. **


login as: level2
level2@192.168.146.128's password:

 

 

level2 문제의 아이디인  level2 와 password인   hacker or cracker 를 입력하여 level2의 유저로 접속합니다.

 

 

[level2@ftz level2]$ ls -l
total 12
-rw-r--r--    1 root     root           60 Mar 23  2000 hint
drwxr-xr-x    2 root     level2       4096 Feb 24  2002 public_html
drwxrwxr-x    2 root     level2       4096 Jul  8 02:08 tmp

 

 

 ls -l  명령어를 사용하여 현재 위치( /home/level2 ) 아래에 있는 디렉터리의 목록을 확인합니다.

목록들 중 hint 파일을 읽어 어떤 식으로 문제를 풀어야 하는지 보도록 하겠습니다.

 

 

[level2@ftz level2]$ cat hint

텍스트 파일 편집  중 쉘의 명령을 실행시킬 수 있다는데...

 

 

cat 명령어를 사용하여 hint 파일을 확인해본 결과 '텍스트 파일 편집  중 쉘의 명령을 실행시킬 수 있다는데...'라는 힌트를 볼 수 있습니다.

 

 

[level2@ftz level2]$ find / -user level3 -perm +4000 2>/dev/null
/usr/bin/editor

 

 

level1 문제 풀이를 할 때와 마찬가지로 level3 권한의 setuid가 결려있는 파일을 찾았습니다.

 

 

[level2@ftz level2]$ ls -l /usr/bin/editor
-rwsr-x---    1 level3   level2      11651 Sep 10  2011 /usr/bin/editor

 

실행파일을 확인해보면 setuid가 설정되어 있는 것을 볼 수 있고, 따라서 level2 사용자가 level3 사용자의 권한으로 파일을 실행시킬 수 있습니다.

 

 /usr/bin/editor  명령으로 실행파일을 실행시키게 되면 vi 편집기 화면을 볼 수 있습니다. vi 편집기에서 명령어를 실행시켜 보는 법은 vi에 처음 들어간 상태라면  :[명령어] 를 사용하여 명령 실행을 할 수 있습니다. 만약 편집기에 무엇인가 입력을 했다면 ESC키를 눌러 명령 모드로 돌아갑니다. 그 후 똑같이 :[명령어]를 사용하여 원하는 명령어를 실행합니다. 즉 명령 상태에서 콜론 상태로 가는 것입니다.

 

위의 방법뿐만 아니라  :![명령어] 의 경우도 vi 화면에서 명령을 실행하는 방법인데 이 경우 vi를 잠시 중단하고, 프롬프트 화면에서 명령에 대한 결과를 띄워줍니다. 

 

 

l 궁금한 점

더보기

명령어 실행 시 :!를 써야만 실행이 되는 명령이 있고, :만 써도 실행이 되는 명령이 있던데 차이를 아시는 분은 댓글로 남겨주시면 감사드리겠습니다. 예를 들어, pwd와 sh의 경우 :만 사용해도 되고, /bin/bash나 id는 :!를 사용해야 실행이 가능합니다.

 

~
~
~
~
~
~
~
~
:pwd

 

 

위와 같이 입력을 한 뒤 enter키를 누르게 되면 /home/level2가 보일 것입니다. 그럼 이제 vi 환경에서 명령어를 실행시키는 법을 알았으니 /usr/bin/editor 실행했을 때 level3의 권한으로 실행되는지 확인해보도록 하겠습니다.

 

 

~
~
~
~
~
~
:!id
uid=3003(level3) gid=3002(level2) groups=3002(level2)
Hit ENTER or type command to continue

 

id라는 명령을 실행했을 때 uid가 level3으로 바뀐 것을 확인할 수 있습니다. 즉 명령을 실행하면서 level3의 권한을 가지게 됩니다. 그럼 이제 level3 권한의 셸을 획득해보도록 하겠습니다.  :sh  를 입력하게 되면 vi가 종료되면서 level3의 권한을 획득한 것을 확인할 수 있습니다.

 

확실하게 권한을 획득할 필요 없이 level3으로 넘어가는 비밀번호만 알고 싶은 분들은 :!my-pass 를 하셔도 됩니다.

 

 

[level3@ftz level2]$ whoami
level3
[level3@ftz level2]$ id
uid=3003(level3) gid=3002(level2) groups=3002(level2)

 

위의 경우 :sh 명령어를 이용해 셸을 획득하고 난 뒤 사용자의 정보를 보는 것입니다. 그 후 my-pass 명령어를 입력하면 비밀번호 확인이 가능합니다.

만약 :!my-pass 명령어를 바로 입력하게 되면 level3로 넘어가는 비밀번호를 알 수 있습니다.

 

 

l level3 비밀번호

더보기

Level3 Password is "can you fly?". 

'보안 > HackerSchool-ftz' 카테고리의 다른 글

[ftz] hackerschool level6 풀이  (0) 2019.11.04
[ftz] hackerschool level5 풀이  (0) 2019.10.05
[ftz] hackerschool level4 풀이  (0) 2019.10.03
[ftz] hackerschool level3 풀이  (0) 2019.09.29
[ftz] hackerschool level1 풀이  (0) 2019.09.25

이 글을 공유하기

댓글

Designed by JB FACTORY