AMNESIA33£º¿ªÔ´TCP/IPºÍ̸ջϵÁзì϶·ÖÎöÓëÑéÖ¤
°ä²¼¹¦·ò 2020-12-14ý½é
½üÆÚ£¬£¬£¬¹úÍⰲȫ×êÑÐÈËÔ±ÔÚ¶à¸ö±»¿í·ºÊ¹ÓõĿªÔ´TCP/IPºÍ̸ջ·¢ÏÖÁ˶à¸ö·ì϶£¬£¬£¬ÕâһϵÁзì϶ͳ³ÆÎªAMNESIA33¡£¡£ÕâЩ·ì϶¿í·º´æÔÚÓÚǶÈëʽºÍÎïÁªÍøÉ豸ÖУ¬£¬£¬Ó°ÏìÁ˶à¸öÐÐÒµÁìÓò£¨Ô̺¬Ò½ÁÆ¡¢¡¢ÔËÊä¡¢¡¢ÄÜÔ´¡¢¡¢µçÐÅ¡¢¡¢¹¤Òµ½ÚÖÆ¡¢¡¢ÁãÊÛºÍóÒ׵ȣ©£¬£¬£¬Ä¿Ç°ÒÑÖªÁìÓòÄÚÉæ¼°Á˳¬150¼Ò¹©¸øÉÌÒÔ¼°ÊýÒÔ°ÙÍò¼ÆµÄÉ豸¡£¡£ÓëURGEN11ºÍRipple20·ÖÆçµÄÊÇ£¬£¬£¬AMNESIA33Ó°ÏìµÄÊǶà¸ö¿ªÔ´TCP/IPºÍ̸ջ£¬£¬£¬Òò¶øÕâЩ·ì϶Äܹ»ÇÄÎÞÉùÏ¢µØÓ°Ïìµ½ÎÞÊý¸ö´úÂë¿â¡¢¡¢¿ª·¢ÍŶÓÓë¸÷¸ö¹«Ë¾µÄ²úÆ·¡£¡£Ä¿Ç°ÒÑÖªµÄ·ìÏ¶Éæ¼°µ½ÁËÖÇÄܼҾӡ¢¡¢¹¤³§PLC¡¢¡¢SCADAÉ豸Ó빤¿Ø»¥»»»ú£¬£¬£¬µçÁ¦¼à¿ØµÈÉ豸¡£¡£
ÕâЩ·ì϶´æÔÚÓÚuIP¡¢¡¢FNET¡¢¡¢picoTCPºÍNut/NetµÈ¿ªÔ´ºÍ̸ջÉÏ£¬£¬£¬Ó°ÏìTCP/IPºÍ̸ջµÄ¶à¸ö×é¼þ£¬£¬£¬Ô̺¬DNS¡¢¡¢IPv6¡¢¡¢IPv4¡¢¡¢TCP¡¢¡¢ICMP¡¢¡¢LLMNRºÍmDNSµÈ¡£¡£ÆäÖÐÔ̺¬¶à¸öÑÏÖØ·ì϶£¬£¬£¬ËüÃǵÄCVE±àºÅ±ðÀëΪCVE-2020-17437¡¢¡¢CVE-2020-17443¡¢¡¢CVE-2020-24338¡¢¡¢CVE-2020-24336¡¢¡¢CVE-2020-25111¡£¡£
CVE-2020-17437£¨CVSSÆÀ·Ö8.2£©¡¢¡¢CVE-2020-17443£¨CVSSÆÀ·Ö8.2£©¿Éµ¼ÖÂÉ豸»Ø¾ø·þÎñ¡£¡£CVE-2020-24338¡¢¡¢CVE-2020-24336¡¢¡¢CVE-2020-25111£¨ÕâÈý¸öCVSSÆÀ·Ö¾ùΪ9.8£©¶¼¿Éµ¼ÖÂÔ¶³Ì´úÂëÖ´ÐÐ(RCE)¡£¡£ÆäËü28¸ö·ì϶µÄÑÏÖØË®Æ½¸÷±ð£¬£¬£¬CVSSÆÀ·Ö±ðÀë´Ó4µ½8.2¡£¡£
ÓÉÓÚIoT¡¢¡¢OT¡¢¡¢ITÉ豸¹©¸øÁ´µÄ¸öÐÔ£¬£¬£¬·ì϶ӰÏìµÄÉ豸Öڶ࣬£¬£¬Ó°ÏìÁìÓò¹ãÇÒ³ÖÐø¹¦·ò³¤£¬£¬£¬·ì϶ÐÞ¸´µÄÖ´ÐнÏÄÑÌâ¡£¡£Í¬Ê±£¬£¬£¬ÓÉÓÚuIP¡¢¡¢picoTCP¿ªÔ´ºÍ̸ջÒѾ²»ÔÙÊØ»¤£¬£¬£¬ËùÒÔ²¿ÃÅ·ì϶ûÓв¹¶¡£¬£¬£¬ºÃ¶à²úÆ·Ö»ÄÜѰÕÒ´úÌæ¼¼Êõ¹æ»®»òÕßÊÇÔö³¤·À±¸´ëÊ©¡£¡£
¶ÔÓÚÕâЩ·ì϶µÄ·À±¸»º½â´ëÊ©£¬£¬£¬ÎÒÃǽ¨Òé²ÉÈ¡Èçϼ¸¸ö´ëÊ©£º
¡ñ ÅäÖÃÄÚÍøÉ豸µÄDNS·þÎñÆ÷ΪÄÚÍøDNS·þÎñÆ÷¡£¡£
¡ñ ÀûÓéɨ²úÆ·¼ø±ð³öѡȡÎÊÌâºÍ̸ջµÄÉ豸×ʲú£¬£¬£¬¶Ô×éÖ¯ÄÚ¿ÉÄÜ´æÔÚÎÊÌâµÄIoT¡¢¡¢OTºÍITÉ豸½øÐзçÏÕÆÀ¹À¡£¡£
¡ñ ·À»ðǽ¼°IPS²úÆ·²ÎÓëAMNESIA33·ì϶¹¥»÷¼ø±ðÌØµã£¬£¬£¬¼à¿Ø¶ñÒâÁ÷Á¿¡£¡£
¡ñ ¾¡¿ÉÄܸüÐÂÓйØÊÜÓ°ÏìºÍ̸ջµ½×îа汾¡£¡£
ϱíÊDz¿ÃÅÒѾÐÞ¸´µÄºÍ̸ջ¼°°æ±¾£º
TCP/IPºÍ̸ջ | ÐÞ¸´°æ±¾ |
FNET | 4.70¼°ÒÔÉÏ |
uIP-Contiki-NG | 4.6.0¼°ÒÔÉÏ |
Nut/Net | 5.1¼°ÒÔÉÏ |
CISAÁªÃË·ÖÏíÁË13¸öÉæ¼°µ½AMNESIA33·ì϶µÄ¹«Ë¾µÄ²úÆ·ÐÞ¸´½¨Ò飬£¬£¬Ô̺¬ÁËMicrochip¡¢¡¢SiemensµÈ¹«Ë¾µÄ²úÆ·£¬£¬£¬Ïê¼û²Î¿¼Á´½Ó[5]¡£¡£
1¡¢¡¢DNSºÍ̸½âÎö
DNSµÄÒªÇóºÍÏìÓ¦µÄ¸ù»ùµ¥ÔªÊÇDNS±¨ÎÄ£¨Message£©¡£¡£ÒªÇóºÍÏìÓ¦µÄDNS±¨ÎĽṹÊÇÆëȫһÑùµÄ£¬£¬£¬Ã¿¸ö±¨ÎͼÓÉÒÔÏÂÎå¶Î£¨Section£©×é³É£º

DNS HeaderÊÇÿ¸öDNS±¨Îͼ±ØÐëÕ¼ÓеÄÒ»²¿ÃÅ£¬£¬£¬ËüµÄ³¤¶È¹Ì¶¨Îª12¸ö×Ö½Ú¡£¡£Question²¿ÃÅ´æ·ÅµÄÊÇÏò·þÎñÆ÷²éÎʵÄÓòÃûÊý¾Ý£¬£¬£¬Í¨³£Çé¿öÏÂËüÖ»ÓÐÒ»ÌõEntry¡£¡£Ã¿¸öEntryµÄÌåʽÊÇÒ»ÑùµÄ£¬£¬£¬ÈçÏÂËùʾ£º

QNAMEÊÇÓÉlabelsÐòÁÐ×é³ÉµÄÓòÃû¡£¡£QNAMEµÄÌåʽʹÓÃDNS³ß¶ÈÃû³Æ°µÊ¾·¨¡£¡£Õâ¸ö×Ö¶ÎÊDZ䳤µÄ£¬£¬£¬Òò¶øÓпÉÄܳöÏÖÆæÊý¸ö×Ö½Ú£¬£¬£¬µ«²»½øÐв¹Æë¡£¡£DNSʹÓÃÒ»Öֳ߶ÈÌåʽ¶ÔÓòÃû½øÐбàÂë¡£¡£ËüÓÉһϵÁеÄlabel£¨ºÍÓòÃûÖÐÓÃ.Ô׸îµÄlabel·ÖÆç£©×é³É¡£¡£Ã¿¸ölabelÊ××ֽڵĸßÁ½Î»ÓÃÓÚ°µÊ¾labelµÄÀàÐÍ¡£¡£RFC1035ÖзÖÅäÁËËĸöÀïÃæµÄÁ½¸ö£¬£¬£¬±ðÀëÊÇ£º00°µÊ¾µÄͨ³£label£¬£¬£¬11£¨0xC0£©°µÊ¾µÄѹËõlabel¡£¡£
Answer¡¢¡¢AuthorityºÍAdditionalÈý¸ö¶ÎµÄÌåʽÊÇÆëȫһÑùµÄ£¬£¬£¬¶¼ÊÇÓÉÁãÖÁ¶àÌõResource Record£¨×ÊÔ´¼Í¼£©×é³É¡£¡£ÕâЩ×ÊÔ´¼Í¼ÓÉÓÚ·ÖÆçµÄÓô¦¶ø±»·Ö¸ô´æ·Å¡£¡£Answer¶ÔÓ¦²éÎÊÒªÇóÖеÄQuestion£¬£¬£¬QuestionÖеÄÒªÇó²éÎÊÁ˾ֻáÔÚAnswerÖиø³ö£¬£¬£¬ÈôÊÇÒ»¸öÏìÓ¦±¨ÎĵÄAnswerΪ¿Õ£¬£¬£¬×¢Ã÷Õâ´Î²éÎÊûÓÐÖ±½Ó»ñµÃÁ˾֡£¡£
RR(Resource Record)×ÊÔ´¼Í¼ÊÇDNSϵͳÖм«¶ÈÖØÒªµÄÒ»²¿ÃÅ£¬£¬£¬ËüÕ¼ÓÐÒ»¸ö±ä³¤µÄ½á¹¹£¬£¬£¬¾ßÌåÌåʽÈçÏ£º

¡ñ NAME£ºËüÖ¸¶¨¸Ã±Ê¼Í¼¶ÔÓ¦µÄÊÇÄĸöÓòÃû£¬£¬£¬ÌåʽʹÓÃDNS³ß¶ÈÃû³Æ°µÊ¾·¨
¡ñ TYPE£º×ÊÔ´¼Í¼µÄÀàÐÍ¡£¡£
¡ñ CLASS£º¶ÔÓ¦QuestionµÄQCLASS£¬£¬£¬Ö¸¶¨ÒªÇóµÄÀàÐÍ£¬£¬£¬³£ÓÃֵΪIN£¬£¬£¬ÖµÎª0x001¡£¡£
¡ñ TTL(Time To Live)×ÊÔ´µÄÓÐЧÆÚ£º°µÊ¾ÄãÄܹ»½«¸ÃÌõRR»º´æTLLÃ룬£¬£¬TTLΪ0°µÊ¾¸ÃRR²»Äܱ»»º´æ¡£¡£TTLÊÇÒ»¸ö4×Ö½ÚÓзûºÅÊý£¬£¬£¬µ«ÊÇֻʹÓÃËü´óÓÚµÈÓÚ0µÄ²¿ÃÅ¡£¡£
¡ñ RDLENGTH£ºÒ»¸öÁ½×ֽڷǸºÕûÊý£¬£¬£¬ÓÃÓÚÖ¸¶¨RDATA²¿Ãŵij¤¶È£¨×Ö½ÚÊý£©¡£¡£
¡ñ RDATA£º°µÊ¾Ò»¸ö³¤¶ÈºÍ½á¹¹¶¼¿É±äµÄ×ֶΣ¬£¬£¬ËüµÄ¾ßÌå½á¹¹È¡¾öÓÚTYPE×Ö¶ÎÖ¸¶¨µÄ×ÊÔ´ÀàÐÍ¡£¡£
DNSÏìÓ¦°üÈçÏÂͼËùʾ£º

´ÓÉÏͼÖпÉÖª£¬£¬£¬¸ÃAnswersÇø¶ÎÖдæÔÚ9¸ö×ÊÔ´¼Í¼£¬£¬£¬ºì¿òÖаµÊ¾µÄÊÇÖ÷»úµØÖ·£¨AÀàÐÍ£©×ÊÔ´¼Í¼¡£¡£
Óò±êÇ©labelÔÚDNSÊý¾Ý°üÀï±»±àÂ룬£¬£¬Ã¿¸öͨ³£±êÇ©µÄµÚÒ»¸ö×Ö½Ú´ú±íÕâ¸ö±êÇ©µÄ³¤¶È£¬£¬£¬Ê£ÏµÄ×ÖĸÊý×Ö×Ö·ûΪ±êÇ©×ÔÉí(Ò»Ð©ÌØÊâ×Ö·ûÒ²ÊÇÄܹ»µÄ)£¬£¬£¬µ«ÊÇ×îÖÕ½áβµÄ×Ö·û¿Ï¶¨ÊÇÒÔ¿Õ×Ö½Ú½áβ(¼´0x00)£¬£¬£¬ÓÃÀ´°µÊ¾ÓòÃûµÄʵÏÖ¡£¡£¾Ù¸öÀý×Ó£¬£¬£¬ÈçÏÂͼËùʾ£¬£¬£¬Óò±êÇ©µÚÒ»¸ö×Ö·ûÊÇ0x03£¬£¬£¬Õâ´ú±íµÚÒ»¸ö±êÇ©³¤¶ÈΪ3(¼´0x77 0x77 0x77 == ¡°www¡±)£¬£¬£¬Í¬Àí£¬£¬£¬0x62 0x61 0x690x64 0x75 == ¡°baidu¡±£¬£¬£¬×îºóÄܹ»¿´µ½ÒÔ0x00½áβ¡£¡£

2¡¢¡¢TCP´¹Î£Ä£Ê½
ΪÁË·¢ËÍÖØÒªºÍ̸Êý¾Ý,TCPÌṩÁËÒ»ÖÖ³ÆÎª´¹Î£Ä£Ê½(urgentmode)µÄ»úÖÆ£¬£¬£¬TCPºÍ̸ÔÚÊý¾Ý¶ÎÖÐÉèÖÃURGλ,°µÊ¾½øÈ봹Σģʽ¡£¡£Í¨¹ýÉèÖô¹Î£Ä£Ê½£¬£¬£¬·¢ËÍ·½Äܹ»ÔÚ·¢ËͶÓÁÐÖÐÓÅÏÈ·¢ËÍÕⲿÃŵÄÊý¾Ý£¬£¬£¬²¢ÇÒ²»ÓÃÔÚ·¢ËͶÓÁÐÖÐÁжӣ¬£¬£¬¶ø½Ó¹Ü·½Äܹ»¶Ô´¹Î£Ä£Ê½²ÉÈ¡ÌØÊâµÄ´¦Öᣡ£ÕâÖÖ·½Ê½Êý¾Ý²»ÈÝÒ×½ÓÊܱ»×èÈû,·þÎñÆ÷¶Ë·¨Ê½»áÓÅÏȽÓÊÜÕâЩ´¹Î£µÄÊý¾Ý£¬£¬£¬¶ø²»ÓýøÐÐÁжӴ¦Öᣡ£ÔÚTCP±¨ÎÄÖнç˵ÁËÁ½¸ö×Ö¶ÎÀ´±êʾ´¹Î£Ä£Ê½£¬£¬£¬Ò»¸öURG±êÖ¾£¬£¬£¬¸Ã±êÖ¾°µÊ¾±¨ÎÄÖÐÓд¹Î£Êý¾Ý£¬£¬£¬ÁíÒ»¸ö±êÖ¾ÊÇ´¹Î£Ö¸Õ룬£¬£¬Ëü±êʾ´¹Î£Êý¾ÝÔÚ´«ÊäÊý¾ÝÖÐÆ«ÒƵØÎ»¡£¡£ÈçÏÂͼËùʾ£º

ÏÂÃæÎÒÃǶԼ¸¸öCVSSÆÀ·Ö½Ï¸ßµÄ·ì϶½øÐзÖÎö£º
1¡¢¡¢CVE-2020-17437
CVE-2020-17437´æÔÚÓÚuIPºÍ̸ջµÄuip.cÎļþµÄuip_processº¯ÊýÖУ¬£¬£¬¸Ãº¯ÊýÖØÒªÊÇ´¦ÖÃip/tcp±¨ÎÄ£¬£¬£¬ÏÂͼÊÇuIPºÍ̸ջ¶ÔTCP±¨ÎÄÖдøÓÐTCP_URG´¹Î£Ö¸Õë±êʶʱµÄ´¦ÖôúÂ룬£¬£¬ÈôÊDZàÒëʱÅäÖÃÁËUIP_URGDATA£¬£¬£¬Ôò·¨Ê½»á×ßµ½ÏÂÃæµÄif·ÖÖ§£¬£¬£¬¶Ô´¹Î£Ö¸ÕëÊý¾Ý½øÐÐרÃÅ´¦Öᣡ£
µ«ÊÇÔÚĬÈÏÇé¿öÏ£¬£¬£¬UIP_URGDATA²¢Ã»ÓÐÅäÖᣡ£´úÂë»á½øÈëµ½else·ÖÖ§£¬£¬£¬·¨Ê½»áÌø¹ý´¦Öô¹Î£Ö¸ÕëÊý¾Ý£¬£¬£¬²¢Åú¸Äuip_lenµÄÊýÖµ¡£¡£·¨Ê½ÔÚÅú¸Äuip_lenµÄʱ³½²¢Ã»ÓÐÅжϴ¹Î£Ö¸ÕëµÄÖµ£¬£¬£¬µ±uip_lenµÄÖµ³ö¸ñС£¬£¬£¬¶ø´¹Î£Ö¸ÕëµÄÖµurgp³ö¸ñ´óʱ£¬£¬£¬¾Í»áÒýÆðÕûÊýÒç³ö£¬£¬£¬µ¼ÖÂÉè±¸ÖØÆô»òÕßÊÇÔ½½ç¶Áд¡£¡£

2¡¢¡¢CVE-2020-24338
¸Ã·ì϶³Ê´Ë¿ÌpicoTCP/IPºÍ̸ջÖнâÎöÓòÃûlabelµÄpico_dns_decompress_name()º¯ÊýÖУ¬£¬£¬¸Ãº¯Êý¾ßÌåʵÏÖÈçÏ´úÂëËùʾ£º

µÚ95¡¢¡¢96Ðгõʼ»¯iterator£¬£¬£¬nameÖ¸Ïò´ý½âѹËõµÄlabels£¬£¬£¬dest_iteratorÖ¸Ïò´æ·Å½âѹ³öÀ´µÄlabelsµÄ»º³åÇø£¬£¬£¬¾ÞϸΪ256×Ö½Ú¡£¡£µÚ97ÐÐÆðͷΪwhileÑ»·£¬£¬£¬¶ÁÈ¡µ½×Ö·û´®½áβ¿Õ×Ö½ÚÍ˳ö¡£¡£µÚ98ÐУ¬£¬£¬Í¨¹ýiterator&0xC0ÅжÏlabelÀàÐÍ£¬£¬£¬ÈôÊÇΪѹËõlabel£¬£¬£¬Ôòͨ¹ýpacket¶¨Î»µ½Í¨³£labelµØµãµÄµØÎ»£¬£¬£¬ÈôÊÇΪͨ³£labelÖ±½Ó½øÈëelse´úÂë¿éÖУ¬£¬£¬µÚ107ÐУ¬£¬£¬Å²ÓÃmemcpy½«Í¨³£label¿½±´µ½dest_iteratorÖС£¡£ÎÒÃÇÖªÏþdest_iterator»º³åÇø¾ÞϸֻÓÐ256×Ö½Ú£¬£¬£¬¶øwhileÑ»·Í˳öǰÌáΪ¶Áµ½×Ö·û´®½áβ¿Õ×Ö½Ú£¬£¬£¬Òò¶øµ±name³¤¶È³¬¹ý256×Ö½Úʱ£¬£¬£¬µ¼ÖÂdest_iterator»º³åÇøÒç³ö¡£¡£
3¡¢¡¢CVE-2020-24336
¸Ã·ì϶³Ê´Ë¿ÌcontikiºÍ̸ջÖеÄip64_dns64_4to6()ÖУ¬£¬£¬¸Ãº¯ÊýÖ°ÄÜÊǽ«ipv4ÀàÐ͵ÄDNSÊý¾Ý°üת»»³Éipv6ÀàÐ͵ÄDNSÊý¾Ý°ü£¬£¬£¬¹Ø¼ü´úÂëÈçÏ£º

±éÀúAnswerÇø¶Î²¢¸üе½ipv6ÀàÐ͵ÄAnswerÇø¶ÎÖС£¡£´ÓµÚ209ÐÐÆðͷת»»×ÊÔ´¼Í¼£¬£¬£¬¾ßÌåʵÏÖ´úÂëÈçÏÂËùʾ£º

Ê×ÏÈÅжÏTYPEÊÇ·ñÊÇDNS_TYPE_A£¬£¬£¬DNS_TYPE_A°µÊ¾¸Ã×ÊÔ´¼Í¼Ϊipv4Ö÷»úµØÖ·£¬£¬£¬¶øºó½«¶ÔÓ¦Çø¶Î¿½±´µ½acopyÖС£¡£µÚ220ÐУ¬£¬£¬´Ó×ÊÔ´¼Í¼ÖÐÖ±½ÓÈ¡RDLENGTH£¬£¬£¬Ç°ÎÄÒѽéÉÜ£¬£¬£¬¸ÃÇø¶Î±íÕ÷RDATAµÄ³¤¶È¡£¡£µÚ227ÐУ¬£¬£¬ÅжÏlen³¤¶ÈÊÇ·ñµÈÓÚ4£¬£¬£¬ÕâÀïÕý³£Çé¿ö£¬£¬£¬lenÓ¦¸ÃΪ4£¬£¬£¬ÓÉÓÚipv4µØÖ·³¤¶ÈΪ4¸ö×Ö½Ú¡£¡£ÈôÊÇlen²»µÈÓÚ4£¬£¬£¬Ôò½øÈëelseÓï¾äÖУ¬£¬£¬Ö±½ÓŲÓÃmemcpy½øÐÐRDATAÊý¾Ý¿½±´¡£¡£ÕâÀïÊÇ´æÔÚÎÊÌâµÄ£¬£¬£¬Ipv4Ö÷»úµØÖ·³¤¶È²»µÈÓÚ4£¬£¬£¬²¢Ã»ÓÐÑéÖ¤Ö÷»úµØÖ·µÄºÏÀíÐÔ²¢ÇÒlen×î´óΪ0xFFFF£¬£¬£¬Ö±½Ó¿½±´¿ÉÄܵ¼Ö»º³åÇøÒç³ö¡£¡£
4¡¢¡¢CVE-2020-25111
ÔÚʹÓÃNut/NetºÍ̸ջµÄÉ豸ÖУ¬£¬£¬NutDnsGetResourceAll()ÊÇ´¦ÖÃDNSÒªÇóµÄº¯Êý£¬£¬£¬ÆäÖд¦ÖÃDNS»Ø´ðµÄº¯ÊýÊÇDecodeDnsQuestion()£¬£¬£¬´¦ÖÃÓò±êÇ©µÄº¯ÊýÊÇScanName()£¬£¬£¬·ì϶¾Í³Ê´Ë¿ÌScanName()º¯ÊýÖС£¡£ÈçÏÂͼËùʾ£¬£¬£¬cpΪָÏòÓòÃûµÚÒ»¸ö×Ö½ÚµÄÖ¸Õë(¼´µÚÒ»¸öÓò±êÇ©µÄ³¤¶È×Ö½Ú)£¬£¬£¬*nppΪ¼´½«±»½âÎöµÄÓòÃûbuffer£¬£¬£¬Í¨¹ýstrlen()½«Õû¸öÓòÃû³¤¶È¸³Öµ¸ørc,¶øºó»ùÓÚrc·ÖÅä*npp buffer£¬£¬£¬Ö®ºóͨ¹ýÒ»¸öwhile£¬£¬£¬Ñ»·´¦ÖÃÿһ¸ölabel¡£¡£ÎÊÌâ²»ÑÔ¶øÓ÷£¬£¬£¬cpÊǹ¥»÷Õ߿ɿص쬣¬£¬ÓÉ´ËÄܹ»½ÚÖÆ*nppµÄ¾Þϸ¡£¡£¶ø¶ÔÓÚ±êÇ©µÄ³¤¶È£¬£¬£¬¼´len±äÁ¿£¬£¬£¬Ö±½Ó´ÓÊý¾Ý°üÖеõ½£¬£¬£¬²¢Ã»ÓÐ×öÈκÎÌìǵ²é³£¬£¬£¬¶øºóͨ¹ýwhileÑ»·´¦Öᣡ£Òò¶øÄܹ»¶ÔlenÉèÖÃËÁÒâµÄÖµ£¬£¬£¬¼´¹¥»÷Õß¶Ô*npp buffer¿É¿ØµÄ³¤¶È¡£¡£ÓÉ´ËÄܹ»ÔÚ¶ÑÖÐÔì³ÉÔ½½çд£¬£¬£¬Õâ¿Éµ¼ÖÂÔ¶³Ì´úÂëÖ´ÐÐ(RCE)¡£¡£

5¡¢¡¢CVE-2020-17443
CVE-2020-17443´æÔÚÓÚPicoTCPºÍ̸ջpico_icmp6.cÎļþÖС£¡£ÎÊÌâ´úÂëλÓÚpico_icmp6_send_echoreply£¨£©º¯ÊýÖУ¬£¬£¬¸Ãº¯ÊýµÄÖØÒªÖ°ÄÜÊǻظ´ICMPv6Ó¦´ðÊý¾Ý°üÒÔÏìÓ¦¶Ô¶ËµÄICMPv6Echo(ping)ÒªÇ󡣡£

ÎÒÃÇÄܹ»¿´µ½£¬£¬£¬µÚ68ÐУ¬£¬£¬replay½á¹¹µÄ»º³å¾Þϸ»ùÓÚechoµÄ±¨ÎÄÖÐtransport_len±äÁ¿¡£¡£ÔÚµÚ84ÐУ¬£¬£¬·¨Ê½´Óecho->payloadÏòreply->payloadµØÖ·¸´ÖÆÁ˳¤¶ÈΪecho->transport_len- 8¾ÞϸµÄÊý¾Ý¡£¡£
°ÑÎÈ£¬£¬£¬ÈôÊÇecho->transport_lenСÓÚ 8£¬£¬£¬echo->transport_len - 8»áµ¼ÖÂÕûÊýÒç³ö£¬£¬£¬memcpy²Ù×÷»áµ¼Ö»º³åÇøÒç³ö¡£¡£
ÔÚPicoTCPºÍ̸ջ¹¥»÷Õßͨ¹ý»ú¹Ø¶ñÒâµÄICMPv6Êý¾Ý°ü£¬£¬£¬Õâ¸ö¶ñÒâµÄÊý¾Ý°üICMP±¨Í·Ð¡ÓÚ8£¬£¬£¬»áµ¼ÖÂÉè±¸ÖØÆô»ò»Ø¾ø·þÎñ¡£¡£
·ì϶ÑéÖ¤
·ì϶ÑéÖ¤ÊÓÆµÇë²é¿´ADLab¹«¼ÒºÅ
²Î¿¼Á´½Ó£º
[1] https://www.forescout.com/research-labs/amnesia33/[2]https://www.securityweek.com/amnesia33-vulnerabilities-tcpip-stacks-expose-millions-devices-attacks
[3] https://www.zdnet.com/article/amnesia33-vulnerabilities-impact-millions-of-smart-and-industrial-devices/
[4] https://tools.ietf.org/html/rfc1035
[5] https://us-cert.cisa.gov/ics/advisories/icsa-20-343-01
OG¶«·½Ìü»ý¼«·ÀÓù³¢ÊÔÊÒ£¨ADLab£©
ADLab³ÉÁ¢ÓÚ1999Ä꣬£¬£¬ÊÇÖйú°²È«ÐÐÒµ×îÔç³ÉÁ¢µÄ¹¥·À¼¼Êõ×êÑг¢ÊÔÊÒÖ®Ò»£¬£¬£¬Î¢ÈíMAPP´òËãÖ÷Ìâ³ÉÔ±£¬£¬£¬¡°ºÚȸ¹¥»÷¡±¸ÅÄîÊ×ÍÆÕß¡£¡£½ØÖ¹Ä¿Ç°£¬£¬£¬ADLabÒÑͨ¹ýCVEÀۼư䲼°²È«·ì϶½ü1100¸ö£¬£¬£¬Í¨¹ý CNVD/CNNVDÀۼư䲼°²È«·ì϶900Óà¸ö£¬£¬£¬³ÖÐøÎ¬³Ö¹ú¼ÊÍøÂ簲ȫÁìÓòÒ»Á÷Ë®×¼¡£¡£³¢ÊÔÊÒ×êÑз½Ïòº¸Ç²Ù×÷ϵͳÓëÀûÓÃϵͳ°²È«×êÑС¢¡¢Òƶ¯ÖÇÄÜÖն˰²È«×êÑС¢¡¢ÎïÁªÍøÖÇÄÜÉ豸°²È«×êÑС¢¡¢Web°²È«×êÑС¢¡¢¹¤¿ØÏµÍ³°²È«×êÑС¢¡¢Ôư²È«×êÑС£¡£×êÑгɾÍÀûÓÃÓÚ²úÆ·Ö÷Ìâ¼¼Êõ×êÑС¢¡¢¹ú¶ÈÖØµã¿Æ¼¼ÏîÄ¿¹¥¹Ø¡¢¡¢×¨Òµ°²È«·þÎñµÈ¡£¡£



¾©¹«Íø°²±¸11010802024551ºÅ