การดำเนินการ ELF ไบนารีใน OSX


11

ฉันมีคำถามที่เกี่ยวข้องกับ CTF และฉันสงสัยว่าใครบางคนสามารถชี้ให้ฉันไปในทิศทางที่ถูกต้อง

ฉันทำงานกับ OSX Yosemite และฉันกำลังประสบกับ wargames และความท้าทายของ CTF ที่เก่ากว่า เป้าหมายของฉันคือการดำเนินการไบนารีเอลฟ์ของความท้าทาย "โดยกำเนิด" ลงใน iterm ของฉัน (หลังจากที่ฉันสแกนมันในเครื่อง) แม้ว่าฉันจะรู้ว่าเฉพาะไบนารีจักรเท่านั้นที่อาจถูกประหารโดยระบบพื้นฐาน

อย่างไรก็ตามเป็นสิ่งที่เป็นไปได้ผ่านการจำลองบางที (เช่น QEMU) หรือวิธีการอื่น ๆ เพื่อหลีกเลี่ยงการเปิด VM ทั้งหมดเพียงเพื่อเรียกใช้ไบนารี?

ขอบคุณล่วงหน้า.


ปัญหานี้เกี่ยวข้องกับความปลอดภัยเนื่องจากพบว่าส่วนใหญ่อยู่ใน CTFs ความปลอดภัยและ wargames (นั่นคือสิ่งที่ฉันติดอยู่) ฉันเชื่อว่าชุมชนความปลอดภัยมีโอกาสสูงที่จะได้พบกับหัวข้อเฉพาะนี้ ฉันจะลองที่นั่นเช่นกัน
nilminus

3
คำถามของคุณไม่เกี่ยวกับความปลอดภัย แต่เป็นเรื่องเกี่ยวกับการใช้งานไบนารี
Neil Smithline

คำตอบ:


2

ด้วยตัวเองไบนารีเอลฟ์ไม่มีความหมายอะไรเลย มีเพียงไม่กี่ไบนารีที่ทำงานเพียงลำพัง - คุณต้องมีไลบรารีสนับสนุน APIs และ ABIs และสิ่งที่เป็นประกายอื่น ๆ

เมื่อใช้งาน QEMU คุณยังคงต้องการระบบปฏิบัติการส่วนใหญ่ - ซึ่งไม่ได้เชื่อมโยงกับระบบโฮสต์ที่ฉันสงสัย

ในทางทฤษฎีถ้าคุณมีบางอย่างเช่น 'ไวน์' แต่ทำหน้าที่เป็นลินุกซ์ (หรืออื่น ๆ * nix syle OS) -> เลเยอร์ความเข้ากันได้ของ OS X คุณจะได้สิ่งที่คุณต้องการ แต่สัตว์ร้ายนั้นไม่มีอยู่จริง

ไม่เลยคุณไม่สามารถเรียกใช้ ELF ไบนารีที่คอมไพล์แล้วได้ใน OS X


1
คำถามนี้เกี่ยวกับสถานการณ์การรักษาความปลอดภัยที่ค่อนข้างเฉพาะในพื้นที่ superuser ลองนึกภาพไบนารีแบบคงที่ (libs ที่คอมไพล์เป็นรูปภาพแทนที่จะเชื่อมโยงแบบไดนามิก) ที่ผู้โจมตีต้องการวางบนระบบเป้าหมายและเรียกใช้ (นั่นเป็นสถานการณ์เกม CTF ความปลอดภัยขั้นพื้นฐาน) มันไม่จำเป็นต้องใช้ libs ภายนอกถึงแม้ว่าจุดของคุณเกี่ยวกับ ABIs (เช่น syscalls) เป็นสิ่งที่ยุติธรรม คุณถูกต้องในกรณีทั่วไป แต่คำถามนี้ไม่เฉพาะเจาะจงเกี่ยวกับกรณีทั่วไป ฉันไม่ควรย้ายจากเว็บไซต์ความปลอดภัย
เพ้อฝัน

2

คำตอบน่าจะเป็น: ขึ้นอยู่กับการสร้างไฟล์ ELF

ตามบทความนี้และประโยคนี้:

  • ความเข้าใจผิดที่พบบ่อยคือไฟล์ ELF เป็นเพียงไฟล์ปฏิบัติการ ...
  • เราได้เห็นแล้วว่าสามารถใช้เป็นชิ้นส่วนบางส่วน ...

ไฟล์ ELF ทั้งหมดจะไม่ถูกเรียกใช้งานแม้ว่าคุณจะมีการตั้งค่าที่เหมาะสม

จากบทความนี้มีไฟล์ ELF กลุ่ม pf ที่เรียกว่า FatELF:

  • FatELF เป็นรูปแบบไฟล์ที่ฝังเอลฟ์ไบนารีหลายตัวสำหรับสถาปัตยกรรมที่แตกต่างกันไว้ในไฟล์เดียว
  • จัดส่งไฟล์เดียวที่ใช้งานได้กับ Linux และ FreeBSD

อ้างอิงจากหน้านี้จาก Apple

  • ส่วน BSD ของเคอร์เนล OS X นั้นได้มาจาก FreeBSD เป็นหลัก

ดังนั้นสำหรับ Mac OS X FatELF คือ "การเริ่มต้นของคำตอบ"

และสุดท้ายขึ้นอยู่กับหน้านี้:

ตัวแปลงไฟล์วัตถุ

ยูทิลิตี้นี้สามารถใช้สำหรับการแปลงไฟล์อ็อบเจ็กต์ระหว่างรูปแบบ COFF / PE, OMF, ELFและ Mach-O สำหรับแพลตฟอร์ม x86 ทั้งหมด 32- บิตและ 64- บิต สามารถแก้ไขชื่อสัญลักษณ์ในไฟล์วัตถุ สามารถสร้างแก้ไขและแปลงห้องสมุดฟังก์ชั่นข้ามแพลตฟอร์ม สามารถดัมพ์ไฟล์อ็อบเจ็กต์และไฟล์ที่เรียกทำงานได้ นอกจากนี้ยังมีเครื่องถอดแยกชิ้นส่วนที่ดีมากที่รองรับชุดคำสั่ง SSE4, AVX, AVX2, AVX512, FMA3, FMA4, XOP และ Knights Corner รวมซอร์สโค้ด (GPL)

คุณมีโอกาสที่จะกระตือรือร้นในสิ่งที่คุณต้องการ

PS: มีอีกหน้าหนึ่งเกี่ยวกับ XBinaryฉันไม่ได้วิเคราะห์มัน

เอกสารนี้อธิบาย XBinary ซอฟต์แวร์ใหม่ที่ช่วยให้คุณเพิ่มการสนับสนุนระดับเคอร์เนลสำหรับการดำเนินการไฟล์ในรูปแบบไบนารีโดยพลการบน Mac OS X

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.