일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- base64
- otter
- Volatility
- Docker
- elasticsearch
- foremost
- Reflected XSS
- frida
- XSS
- ESXi
- Openstack
- CTF-d
- 안드로이드
- MFT
- NTFS
- lord of sql injection
- 파이썬
- kibana
- ctf
- InsecureBank
- diva
- Strings
- vulnhub
- 인시큐어뱅크
- beebox
- 2018
- igoat
- logstash
- SQL Injection
- Suninatas
- Today
- Total
Information Security
PrintNightmare 취약점 (CVE-2021-1675, CVE-2021-34527 ) 본문
PrintNightmare 취약점은 윈도우의 Print Spooler를 이용한 권한 상승 및 원격 코드 실행 취약점이다. Print Spooler는 윈도우 설치 시 기본적으로 설치되며, 컴퓨터가 부팅될 때 자동으로 실행되는 서비스다.
CVE-2021-1675는 권한 상승 취약점이고, 후에 발견된 CVE-2021-34527은 원격 코드 실행 취약점이다.
CVE-2021-34527을 이용하여 시스템 권한 획득 후 일반 사용자의 권한을 상승시키거나, 새로운 계정을 생성하거나, 기밀정보 유출이 가능하며, 프로그램 설치 혹은 악성 파일을 업로드할 수 있다. 프린트를 사용할 때 필수적으로 사용되는 서비스이기 때문에 각별한 주의를 기울여야 한다.
S/W 구분 | 취약 버전 |
Windows Server | 2008(R2 포함), 2012(R2 포함), 2016, 2019, 1909, 2004, 20H2 |
Windows | 7, 8.1, RT 8.1, 10(1607, 1809, 1909, 2004, 20H2, 21H1) |
역할 | 구분 |
공격자 | Kali-Linux-2021.3 ( 192.168.157.137) |
피해자 | Windows Server 2016 (192.168.157.138) |
취약점 테스트
Windows Server 2016 도메인 컨트롤러를 설치한다.
다음 누른 후 설치가 완료되면 "이 서버를 도메인 컨트롤러로 승격"을 선택한다.
루트 도메인 이름을 test.com 설정한다.
암호를 Passw@rd 설정해준다.
NetBIOS 도메인 이름이 TEST로 설정이 된다.
설치가 완료되면 다시 시작한다.
도메인 test.com으로 설정된 것을 알 수 있다.
도메인 컨트롤러 설치가 완료되어 hacking이라는 계정을 생성한다.
암호는 Passw@rd로 설정을 해준다.
net user 명령어를 통해 hacking 계정을 확인할 수 있다.
hacking 계정이 Domain Users라는 것을 알 수 있다.
PoC 코드가 저장된 URL은 다음과 같다. ( https://github.com/cube0x0/CVE-2021-1675)
PoC 코드를 아래와 같이 알 수 있다.
PoC 사용에 필요한 impacket 모듈을 다음 URL에서 다운로드한다. (https://github.com/SecureAuthCorp/impacket)
impacket 모듈 파일을 아래와 같이 알 수 있다.
기존에 설치되어 impacket 모듈을 삭제한다.
impacket 디렉터리에 있는 setup.py 파일을 설치한다.
설치가 완료되면 기존의 impacket 디렉터리 파일들이 다른 것을 알 수 있다.
impacket 디렉터리 안에 있는 examples 디렉터리로 이동한다.
rpcdump.py를 이용해 피해자의 PC MS-RPRN(인쇄 원격 프로토콜)이 동작하는 것을 알 수 있다.
Windows 인쇄 스풀러 원격 코드 실행 취약점(CVE-2021-1675)을 감지하는 스캐너를 다운로드한다. (https://github.com/cybersecurityworks553/CVE-2021-1675_PrintNightMare.git)
CVE-2021-1675_PrintNightMare 디렉터리 파일을 아래와 같이 알 수 있다.
detectprintnightmare.py를 이용해 스캐너를 하면 피해자의 PC가 취약하다는 것을 알 수 있다.
/etc/samba/smb.conf 설정 파일을 아래와 같이 설정해준다.
samba 프로세스를 활성화시킨 후 동작하는 것을 확인한다.
msfvenom을 이용하여 window에 삽입할 dll 파일(리버스 쉘)을 생성한다.
공유할 디렉터리에서 smbserver를 동작시킨다.
Window server 2016에서 \\192.168.157.137를 실행하면 공유 폴더에 rev.dll 파일이 존재하는 것을 알 수 있다
PoC 공격 코드의 사용법을 확인한다.
msfconsole을 이용하여 삽입한 dll이 연결될 포트를 열어준다.
PoC 공격 코드를 실행해준다. (※ 도메인컨트롤러/ID:PASSWORD@피해자IP ‘\\공격자IP\smb\삽입할dll')
리버스 쉘을 통해 세션이 연결된 것을 알 수 있다. IP 주소를 확인하면 Window Server 2016 IP 주소가 같다.
Window Server에 hacking.txt를 만들었다.
Window Server에서 아래와 같이 확인할 수 있다.
대응방안
서비스에서 Spooler를 중지시킨다.
다시 PoC 공격 코드를 실행하면 연결이 되지 않는 것을 알 수 있다.
'CVE 취약점' 카테고리의 다른 글
GitLab 임의 파일 읽기 취약점 (CVE-2023-2825) (0) | 2023.08.12 |
---|---|
Microsoft MSHTML 취약점 (CVE-2021-40444) (0) | 2021.09.20 |
Linux SUDO Baron Samedit 취약점 (CVE-2021-3156) (0) | 2021.02.01 |
Windows Netlogon 권한상승 취약점 (CVE-2020-1472) (0) | 2020.12.26 |
GhostSMBv3 (CVE-2020-0796) (0) | 2020.05.12 |