-
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