Daha az karmaşa. Daha fazla kontrol.
Renef, minimal, stealth odaklı ve tamamen kontrol edilebilir bir araç isteyen araştırmacılar için geliştirildi.
Zorluk
Ağır framework'leri genişletmek zordur
Yaklaşımımız
Minimal ve odaklı yapı ile anlaması ve özelleştirmesi kolaydır
Zorluk
TCP iletişimi kolayca tespit edilebilir
Yaklaşımımız
Unix Domain Sockets ile süreç seviyesinde izolasyon sağlar
Zorluk
ptrace, güvenlik kontrollerini tetikler
Yaklaşımımız
memfd + shellcode injection ile tespiti zorlaştırır
Zorluk
İç katmanlarda kontrol sınırlıdır
Yaklaşımımız
Tam sahiplik sunar, ihtiyacınıza göre her şeyi düzenleyebilirsiniz
Renef Nasıl Çalışır?
memfd tabanlı injection kullanan hafif bir client-server mimarisi.
Client CLI
macOS / Linux
Server
Android ARM64
Hedef Süreç
libagent.so + Lua
Client, Android üzerinde çalışan server'a TCP 1907 portu üzerinden (ADB-forwarded) bağlanır
Server, payload'ı memfd + shellcode ile enjekte eder ve ptrace gerektirmez
libagent.so, Lua script'lerini hedef süreç context'i içinde çalıştırır
ARM64 analizi için ihtiyaç duyduğunuz her şey
Gerçekten gerekli kabiliyetlere odaklanan sade bir toolkit.
ARM64 için PLT/GOT ve inline trampoline hook desteği. Capstone tabanlı disassembly ile native fonksiyonları yakalayın.
Runtime sırasında memory tarayın, okuyun, yazın ve patch uygulayın. Pattern arayıp değerleri anlık değiştirin.
Sezgisel API sunan gömülü Lua 5.4 motoru. Az boilerplate ile güçlü instrumentation script'leri yazın.
JNI tabanlı Java method interception. Native katmana dokunmadan Java method'larını hook'layın.
memfd + shellcode injection ile ptrace gereksinimini ortadan kaldırır. Cihaz içi iletişimde TCP yerine Unix Domain Sockets kullanır.
Memory scanning işlemleri için metin tabanlı arayüz. Gerçek zamanlı geri bildirim ve interaktif keşif sunar.
Gerçek dünya uygulamaları
Güvenlik araştırması ve reverse engineering süreçlerinde sahada test edilmiş teknikler.
Şifreli trafiği analiz etmek için sertifika doğrulama akışını yakalayıp değiştirin.
hook("SSL_CTX_set_verify", {
onEnter: (args) => {
args[1] = SSL_VERIFY_NONE
}
})Detection method'larını false dönecek şekilde hook'layıp rooted cihazlarda çalıştırın.
hook("isRooted", {
onLeave: (retval) => {
retval.replace(0)
}
})Şifreleme anahtarlarını kullanılmadan hemen önce runtime'da yakalayın.
hook("AES_set_encrypt_key", {
onEnter: (args) => {
console.log(Memory.read(args[0], 32))
}
})Belirli fonksiyon çağrılarını argüman ve dönüş değerleriyle loglayın.
hook("open", {
onEnter: (args) => {
console.log("open:", Memory.readCString(args[0]))
}
})Pattern matching ile memory'deki değerleri bulun ve değiştirin.
Memory.scan(base, size, "48 65 6c 6c 6f", {
onMatch: (addr) => {
console.log("Found at:", addr)
}
})Dakikalar içinde çalışır hale getirin
Clone edin, build alın ve Android uygulamalarını instrument etmeye başlayın.
# Klonla ve derlegit clone https://github.com/Ahmeth4n/renefcd renef && make# Server binary'sini cihaza aktaradb push server /data/local/tmp/adb shell chmod +x /data/local/tmp/server# Cihazda server'ı başlatadb shell /data/local/tmp/server &# Port forward etadb forward tcp:1907 localabstract:renef# Bağlan ve instrumentation başlat./renef -s com.byteria.keepsafeGereksinimler: macOS veya Linux, ADB, ARM64 mimarisine sahip Android cihaz