¡¾·ì϶¹«¸æ¡¿TCP/IPºÍ̸ջ·ì϶AMNESIA:33

°ä²¼¹¦·ò 2020-12-10

0x00 ·ì϶¸ÅÊö

2020Äê12ÔÂ08ÈÕ£¬Forescout³¢ÊÔÊÒ°ä²¼ÁË4¸ö¿ªÔ´TCP/IPºÍ̸ջÖб»Í³³ÆÎªAMNESIA:33µÄ33¸ö·ì϶¡£ÕâЩ·ì϶µÄÑϳÁÐÔÒѾ­³¬³öÁËͨÀý°²È«ÁìÓò£¬²¢ÇÒÒ»ÏòÑÓ³¤µ½¿ª·¢¼¶±ð¡£

0x01 ·ì϶ÏêÇé

image.png

֮ǰÅû¶³öµÄÔÚTreck TCP/IPºÍ̸ջÖз¢ÏÖµÄ19¸ö0day·ì϶£¨Í³³ÆÎªRipple20 ·ì϶£©Â¶³öÁ˸´ÔÓÎïÁªÍø¹©¸øÁ´ÖеĶà¸ö·ì϶£¬Ó°ÏìÁ˶à¸öÐÐÒµµÄÊý°ÙÍǫ̀É豸¡£

×êÑÐÈËÔ±°µÊ¾£¬ÊÜRipple20 ·ì϶µÄÆô·¢£¬ËûÃÇ·ÖÎöÁËÆäËü¸ö7¸öTCP/IP ºÍ̸ջµÄ°²È«ÐÔ£¬ÒÔ´ÓÖÐÕÒµ½ÀàËÆµÄ·ì϶¡£

Òò¶øËûÃǽñÄêÔÚ¡°Project Memoria¡±ÏîÄ¿ÖÐʹÓÃ×Ô¶¯»¯ÍÌͲâÊÔºÍÊÖ¹¤´úÂë²é³­·¢ÏÖÁË33¸ö·ì϶¡£ÆäÖУ¬ÔÚuIPÖз¢ÏÖÁË13¸ö·ì϶£¬picoTCPÖз¢ÏÖÁË10¸ö·ì϶£¬FNETºÍNut/NetÖи÷·¢ÏÖ5¸ö·ì϶¡£

image.png

AMNESIA:33»áÓ°ÏìDNS¡¢IPv6¡¢IPv4¡¢TCP¡¢ICMP¡¢LLMNRºÍmDNSµÈ7¸ö·ÖÆçµÄ×é¼þ£¬ÆäÓ°ÏìÔ̺¬Ô¶³Ì´úÂëÖ´ÐÓ×¢»Ø¾ø·þÎñ¡¢ÐÅϢй©¡¢DNS»º´æÖж¾µÈ£¬ÊÜÓ°ÏìµÄ×é¼þÈçÏ£º

image.png

ÕâЩ·ì϶Ԥ¼ÆÓ°Ïì150¶à¼Ò¹©¸øÉ̺ÍÊý°ÙÍòÉ豸£¬É漰ǶÈëʽÉ豸µÄ²Ù×÷ϵͳ¡¢Ð¾Æ¬ÏµÍ³¡¢ÍøÂçÉ豸¡¢OTÉ豸ÒÔ¼°´óÁ¿ÆóÒµ¼¶ºÍÏû·Ñ¼¶IoTÉ豸¡£

image.png

 

 

AMNESIA:33·ì϶ÁбíÈçÏ£º

CVE-ID

ÃèÊö

ÊÜÓ°Ïì²úÆ·/×é¼þ

ÀàÐÍ

ÆÀ·Ö

CVE-2020-13984

ÓÃÓÚ´¦ÖÃIPv6À©´ó±¨Í·ºÍÀ©´ó±¨Í·Ñ¡ÏîµÄº¯ÊýÄܹ»ÓÉÓÚδ²é³­±¨Í·/Ñ¡ÏîµÄ³¤¶È¶ø½øÈëÎÞÏÞÑ­»·×´Ì¬¡£

Ext.   header parsing in IPv6 (6LoWPAN)

DoS

7.5

CVE-2020-13985

µ±½âÎö±¨Í·ÖÐÌṩµÄֵʱ£¬ÓÃÓÚÆÆ½âRPLÀ©´ó±¨Í·µÄº¯Êý²»»á²é³­²»°²È«µÄÕûÊýת»»£¬´Ó¶øÔÊÐí¹¥»÷Õß·ÛËéÄÚ´æ¡£

Ext.   header parsing in IPv6

DoS

7.5

CVE-2020-13986

ÓÃÀ´ÆÆ½âRPLÀ©´ó±¨Í·µÄº¯Êý²»²é³­½Ó¹Üµ½µÄRPLÀ©´ó±¨Í·µÄ³¤¶ÈÖµ£¬ÔÊÐí¹¥»÷Õß½«Æä·ÅÈëÎÞÏÞÑ­»·ÖС£

Ext.   header parsing in IPv6 (6LoWPAN)

DoS

7.5

CVE-2020-13987

½âÎö´«Èë´«Êä²ãÊý¾Ý°ü(TCP/UDP)µÄÖ°Äܲ»²é³­Êý¾Ý°üÍ·µÄ³¤¶È×Ö¶ÎÓëÊý¾Ý°üÖпÉÓõÄÊý¾Ý¡£

TCP/UDP   checksum calculation in IPv4

DoS   ¡¢ÐÅϢй¶

8.2

CVE-2020-13988

¸ø¶¨ËÁÒⳤ¶È£¬ÔÚУÑéºÍÍÆËãÆÚ¼ä¿ÉÄÜÖ´ÐÐÔ½½çÄÚ´æ¶ÁÈ¡¡£

TCP   options parsing in IPv4

DoS

7.5

CVE-2020-17437

ÔÚ´¦ÖÃTCP´¹Î£Êý¾Ýʱ£¬¶Ô´¹Î£Êý¾ÝÖ¸ÕëµÄÖµ²»½øÐÐÓÐЧ²é³­£¬´Ó¶øÔÊÐí¹¥»÷Õßͨ¹ýÌṩËÁÒâµÄÊý¾Ý·ÛËéÄÚ´æTCPÊý¾Ý°üÖеĴ¹Î£Êý¾ÝÖ¸ÕëÆ«ÒÆÁ¿¡£

TCP   packet processing

DoS

8.2

CVE-2020-17438

³ÁÐÂ×é×°Ë鯬°üµÄ´úÂë²»ÑéÖ¤ÆäIP±¨Í·ÖÐÖ¸¶¨µÄ´«Èë°üµÄ×ܳ¤¶È£¬ÒÔ¼°IP±¨Í·ÖÐÖ¸¶¨µÄËéÆ¬Æ«ÒÆÖµ¡£Õâ¿ÉÄܻᵼÖÂÄÚ´æ°Ü»µ¡£

Fragmented   packet reassembly in IPv4

DoS

7.0

CVE-2020-17439

¼´±ãûÓд«³öµÄ²éÎÊ£¬DNS¿Í»§¶ËÒ²»á½âÎö´«ÈëµÄDNSÓ¦´ð¡£DNSÊÂÎñID²»ÊÇÆëÈ«Ëæ»úµÄ¡£ÈôÊÇDNS»º´æ¼«¶ÈÓ×(4¸öÌõ¿î)£¬ÕâÈÝÒ×Êܵ½DNS»º´æÖж¾¹¥»÷¡£

DNS   response processing

DNS»º´æÖж¾

8.1

CVE-2020-17440

½âÎö´«ÈëµÄDNSÊý¾Ý°üʱ£¬²»²é³­ÓòÃûÊÇ·ñΪ¿ÕÖÕÖ¹¡£ÕâʹµÃ¹¥»÷ÕßÄܹ»Í¨¹ý¾«ÐÄÉè¼ÆµÄDNSÏìÓ¦À´·ÛËéÄÚ´æ¡£

DNS   domain name decoding

DoS

7.5

CVE-2020-24334

´¦ÖÃDNSÏìÓ¦µÄ´úÂë²»²é³­DNSpacket±¨Í·ÖÐÖ¸¶¨µÄÏìÓ¦ÊýÁ¿ÊÇ·ñÓëDNS°üÖпÉÓõÄÏìÓ¦Êý¾ÝÏà¶ÔÓ¦£¬´Ó¶øÔÊÐí¹¥»÷Õß·ÛËéÄÚ´æ¡£

DNS   response processing

DoS

8.2

CVE-2020-24335

½âÎöÓòÃûµÄÖ°ÄܶÌȱboundschecks£¬ÔÊÐí¹¥»÷ÕßÓþ«ÐÄÉè¼ÆµÄDNS°ü·ÛËéÄÚ´æ¡£

DNS   domain name decoding

DoS

7.5

CVE-2020-24336

½âÎöͨ¹ýNAT64·¢Ë͵ÄDNSÏìÓ¦°üÖеÄDNS¼Í¼µÄ´úÂë²»ÑéÖ¤ÏìÓ¦¼Í¼µÄ³¤¶È×ֶΣ¬ÔÊÐí¹¥»÷Õß·ÛËéÄÚ´æ¡£

DNS   response parsing in NAT64

RCE

9.8

CVE-2020-25112

¶ÔIPv4/IPv6±¨Í·³¤¶ÈµÄ²é³­²»¹»£¬»ò¶Ôipv6±¨Í·À©´ó³¤¶ÈµÄ²é³­²»Ò»Ö£¬Ê¹µÃ¹¥»÷ÕßÄܹ»·ÛËéÄÚ´æ¡£

ICMPv6   echo/reply processing

RCE

8.1

CVE-2020-17441

IPv6À©´ó±¨Í·µÄPayload³¤¶È×ֶβ»²é³­´«ÈëÊý¾Ý°üÖеĿÉÓÃÊý¾Ý£¬ÔÊÐí¹¥»÷Õß·ÛËéÄÚ´æ¡£

Ext.   header parsing in IPv6, ICMPv6 checksum

DoS   ¡¢ÐÅϢй¶

7.5

CVE-2020-17442

´¦ÖÃIPv6Êý¾Ý°üµÄÀ©´ó±¨Í·µÄº¯ÊýºÍËüµÄÑ¡Ïî²»×ã¶Ô±¨Í·³¤¶È×ֶεIJ鳭£¬ÔÊÐí¹¥»÷Õßͨ¹ýÌṩËÁÒⳤ¶ÈÖµ½«º¯Êý·ÅÈëÒ»¸öÎÞÏÞÑ­»·¡£

Ext.   header parsing in IPv6

DoS

7.5

CVE-2020-17443

ÔÚ´¦ÖÃICMPv6 echoÒªÇóʱ£¬²»²é³­ICMPv6±¨Í·ÊÇ·ñÔ̺¬ÖÁÉÙ8¸ö×Ö½Ú(ÓÉRFC443ÉèÖÃ)¡£Õ⽫µ¼Ö»ùÓڽӹܵ½µÄÒªÇó´´½¨ICMPv6 echoÏìÓ¦µÄº¯Êý£¬¸Ãº¯ÊýÓµÓнÏÓ׵ı¨Í·£¬´Ó¶ø·ÛËéÄÚ´æ¡£

ICMPv6   echo request processing

DoS

8.2

CVE-2020-17444

´¦ÖÃIPv6±¨Í·µÄº¯Êý²»²é³­À©´ó±¨Í·µÄ³¤¶ÈÑ¡ÏÔÊÐí¹¥»÷ÕßʹÓþ«ÐÄÉè¼ÆµÄ³¤¶ÈÖµ½«Õâ¸öº¯Êý·ÅÈëÒ»¸öÎÞÏÞÑ­»·ÖС£

Ext.   header parsing in IPv6

DoS

7.5

CVE-2020-17445

´¦ÖÃIPv6 DestinationOptionsÀ©´óÍ·µÄº¯Êý²»²é³­ÆäÑ¡Ï¶ÈµÄÓÐЧÐÔ£¬ÔÊÐí¹¥»÷Õß·ÛËéÄÚ´æ»ò½«º¯Êý·ÅÈëÒ»¸öÓµÓо«ÐÄÉè¼ÆµÄ³¤¶ÈÖµµÄÎÞÏÞÑ­»·¡£

Ext.   header parsing in IPv6

DoS

7.5

CVE-2020-24337

´¦ÖÃTCPÑ¡ÏîµÄº¯Êý²»ÑéÖ¤ËüÃǵij¤¶È£¬ÕâʹµÃ¹¥»÷ÕßÄܹ»½«´¦Öò»³£¼û»ò²»Ö§³ÖµÄTCPÑ¡ÏîµÄº¯Êý·ÅÈëÒ»¸öÎÞÏÞÑ­»·ÖУ¬ÕâЩTCPÑ¡Ïî¶¼ÓÐ×Ô¼ºµÄ³¤¶ÈÖµ¡£

TCP   options parsing in IPv4

DoS

7.5

CVE-2020-24338

½âÎöÓòÃûµÄÖ°ÄܶÌȱboundschecks£¬ÔÊÐí¹¥»÷ÕßÓþ«ÐÄÉè¼ÆµÄDNS°ü·ÛËéÄÚ´æ¡£

DNS   domain name decoding

RCE

9.8

CVE-2020-24339

½âÎöÓòÃûµÄÖ°ÄܶÌȱboundschecks£¬ÔÊÐí¹¥»÷ÕßÓþ«ÐÄÉè¼ÆµÄDNS°ü·ÛËéÄÚ´æ¡£

DNS   domain name decoding

DoS

7.5

CVE-2020-24340

´¦ÖÃDNSÏìÓ¦µÄ´úÂë²»²é³­DNSpacket±¨Í·ÖÐÖ¸¶¨µÄÏìÓ¦ÊýÁ¿ÊÇ·ñÓëDNS°üÖпÉÓõÄÏìÓ¦Êý¾ÝÏà¶ÔÓ¦£¬´Ó¶øÔÊÐí¹¥»÷ÕßÄÚ´æ·ÛËé¡£

DNS   response processing

DoS   ¡¢ÐÅϢй¶

8.2

CVE-2020-24341

TCPÊäÈëÊý¾Ý´¦ÖÃÖ°Äܲ»ÑéÖ¤´«ÈëTCPÊý¾Ý°üµÄ³¤¶È£¬ÔÊÐí¹¥»÷Õß¶ÁȡԽ½ç²¢·ÛËéÄÚ´æ

TCP   packet processing

DoS   ¡¢ÐÅϢй¶

8.2

CVE-2020-17467

½âÎöLLMNRÒªÇóʱ£¬²»²é³­ÓòÃûÊÇ·ñΪ¿ÕÖÕÖ¹¡£Õâ¿ÉÄÜ»áÈù¥»÷Õß¶ÁȡԽ½ç¡£

LLMNR   state machine

ÐÅϢй¶

8.2

CVE-2020-17468

´¦ÖÃIPv6 Hop-by-HopÀ©´ó±¨Í·µÄÖ°Äܲ»²é³­ÆäÑ¡Ï¶ÈµÄÓÐЧÐÔ£¬ÔÊÐí¹¥»÷Õß·ÛËéÄÚ´æ¡£

Ext.   header parsing in IPv6

DoS

7.5

CVE-2020-17469

IPv6Êý¾Ý°ü³Á×éÖ°Äܲ»²é³­ÊÕµ½µÄË鯬ÊÇ·ñÔÚÄÚ´æÖÐÕýÈ·¶ÔÆë£¬ÔÊÐí¹¥»÷ÕßÖ´ÐÐÆä¾«ÐÄÔì×÷µÄIPv6Ë鯬Êý¾Ý°ü¡£

Fragmented   packet reassembly in IPv6

DoS

5.9

CVE-2020-17470

³õʼ»¯DNS¿Í»§¶Ë½Ó¿Ú½á¹¹µÄ´úÂëûÓÐÉèÖÃ×ã¹»µÄËæ»útransactionid(ËüÃÇ×ÜÊDZ»ÉèÖÃΪ1)£¬ÈÝÒ×Ôâ·êDNS»º´æÖж¾¹¥»÷¡£

DNS   response processing

DNS»º´æÖж¾

4.0

CVE-2020-24383

½âÎö´«ÈëµÄmDNSÊý¾Ý°üʱ£¬²»²é³­ÓòÃûÊÇ·ñΪ¿ÕÖÕÖ¹¡£ÕâÔÊÐí¹¥»÷ÕßʵÏÖÄÚ´æ°Ü»µ»òÄÚ´æÐ¹Â©¡£

DNS   domain name decoding

DoS   ¡¢ÐÅϢй¶

6.5

CVE-2020-25107

´¦ÖÃDNSÎÊÌâ»òÏìÓ¦µÄ´úÂë:(1)²»²é³­ÓòÃûÊÇ·ñΪ¿ÕÖÕÖ¹;(2)²»²é³­DNSÏìÓ¦Êý¾Ý³¤¶È(¿É´ÓÊý¾Ý°üÖÐËÁÒâÉèÖÃ);(3) DNS²éÎÊ»òÏìÓ¦µÄ´ÎÊý(ÔÚDNS±¨Í·ÖÐÉèÖÃ)ûÓÐÓ뵱ǰÊý¾Ý½øÐвé¶Ô;(4) DNS²éÎÊ»òÏìÓ¦ÖÐadomain nameµÄ³¤¶È×Ö½Ú²»±»²é³­£¬ÓÃÓÚÄÚ²¿ÄÚ´æ²Ù×÷¡£

DNS   domain name decoding/ DNS response processing

DoS

7.5

CVE-2020-25108

DoS

7.5

CVE-2020-25109

DoS

8.2

CVE-2020-25110

DoS

8.2

CVE-2020-25111

RCE

9.8

  

ÆäÖÐ4¸öÑϳÁµÄÔ¶³Ì´úÂëÖ´Ðзì϶ÈçÏ£º

Nut/NetÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-25111£©

ÓÉÓÚNut/Net´¦ÖÃDNSºÍÏìÓ¦´úÂëʱ´æÔÚ°²È«ÎÊÌ⣬¹¥»÷Õß¿ÉÀûÓô˷ì϶Զ³ÌÖ´ÐдúÂë¡£¸Ã·ì϶CVSSÆÀ·Ö9.8¡£

picoTCPÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-24338£©

ÓÉÓÚpicoTCP½âÎöÓòÃûµÄº¯Êý²»×ãÌìǵ²é³­£¬¹¥»÷ÕßÄܹ»Í¨¹ýαÔìµÄDNSÊý¾Ý°üÀ´·ÛËéÄڴ棬×îÖÕÄܹ»Ô¶³ÌÖ´ÐдúÂë¡£¸Ã·ì϶CVSSÆÀ·Ö9.8¡£

uIPÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-24336£©

ÓÉÓÚͨ¹ýNAT64·¢Ë͵ÄDNSÏìÓ¦Êý¾Ý°üÖнâÎöDNS¼Í¼µÄ´úÂëûÓÐÑéÖ¤ÏìÓ¦¼Í¼µÄ³¤¶È×ֶΣ¬¹¥»÷ÕßÄܹ»ÀûÓô˷ì϶À´·ÛËéÄڴ棬×îÖÕÔ¶³ÌÖ´ÐдúÂë¡£¸Ã·ì϶CVSSÆÀ·Ö9.8¡£

uIPÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-25112£©

¸Ã·ì϶ÊǶÔIPv4/IPv6Í·³¤¶È²é³­²»¼°»ò¶ÔIPv6Í·À©´ó³¤¶È²é³­²»Ò»Öµ¼ÖµÄ£¬¹¥»÷Õß¿ÉÀûÓô˷ì϶À´·ÛËéÄڴ棬×îÖÕÔ¶³ÌÖ´ÐдúÂë¡£¸Ã·ì϶CVSSÆÀ·Ö8.1¡£

 

0x02 ´ëÖý¨Òé

ĿǰContiki-NG¡¢PicoTCP-NG¡¢FNETºÍNut/NetÒѾ­°ä²¼ÁËÓйز¹¶¡£¬uIP¡¢ContikiºÍPicoTCPÔÝδ°ä²¼²¹¶¡¡£

½¨Òé²ÉÈ¡ÈçÏ»º½â´ëÊ©£º

·çÏÕÆÀ¹À£º·çÏÕÆÀ¹ÀÒÔ¼ø±ðÄÚ²¿Ç±ÔÚÍþв£¨ÈçÒ×Êܹ¥»÷µÄÉ豸¡¢É豸µÄͨѶõè¾¶¡¢ÔÚ»¥ÁªÍøÉϵͳöÇé¿öµÈ£©¡£

ʹÓÃÄÚ²¿DNS·þÎñÆ÷£ºÓÉÓÚAMNESIA:33Öеö·ì϶ÓëDNSÓйØ£¬ËùÒÔ¾¡Á¿Ê¹ÓÃÄÚ²¿DNS·þÎñÆ÷£¬²¢Ç×êǼලÀ´×Ô±í²¿µÄDNSÁ÷Á¿¡£

×èÖ¹»ò½ûÓò»ÓÃÒªµÄIPv6Á÷Á¿£ºÓÉÓÚAMNESIA:33ÖеĶà¸ö·ì϶ÓëIPv6×é¼þÓйØ£¬Òò¶ø½¨Òé×èÖ¹»ò½ûÓò»ÓÃÒªµÄIPv6ÍøÂçÁ÷Á¿¡£

ÍøÂç·Ö¶Î£ºÍøÂç·Ö¶ÎÀ´×î´óˮƽµØÏ÷¼õÍøÂçÔÚInternetÉϵͳöÇé¿ö¡£

¼à¶½Òì³£Êý¾Ý°ü£º¹Ø×¢ÍøÂçÁ÷Á¿ÖÐÌåʽÃýÎó»òÒì³£µÄÊý¾ÝÁ÷ºÍÊý¾Ý°ü£¨Èç×ֶγ¤¶È²»ºÏ¸ñ»òУÑéºÍʧ°ÜµÈ£©¡£

 

0x03 ²Î¿¼Á´½Ó

https://www.forescout.com/company/resources/amnesia33-how-tcp-ip-stacks-breed-critical-vulnerabilities-in-iot-ot-and-it-devices/

https://www.forescout.com/research-labs/amnesia33/

https://searchsecurity.techtarget.com/news/252493283/Forescout-reports-33-new-TCP-IP-vulnerabilities

 

0x04 ¹¦·òÏß

2020-12-08  ForescoutÅû¶·ì϶

2020-12-10  VSRC°ä²¼°²È«¹«¸æ

 

0x05 ¸½Â¼

 

CVSSÆÀ·Ö³ß¶È¹ÙÍø£ºhttp://www.first.org/cvss/

image.png