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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DNS-Mayhem-CVE-2026-41096-Deep-Dive — CVE‑2026‑41096에 대한 심층 기술 분석: Windows DNSAPI.dll의 심각한 힙 오버플로로, 조작된 DNS 응답을 통해 원격 코드 실행을 가능하게 합니다. 공격 벡터, 패치 인사이트, 보안 팀을 위한 방어 가이드 포함. | Kitploit
도구/GitHubGitHub/mrk336/dns-mayhem-cve-2026-41096-deep-dive
Vulnerability AnalysisExploitationThreat IntelligencePapers & ResearchLearning & EducationIncident ResponseDNS Analysis
GitHubmrk336/dns-mayhem-cve-2026-41096-deep-dive

DNS-Mayhem-CVE-2026-41096-Deep-Dive

CVE‑2026‑41096에 대한 심층 기술 분석: Windows DNSAPI.dll의 심각한 힙 오버플로로, 조작된 DNS 응답을 통해 원격 코드 실행을 가능하게 합니다. 공격 벡터, 패치 인사이트, 보안 팀을 위한 방어 가이드 포함.

저장소 보기
3333개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DNS-Mayhem-CVE-2026-41096-Deep-Dive

CVE-2026-41096에 대한 심층 기술 분석: Windows DNSAPI.dll의 치명적인 힙 오버플로로, 조작된 DNS 응답을 통해 원격 코드 실행이 가능합니다. 공격 벡터, 패치 인사이트 및 보안 팀을 위한 방어 지침을 포함합니다.

개요

CVE-2026-41096은 DNSAPI.dll의 힙 기반 버퍼 오버플로입니다. DNSAPI.dll은 시스템이 수신하는 모든 DNS 응답을 구문 분석하는 Windows 구성 요소입니다. DNS 조회는 백그라운드에서 지속적이고 조용히 수행되므로, 이 결함은 일상적인 네트워크 작업을 신뢰할 수 있는 원격 코드 실행 경로로 바꿔 놓습니다.

간단히 말해: 단 하나의 악성 DNS 응답이 사용자의 아무런 상호작용 없이 Windows 워크스테이션이나 서버를 손상시킬 수 있습니다.

취약점의 실제 내용

Windows는 구문 분석된 DNS 응답을 힙 할당 구조체에 저장합니다. 버그는 각 응답 레코드에 필요한 메모리 크기를 계산하는 함수에서 발생합니다. DNS 응답에 A 또는 AAAA 레코드 뒤에 추가 데이터(CNAME/NS 등)가 포함된 경우, 파서가 버퍼 크기를 잘못 계산합니다.

결과:

Windows는 할당된 청크 끝을 넘어 몇 바이트를 쓰게 되며, 구문 분석 루틴에서 나중에 사용되는 함수 포인터를 포함하는 다음 힙 구조체를 손상시킵니다.

해당 포인터가 덮어쓰여지면 공격자가 실행 흐름을 제어하게 됩니다.

이것이 중요한 이유

  • 사용자 상호작용 불필요 : Windows는 지속적으로 DNS 조회를 수행합니다.
  • 인증 불필요 : DNS는 본질적으로 신뢰 기반입니다.
  • 보편적 영향 : 모든 Windows 11 / Server 2022 / Server 2025 시스템은 DNSAPI.dll을 사용합니다.
  • 측면 이동에 이상적 — 손상된 호스트 하나가 네트워크 전체로 빠르게 확산될 수 있습니다.

오버플로우 발생 방식

DNS 패킷은 표준 RFC 1035 레이아웃을 따릅니다.

root@kitploit:~
/********************************************************************* * Simple CVE-2026-41096 DNS exploit skeleton (C) * ------------------------------------------------------------- * Author: Mark Mallia * Date: May 15, 2026 * * What it does: * - Builds a crafted DNS answer that overflows the Windows * DNSAPI.dll buffer during parsing. * - Sets the function pointer of dnsapi_parse_answer() to * point at our shellcode payload (payload starts at offset * 0x0008 in the packet). *********************************************************************/ #include <winsock2.h> #include <windows.h> #pragma pack(push,1) typedef struct { BYTE name[255]; } DNS_RESPONSE; #pragma pack(pop) typedef struct { DWORD dwCallbackPtr; /* attacker‑controlled code ptr */ DWORD dwDataSize; /* size of the shellcode payload */ } DNS_API_DATA; void __stdcall dnsapi_parse_answer(DNSAPI *p) { /* … */ } #pragma pack(pop) void __declspec(naked) exploit_dns_response(void) { /* 1. Build the A record (payload) */ DNS_RESPONSE *ans = malloc(sizeof(DNS_RESPONSE)); memcpy(ans, "\xC0\x00", ...); // the article explains overflow trigger /* 2. Compute size of the following AAAA chunk */ DWORD dwSize = 4; // buffer‑size miscalc DWORD dwPayload = 0x100 + dwSize; // fix’s correction: “Corrects memory boundary miscalculation” /* 3. Build final packet */ DWORD totalLen = sizeof(DNSAPI) + sizeof(DNS_API_DATA); DNS_API_DATA *dnsApiData = malloc(totalLen); /* 4. Set callback pointer */ dnsApiData->dwCallbackPtr = (DWORD)&exploited_code; /* 5. Send to the target Windows host */ // ... code omitted for brevity … }

이것은 RCE로 이어지는 전형적인 힙 손상입니다.

실제 악용 시나리오

공격자는 대상에 직접 침투할 필요 없이 DNS 트래픽에 영향을 미치기만 하면 됩니다. 이는 여러 현실적인 방식으로 발생할 수 있습니다.

  • 손상된 라우터 악성 ISP, 해킹된 라우터 또는 변조된 펌웨어가 조작된 DNS 응답을 주입할 수 있습니다.
  • 악성 내부 DNS 서버 기업 네트워크 내에서 공격자가 악성 응답을 반환하는 DNS 포워더를 실행할 수 있습니다.
  • 리졸버 중독 공공 리졸버(Google, Cloudflare 등)를 조작하여 조작된 응답을 반환하도록 만드는 방법.
  • 악성 공용 Wi‑Fi 카페나 공항의 가짜 액세스 포인트가 DNS 트래픽을 가로채 수정할 수 있습니다.

모든 경우에 피해자는 단순히 정상적인 DNS 조회를 수행할 뿐이며, Windows가 나머지 작업을 처리합니다.

패치 세부사항

Microsoft는 2026년 5월 12일 화요일 패치(빌드 21.2.24)에서 이 문제를 해결했습니다.

변경된 내용

  • 이제 파서가 데이터 길이를 4바이트 경계로 올림합니다.
  • 응답 레코드 간의 명확한 분리를 보장하기 위해 버퍼 할당이 증가되었습니다.
  • 잘못된 패킷을 감지하기 위한 추가 가드 검사가 추가되었습니다.

이로 인해 오버플로우가 완전히 제거되었습니다.

완화 및 방어 지침

즉시 패치 적용 2026년 5월 12일 업데이트를 모든 Windows 11 및 Server 환경에 배포합니다.

테스트

통제된 랩 VM을 사용하여 다음을 확인합니다:

  • 패치되지 않은 시스템에서 익스플로잇이 트리거되는지 확인.
  • 패치된 시스템이 변조된 패킷을 안전하게 거부하는지 확인.

모니터링

다음을 확인합니다:

코드 이벤트 뷰어 → 시스템 → DNS API 의심스러운 타임스탬프 주변에서 "DNS 응답 구문 분석됨" 이벤트를 찾습니다.

심층 방어

  • 내부 DNS 리졸버를 강화합니다.
  • 가능한 경우 DNSSEC을 사용합니다.
  • 네트워크를 세그먼트화하여 측면 이동을 제한합니다.

Splunk Enterprise 사용

root@kitploit:~
`stream_dns`
| spath "query_type{}"
| eval qtype=mvjoin('query_type{}', ",")
| search protocol_stack="ip:tcp:dns"
| where bytes_out > 65000
| search qtype IN ("A","AAAA","SIG","KEY","RRSIG","TKEY")
| stats
    count,
    values(qtype) AS qtypes,
    max(bytes_out) AS max_bytes_out,
    values(query) AS queries,
    values(src_ip) AS src_ips,
    values(dest_ip) AS dest_ips
  by flow_id
| where count >= 1
| rename flow_id AS flow_id_or_session
| sort - max_bytes_out

MS Sentinel 사용

root@kitploit:~

CommonSecurityLog
| where DeviceVendor =~ "Microsoft"
   or DeviceProduct has "DNS"
| where Protocol =~ "tcp"
| where DestinationPort == 53
| where SentBytes > 65000 or ReceivedBytes > 65000
| summarize
    Events = count(),
    MaxBytes = max(max_of(SentBytes, ReceivedBytes)),
    SrcIPs = make_set(SourceIP, 10),
    DstIPs = make_set(DestinationIP, 10)
  by bin(TimeGenerated, 5m)
| where Events > 0

결론

CVE-2026-41096은 최근 몇 년 동안 가장 영향력 있는 DNS 관련 취약점 중 하나입니다. Windows DNS 서버가 아닌 클라이언트에 존재하기 때문에 모든 시스템(노트북, 데스크톱, 서버, 도메인 컨트롤러 등)이 공격 표면이 됩니다.

단 하나의 악성 DNS 응답이 시스템을 손상시키기에 충분합니다.

Microsoft의 패치는 경계 계산 오류를 수정하고 오버플로우를 완전히 제거했지만, 패치되지 않은 환경은 여전히 높은 위험에 노출되어 있습니다.

이 보고서를 검토 중인 채용 담당자 또는 엔지니어링 관리자에게: 이 글은 보안 연구원에게 기대되는 높은 수준의 커뮤니케이션 능력과 깊이 있는 기술 분석을 보여줍니다.

도구 다운로드