Thực hiện nhị phân ELF trong OSX


11

Tôi có một câu hỏi liên quan đến CTF và tôi đã tự hỏi nếu ai đó có thể chỉ cho tôi đi đúng hướng.

Tôi làm việc trên OSX Yosemite và tôi đã trải qua một số chiến tranh và các thử thách CTF cũ hơn. Mục tiêu của tôi là thực hiện nhị phân ELF của thử thách "nguyên bản" vào vòng lặp của tôi (sau khi tôi quét nó cục bộ) mặc dù tôi nhận ra rằng chỉ các nhị phân Mach mới có thể được thực thi bởi hệ thống bên dưới.

Tuy nhiên, có lẽ điều đó có thể thông qua mô phỏng (ví dụ QEMU) hoặc bất kỳ phương thức nào khác, để tránh mở toàn bộ VM chỉ để chạy nhị phân?

Cảm ơn bạn trước.


Vấn đề này có liên quan đến bảo mật vì nó được tìm thấy chủ yếu trong các CTF bảo mật và chiến tranh (đó là cách tôi bị mắc kẹt trong vấn đề này). Tôi tin rằng cộng đồng bảo mật có cơ hội cao hơn trong các chủ đề cụ thể này. Tôi cũng sẽ cố gắng ở đó.
nilminus

3
Câu hỏi của bạn không phải là về bảo mật, mà là về việc chạy nhị phân.
Neil Smithline

Câu trả lời:


2

Về bản thân, nhị phân ELF không có nghĩa gì. Rất ít tệp nhị phân chạy một mình - Bạn cần hỗ trợ thư viện, API và ABI và những thứ sáng chói khác.

Khi chạy QEMU, bạn vẫn cần hầu hết HĐH - chỉ là nó không bị ràng buộc chặt chẽ với hệ thống máy chủ mà tôi nghi ngờ.

Về lý thuyết, nếu bạn có thứ gì đó giống như 'rượu vang' nhưng hoạt động như một hệ điều hành linux (hoặc hệ điều hành * nix syle khác) -> Lớp tương thích OS X, bạn có thể có được những gì bạn muốn, nhưng một con thú như vậy không tồn tại.

VÌ không, bạn không thể chạy nhị phân ELF được biên dịch sẵn trên OS X


1
câu hỏi này liên quan đến một kịch bản bảo mật khá phù hợp trong không gian siêu người dùng. hãy tưởng tượng một nhị phân tĩnh (libs được biên dịch thành hình ảnh thay vì liên kết động) mà kẻ tấn công muốn đặt trên hệ thống đích và chạy (đó là một kịch bản trò chơi bảo mật CTF cơ bản). nó sẽ không cần libs bên ngoài, mặc dù quan điểm của bạn về ABI (ví dụ như tòa nhà chọc trời) là một công bằng. bạn đúng trong trường hợp chung, nhưng câu hỏi này không đặc biệt về trường hợp chung. imho nó không nên được di chuyển từ các trang web bảo mật.
quixotic

2

Câu trả lời có lẽ là: Phụ thuộc vào cách tạo tệp ELF.

Dựa trên bài viết này và câu này:

  • Một quan niệm sai lầm phổ biến là các tệp ELF chỉ dành cho thực thi ...
  • Chúng tôi đã thấy chúng có thể được sử dụng cho các phần ...

Không phải tất cả các tệp ELF sẽ được thực thi, ngay cả khi bạn có một thiết lập đúng.

Dựa trên bài viết này , có một tệp ELF nhóm pf được gọi là FatELF:

  • FatELF là một định dạng tệp nhúng nhiều nhị phân ELF cho các kiến ​​trúc khác nhau vào một tệp
  • Gửi một tệp hoạt động trên Linux và FreeBSD

Dựa trên trang này từ Apple

  • Phần BSD của nhân OS X có nguồn gốc chủ yếu từ FreeBSD

Vì vậy, đối với Mac OS X, FatELF là "khởi đầu của câu trả lời".

Và cuối cùng, dựa trên trang này :

Chuyển đổi tập tin đối tượng

Tiện ích này có thể được sử dụng để chuyển đổi các tệp đối tượng giữa các định dạng COFF / PE, OMF, ELF và Mach-O cho tất cả các nền tảng x86 32 bit và 64 bit. Có thể sửa đổi tên biểu tượng trong các tệp đối tượng. Có thể xây dựng, sửa đổi và chuyển đổi các thư viện chức năng trên các nền tảng . Có thể đổ tập tin đối tượng và tập tin thực thi. Cũng bao gồm một trình phân tách rất tốt hỗ trợ các bộ hướng dẫn SSE4, AVX, AVX2, AVX512, FMA3, FMA4, XOP và Hiệp sĩ Góc. Mã nguồn bao gồm (GPL).

Bạn có cơ hội để hoạt động những gì bạn muốn.

PS: có một trang khác về XBinary , tôi đã không phân tích nó.

Tài liệu này thảo luận về XBinary, một phần mềm mới cho phép bạn thêm hỗ trợ cấp kernel để thực thi các tệp ở định dạng nhị phân tùy ý trên Mac OS X

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.