Selam dostlar, bugün biraz farklı bi şey denicem. Klasik LKM rootkitleri artık hemen yakalanıyor, o yüzden işleri eBPF tarafına kaydırdım. Kernel 5.8+ sistemlerde tracepoint ve kprobe'ları kullanarak process hiding + network backdoor kurmayı anlatıcam. Hem detection oranı düşük hem de compile-time imzaya takılmıyo.
Öncelikle sistemde bpftool ve libbpf-devel kurulu olmalı. Basit bir eBPF programı ile /proc dizinini filtreleyip belirli PID'leri gizliyoruz. Aynı anda outgoing traffic'i de custom bir port üzerinden yönlendirebiliyoruz.
Programı derledikten sonra şu şekilde yüklüyoruz:
Network backdoor kısmı için de bir XDP programı yazdım. Gelen paketlerde belirli bir magic byte (0xdeadbeef) varsa shell trafiğini user-space'e yönlendiriyor. tcpdump ile bile görünmüyor çünkü XDP'de paketi drop etmeden önce rewrite yapıyoruz.
Bu yöntemle hem SELinux hem de çoğu modern EDR (Falcon, Elastic) atlatılabiliyor çünkü kernel hook'ları tracepoint seviyesinde kalıyor. Tabi kernel 6.1+ sonrası için bpf_iter ve ringbuffer kullanmak daha stabil.
Deneyen olursa sonuçları buraya yazsın, özellikle farklı distrolarda (Arch vs Debian) nasıl davrandığını merak ediyorum.
Öncelikle sistemde bpftool ve libbpf-devel kurulu olmalı. Basit bir eBPF programı ile /proc dizinini filtreleyip belirli PID'leri gizliyoruz. Aynı anda outgoing traffic'i de custom bir port üzerinden yönlendirebiliyoruz.
Hidden content - for more
Konuyu Görebilmeniz için "Beğenmeniz ve Yorum yapmaniz" Gerekir.
Hidden content - for more
Konuyu Görebilmeniz için "Beğenmeniz ve Yorum yapmaniz" Gerekir.
Bu yöntemle hem SELinux hem de çoğu modern EDR (Falcon, Elastic) atlatılabiliyor çünkü kernel hook'ları tracepoint seviyesinde kalıyor. Tabi kernel 6.1+ sonrası için bpf_iter ve ringbuffer kullanmak daha stabil.
Deneyen olursa sonuçları buraya yazsın, özellikle farklı distrolarda (Arch vs Debian) nasıl davrandığını merak ediyorum.
Bu içeriği görmek için giriş yapın.