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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-16898 — CVE-2020-16898 (Bad Neighbor) Microsoft Windows TCP/IP 취약점 탐지 로직 및 규칙 | Kitploit
도구/GitHubGitHub/advanced-threat-research/cve-2020-16898
Vulnerability AnalysisExploitationNetwork SecurityIntrusion Detection
GitHubadvanced-threat-research/cve-2020-16898

CVE-2020-16898

CVE-2020-16898 (Bad Neighbor) Microsoft Windows TCP/IP 취약점 탐지 로직 및 규칙

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트
209305년 전Kitploit 검토 완료

CVE-2020-16898: “Bad Neighbor”

CVSS 점수: 8.8

CVSS 벡터: CVSS3.0/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H/E:P/RL:O/RC:C

개요

10월 13일, Microsoft는 Windows IPv6 스택에서 매우 심각한 취약점을 발표했습니다. 이 취약점은 공격자가 악의적으로 조작된 패킷을 전송하여 잠재적으로 원격 시스템에서 임의 코드를 실행할 수 있도록 합니다. MAPP 회원과 공유된 개념 증명(PoC)은 매우 간단하고 완벽하게 신뢰할 수 있습니다. 이는 즉각적인 BSOD(Blue Screen of Death)를 유발하지만, 더 나아가 Windows 10 및 Windows Server 2019의 완화 조치를 우회할 수 있는 사람들에게는 익스플로잇 가능성이 있음을 나타냅니다. 원격 코드 실행을 허용하는 익스플로잇의 영향은 광범위하고 매우 클 것이며, 이 유형의 버그는 웜처럼 전파될 수 있습니다. 참조의 용이성을 위해, 이 취약점을 'Bad Neighbor'라고 명명했습니다. ICMPv6 Neighbor Discovery '프로토콜' 내에 위치하며 라우터 광고(Router Advertisement) 유형을 사용하기 때문입니다.

이 문서는 McAfee Advanced Threat Research에서 작성했습니다. 이 취약점을 더 깊이 이해하고 익스플로잇으로부터 방어하려는 네트워크 관리자 및 보안 담당자에게 유용한 통찰력을 제공하기 위한 것입니다. 여기서 생성된 시그니처는 프로덕션에 사용하기 전에 스테이징 환경에서 철저히 검토 및 검증되어야 하며, 대상 배포에 맞춰 특정 조정을 하면 도움이 될 수 있습니다.

여기에 제공된 정보는 예고 없이 변경될 수 있으며, 모든 오류를 포함하여 '있는 그대로' 제공되며, 특정 상황이나 환경에 대한 정보의 정확성 또는 적용 가능성에 대한 보증이나 보장 없이 본인의 책임 하에 사용해야 합니다. 또한, 당사는 모든 시그니처에 대한 성능 또는 효율성 벤치마크를 보장할 수 없습니다.

시그니처

이 취약점에 대한 Suricata 시그니처는 cve-2020-16898.rules에 있으며, 다음 논리를 포함합니다:

alert icmp any any -> any any (msg:"Potential CVE-2020-16898 Exploit"; lua:cve-2020-16898.lua; sid:202016898; rev:1;)

해당 Lua 스크립트는 cve-2020-16898.lua에서 찾을 수 있습니다. ICMPv6 레이어를 올바르게 구문 분석하고 Bad Neighbor의 잠재적인 익스플로잇을 식별하는 데 필요한 논리를 포함하고 있습니다. 내용은 다음과 같습니다:

ICMPv6 레이어의 시작을 찾으면, 레이어의 첫 번째 바이트를 검사하여 라우터 광고 ICMPv6 패킷(Type = 134)인지 확인합니다. 그렇지 않으면 종료합니다.

Suricata 프리미티브가 ICMPv6 옵션을 구문 분석하도록 업데이트되지 않았기 때문에, 옵션이 있는 경우 시작되어야 하는 위치인 ICMPv6 레이어의 17번째 바이트로 간단히 이동합니다(처음 16바이트는 RFC 4443에 따라 고정 길이 필드입니다). 그런 다음 패킷의 바이트가 소진될 때까지 모든 옵션을 반복합니다. 각 옵션에 대해 처음 두 바이트(각각 옵션 유형 및 길이 필드)에만 관심이 있습니다. RDNSS가 아닌 모든 옵션은 무시하고, 옵션 유형 25(RDNSS)의 경우 길이(옵션의 두 번째 바이트)가 짝수인지 확인합니다. 짝수이면 플래그를 지정하고, 그렇지 않으면 계속 진행합니다. 길이는 8바이트 단위로 계산되므로 길이에 8을 곱하고 그만큼 앞으로 이동하여 다음 옵션의 시작 부분으로 이동합니다(이미 소비한 길이 바이트를 고려하여 1을 뺍니다).

이 규칙을 사용하여 길이가 최소 3인지도 확인합니다. RFC 8106에서 요구하기 때문입니다. 하지만 궁극적으로 이 확인은 불필요할 수 있습니다. 길이가 짝수인지 여부에만 관심이 있기 때문입니다.

도구 다운로드