Pentesting CTF/tryhackme

[Tryhackme] - Basic Pentesting

Roronoa 2023. 3. 21. 13:43
반응형

문제 이름

[그림 1] Basic Pentesting 문제

https://tryhackme.com/room/basicpentestingjt

 

TryHackMe | Basic Pentesting

This is a machine that allows you to practise web app hacking and privilege escalation

tryhackme.com

위 사이트에 접속하면 해당 문제를 풀 수 있다.

정보 수집

[그림 2] target ip

대상 ip를 확인하였다.

 

[그림 3] 대상 탐색

ping 명령어를 이용하여 해당 시스템이 살아있는지 확인하였다.

 

[그림 4] 포트스캐닝

대상이 살아있음을 확인을 한 후 nmap을 이용하여 포트스캐닝을 진행하였다. 해당 시스템은 22, 80, 139, 445, 8009, 8080 포트가 열려있다.

 

[그림 5] 80포트 웹 사이트 접속

80포트 http 웹 사이트로 접속을 하였다.

해당 웹사이트는 유지 보수중이며 나중에 다시 체크하라고 나와있다.

 

[그림 6] 페이지 소스 보기

개발 노트 섹션을 확인하라고 한다.

 

[그림 7] 8080포트 웹 사이트 접속

8080 포트로 웹 사이트를 접속하니 톰캣 메인화면 페이지가 나왔다.

 

[그림 8] 디렉토리 스캔

아직 중요한 정보를 찾지 못했기 때문에 디렉토리 스캔을 진행하여서 숨겨져있는 디렉토리가 있는지 확인을 하였다. 디렉토리 스캔을 진행하고 /development 의 하위 디렉터리가 있음을 확인하였다,

 

[그림 9] development 확인

development에 dev.txt와 j.txt가 존재한다.

 

[그림 10] dev.txt 파일 내용 확인

dev.txt 파일을 확인하니 K와 J가 대화를 하고있다.

2번째에서 SMB가 구성이 되었다고 한다.

SMB는 공유 폴더 느낌으로 다른 운영체제에서도 네트워크로 파일이 공유가 가능하다.

[그림 11] j.txt 파일 내용 확인

j.txt 파일 내용을 확인하니 K가 J에게 password가 취약하다고 말을하고 가능한 빨리 password를 변경하라고 메시지를 남겼다.

J의 계정이 취약하다는 정보를 바탕으로 J의 계정으로 접속을 할 수 있을거라고 예상이 된다.

[그림 12] SMB 확인

smbclient 명령어로 SMB서버에 접속을 하였다. SMB 서버에 Anonymous라는 공유 파일이 있음을 확인이 가능하다.

 

[그림 13] Anonymous 파일 확인

Anonymous 파일을 확인하니 staff.txt 파일을 찾았고 get staff.txt 명령어로 로컬에 해당 파일을 다운로드 하였다.

staff.txt를 확인하니 여기에 일과관련되지 않은 파일을 올리지 말라고 Kay가 얘기를 하였고 Jan도 포함이라고 하였다.

J의 이름이 Jan이라는 것을 알 수 있다.

 

[그림 14] enum4linux

enum4linux는 윈도우나 삼바 호스트로부터 정보를 나열하는 도구로 SMB 정보를 확인하였다.

 

[그림 15] user 확인

user가 kay와 jan이 있음을 알 수 있다.

 

[그림 16] hydra 사용

hydra를 이용하여 취약한 password를 가진 jan의 password를 크래킹하였다.

사전 파일로 rockyou.txt 파일을 이용하였다.

 

[그림 17] jan계정의 password 크래킹

jan의 계정의 password를 크래킹 하였다.

jan의 password는 armando이다.

  • jan의 password : armando

 

**도중에 ip가 변경되어 변경된 ip로 진행한다.**

[그림 18] jan의 계정으로 ssh 접속

jan의 계정으로 ssh에 접속을 ㅏㅎ였다.

 

[그림 19] /etc/passwd 파일 확인

/etc/passwd 파일을 확인해보니 kay와 jan의 계정이 있다는 것을 확인하였다.

이제 Kay나 root의 권한으로 변경을 해야한다.

 

[그림 20] kay 홈 디렉터리 확인

kay의 홈디렉터리를 확인하니 .ssh 파일을 확인하였다. .ssh 파일의 권한은 모든 기타 사용자가 접근하고 읽을 수 있다.

따라서 해당 디렉토리에 접근한다.

 

[그림 21] rsa 키 확인

.ssh 디렉토리에서 rsa의 공개키와 비밀키를 확인하였다.

해당 비밀키를 통해 kay의 계정으로 ssh 접속을 할 수 있을것이다.

 

[그림 22] kay의 rsa 비밀키 다운

kay의 rsa 비밀키를 scp 명령어로 다운 받았다.

 

[그림 23] kay 계정 ssh로 접속

kay의 계정으로 rsa 비밀키를 이용하여 접속을 진행하였지만 권한이 너무 개방되어있다고 비밀번호를 입력하라고 한다.

 

[그림 24] 권한 변경

rsa 비밀키의 권한을 변경하고 ssh접속을 진행하였다.

passphrase를 입력하라고 나왔다.

passphrase는 해당 ssh key를 사용하기 위한 암호로서 2차 인증과 같은 역할을 한다.

 

[그림 25] ssh2john 사용

ssh2john을 이용하여 해당 비밀키를 john을 사용할 수 있는 형식으로 변환을 해주었다.

 

[그림 26] hash cracking

해당 hash값을 크래킹을 진행하여 passphrase를 알아냈다.

passphrase의 값은 beeswax이다.

 

[그림 27] passphrase값 확인

해당 passphrase로 ssh에 접속을 하니 kay의 계정으로 접속이 되었고 pass.bak 파일의 내용을 확인하였다.

 

[그림 28] setuid가 걸린 vim 파일 확인

.bash_history를 확인하여 사용자가 무슨 명령어를 이용하였는지 확인해보니 chmod 명령어로 vim에게 setuid를 부여하였다.

 

[그림 29] vim 확인

vim의 파일을 확인해보니 root로 setuid설정이되어있었다.

해당 파일을 이용하여 root로 권한 상승이 가능할 것이다.

 

https://gtfobins.github.io/

위 사이트에서 vim 권한 상승에 대해 알아보았다.

 

[그림 30] vim setuid 권한 상승 확인

vim이 setuid가 걸려있을때 권한 상승을 할 수 있는 코드가 있다.

 

[그림 31] vim setuid 권한 상승 코드

위 해당 코드를 이용하여 권한 상승이 가능하다.

 

[그림 32] root 권한으로 권한 상승

py로하니 안되서 py3로 진행하였다.

 

[그림 33] root 권한 확인

euid가 0을로 root의 권한을 획득하였고 post exploit에 성공하였다.

반응형

'Pentesting CTF > tryhackme' 카테고리의 다른 글

[Tryhackme] - GLITCH  (0) 2023.04.01
[Tryhackme] - RootMe  (1) 2023.03.20
[Tryhackme] - LazyAdmin  (0) 2022.10.27
Tryhackme OpenVPN 설정 방법  (0) 2022.10.26