Reconnaissance
Tools: nmap, gobuster
ovpn 설정 파일을 이용해 openvpn 접속 후 가장 처음 해볼 일은 역시 정보 수집이다.
Target IP는 주어져 있으니, 열린 포트와 그 포트에서 하는 서비스, 버전 등을 살펴보고 가자.
아래 명령으로 주요 포트만 조사했는데, 열린 포트가 22, 53, 80, 2047 정도가 있었다.

가장 만만한 80번 포트를 대상으로 이번엔 dirbuster 공격을 해보자.
사전 공격으로 숨겨진(?) URL을 찾아보는 작업이다.
/admin 정도는 추측으로 알아낼 수 있지만, 정보는 확실히 모아두는 것이 좋다.
실행 결과 /admin, /swfobject.js 정도가 나타났다.

이제서야 http://10.10.10.48/admin로 이동했다.
Pi-hole이라는 서비스(?)를 하고 있는 웹페이지인 것 같다.

Login Tab을 누르니 아래와 같은 창이 나타난다.
일반 워게임처럼 SQL Injection, Javascript 코드 해석 등을 해보려다 말았다.
그런데 Pi라는 단어와 이 과일(?) 모양으로 Raspberry Pi가 연상되었다.

Exploitation
Reconnaissance 때 알아낸 정보와 약간의 추측으로 쉘을 획득해보자.
Raspberry Pi에서 동작한다고 가정하고, 가장 먼저 Default Credential인 pi / raspberry 쌍을 시도해보았다.
아니나 다를까 pi 계정으로 접속되었다.
이래서 기본 계정은 언제나 위험하다. 제발 좀 주기적으로 변경하자.

sudo -l 명령의 결과를 살펴보니, sudo 명령으로 그냥 모든 작업을 할 수 있는 상태이다.

sudo -i 명령을 입력하니 root 계정으로 권한 상승되었다.
sudoer 관리 좀 합시다...
이제 뭐든지 할 수 있다.

Post-Exploitation
뭐든지 할 수 있지만 문제에 집중하자.
root.txt와 user.txt에서 flag를 찾아야 한다.
/root에 root.txt가 있어서 읽었는데, USB에 백업한 파일이 있다는 내용이다.

마운트 정보를 살펴보니, /dev/sdb가 /media/usbstick에 마운트되어 있는 것 같다.

봤지만 damnit.txt밖에 없다.
젠장! 파일을 날린 상태라고 한다.

xxd 명령을 통해 /dev/sdb를 Hex Editor에서 보듯 보고자 했지만, 용량이 용량인지라 유효한 문자열만 뒤져보기로 했다.
오! 해시 값이 보인다.
문자열 정보 앞부분에 텍스트 파일명이라곤 root.txt와 damnit.txt만 보이는데, 역시 root.txt의 내용은 이 해시값인 것 같다.

마지막으로 pi로 접속했을 때 못봤던 user.txt는 아래 경로에 있다.
이 두 해시 값으로 인증해주면 된다.
