일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Openstack
- Strings
- Suninatas
- otter
- lord of sql injection
- CTF-d
- XSS
- 안드로이드
- 파이썬
- elasticsearch
- logstash
- 2018
- frida
- Docker
- 인시큐어뱅크
- SQL Injection
- Volatility
- NTFS
- beebox
- Reflected XSS
- igoat
- ESXi
- MFT
- base64
- kibana
- InsecureBank
- vulnhub
- foremost
- diva
- ctf
- Today
- Total
Information Security
GhostSMBv3 (CVE-2020-0796) 본문
1. 주요내용
구분 |
내용 |
영향도 |
SMB 3.1.1 프로토콜에서 조작된 압축 패킷을 압축 해제하는 과정에서 Buffer Overflow가 발생한다. 클라이언트/서버 모두 공격이 가능하며, 공격자는 이를 통해 블루스크린(Blue Screen of Death, BSOD)을 발생시킨다. |
취약대상 |
Ø Windows 10 Version 1903 for 32-bit Systems Ø Windows 10 Version 1903 for x64-based Systems Ø Windows 10 Version 1903 for ARM64-based Systems Ø Windows Server, version 1903 (Server Core installation) Ø Windows 10 Version 1909 for 32-bit Systems Ø Windows 10 Version 1909 for x64-based Systems Ø Windows 10 Version 1909 for ARM64-based Systems Ø Windows Server, version 1909 (Server Core installation) |
조치방안 |
1. 윈도우 보안 업데이트(자동). 3. 445 TCP 포트 차단 및 SMB v3 압축 비활성화 (임시조치)
|
2. 환경구성
테스트 환경 |
공격자 : Kali-Linux |
참고 사이트 |
http://www.skinfosec.com/newsRoom/eqstInsight/eqstInsightList.do https://github.com/ollypwn/SMBGhost https://github.com/maxpl0it/Unauthenticated-CVE-2020-0796-PoC |
3. 시나리오 구성
가. 개요
- 해당 취약점이 발생하는 원인은 조작된 SMB 헤더와 커널에서 사용하는 srv2.sys 드라이버 내 Srv2DecompressData 함수에서 정수 오버플로우로 인해 발생한다. 이때 사용되는 헤더가 SMB2_COMPRESSION_TRANSFORM_HEADER다.
나. 시나리오
2. 취약점 테스트
Step 1) Windows 10 취약한 버전 1909 확인했다.
Step 2) 피해자의 Windows 10 IP를 확인했다.
Step 3) 공격자가 nmap을 통해 SMB 프로토콜 관련된 445 port가 open 되어 있는 것을 확인했다.
Step 4) PoC 코드를 이용해 SMB 프로토콜 관련해 취약성을 확인했다.
Step 5) PoC 코드를 이용해 버퍼 오버 플로우 공격을 시도했다.
Step 6) PoC 공격 코드를 실행하면 아래와 같이 Blue Screen이 발생하는 것을 알 수 있다.
5. 취약점 분석
SMB2 프로토콜 Header 구조 내용이다.
SMB 프로토콜 헤더 구조의 설명이다.
이름 |
설명 |
|
Protocolld (4bytes) |
프로토콜 식별자. 0x424D53FC 고정 값 |
|
OriginalCompressSegmentSize (4bytes) |
압축되지 않은 Segment 크기 |
|
CompressionAlgorithm (2Bytes) |
압축 알고리즘 |
|
Flags (2bytes) |
Chain 압축 여부 확인 |
|
Offset/Length (4bytes) |
SMB2_COMPRESSION_FLAG_NONE 0x0000 |
체인 압축은 지원하지 않음 |
SMB2_COMPRESSION_FLAG_NONE 0x0001 |
여러 압축 페이로드와 연결 |
PoC 코드를 보면 취약한 Smb2CompressTransformHeader에 offset 0xffffffff, data “A”*50개를 보내는 것을 알 수 있다.
와이어샤크의 패킷을 보면 Offset 0xffffffff과 데이터 “A”가 들어가 오버플로우를 발생시키는 것을 알 수 있다.
6. 대응방안
아래와 같은 명령어를 통해 SMB 프로토콜을 비활성화 설정을 했다.
비활성화 시킨 후 다시 한번 scanner 실행 시 Not vulnerable을 확인할 수 있다.
SMB 프로토콜을 차단하는 Snort Rule 정책 설정을 할 수 있다.
alert tcp any any -> any 445 (msg:"Alert: SMBv3 Used with compression - Client to server"; content:"|fc 53 4d 42|"; offset: 0; depth: 10; sid:1000001; rev:1; reference:url,//portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796;) |
alert tcp any 445 -> any any (msg:"Alert: SMBv3 Used with compression - Server to client"; content:"|fc 53 4d 42|"; offset: 0; depth: 10; sid:1000002; rev:1; reference:url,//portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796;) |
'CVE 취약점' 카테고리의 다른 글
Linux SUDO Baron Samedit 취약점 (CVE-2021-3156) (0) | 2021.02.01 |
---|---|
Windows Netlogon 권한상승 취약점 (CVE-2020-1472) (0) | 2020.12.26 |
Ghostcat : Tomcat-AJP (CVE-2020-1938) (0) | 2020.03.22 |
WordPress Plugin Quizlord 2.0 - Cross-Site Scripting (0) | 2019.06.29 |
WordPress Plugin WP with Spritz 1.0 - Remote File Inclusion (0) | 2019.06.02 |