EMPIRE: LUPINONE

2023. 3. 29. 20:30

1. IP 정보 확인

- Kali IP: 192.168.50.50

- 타겟 IP: 192.168.50.54

 

2. 서비스 정보 확인

- Open Service: SSH, HTTP

- OS: 리눅스

 

3. HTTP 접근

- 메인 페이지 접근 시, 단순 이미지 페이지 확인

 

- 헤더 및 Source Code 내 특이사항 없음

 

4. 하위 디렉터리 검색 

- dirbuster 툴을 사용한 스캔 

 

1) manual 디렉터리 확인

- manual 디렉터리 접근 시 /en/index.html로 리다이렉트

* 중간 경로 en 은 언어(영어) 정의

* Apache 취약점(CVE-2021-42013) Poc 등을 사용했으나 특이사항 없음

 

2) robots.txt 파일 확인

* ~myfiles 경로에 대한 정보를 통해 접근했으나 404 Error 

* 파일은 찾지 못햇지만, 제작자의 응원은 발견 :)

 

5. 하위 경로 재탐색

- 제작자의 응원을 바탕으로 '~파일명'에 대한 경로 재탐색

- ffuf 툴 사용(디렉터리 검색, 퍼징 등을 수행하는 fest web fuzzer)

* -u 옵션은 대상 경로 지정 / FUZZ 위치에 임의값 삽입

* -w 옵션은 FUZZ 위치에 삽입할 문자열 목록

* -fc 옵션은 403 Error인 경우 출력 무시

 

6. ~secret 파일 접근

- 여기 어딘가에 SSH 개인키 파일이 숨겨져 있음(여기는 /secret/ 디렉터리겠지..!?)

- 나의 베프는 icex64

 

7. 숨겨진 SSH 개인키 파일 탐색

* /~secret/ 디렉터리 내 이것 저것 스캔 중 SSH 개인키로 보이는 .mysecret.txt 파일 확인

 

8. ssh 접근 시도

- .mysecret.txt 파일은 암호화(난독화)된 것으로 판단

* 보통 ssh 개인키는 "-----BEGIN OPENSSH PRIVATE KEY-----" 로 시작(하지 않나요..?)

 

- cyberchef를 통해 확인해본 결과, base58 디코딩을 진행하면 SSH 개인키 양식 등장

 

- 복호화된 키를 저장하고 SSH 접근하면 개인키 권한이 너무 열려있어서 무시된다는 경고 발생

 

- 권한을 소유자만 읽도록 400으로 설정

 

- 권한을 축소한 SSH 개인키를 이용하여 SSH 접근했으나 개인키 암호(passphrase) 필요

* -i 옵션은 사용할 ssh 개인키 경로 지정

 

TIP) 사용자 계정이 icex64인 것을 확인한 방법

- icex64는 /~secret/ 경로에서 가장 친한 친구라고 알려준 정보로 다른 계정으로 접근했을 때는 계정 패스워드를 요구

 

9. SSH 개인키 암호 및 User Flag 탈취

- ssh2john을 사용하여 해시(?)값을 획득

* ssh2john은 SSH 개인키를 John The Reaper가 크랙할 수 있는 파일 형식으로 바꿔줌

 

- John(The Reaper)을 통해 개인키 암호 획득

* --wordlist 옵션은 패스워드 크랙에 사용할 문자열 목록 지정

 

- SSH 로그인 성공

 

- User Flag 획득

 

10. 권한 상승(1)

- l 옵션은 사용자 권한 및 사용 가능한 명령어에 대한 목록 정보 출력

* icex64 계정은 arsene 계정 권한으로 패스워드 없이 /usr/bin/python3.9, /home/arsene/heist.py 사용 가능

 

- /home/arsene/heist.py 확인 결과, webbrowser 모듈 Import 확인

 

- webbrowser 모듈은 일반 사용자에게도 쓰기 권한 존재

 

- vi 편집기로 arsene 사용자 권한의 bash 쉘을 얻기 위한 명령어 삽입 

 

- sudo 명령어를 통해 arsene 사용자 권한 획득

 

11. 권한 상승(2)

-  arsene 계정은 패스워드 없이 관리자 권한으로 pip 실행 가능

 

- pip를 관리자 권한으로 사용할 떄 권한 상승 코드 존재 (참고 사이트 - https://gtfobins.github.io/gtfobins/pip/#sudo)

 

- Root Flag 획득

 

만약 타겟 웹서버가 내부 자산이라면 어떻게 보호할까?

- ssh 개인키 같은 불필요하게 노출된 시스템 파일 제거

- SSH에 대한 접근 제어

- 서버의 불필요한 계정 제거

- Sudo 명령어 사용에 대한 권한 관리

'보안 CTF > Vulnhub' 카테고리의 다른 글

NAPPING: 1.0.1  (0) 2023.04.12
EMPIRE: BREAKOUT  (0) 2023.04.03
JANGOW: 1.0.1  (0) 2023.03.22
THE PLANETS: EARTH  (0) 2023.03.20
Web-Machine-N7  (0) 2023.03.08

+ Recent posts