ทิลเลอร์ โบชอมป์ ในการประชุม Recon 2008

  • Dec 07, 2023

บรรณาธิการรับเชิญโดย Tiller Beauchamp เมื่อต้นเดือนนี้ ฉันมีโอกาสนำเสนอ RE: Trace ในการประชุม Recon ซึ่งเป็นการประชุมวิศวกรรมย้อนกลับที่จัดขึ้นทุก ๆ ปีในเมืองมอนทรีออล ประเทศแคนาดา การประชุมประกอบด้วยการฝึกอบรมสามวันและการพูดคุยสามวันในหัวข้อเดียว

ทิลเลอร์ โบชอมป์
บรรณาธิการรับเชิญโดย Tiller Beauchamp

เมื่อต้นเดือนนี้ผมได้มีโอกาสนำเสนอ RE: ติดตาม ในการประชุม Recon ซึ่งเป็นการประชุมวิศวกรรมย้อนกลับที่จัดขึ้นทุก ๆ ปีในเมืองมอนทรีออล ประเทศแคนาดา การประชุมประกอบด้วยการฝึกอบรมสามวันและการพูดคุยสามวันในหัวข้อเดียว หัวข้อต่างๆ รวมถึงการย้อนกลับมัลแวร์โพลีมอร์ฟิก การเอาชนะโค้ดที่สับสนและเทคนิคการป้องกันการดีบัก การเพิ่มสิทธิ์ในเครื่องผ่านอินเทอร์เฟซเคอร์เนล ALPC บน Vista และการแฮ็ก OS X ระดับเทคนิคของการประชุมนั้นยอดเยี่ยมมากและทุกอย่างก็ได้รับการจัดระเบียบอย่างดีตั้งแต่กิจกรรมยามค่ำคืนไปจนถึงวิดีโอการนำเสนอที่ดาวน์โหลดได้บนเครือข่ายการประชุม

มีเสวนาที่น่าสนใจมากมาย แต่เนื่องจากฉันไม่สามารถครอบคลุมได้ทั้งหมด จึงมีไฮไลท์บางส่วนดังนี้:

Gerardo Richarte นำเสนอเครื่องมือเล็กๆ สองชิ้นเพื่อช่วยในการเขียนโค้ดวิศวกรรมย้อนกลับ หนึ่งในเครื่องมือเหล่านี้เป็นวิธีการมากกว่า และเขาเรียกมันว่าการแยกคอมไพล์ซ้ำ แนวคิดคือการย้อนกลับบางส่วนของโปรแกรมให้เป็นโค้ดระดับสูงทีละชิ้น ขั้นแรกเขาจะตรวจสอบพฤติกรรมของฟังก์ชันในแอสเซมบลี จากนั้นจึงนำฟังก์ชันไปใช้ใหม่ใน C ด้วยการคอมไพล์ C นี้ลงใน DLL และแพตช์ลงในกระบวนการขณะรันไทม์ เขาสามารถแทนที่โค้ดต้นฉบับด้วยการใช้งานของเขาเอง และทดสอบเพื่อให้แน่ใจว่ามีพฤติกรรมเดียวกัน หลังจากกระบวนการนี้ เขาสามารถย้อนกลับส่วนสำคัญของแอปพลิเคชันในลักษณะที่ก้าวหน้าได้

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

Netware ไม่ตายเหรอ? ก็ประมาณนั้น แต่. นิโคลัส ปูเวสเล่ พบกับมันหลายครั้ง (สองครั้ง) ที่เขาตัดสินใจสำรวจมัน และโดยการสำรวจมัน ฉันหมายถึงการใช้ประโยชน์จากเคอร์เนลอย่างจริงจัง fu หนึ่งในความท้าทายที่ยิ่งใหญ่ที่สุดของเขาคือการสร้างเพย์โหลดที่กว้างพอที่จะทำงานกับ Netware หลายเวอร์ชันได้ เขาไม่สามารถเชื่อมต่อเชลล์ด้านหลังแบบธรรมดาได้ เนื่องจากใน Netware ไม่มีผู้ใช้ระดับระบบ ซึ่งหมายความว่าไม่มีเชลล์! มีคอนโซลระบบ แต่การเชื่อมต่อจะเกี่ยวข้องกับการแปลงระหว่างบิตแมปและบัฟเฟอร์อักขระและการกดแป้นพิมพ์ วิธีการนี้ยังใช้ไม่ได้กับ Netware ทุกเวอร์ชัน ดังนั้น Pouvesle จึงพบวิธีสร้างผู้ใช้ภายในฐานข้อมูล LDAP ที่ Netware ใช้สำหรับการเข้าถึงเว็บอินเตอร์เฟสของผู้ดูแลระบบ การสร้างผู้ใช้ LDAP สามารถทำได้ด้วยการเรียกไลบรารีเท่านั้น ไม่ใช่การเรียกเคอร์เนล ดังนั้นเขาจึงกระโดด ผ่านห่วงเพิ่มเติมเพื่อให้มองเห็นไลบรารีเหล่านั้นจากเคอร์เนลและแก้ไขการเข้ารหัสของพวกเขา สัญลักษณ์ สไลด์ของเขาจาก Slideshare สามารถพบได้ที่นี่.

โดยรวมแล้วนี่เป็นการประชุมที่ยอดเยี่ยม และฉันขอแนะนำสำหรับทุกคนที่เกี่ยวข้องกับวิศวกรรมย้อนกลับ สำหรับผู้ที่สนใจ สามารถติดตามรายละเอียดเพิ่มเติมได้ที่ เว็บไซต์รีคอน.

* Tiller Beauchamp เป็นผู้เชี่ยวชาญด้านความปลอดภัยของข้อมูลและเป็นนักวิจัยที่มีชื่อเสียง เขาอาจเป็นที่รู้จักกันดีในแวดวงความปลอดภัยและชุมชน Mac ในการสร้างเฟรมเวิร์ก RE: Trace ซึ่งเป็นเฟรมเวิร์กที่ใช้ Ruby สำหรับการโต้ตอบกับเครื่องมือ DTRace อันทรงพลังสำหรับการวิจัยช่องโหว่ เขาบล็อกกับเพื่อนนักวิจัยและผู้ร่วมสร้าง RE: Trace framework ที่ ป๊อป/ป๊อป/เกษียณ บล็อก และยังสามารถดูได้ในการประชุม Black Hat Las Vegas 2008 ที่กำลังจะมีขึ้น