할 얘기가 없네

ssh와 http 확인

?
삽질 하다 왔다.
호스트 파일에 10.129.68.198과 linkvortex.htb를 추가해줘야 함.
DNS에 linkvortex.htb가 10.129.68.198이라는 내용이 없어서 파일로 따로 추가해야 한다는데,,
그러면 10.129.68.198로 접근했을 때 저 도메인 네임도 뜨면 안 되는 거 아님?
그리고 정확히 어떤 경우에 파일로 작성해야 하는 거지
일단 문제 풀고 좀 더 알아보겠다
→ 응답 보면 서버에서 해당 url로 이동시키도록 돼있다. 그런데 못 찾아서 그런 거임


기다리니까 되더라
이것저것 탐색했는데 뭐 못 찾았음
nmap이 이제 도메인 네임으로 http 요청을 보낼 수 있게 되어, 더 많은 정보를 얻을 수 있다.

뭐 많다


로그인 페이지를 찾았지만, 로그인을 위한 정보가 없다.
ffuf를 이용하여 디렉토리 구조, 서브도메인, 숨겨진 페이지 등을 더 찾아볼 수 있다.

dev를 발견함

hosts에 추가해줘야 함

접속했지만 뭐 없는 거 같다
디렉토리로 뭐가 있는지 확인해보자

.git 발견

gitdumper를 활용할 수 있을 것 같다



Dockerfile.ghost가 새로 생겼고, authentication.test.js가 수정되었다고 한다.
지금 이는 아직 커밋되지 않았지만 staging된 상태에서 정보가 남아있다.
스테이지 변경 사항을 디렉터리로 복원하기 위해 git restore —staged를 사용한다.

변경된 비밀번호를 확인할 수 있다.
슛

로그인 후 ghost 정보를 확인할 수 있었다.


흠
https://github.com/0xDTC/Ghost-5.58-Arbitrary-File-Read-CVE-2023-40028
GitHub - 0xDTC/Ghost-5.58-Arbitrary-File-Read-CVE-2023-40028: CVE-2023-40028 affects Ghost, an open source content management sy
CVE-2023-40028 affects Ghost, an open source content management system, where versions prior to 5.59.1 allow authenticated users to upload files that are symlinks. This can be exploited to perform ...
github.com
찾았다.
Arbitrary File Read 취약점인데, zip 파일을 업로드하여 시스템의 파일에 접근할 수 있다고 한다.
- Automates login to the Ghost CMS admin API.
- Crafts a malicious ZIP payload with a symlink to the target file.
- Exploits the Ghost CMS import functionality to upload and extract the payload.
- Fetches and displays the contents of the target file.
저 깃허브 사용하면 간단하게 익스플로잇할 수 있다.


흠
Ghost의 DB, Mail, JWT, URL 등의 설정이 있는 경로도 입력해본다.

계정과 패스워드를 발견할 수 있었다.

나이스
캡쳐가 안 되어있는데, sudo -l로 (ALL) NOPASSWD: /usr/bin/bash /opt/ghost/clean_symlink.sh *.png를 확인했다.

clean_sysmlink.sh는 아래와 같이 작동한다.
- LINK=$1로 입력 파일을 받음 (.png여야 함)
- 링크 여부 확인: test -L $LINK
- 링크가 /etc나 /root를 가리키면 삭제
- 그 외는 /var/quarantined/로 이동됨
- 환경변수 CHECK_CONTENT=true이면 cat으로 내용 출력됨 (루트 권한)
조건은 이해했는데, 어떻게 이용할지 감이 안 잡혀서 writeup 좀 봤다.
TOCTOU 취약점을 이용할 수 있다고 한다.
TOCTOU(Time-Of-Check to Time-Of-Use) 취약점은 검사 시점과 사용 시점 사이의 시간차를 악용한 취약점으로, 파일 접근, 권한 검사, 공유 자원 접근 등에서 발생한다. 검사 시점과 사용 시점 사이에 리소스 상태가 바뀌면, 검사 결과에 상관없이 해당 리소스를 악용할 수 있다.
이 문제에서는 TOCTOU를 이용해서 root 파일을 읽을 수 있다.
- 먼저, 임의의 경로를 가리키는 png 파일을 심볼릭 링크로 생성한다.
- clean_sysmlink.sh 실행 시 파일이 이동될 경로 /var/quarantined/의 파일이 /root/.ssh/id_rsa를 가리키도록 한다. 이때 무한 루프로 명령어를 계속 실행하여, 검사 시점 직후 사용 시점에 id_rsa를 읽을 수 있게 된다.
- 무한 루프가 실행되는 동안 다른 터미널을 열어, clean_symlink.sh 조건을 만족하기 위해 CHECK_CONTENT를 true로 하고, 만들어뒀던 test.png를 대상으로 clean_symlink.sh를 실행한다.


성공적으로 ssh 키를 읽었다.

획득한 키를 사용하여 root로 접속하는 데 성공했다.
이슈가 많아서 해결까지 꽤 오래 걸렸다. 그랬던 만큼 활용된 요소들이 많아 얻어가는 것도 많았던 거 같다.
'writeup > HTB' 카테고리의 다른 글
| [HTB] UnderPass (1) | 2025.05.06 |
|---|---|
| [HTB] Meow (0) | 2025.05.03 |