เพลโต ดาต้า อินเทลลิเจนซ์
ค้นหาแนวตั้ง & Ai

Sneaky Shellcode: Windows Fibers เสนอการดำเนินการโค้ด EDR-Proof

วันที่:

เส้นใย Windows ซึ่งเป็นส่วนประกอบที่ไม่ค่อยมีใครรู้จักของระบบปฏิบัติการ Windows เป็นตัวแทนของเส้นทางการรันโค้ดที่ไม่มีเอกสารส่วนใหญ่ซึ่งมีอยู่เฉพาะในโหมดผู้ใช้เท่านั้น และส่วนใหญ่จึงถูกมองข้ามโดยส่วนใหญ่ แพลตฟอร์มการตรวจจับและตอบสนองปลายทาง (EDR)- ด้วยเหตุนี้ จึงเป็นไปได้ที่ผู้โจมตีจะใช้ประโยชน์จากพวกมันเพื่อแอบลงเครื่องพีซีและปรับใช้เพย์โหลดที่เป็นอันตราย

ตามคำกล่าวของ Daniel Jary นักวิจัยด้านความปลอดภัยอิสระ ผู้ซึ่งวางการโจมตีแบบ Proof-of-Concept (PoC) ใหม่สองครั้งโดยใช้ไฟเบอร์ใน เซสชั่นที่ Black Hat Asia ในวันพฤหัสบดีที่

ไฟเบอร์เป็นทางเลือกแทน "เธรด" มาตรฐานที่ Windows ใช้ในการรันโค้ดจากระบบปฏิบัติการหรือแอปพลิเคชัน เขาอธิบาย

“เธรดก็เหมือนกับพนักงาน โดยพื้นฐานแล้วอยู่ภายในกระบวนการของ Windows หรือแอปพลิเคชัน และตามธรรมเนียมแล้ว เธรดเหล่านี้เป็นวิธีที่คุณใช้รันโค้ดและทำงานต่างๆ ให้เสร็จสิ้นมาโดยตลอด” เขาบอกกับ Dark Reading “แต่มีวิธีเฉพาะเจาะจงกว่านี้ในการทำสิ่งนี้ผ่านเส้นใย”

Fibers: เส้นทาง Windows OS ที่ถูกลืมและถูกมองข้าม

เมื่อใช้แล้ว เส้นใยจะอยู่ภายในเกลียว โดยพื้นฐานแล้วจะมีขนาดเล็กกว่าและมีน้ำหนักเบากว่าเมื่อเทียบกับแนวคิดเกลียวที่ใหญ่กว่า เส้นใยได้รับการพัฒนาในช่วงแรก ในช่วงเวลาที่ CPU มีแกนประมวลผลน้อยลงและสามารถรองรับเธรดได้จำนวนมากเท่านั้น ในระดับสูง สิ่งที่เล็กลงเป็นวิธีการขยายขีดความสามารถ โดยอนุญาตให้นักพัฒนาแบ่งปริมาณงานภายในเธรดเดียว และทำให้กระบวนการมีประสิทธิภาพมากขึ้น

“แต่เมื่อคอมพิวเตอร์มีประสิทธิภาพมากขึ้น และมีหน่วยความจำให้เล่นมากขึ้น ไฟเบอร์ก็กลายเป็นสิ่งที่ซ้ำซ้อนในสถานการณ์ส่วนใหญ่” Jary อธิบาย “และนั่นเป็นเหตุผลว่าทำไมผู้คนจำนวนมากไม่เคยได้ยินเกี่ยวกับพวกเขาจริงๆ และพวกเขาก็ค่อนข้างคลุมเครือ แต่พวกเขาก็มีจุดประสงค์บางประการสำหรับแอพพลิเคชั่นรุ่นเก่าบางตัว และวิธีการย้ายโปรแกรมจากระบบปฏิบัติการอื่นไปยัง Windows และกระบวนการ Windows บางกระบวนการเองยังคงใช้ไฟเบอร์จริงๆ”

ดังนั้น Fiber จึงได้รับเกียรติอย่างน่าสงสัยในการเป็นทั้งฟังก์ชันหลักของ Windows และเป็นสิ่งที่ทีมรักษาความปลอดภัยมองข้าม และในการบูต Jary ตั้งข้อสังเกตว่ากลไกการตรวจจับแบบเดิมในแพลตฟอร์ม EDR และกลไกแอนตี้ไวรัสมักจะเพิกเฉยต่อกลไกเหล่านี้ ทำให้กลไกเหล่านี้เป็นช่องทางซ่อนตัวที่สมบูรณ์แบบในการรันโค้ดที่เป็นอันตราย

“เธรดได้รับการตรวจสอบอย่างหนักโดยเอเจนต์ EDR ซึ่งจะดูการเรียกกลับของซิสคอลและโหมดเคอร์เนลเพื่อจับการวัดและส่งข้อมูลทางไกล และส่งไปยังกลไกกฎเพื่อสร้างการตรวจจับ” Jary อธิบาย “แต่ไฟเบอร์นั้นมีอยู่ในโหมดผู้ใช้ล้วนๆ และไม่ปรากฏในคอลเลคชันเคอร์เนล ดังนั้นการวัดและส่งข้อมูลทางไกลของพวกเขาจึงไม่ได้รับการบันทึกโดย EDR จริงๆ”

เทคนิคโอเพ่นซอร์สบางอย่างมีอยู่แล้วเพื่อใช้ประโยชน์จากสถานะที่ยังไม่เป็นที่รู้จักของไฟเบอร์ PoC จากปี 2022 สำหรับอินสแตนซ์ให้รายละเอียดเกี่ยวกับวิธีการ ซ่อนโค้ดเชลล์ที่เป็นอันตรายไว้ในไฟเบอร์จึงหลบเลี่ยงเครื่องยนต์ AV ส่วนใหญ่  

คนอื่นได้สร้างวิธีการสำหรับ การมาสก์ callstackซึ่งช่วยให้ผู้โจมตีสามารถซ่อนเส้นทางการดำเนินการที่เป็นอันตรายภายในเธรด—ในกรณีนี้คือไฟเบอร์—ที่อยู่ด้านหลังไฟเบอร์ที่อยู่เฉยๆ ที่แตกต่างกันซึ่งไม่เป็นพิษเป็นภัย—และยังหลบเลี่ยงการตรวจจับอีกด้วย เทคนิคนี้ใช้ประโยชน์จากข้อเท็จจริงที่ว่าหากมีการใช้งานเส้นใย ก็จะมีเส้นใยที่ใช้งานอยู่อยู่เสมอ จากนั้นก็มีเส้นใยที่อยู่เฉยๆ ที่จะปิดสวิตช์ไปด้วย ความสามารถในการปิดบังนี้ถูกเพิ่มเข้าไปใน Artefact Kit ของ Cobalt Strike ในปี 2022

ขอบเขตใหม่ในการดำเนินการไฟเบอร์ที่เป็นอันตราย

Jary ออกเดินทางเพื่อสำรวจว่าเป็นไปได้หรือไม่ที่จะปรับปรุงเทคนิคไฟเบอร์ที่เป็นอันตรายที่มีอยู่ และคิดค้น PoC ใหม่สองตัวซึ่งมีชื่อว่า Phantom Thread และ Poison Fiber

วิธีไฟเบอร์ฝ่ายตรงข้ามที่มีอยู่มีข้อเสียบางประการสำหรับผู้โจมตี: ตัวบ่งชี้บางตัวยังสามารถใช้สำหรับการตรวจจับ EDR; และความประสงค์ร้ายจะไม่ถูกซ่อนจากคอลเลกชัน callstack ตามเหตุการณ์แบบอินไลน์ และการสะสมของเส้นใยที่อยู่เฉยๆ ซึ่งมีเทคนิคหลายประการ จะสามารถกำจัดการมาสก์คอลสแต็กได้

Phantom Thread เป็นวิธีการปิดบัง callstack ยุคถัดไปที่จะลบความสามารถในการสแกนหน่วยความจำไปยังไฟเบอร์เป้าหมาย โดยให้ไฟเบอร์เหล่านั้นปลอมตัวเป็นเธรด สิ่งนี้เกี่ยวข้องกับการสร้างไฟเบอร์ จากนั้นแพตช์เพื่อให้ระบุตัวเองว่าเป็นเธรด จากนั้นจึงเป็นไปได้ที่จะลบตัวบ่งชี้ callstack แบบไฟเบอร์ และซ่อนไฟเบอร์จากการสแกนใดๆ โดยสิ้นเชิง

PoC ตัวที่สองคือ Poison Fiber ระบุกระบวนการ Windows ที่กำลังรันอยู่ โดยดูที่เธรดที่ใช้งานอยู่ จากนั้นดูว่าเธรดเหล่านั้นใช้ไฟเบอร์หรือไม่ จากนั้น “มันนำเสนอโอกาสให้คุณฉีดเพย์โหลดหรือเชลล์โค้ดของคุณเข้าไปในไฟเบอร์ที่อยู่เฉยๆ” Jary อธิบาย

“คุณสามารถรันได้เพียง 1 ไฟเบอร์ต่อเธรดในแต่ละครั้ง ซึ่งหมายความว่าคุณจะมีไฟเบอร์ที่อยู่เฉยๆ อีกตัวหนึ่งจอดอยู่ที่อื่นบนสแต็กเสมอ” เขากล่าว “เมื่อเรารันโค้ดของเราโดยใช้ Poison Fiber สิ่งนี้จะแทรกโค้ดของเราเข้าไปในไฟเบอร์ที่อยู่เฉยๆ ดังนั้นเราจึงไม่จำเป็นต้องระงับเธรดเพื่อที่จะแทรกเชลล์โค้ด ซึ่งเป็นตัวบ่งชี้ขนาดใหญ่สำหรับกิจกรรมที่เป็นอันตราย และเนื่องจากเราได้ฉีดเพย์โหลดเข้าไปในไฟเบอร์ที่อยู่เฉยๆ แอปพลิเคชันจะทริกเกอร์การดำเนินการให้เรา และเราไม่ได้เป็นผู้เริ่มการดำเนินการด้วยตนเอง” เทคนิคนี้มีประโยชน์เพิ่มเติมในการอนุญาตให้เรียกใช้โค้ดจากระยะไกล (RCE) เช่นกัน

ตื่นรู้ถึงศักยภาพด้านปฏิปักษ์ของ Fiber

แม้ว่าจะยังคงคลุมเครืออยู่บ้าง แต่ Fiber ควรอยู่ในรายชื่อเวกเตอร์การโจมตีของทีมรักษาความปลอดภัย Jary เตือนซึ่งยังไม่ได้เปิดเผย PoC ที่พัฒนาแล้วของเขาหรือรายละเอียดโดยละเอียดเกี่ยวกับวิธีการดังกล่าวต่อสาธารณะ เขาให้เหตุผลว่ามันเป็นเพียงเรื่องของเวลาก่อนที่คนอื่นจะพบวิธีเอาชนะข้อเสียในวิธีการดำเนินการไฟเบอร์แบบโอเพ่นซอร์สที่มีอยู่  

“วิธีการดำเนินการแบบอื่นของ Fiber มีคุณค่าสำหรับผู้โจมตี เพราะมันช่วยให้เราหลีกเลี่ยงแหล่งที่มาของการวัดและส่งข้อมูลทางไกลแบบดั้งเดิมที่เราได้รับจากเธรด โดยเฉพาะอย่างยิ่งการเรียกกลับของเคอร์เนล” เขากล่าว “ไฟเบอร์ไม่ใช่กลยุทธ์ในการยกระดับสิทธิพิเศษ และไม่ใช่การเลี่ยงผ่านการควบคุมการเข้าถึงของผู้ใช้ (UAC) แต่มันช่วยให้มีการส่งมอบเพย์โหลดที่ได้รับความสนใจและความสนใจจากชุมชนความปลอดภัยน้อยลงมาก เส้นใยนั้นใช้งานง่ายมาก แต่ตรวจจับได้ยากกว่า นั่นทำให้พวกเขาสมบูรณ์แบบสำหรับสคริปต์ตัวเล็กที่จะใช้โจมตีธุรกิจ”

Jary แนะนำให้นำไปปฏิบัติ ผลิตภัณฑ์ EDR ที่ครบกำหนด ที่สามารถทดสอบได้อย่างต่อเนื่องกับเทคนิคใหม่ๆ เช่นนี้

“พูดคุยกับทีมงานสีแดงของคุณเกี่ยวกับวิธีการใช้ไฟเบอร์แบบโอเพ่นซอร์สซึ่งถูกนำมาใช้ในป่า” เขากล่าว “ทำการค้นคว้าเพื่อดูว่าผู้โจมตีกำลังเพลิดเพลินกับสิ่งใด สิ่งใดที่ได้รับความนิยมในป่า จากนั้นป้อนกลับเข้าไปในทีมวิจัยและผู้พัฒนาผลิตภัณฑ์ EDR ของคุณ นั่นจะช่วยสร้างการป้องกันที่ดีขึ้น และอาจจะทำให้ชีวิตของนักล่าภัยคุกคามของคุณง่ายขึ้นนิดหน่อยเช่นกัน”

จุด_img

ข่าวกรองล่าสุด

จุด_img

แชทกับเรา

สวัสดี! ฉันจะช่วยคุณได้อย่างไร?