¡¾Îó²îͨ¸æ¡¿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Êý¾Ý°üµÄÀ©Õ¹±¨Í·µÄº¯ÊýºÍËüµÄÑ¡Ïîȱ·¦¶Ô±¨Í·³¤¶È×ֶεļì²é£¬ÔÊÐí¹¥»÷Õßͨ¹ýÌṩí§Òⳤ¶ÈÖµ½«º¯Êý·ÅÈëÒ»¸öÎÞÏÞÑ­»· ¡£

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