강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

3. 레벨 2를 향하여

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle02.gif

level1로의 내공 상승을 축하합니다. 다시 한 번 강조하지만 문제만을 푸는 것은 여러분의 내공 상승에 별로 도움이 되지 못합니다. 기초를 정확하게 알고 응용해 나갈 수 있을 때 여러분의 내공은 한 층 더상승되어 가는 것입니다. 자 그럼 시작해 볼까요?? icon04.gif2. level1 문제 풀이
######### # 문제 # #########
한 어리석은 대학생 서모씨는 unix c programming 수업시간에 교수로부터 standard input으로부터 패스명을 입력받아 그 파일의 종류를 나타내라는 과제를 받았다. 똑똑한(?) 서모씨는 unix 의 기본 컴맨드중에 file 이라는 유틸리티가 있음을 알고 이를 이용해 숙제를 간편한 방법으로 해결하였다. 그러나 서씨의 방법에는 상당한 보안상 위험이 있다. 이를 이용하여 다음 레벨을 획득하시오. Hint - 위 파일의 이름은 딱풀 제조 회사명이다. 해커즈랩에 텔넷이나 데이터맨 프로그램으로 접속한다. login:level1 passwd:xxxxxxxx [level1@drill level1]$ id uid=2001(level1) gid=2001(level1) groups=2001(level1), 9999(hackerzone) [level1@drill level1]$ whoami level1 자 문제를 해석해 나가보자.(일단 어려우니까 힌트 먼저 보자구요) 딱풀 제조 회사명은 amos이다.(본인이 직접 확인했다.) 그렇다면 amos라는 파일이 있다는 야그이다. 그리고 그 파일의 퍼미션에는 set uid가 걸려 있을 것이다. 찾아보자. [level1@drill level1]$ find / -name amos -perm -4000 -print | grep amos 해석)/(최상위 디렉토리)에서 부터 이름(-name)이 amos이고 퍼미션(-perm)이 set uid(-4000)인 파일을 찾아 출력(-print)하고 그중에서 amos를 나타내라(grep) /usr/bin/amos 파일에 대한 권한설정을 좀 더 공부해 보자. 앞에서 rwx라는 파일 권한 설정에 대해서 공부해 보자. 이것을 숫자(이진수)로도 표기해서 나타낼 수가 있다. -set uid: 4000 -set gid: 2000 -읽기: 4 -쓰기: 2 -실행: 1 그러면 위의 권한 설정을 예를 들어 살펴보자 -rwxr-xr-x 6 root root 1024 Aug 10 1999 Mail 위 파일의 권한 설정을 숫자로 표기하면 -소유권자(root)는 r: 읽기 --------------------+ w: 쓰기 --------------------| 읽기(4)+쓰기(2)+실행(1)------ 7 x: 실행(접근권한)권한 부여 -+ -소유그룹은 r: 읽기 --------------------+ -: 없음 --------------------| 읽기(4)+쓰기(0)+실행(1)-------5 -----> 755가 된다. x: 실행 --------------------+ -기타(나머지 other)는 r: 읽기 --------------------+ -: 없음 --------------------| 읽기(4)+쓰기(0)+실행(1)-------5 x: 실행 --------------------+ 위에서 set uid퍼미션을 이용하여 파일을 찾는 것은 시스템 관리자들이 주기적으로 백도어와 같은 파일들을 찾아 내기 위해 자주 쓰이는 명령어 이다. 반드시 알아두자. 다음으로 standard input이라는 것인데 요것에 대한 것은 예를 통해 알아보자. [level1@drill level1]$ cat babo babo 갑자기 babo라는 단어가 되풀이 되는 것이 보이는가?? 요것이 sandard input과 standard output의 예를 보여 주는 것이다. 우리의 키보드를 통한 입력 (sandard input)직후에 터미널을 통한 출력(standard output)이 이루어졌다. 따라서 amos라는 프로그램은 파일의 종류를 나타내기 위해서 file이라는 유틸리티와 path를 지정 받기 위해서 standard input이라는 것이 사용된 프로그램이다. amos를 실행시켜 보자. 실행시 기억할 것이 있다. amos는 어떤 파일인가? 바로 set uid가 걸린 파일이다. 그렇다면 이 파일이 실행되는 동안은 여러분들은 level2가 된다는 뜻이다. [level0@drill dev]$ /usr/bin/amos path? <---지금 현재 프로그램이 실행되고 있는 이 순간 여러분은 level2이다. 오잉 예상데로 패스(경로)를 물어 온다. 아무거나 한 번 넣어 보자. (우리가 실행시키고자 하는 파일은 /bin/pass 이다.) path? /bin/pass /bin/pass:executable, can't read '/bin/pass'(permission denied). /bin/pass파일은 실행 전용 파일이다. 따라서 파일의 종류를 나타내기 위한 file명령은 거부되었다. 그렇다면 우리는 현재 파일의 종류를 알아내는 file명령 밖에 쓸 수 없는 것인가? (여러분들의 머리 엄청나게 굴러가는 소리가 들린다.) 그렇다. 앞에서 배운, 명령을 두가지 이상 동시에 쓸수 있는 것 바로 파이프(|)이다. 이런 상상을 잘 해야지만 훌륭한 사람이 될 수 있다.(물론 기초가 탄탄해야 겠지만) 조심스럽게 확인해 보자. path? /bin/pass | whoami level2 오잉 명령이 먹히고 있다. 거기다가 나의 레벨이 2이라는 것을 보여주고 있다. (set uid파일) path? /bin/pass | pass 캬캬캬 성공이다. 진심으로 축하한다. level2의 권한을 획득하였다. 자 이제 level3로 도전을 해보자.

===================================================================================================

이 사이트에서 제공하고 있는 내용은 개인의 경험을 바탕으로 제공되고 있습니다.
그러므로 이용시 예기치 않은 오류가 발생할 수도 있음을 알려드립니다.
여러분이 도움 및 정보를 바라신다면 저에게 메일을 보내 주십시요. 감사합니다.

www.dacker.wo.to copyleft (c) 2000 by park byoung-seo all lefts reserved

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  111 명