관리 메뉴

Information Security

basic_pentesting_1 본문

VulnHub/basic_pentesting_1

basic_pentesting_1

HackingPractice 2025. 11. 5. 11:15

해당 서버 실행 시 우분투로 실행되는 것을 확인

 

공격자에 칼리리눅스 네트워크 대역 확인 

 

nmap 프로그램을 이용해 192.168.116.0/24 대역 스캔하여 서버의 IP 주소 192.168.116.135 확인 

 

192.168.116.135 서버에서 FTP 서버, SSH 서버, HTTP 프로세스가 동작하는 것을 확인

 

FTP 서버 버전이 1.3.3c라는 것을 확인

 

Metasploit에서 proftpd 해당 버전의 backdoor 취약점 확인

 

해당 공격에 대한 reverse 페이로드 선택

 

공격에 필요한 정보들을 options 명령어로 확인

 

RHOSTS는 공격할 서버의 IP 주소, LHOST는 칼리리눅스의 IP 주소 입력

 

exploit 공격을 수행하면 세션이 연결되는 것을 확인

 

/etc/shadow 파일에서 marlinspike 계정 패스워드를 확인

 

marlinspike 계정에 패스워드를 파일에 저장

 

john the ripper 프로그램을 이용하여 marlinspike 계정에 패스워드를 확인

 

marlinspike 계정으로 ssh 로그인 성공

 

계정 정보 확인

 

 

find 명령어로 파일 권한 4000인 SetUID 명령어 설정된 파일을 확인해 pkexec 명령어를 확인

 

CVE-2021-4034 

CVE-2021-4034(PwnKit)는 pkexec의 환경 변수 처리 버그로 인해 일반 사용자가 손쉽게 root 권한을 탈취할 수 있는 심각한 Linux 로컬 권한 상승 취약점이다.

 

폴킷(Polkit)의 pkexec 유틸리티에 로컬 권한 상승 취약점이 존재합니다. Polkit(구 PolicyKit)은 Unix 계열 운영체제에서 권한 제어를 위해 사용되는 구성요소로, 권한이 없는 프로세스가 권한 있는 프로세스와 안전하게 통신하도록 돕습니다.

 

취약 원인

취약한 버전의 pkexec는 호출 인자(argument) 개수와 환경변수 처리를 올바르게 검증하지 못합니다. 특정 상황에서 pkexec가 환경변수를 명령으로 잘못 해석하거나 실행하게 되고, 공격자는 환경변수를 조작하여 pkexec가 임의의 코드를 실행하도록 유도할 수 있습니다.
결과적으로 공격에 성공하면 일반 사용자가 시스템의 관리자 권한(root)을 획득할 수 있습니다.

 

pkexec 명령어 버전 확인 

 

pkexec 명령어를 이용하여 root 계정인 것을 확인

 

pkexec 명령어를 이용하여 /etc/shadow 파일 내용 확인

 

/bin/sh 명령어를 입력하여 해당 서버의 root 권한으로 탈취되는 것을 알 수 있음

 

 

HTTP 페이지에 접속 시 Apache 디폴트 페이지 확인

/robots.txt 경로 접속 시 오류 페이지 확인

 

DirBuster 프로그램을 이용하여 directory-list-lowercase-2.3-medium 사전파일로 공격 수행

 

공격 수행 시 홈페이지 경로 /secret 밑에 페이지들 확인

 

http://192.168.116.135/secret/ 접속 시 wordpress 페이지 확인

 

WordPress 관리자 페이지 확인

 

wpscan 명령어로 해당 페이지에 사용자 계정(유저명)을 찾아 나열(enumerate)하는 옵션 설정하여 수행

 

admin 계정이 존재하는 것을 확인

 

/usr/share/woridlists/rockyou.txt 사전 파일을 이용하여 admin 계정 패스워드 브루트포싱 공격 수행

 

해당 패스워드가 admin 이라는 것을 확인

 

관리자 페이지에서 admin/admin 로그인 시도

 

admin 로그인이 되는 것을 확인

 

 

msfconsole를 이용하여 WordPress 취약점 확인

 

해당 페이로드 선택 후 설정 값들을 확인

 

아래와 같이 해당 값을 설정 후 공격하면 세션이 연결되는 것을 확인

 

PHP로 작성한 웹쉘 확인

 

php-reverse-shell.php 코드에서 IP 및 port 번호를 아래와 같이 수정

 

Appearance > Editor > Theme Header(header.php)에  웹쉘 소스코드를 업로드함

 

nc 명령어를 이용하여 443 포트를 열어 놓으면 웹쉘로 인해 세션이 연결되는 것을 확인