HTB-The Notebook Write up

HTB-The Notebook Write up

in

Enumeration

image


JWT Token

웹페이지에서 회원가입 후 발급받는 auth 쿠키값을 확인 시 JWT 토큰 형식으로 되있는것을 확인 가능

이미지 1 이미지 2

JWT 헤더에서 kid의 파라미터 값이 로컬호스트 7070 포트에서 privKey.key를 가져오는 것을 확인하여 이를 현재 아이피주소로 bas64를 이용하여 변경

이미지 3 이미지 4

변조된 값의 JWT 값을 쿠키로 변경 후 nc를 이용하여 확인 시 정상적으로 privkey.key를 가져올려는것을 확인

이미지 5

ssh-keygen을 이용하여 rsa암호화 형식의 ssh 키값 생성

ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key

이미지 7

public키의 형식을 openssl 을 사용하여 변경

openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRSA256.key.pub

이미지 8

획득한 두개의 public과 private key값을 JWT 서명칸에 입력 시 정상적인 토큰값으로 확인 가능

이미지 9

헤더에서 privKey.key 파일을 가져오니 심볼릭 링크 파일을 생성 후 획득한 JWT 값을 쿠키로 입력 시 Admin권한으로 접속하여 Admin Panel 페이지 생성(DATA에서 admin_cap : 1 로도 변경해줘야함)

ln -s jwtRS256.key privKey.key

이미지 10 이미지 11


PHP webshell

admin panel 메뉴로 접근 시 업로드 파일 기능이 있음
view note의 글을 통해 해당 서버가 php로 작성되 있는것을 확인하여 php 웹쉘 업로드

image 이미지 13 이미지 14

bash 명령어를 사용하여 리버스쉘 연결 가능

이미지 12


Privilege Escalation

noah 계정

linpeas.sh 를 통해 /tmp 폴더에서 읽을 수 있는 백업파일 발견

이미지 16 이미지 17

home.tar.gz 파일에서 noah 의 ssh 키 발견하여 해당 키를 통해 ssh 접근 가능

이미지 18 이미지 19

root 권한