Ghidra Toolkit ini adalah seperangkat alat komprehensif yang dirancang untuk menyederhanakan dan mengotomatisasi berbagai tugas yang terkait dengan menjalankan Ghidra dalam mode Headless. Toolkit ini menyediakan berbagai skrip yang dapat dijalankan baik di dalam maupun di samping Ghidra, memungkinkan pengguna melakukan tugas seperti Berburu Kerentanan, Mengomentari Kode Semu dengan ChatGPT, dan Melaporkan dengan Visualisasi Data pada basis kode yang dianalisis. Hal ini memungkinkan pengguna untuk memuat dan menyimpan skrip mereka sendiri dan berinteraksi dengan API skrip bawaan.
Otomatisasi Mode Tanpa Kepala : Toolkit ini memungkinkan pengguna meluncurkan dan menjalankan Ghidra dengan lancar dalam mode Tanpa Kepala, memungkinkan pemrosesan tugas analisis kode secara otomatis dan batch.
Repositori/Manajemen Skrip : Toolkit ini mencakup repositori skrip bawaan yang dapat dijalankan dalam Ghidra. Skrip ini mencakup berbagai fungsi, memberdayakan pengguna untuk melakukan beragam tugas analisis dan manipulasi. Hal ini memungkinkan pengguna untuk memuat dan menyimpan skrip mereka sendiri, memberikan fleksibilitas dan opsi penyesuaian untuk kebutuhan analisis spesifik mereka. Pengguna dapat dengan mudah mengelola dan mengatur koleksi skrip mereka.
Opsi Input Fleksibel : Pengguna dapat memanfaatkan toolkit ini untuk menganalisis file individual atau seluruh folder yang berisi banyak file. Fleksibilitas ini memungkinkan analisis yang efisien terhadap basis kode skala kecil dan skala besar.
Perburuan Kerentanan dengan pengenalan pola : Manfaatkan skrip toolkit untuk mengidentifikasi potensi kerentanan dalam basis kode yang sedang dianalisis. Hal ini membantu peneliti dan pengembang keamanan mengungkap kelemahan keamanan dan mengatasinya secara proaktif.
Perburuan Kerentanan dengan SemGrep : Berkat Peneliti keamanan 0xdea dan kumpulan aturan yang mereka buat, kita dapat menggunakan aturan sederhana dan SemGrep untuk mendeteksi kerentanan dalam kode semu C/C++ (github mereka: https://github.com/0xdea/semgrep -aturan)
Pembuatan Kode Pseudo Otomatis : Secara otomatis menghasilkan kode semu dalam mode Tanpa Kepala Ghidra. Fitur ini membantu dalam memahami dan mendokumentasikan logika kode tanpa intervensi manual.
Mengomentari kode semu dengan ChatGPT : Tingkatkan keterbacaan dan pemahaman basis kode dengan memanfaatkan ChatGPT untuk menghasilkan komentar mirip manusia untuk cuplikan kode semu. Fitur ini membantu dalam mendokumentasikan dan menjelaskan logika kode.
Pelaporan dan Visualisasi Data : Menghasilkan laporan komprehensif dengan visualisasi untuk merangkum dan menyajikan hasil analisis secara efektif. Toolkit ini menyediakan kemampuan visualisasi data untuk membantu mengidentifikasi pola, ketergantungan, dan anomali dalam basis kode.
Sebelum menggunakan proyek ini, pastikan Anda telah menginstal perangkat lunak berikut:
Ghidra: Anda dapat mengunduh Ghidra dari repositori GitHub Badan Keamanan Nasional @ https://github.com/NationalSecurityAgency/ghidra
Java: Pastikan Anda menginstal Java Development Kit (JDK) versi 17 atau lebih tinggi. Anda dapat mendownloadnya dari website OpenJDK @ https://openjdk.org/projects/jdk/17/
BinExport (OPTIONNAL) Ikuti instruksi untuk menginstal Ekstensi Ghidra https://github.com/google/binexport
SemGrep (OPTIONNAL) Ikuti instruksi rinci https://semgrep.dev/docs/getting-started/
Instal prasyarat yang disebutkan di atas.
Unduh rilis Sekiryu langsung dari Github atau gunakan: pip install sekiryu
.
Untuk menggunakan skrip, Anda cukup menjalankannya pada biner dengan opsi yang ingin Anda jalankan.
sekiryu [-F FILE][OPTIONS]
Harap dicatat bahwa melakukan analisis biner dengan Ghidra (atau produk lainnya) adalah proses yang relatif lambat . Oleh karena itu, analisis biner diperkirakan akan memakan waktu beberapa menit tergantung pada kinerja host. Jika Anda menjalankan Sekiryu terhadap aplikasi yang sangat besar atau file biner dalam jumlah besar, bersiaplah untuk MENUNGGU
Temukan demo di www.bushido-sec.com
The "server.py" is basically built to allow scripts to interract with Ghidra each other and with the host system. An User can easily develop their own script, load and saved it in the script folder and use the known functions of the API to interract with Ghidra.
Untuk menggunakannya Pengguna harus mengimpor xmlrpc dalam skrip mereka dan memanggil fungsi seperti misalnya: proxy.send_data
send_data() - Memungkinkan pengguna mengirim data ke server. ("data" adalah Kamus)
recv_data() - Memungkinkan pengguna menerima data dari server. ("data" adalah Kamus)
request_GPT() - Memungkinkan pengguna mengirim data string melalui ChatGPT API.
Skrip disimpan di folder /modules/scripts/ Anda cukup menyalin skrip Anda di sana. Dalam file ghidra_pilot.py
Anda dapat menemukan fungsi berikut yang bertanggung jawab untuk menjalankan skrip ghidra tanpa kepala:
def exec_headless(file, skrip): """ Jalankan analisis headless ghidra """path = ghidra_path + 'analyzeHeadless'# Mengatur variabeltmp_folder = "/tmp/out"os.mkdir(tmp_folder) cmd = ' ' + tmp_folder + ' TMP_DIR -impor'+ ' '+ file + ' '+ "-postscript "+ skrip +" -deleteProject"# Menjalankan ghidra dengan file dan skrip tertentu: p = subprocess.run([str(path + cmd)], shell=True, capture_output=True) os.rmdir(tmp_folder) kecuali KeyError sebagai e: print(e) os.rmdir(tmp_folder)
Penggunaannya cukup mudah, Anda dapat membuat skrip sendiri lalu menambahkan fungsi di ghidra_pilot.py
seperti:
def fungsi Anda(file): coba: # Setting scriptscript = "modules/scripts/your_script.py"# Mulai fungsi exec_headless di threadthread baru = threading.Thread(target=exec_headless, args=(file, script)) thread.start () thread.join() kecuali Pengecualian sebagai e: print(str(e))
File cli.py
bertanggung jawab atas antarmuka baris perintah dan memungkinkan Anda menambahkan argumen dan perintah yang terkait seperti ini:
analysis_parser.add_argument('[-ShortCMD]', '[--LongCMD]', help="Pesan Bantuan Anda", action="store_true")
Scripts/SCRIPTS/SCRIIIIIPTS : Alat ini dirancang untuk menjadi toolkit yang memungkinkan pengguna menyimpan dan menjalankan skrip mereka sendiri dengan mudah, tentu saja jika Anda dapat berkontribusi dalam jenis skrip apa pun (apa pun yang menarik akan disetujui!)
Pengoptimalan : Segala jenis pengoptimalan disambut baik dan hampir secara otomatis akan disetujui dan diterapkan setiap rilis, beberapa hal menyenangkan dapat berupa: meningkatkan tugas paralel, pembersihan kode, dan peningkatan secara keseluruhan.
Analisis malware : Ini adalah bagian besar, yang saya tidak kenal. Setiap analis malware yang bersedia berkontribusi dapat menyarankan ide, skrip, atau bahkan memasukkan kode secara langsung ke dalam proyek.
Pelaporan : Saya bukan seorang insinyur visualisasi data, jika ada yang bersedia meningkatkan/berkontribusi pada bagian ini, itu akan sangat bagus.
The xmlrpc.server module is not secure against maliciously constructed data. If you need to parse untrusted or unauthenticated data see XML vulnerabilities.
A lot of people encouraged me to push further on this tool and improve it. Without you all this project wouldn't have been the same so it's time for a proper shout-out: - @JeanBedoul @McProustinet @MilCashh @Aspeak @mrjay @Esbee|sandboxescaper @Rosen @Cyb3rops @RussianPanda @Dr4k0nia - @Inversecos @Vs1m @djinn @corelanc0d3r @ramishaath @chompie1337 Thanks for your feedback, support, encouragement, test, ideas, time and care.
Untuk informasi lebih lanjut tentang Keamanan Bushido, silakan kunjungi situs web kami: https://www.bushido-sec.com/.