#hint : /etc/xinetd.d에 백도어가 있다고 한다.

 

#/etc/xinetd.d 디렉터리에서 backdoor파일을 열었다.

 - xinetd.d : 오픈소스 슈퍼 서버 데몬 (인터넷 기반 연결을 관리한다.)

 - finger : 사용자 계정정보 명령어

  -> user : 파일을 실행할 사용자 권한

  -> server : 서비스 파일(동작)의 경로

 

#backdoor파일 생성 후 컴파일

 - level5의 권한으로 실행할 때, 패스워드를 알아야 되므로

   패스워드를 출력하는 실행 파일을 server 경로에 "backdoor" 이름으로 만든다.

 

#finger 서비스 실행

 - finger @localhost

  -> @localhost로 현재 접속한 계정의 정보를 출력하면

      server의 서비스파일이 실행되면서 level5의 패스워드를 출력한다.

'[P]wnable&[R]eversing > [P]HackerSchool(FTZ)' 카테고리의 다른 글

HackerSchool level-3  (0) 2021.05.09
HackerSchool level-2  (0) 2021.05.09
HackerSchool level-1  (0) 2021.05.09

#hint : 프로그램 코드가 주어지고, 이를 분석하여 level4의 권한을 열어야 한다.

 - if( argc!=2){...}

  -> 인자값이 2가 아니면 printf 두줄을 출력한다.

  

 - strcpy( cmd, "dig @" );

  -> cmd에 "dig @"를 복사

  -> dig : DNS 정보 확인 명령어

 

 - strcat( cmd, argv[1] );

  -> 입력한 문자열 (argv[1])을 이어붙임

 

 - strcat( cmd, " version.bind chaos txt");

  -> " version.bind chaos txt"를 cmd에 이어붙임

 

 tip) strcpy : 문자열 복사

      strcat : 문자열 이어붙이기

 

 - system( cmd );

  -> cmd 문자열 실행

 

: "dig @(입력한 문자열) version.bind chaos txt"

 hint1 : 동시에 여러 명령어를 사용하려면?

  -> ";" 기호를 사용한다.

 hint2 : 문자열 형태로 명령어를 전달하려면?

  -> " " 로 감싸주어야 한다.

 

 즉, 입력한 문자열 부분에서 첫 번째 입력값은 dig 명령어의

 파라미터로 들어가게 되므로,

"(dig파라미터);(실행명령어) #(뒷부분 주석처리)"

" ;my-pass #"를 입력하여야 한다.

 

#autodig 파일찾고 이동.

 

#autodig " ;my-pass #"

 실제 실행 코드 : dig @ ;my-pass # version.bind chaos txt

'[P]wnable&[R]eversing > [P]HackerSchool(FTZ)' 카테고리의 다른 글

HackerSchool level-4  (0) 2021.05.09
HackerSchool level-2  (0) 2021.05.09
HackerSchool level-1  (0) 2021.05.09

#hint : 텍스트 파일 편집 중 쉘 명령 실행

 

#find : level3 setuid 권한을 가진 파일찾기

 

#vi로 열어보니 파일이 깨지므로, 경로를 이동해서 실행(=VIM)

 - 빈 파일이 나온다.

 

#:!my-pass

 - 텍스트 파일 안에서 외부 쉘 명령어를 실행하려면 esc를 눌러 명령모드로 진입한 다음,

   ":!명령어"를 입력을 하면 실행이 된다.

 

#flag

 - 파일이 level3의 권한으로 setuid가 걸려 있어서, level3의 권한으로 명령이 실행되어

   비밀번호가 출력되었다.

'[P]wnable&[R]eversing > [P]HackerSchool(FTZ)' 카테고리의 다른 글

HackerSchool level-4  (0) 2021.05.09
HackerSchool level-3  (0) 2021.05.09
HackerSchool level-1  (0) 2021.05.09

#level1 password : level1

 

#hint : level2권한으로 setuid가 걸린 파일을 찾아 야 한다.

#find 명령어 활용.

-user [username]

->유저이름

-perm -[perm number]

-> 권한 정보 (setuid4000이다.)

- 2>/dev/null

-> 표준에러 ‘2’/dev/null로 보내서 화면에

출력되지 않게 함.

 

#/bin/ExecuteMe 실행

- password를 알아야 level2로 넘어갈 수 있는데,

my-pass가 잠겨있다.

- /bin/bash를 입력하여 level2의 권한으로

쉘을 하나 실행.

 

#id, my-pass

- id를 입력하여 권한이 level2인지 확인하고

my-pass로 비밀번호를 확인한다.

'[P]wnable&[R]eversing > [P]HackerSchool(FTZ)' 카테고리의 다른 글

HackerSchool level-4  (0) 2021.05.09
HackerSchool level-3  (0) 2021.05.09
HackerSchool level-2  (0) 2021.05.09

+ Recent posts