Konversi file elf standar menjadi shellcodes mandiri. Harap baca dokumentasi berikut dan lihat contoh untuk proyek ini agar berfungsi dengan baik
GitHub
Pypi
pip install py_shelfPerpustakaan Python mem -parsing elf dan membuat format file yang dapat dipindahkan sederhana yang disebut rak (shellcode elf).
Mini loader dimasukkan sebagai titik masuk untuk rak.
Mini loader akan memuat dan memindahkan rak maka akan mengeksekusinya. Tidak ada persyaratan khusus, perpustakaan berisi mini loader dan sumber daya yang dikompilasi.
Diagram di bawah ini menjelaskan format (hanya berfungsi di browser)
ClassDiagram
ShellCodeEntrypoint -|> Miniloader
ShellCodeEntrypoint: Shellcode yang berisi logika loader pra mini
Miniloader -|> Tabel Relokasi
Miniloader: berisi semua logika untuk mem -parsing tabel relokasi
Miniloader: sepenuhnya OS independen
Tabel relokasi -|> Hooks Opsional
Tabel relokasi: berisi tabel yang diperlukan untuk relokasi runtime shellcode
Hooks Optional -|> rak
Hooks Optional: Baca lebih lanjut tentang kait dalam dokumentasi di bawah ini
Hooks Opsional: Bagian ini opsional dan hanya ada jika kait digunakan
Shelf: Shellcode Elf - Ini adalah biner yang dikompilasi yang kami konversi menjadi shellcode
Rak: biner ini hanya dilucuti menjadi opcodes
Rak: sepenuhnya dipindahkan menggunakan tabel relokasi
Proyek ini dimaksudkan untuk mengkonversi ELF ke OS Independent Shellcodes. Oleh karena itu loader tidak pernah mengalokasikan memori dan format shellcode tidak dikemas. Anda bisa menjalankannya, misalnya ...
(( void ( * )()) shellcode )();Ikuti contoh di bawah ini
Beberapa bendera kompilasi diperlukan agar ini berfungsi dengan baik. Anda harus mengkompilasi biner dengan -fpie dan -Static lihat contoh yang disediakan di bawah ini (makefile).
Shellcode adalah biner yang dilucuti tanpa simbol dan tidak ada informasi ELF hanya opcode, untuk membuat shellcode perpustakaan ini memerlukan biner dengan informasi ELF. Jadi pastikan Anda tidak melucuti biner sebelum menggunakan perpustakaan ini
Sederhana membuat perintah untuk mips endian besar
gcc example . c - fno - stack - protector - fPIE - fpic - static - nostartfiles -- entry = main - o binary . out
python - m shelf -- input binary . out Makefile
Contoh.C
Anda dapat menggunakan loader shellcode yang disediakan untuk menguji kode shellcodes
qemu-mips ./shellcode_loader ./myshellcode.outDisarankan untuk menggunakan pustaka loader rak untuk menguji kode shell Anda di sini Anda dapat membaca lebih lanjut tentang itu: dokumentasi rak loader
Untuk tautan berikut hanya berfungsi di halaman GitHub