¡¾Í¨¸æ¸üС¿Windows Print SpoolerÔ¶³Ì´úÂëÖ´ÐÐÎó²î£¨CVE-2021-34527£©

Ðû²¼Ê±¼ä 2021-07-08

0x00 Îó²î¸ÅÊö

CVE     ID

CVE-2021-34527

ʱ      ¼ä

2021-07-08

Àà      ÐÍ

RCE

µÈ      ¼¶

¸ßΣ

Ô¶³ÌʹÓÃ

ÊÇ

Ó°Ïì¹æÄ£


¹¥»÷ÖØÆ¯ºó

µÍ

¿ÉÓÃÐÔ

¸ß

Óû§½»»¥


ËùÐèȨÏÞ


PoC/EXP

ÒѹûÕæ

ÔÚҰʹÓÃ

ÊÇ

 

0x01 Îó²îÏêÇé

image.png

 

Windows Print SpoolerÊÇWindowsµÄ´òÓ¡»úºǫ́´¦Öóͷ£³ÌÐò £¬ÆäÖÎÀíËùÓÐÍâµØºÍÍøÂç´òÓ¡ÐÐÁв¢¿ØÖÆËùÓдòÓ¡ÊÂÇé £¬±»ÆÕ±éÓ¦ÓÃÓÚÍâµØºÍÄÚÍøÖÐ ¡£

2021Äê7ÔÂ6ÈÕ £¬MicrosoftÕë¶ÔCVE-2021-34527Ðû²¼ÁË´øÍâÇå¾²¸üÐÂKB5004945 ¡£¿ÉÊǽ¨Ò鲻ҪװÖÃMicrosoft 7 Ô 6 ÈÕÐû²¼µÄ²¹¶¡ £¬ÓÉÓÚËü²»µ«²»¿É±ÜÃâÎó²î £¬²¢ÇÒ»áÐ޸ġ°localspl.dll¡±Îļþ £¬Ê¹µÃ0Patch µÄ²¹¶¡²»ÔÙÓÐÓà ¡£

Çå¾²Ñо¿Ö°Ô±ÌåÏÖ £¬Î¢ÈíÖ»ÐÞ¸´Á˸ÃÎó²îµÄÔ¶³Ì´úÂëÖ´Ðв¿·Ö £¬µ«ÔÚÆôÓÃ"Ö¸Ïò²¢´òÓ¡ÏÞÖÆ"µÄWindowsÕ½ÂÔµÄÇéÐÎÏ £¬¶ñÒâÈí¼þºÍ¹¥»÷ÕßÈÔÈ»¿ÉÒÔͨ¹ýÍâµØÈ¨ÏÞÌáÉý£¨LPE£©À´»ñµÃÒ×Êܹ¥»÷ϵͳµÄȨÏÞ £¬²¢¿ÉÒÔÈÆ¹ý²¹¶¡À´ÊµÏÖÔ¶³Ì´úÂëÖ´ÐÐ ¡£

µ«ÒªÈƹý²¹¶¡²¢ÊµÏÖRCEºÍLPE £¬±ØÐèÆôÓÃÃûΪ"Ö¸Ïò²¢´òÓ¡ÏÞÖÆ"µÄWindowsÕ½ÂÔ £¬²¢½« "×°ÖÃÐÂÅþÁ¬µÄÇý¶¯³ÌÐòʱ "µÄÉèÖÃÉèÖÃΪ "²»ÏÔʾÖÒÑÔ»òÌáÉýÌáÐÑ"£¨ÉèÖ÷¾¶£º×éÕ½ÂÔ>ÅÌËã»úÉèÖÃ>ÖÎÀíÄ£°å>´òÓ¡»ú>Ö¸Ïò²¢´òÓ¡ÏÞÖÆ£© ¡£

image.png

ÆôÓúó £¬ÔÚ×¢²á±íHKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint¼üÏ £¬"NoWarningNoElevationOnInstall "Öµ½«±»ÉèÖÃΪ1 ¡£

¸ÃÎó²î£¨CVE-2021-34527£©ÊÇAddPrinterDriverEx£¨£©¡¢RpcAddPrinterDriver£¨£©ºÍRpcAsyncAddPrinterDriver£¨£©µÈÓÃÓÚ×°ÖÃÍâµØ»òÔ¶³Ì´òÓ¡»úÇý¶¯³ÌÐòµÄWindows APIº¯ÊýÖÐȱÉÙACL£¨»á¼û¿ØÖÆÁÐ±í£©¼ì²éÔì³ÉµÄ ¡£ÕâЩº¯Êý¶¼ÊÇͨ¹ý²î±ðµÄWindows APIʹÓà £¬ÈçÏ£º

AddPrinterDriverEx (SDK)

RpcAddPrinterDriver (MS-RPRN)

RpcAsyncAddPrinterDriver (MS-PAR)

ʹÓøÃÎó²î¿ÉÒÔÈÆ¹ýȨÏÞ¼ì²é £¬½«¶ñÒâDLL×°Öõ½C:\Windows\System32\spool\driversÎļþ¼ÐÖÐ £¬È»ºóͨ¹ýÎó²î¼ÓÔØÎª´òÓ¡Çý¶¯ £¬ÊµÏÖÔ¶³Ì´úÂëÖ´ÐлòÍâµØÈ¨ÏÞÌáÉý ¡£

 

0x02 ÀúÊ·»ØÊ×

2021Äê6ÔÂ29ÈÕ £¬Çå¾²Ñо¿Ö°Ô±ÔÚGitHubÉϹûÕæÁËÒ»¸öWindows Print SpoolerÔ¶³Ì´úÂëÖ´ÐÐ0dayÎó²î£¨CVE-2021-34527£© ¡£

ÐèÒª×¢ÖØµÄÊÇ £¬¸ÃÎó²î£¨CVE-2021-34527£©ÓëMicrosoft 6ÔÂ8ÈÕÐÇÆÚ¶þ²¹¶¡ÈÕÖÐÐÞ¸´²¢ÓÚ6ÔÂ21ÈÕ¸üеÄÒ»¸öEoPÉý¼¶µ½RCEµÄÎó²î£¨CVE-2021-1675£©²»ÊÇͳһ¸öÎó²î ¡£ÕâÁ½¸öÎó²îÏàËÆµ«²î±ð £¬¹¥»÷ÏòÁ¿Ò²²î±ð ¡£

ÏÖÔÚ¸ÃÎó²îÒѾ­¹ûÕæÅû¶ £¬²¢ÇÒÒÑ·ºÆðÔÚҰʹÓà ¡£µ± Windows Print Spooler ·þÎñ²»×¼È·µØÖ´ÐÐÌØÈ¨Îļþ²Ù×÷ʱ £¬±£´æÔ¶³ÌÖ´ÐдúÂëÎó²î ¡£ÀÖ³ÉʹÓôËÎó²îµÄ¹¥»÷Õß¿ÉÒÔʹÓà SYSTEM ȨÏÞÔËÐÐí§Òâ´úÂë¡¢×°ÖóÌÐò¡¢Éó²é²¢¸ü¸Ä»òɾ³ýÊý¾Ý¡¢»ò½¨Éè¾ßÓÐÍêÈ«Óû§È¨ÏÞµÄÐÂÕÊ»§ £¬µ«¹¥»÷±ØÐèÉæ¼°Å²Óà RpcAddPrinterDriverEx() µÄ¾­ÓÉÉí·ÝÑéÖ¤µÄÓû§ ¡£

 

0x03 ´¦Öóͷ£½¨Òé

µÚÈý·½²¹¶¡·þÎñÍŶÓ0patchΪ CVE-2021-34527Ðû²¼ÁËÒ»¸öÃâ·ÑµÄ΢²¹¶¡ £¬¾ÝÌåÏָò¹¶¡Äܹ»×èÖ¹Õë¶Ô´ËÎó²îʹÓà ¡£ÔÚ΢ÈíÐû²¼×îÖÕ¸üÐÂ֮ǰ £¬½¨ÒéÓû§×°Öà 0Patch µÄ΢²¹¶¡»ò½ûÓà Print Spooler ·þÎñ ¡£

 

1.½ûÓà Print Spooler ·þÎñ£¨¿ÉÑ¡ÆäÒ»£© ¡£

ʹÓÃÒÔÏ PowerShell ÏÂÁ

Stop-Service -Name Spooler -Force

Set-Service -Name Spooler -StartupType Disabled

 

2. ͨ¹ý×éÕ½ÂÔ½ûÓÃÈëÕ¾Ô¶³Ì´òÓ ¡£¨¿ÉÑ¡ÆäÒ»£©

ÔËÐÐ×éÕ½ÂԱ༭Æ÷£¨Win+R¿ì½Ý¼ü £¬ÊäÈëgpedit.msc £¬·­¿ª×éÕ½ÂԱ༭Æ÷£© £¬ÒÀ´Î½øÈ룺ÅÌËã»úÉèÖÃ>ÖÎÀíÄ£°å>´òÓ¡»ú £¬½ûÓá°ÔÊÐí´òÓ¡ºǫ́´¦Öóͷ£³ÌÐò½ÓÊܿͻ§¶ËÅþÁ¬¡±Õ½ÂÔÒÔ×èÖ¹Ô¶³Ì¹¥»÷ ¡£

 

ÏÂÔØÁ´½Ó£º

https://blog.0patch.com/2021/07/free-micropatches-for-printnightmare.html

 

0x04 ²Î¿¼Á´½Ó

https://github.com/afwu/PrintNightmare

https://www.bleepingcomputer.com/news/microsoft/microsofts-incomplete-printnightmare-patch-fails-to-fix-vulnerability/

https://blog.0patch.com/2021/07/free-micropatches-for-printnightmare.html

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527

 

0x05 ʱ¼äÏß

2021-07-01  MicrosoftÐû²¼Ç徲ͨ¸æ

2021-07-02  VSRCÐû²¼Ç徲ͨ¸æ

2021-07-06  MicrosoftÐû²¼Çå¾²¸üÐÂ

2021-07-08  VSRC¸üÐÂÇ徲ͨ¸æ

 

0x06 ¸½Â¼

CVSSÆÀ·Ö±ê×¼¹ÙÍø£ºhttp://www.first.org/cvss/

image.png