ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • abcdefg-who
    개인공부/드림핵 2024. 12. 23. 22:36

    이번 문제의 경우 서버에 접속해서 문제 해결을 통해 FLAG를 획득하는 문제다.

     

    [문제 해결]

    1. 서버 접속

    웹해킹 문제와는 달리 이번 문제의 경우 SSH 접속을 통해 서버에 연결해야 한다.

     

    서버 생성 후 생성된 호스트 주소 및 포트번호를 이용하여 SSH 연결을 진행한다.

     

    SSH 연결 시 CMD를 이용해도되고 Putty, Moba Xterm 같은 도구들을 이용해도 된다.

     

     

    문제 페이지에서 제공된 id와 pw를 이용하여 로그인 시 위와 같은 화면을 확인 할 수 있다.

     

    2. 분석

    우선 제공된 dream 계정에 대한 권한을 확인하자.

     

    id 명령어를 통해 확인 할 수 있다.

     

     

    확인 결과, dream 계정의 경우 일반 계정으로 확인되었다.

     

    해당 계정 외 다른 계정의 존재를 확인하기 위해 cat /etc/passwd 명령어를 통해 계정들이 저장된 passwd 파일을 읽어보자.

    만약 root 권한이 아니기에 확인이 불가능하다면, sudo 명령어를 통해 root 권한으로 해당 명령어를 실행하면 된다.

     

     

    passwd 파일 확인 결과, root 계정 제외하고 총 7개의 로그인 가능한 계정이 확인되었다.

     

    이때 자세히 보면 무언가 이상한 점을 확인할 수 있다.

     

    passwd 파일의 포맷은 아래와 같이 정의되어 있다.

     

     

    필드 번호 필드 이름 설명
    1 사용자 이름 사용자 계정 이름(로그인 ID). 시스템 명령에서 사용자 식별에 사용.
    2 암호 자리 표시 암호화된 비밀번호(현재 대부분 /etc/shadow 파일에서 관리). x는 암호가 /etc/shadow에 저장됨을 의미.
    3 사용자 ID (UID) 사용자 고유 ID. 0은 루트 계정을 나타내며, 일반 사용자는 1000 이상부터 시작.
    4 그룹 ID (GID) 사용자가 기본적으로 속한 그룹의 ID. /etc/group에서 그룹 정보를 확인할 수 있음.
    5 사용자 정보 사용자에 대한 추가 정보(코멘트). 대개 사용자의 전체 이름이나 기타 설명 정보를 포함.
    6 홈 디렉토리 사용자의 홈 디렉토리 경로. 사용자가 로그인 시 기본으로 이동하는 디렉토리.
    7 기본 셸 사용자가 로그인 시 사용할 기본 셸. 일반적으로 명령어 해석기 역할을 함.

     

    하지만 위 그림에서 일반 계정들에 대한 기본 셸은 bash, sh 등이 아닌 .bash.sh 라는 쉘 프로그램으로 지정되어 있다.

     

    cat 명령어를 이용해 해당 파일을 확인해보자.

     

     

    내용을 분석하면 아래와 같다.

     

    /bin/bash  bash쉘 실행

    2>&1 표준 에러를 표준 출력으로 리다이렉트

    | tee -a 표준 출력을 tee 명령어에 전달하고 tee 명령어는 화면에 출력함과 동시에 -a 옵션을 통해 기존 내용을 지우지 않고 append 하며 /home/frank/.secret_log에 저장한다.

     

    3. FLAG 

    /home/frank/.secret_log 파일을 cat 명령어를 통해 읽으면 FLAG 획득이 가능하다.

    '개인공부 > 드림핵' 카테고리의 다른 글

    Where-is-localhost  (0) 2024.12.31
    Replace Trick!  (0) 2024.12.25
    Grand Theft Auto  (0) 2024.12.22
    session  (0) 2024.12.21
    Find The Lost Flag  (0) 2024.12.21
Designed by Tistory.