Bu sayfa bir çeviridir. Esas alınan metin İngilizce sürümdür. İngilizce kaynağın 23 Ekim 2026 tarihli sürümüyle eşleşmektedir. İngilizcesini okuyun
malware · cryptomining · rootkit · linux · kernel · monero · privilege-escalation · cve-2026-31431 · container-escape
Rootpacket: Çekirdeğin İçinde Saklanan Bir Linux Cryptojacking Araç Takımı
Kinryū Labs, CPU ve bellek kullanımını taklit etmek üzere bir çekirdek rootkit'i ile dağıtılan, CVE-2026-31431 (konteynerden ana makineye de kaçan bir AF_ALG sayfa önbelleği kusuru) üzerinden root'a yükselen, kendisini bir Intel sürücüsü kılığına sokan ve rakip madencilerin içeri girmek için kullandığı aynı dışa açık servisleri devre dışı bırakan Linux cryptojacking araç takımı Rootpacket'i analiz etti.
Yazan Davis Zheng·
TLP:CLEAR. Kamuya açık yayım için onaylanmıştır. Kinryū Labs honeypot sensör ağı tarafından yakalanmıştır. Aşağıdaki göstergeler zararsızlaştırılmıştır.
Yönetici özeti
- ~45%%100'e yakın çalışırken top'un gösterdiği CPU
- 3kalıcılık mekanizması
- 7.8CVSS, CVE-2026-31431 (AF_ALG sayfa önbelleği LPE)
- ana makineayrıcalıksız bir konteynerden root
Rootpacket, Linux için çok bileşenli bir cryptojacking araç takımıdır. Gizlilik için çekirdek düzeyinde bir rootkit, Linux AF_ALG kripto arayüzündeki CVE-2026-31431 için bir ayrıcalık yükseltme istismarı, xrandom adıyla yeniden adlandırılmış UPX ile paketlenmiş bir XMRig 6.26.0 Monero madencisi ve bir rakip eleme betiğini bir arada barındırır. Kod büyük ölçüde Türkçe yazılmıştır (değişken adları, yorumlar, durum dizgileri); bu da Türkçe konuşan bir operatöre işaret etmektedir.
Araç takımı iki moddan birinde çalışır. Root modunda, intel_uncore_freq_aux kılığına sokulmuş yüklenebilir bir çekirdek modülü (LKM) rootkit’ini yükler, çekirdek yükseltmelerinden sağ çıkması için DKMS üzerinden kurar, bir systemd servisi kaydeder ve makineyi rakiplerinden temizler. Root elde edemediğinde, crontab üzerinden kalıcılık sağlayan ve madenciyi bir arka plan süreci olarak çalıştıran kullanıcı alanı moduna geriler. Madenci pool.supportxmr.com:443 adresine stratum+ssl üzerinden bağlanır ve RandomX ile Monero madenciliği yapar.
Üzerinde durulmaya değer bileşen rootkit’tir. Madenci işlemciyi %100’e yakın bir düzeyde tutarken, rootkit /proc/stat’ı yeniden yazar; böylece top ve htop sakin bir %40 ila %50 değeri bildirir ve bu değer jiffies üzerinden salındırılır, dolayısıyla yük sabit bir noktaya çakılı kalmak yerine gerçekçi görünür. Aynı işlemi /proc/meminfo üzerinde de uygular ve kendi süreçlerini ve dosyalarını saklamak için dizin listelemelerini filtreler.
- Amaç cryptojacking'dir (yüksek güven). Araç takımı XMRig 6.26.0, gömülü bir Monero cüzdanı ve bir
pool.supportxmr.commadencilik yapılandırması ile birlikte gelir; XMRig geliştirici bağışı kapatılmıştır, dolayısıyla tüm kazanç operatöre gider. - Ayrıcalık yükseltmesi CVE-2026-31431 ("Copy Fail"), yani Linux AF_ALG
algif_aeadyolundaki deterministik bir sayfa önbelleği yazımıdır (CVSS 7.8, Nisan 2026'da açıklandı). Sayfa önbelleği ana makine genelinde paylaşıldığı için aynı yazım bir konteynerden kaçarak ana makinede root elde eder; dolayısıyla enfekte bir konteyner, ele geçirilmiş bir ana makine anlamına gelir (yüksek güven). - Operatör, tipik bırak-ve-madencilik yapan gruplardan belirgin biçimde ileridedir (yüksek güven). ftrace kancaları içeren özel bir LKM rootkit'i, yeni çekirdekler için otomatik yeniden derleme yapan DKMS kalıcılığı, çalışan bir CVE-2026-31431 sayfa önbelleği istismarı ve katmanlı systemd/DKMS/cron kalıcılığı, cryptojacking yapanların çoğunun hiç ulaşmadığı bir mühendislik düzeyini temsil eder.
- Operatörün Türkçe konuştuğu değerlendirilmektedir (orta güven). Araç takımı boyunca Türkçe değişken adları, yorumlar ve
ROOT ele gecirildi!gibi durum mesajları yer alır. - Rootpacket, bir ana makineyi münhasıran sahiplenmek ve elinde tutmak üzere kurgulanmıştır.
killservice.shbetiği rakip madencileri kaldırır, ardından cryptojacking yapanların ilk erişim için kullandığı dışa açık servisleri devre dışı bırakır; bunlara 2375/2376 üzerindeki Docker API de dahildir ve bu, RedTail incelememizde belgelediğimiz vektörün aynısıdır. Bu gruplar aynı hatalı yapılandırılmış makineler üzerinde birbirleriyle çekişmektedir.
Araç takımı mimarisi
Rootpacket modüler bir dropper’dır. Bileşenleri:
setup.sh Entry point. Checks privilege level, picks a deployment mode.
getroot Privilege escalation. Exploits CVE-2026-31431 (AF_ALG) for local root.
xrandom UPX-packed XMRig 6.26.0, renamed to dodge name-based detection.
kernel/
stealth.c LKM rootkit, compiled via DKMS, disguised as an Intel driver.
install.sh DKMS persistence engine.
killservice.sh Competitor elimination and "hardening".
rootpacket.tar.gz An inner copy of the whole toolkit, packaged for redistribution.
Root modu. setup.sh, halihazırda root değilse getroot’u çalıştırır, xrandom’ı /opt/kernel-kd/ dizinine kopyalar, bir systemd servisi oluşturur, rootkit’i DKMS üzerinden derleyip yüklemek için kernel/install.sh’ı çalıştırır, rakipleri temizlemek için killservice.sh’ı çalıştırır ve madenciyi kalıcı bir servis olarak başlatır.
Kullanıcı alanı yedek modu. Root erişilemez olduğunda setup.sh, xrandom’ı ~/.xrandom/ dizinine kopyalar, PID kilidi olan bir başlatıcı yazar, yeniden başlatmada ve her dakika tetiklenen bir crontab kaydı kurar ve madenciyi üst kabuk kapandığında da ayakta kalması için setsid ile başlatır.
| Özellik | Root modu | Kullanıcı alanı modu |
|---|---|---|
| Madenci konumu | /opt/kernel-kd/xrandom | ~/.xrandom/xrandom |
| Kalıcılık | systemd (kernel-kd.service) | crontab (@reboot + */1 * * * *) |
| Rootkit | Var (DKMS üzerinden LKM) | Yok |
| Rakip eleme | Var (killservice.sh) | Yok |
| Çalıştığı hesap | root (systemd) | mevcut kullanıcı (setsid arka plan süreci) |
getroot: CVE-2026-31431, sayfa önbelleği bozulmasıyla root
getroot, getroot.c kaynağından derlenmiş, statik olarak bağlanmış ve sembolleri çıkarılmamış bir ELF64 x86-64 ikili dosyasıdır. 29 Nisan 2026’da açıklanan (CVSS 7.8), Linux çekirdeğinin AF_ALG algif_aead arayüzündeki bir mantık kusuru olan CVE-2026-31431 (“Copy Fail”) açığını istismar eder. Hata, çekirdek sayfa önbelleğine deterministik ve saldırgan denetiminde 4 baytlık bir yazım imkânı verir; getroot bunu bellekteki bir SUID ikilisini yamalamak ve root olarak dışarı çıkmak için kullanır.
| Özellik | Değer |
|---|---|
| Tür | ELF 64-bit LSB çalıştırılabilir, x86-64, statik bağlı, sembolleri çıkarılmamış |
| CVE | CVE-2026-31431 “Copy Fail” (CVSS 7.8, AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Alt sistem | AF_ALG algif_aead, AEAD şablonu authencesn(hmac(sha256),cbc(aes)) |
| Etkilenen | Linux 4.14 ile 6.19.11 arası (kusur 2017’de, 72548b093ee3 commit’i ile geldi); 6.18.22, 6.19.12, 7.0+ sürümlerinde giderildi |
| Hedef | /usr/bin/su: bellekteki .text bölümü sayfa önbelleğinde yamalanır |
| Güvenilirlik | Deterministik, yarış durumu yok |
| Kullanım / geri dönüş davranışı | ./getroot <cmd> [args...]; istismar başarısız olursa komutu yine de mevcut ayrıcalıklarla çalıştırır |
Mekanizma. AEAD kodunda 2017’de yapılan yerinde bir optimizasyon, splice ile aktarılan sayfa önbelleği sayfalarını hem kaynak hem de hedef scatterlist içinde bırakmıştır. authencesn şablonu 4 baytlık ESN geçici değerini saldırganın seçtiği assoclen + cryptlen konumuna yazdığında, bu yazım kullanıcı tarafından okunabilir bir dosyanın sayfa önbelleği sayfasının içine düşer. Ardından HMAC denetimi başarısız olur ve recvmsg() EBADMSG döndürür, ancak çekirdek yazımı hiçbir zaman geri almaz. getroot, /usr/bin/su’nun ELF başlıklarını ayrıştırarak giriş noktasının dosya ofsetini hesaplar, sonra shellcode’un her 4 baytlık parçası için bir kez olmak üzere splice → sendmsg (yazılacak 4 baytı AAD içinde taşır) → recvmsg döngüsünü işletir ve /usr/bin/su’yu sayfa önbelleğinde yamalar. Daha sonra /usr/bin/su’yu execve ile çalıştırır: çekirdek artık bozulmuş olan sayfayı yükler, shellcode SUID-root olarak çalışır ve getroot, operatörün komutunu çalıştırmadan önce getuid() == 0 koşulunu doğrular (Türkçe [+] ROOT ele gecirildi! mesajını yazdırarak). Diskteki dosyaya hiç dokunulmaz, dolayısıyla dosya bütünlüğü izlemesi hiçbir şey görmez.
Konteynerden ana makineye kaçış. Linux sayfa önbelleği ana makine genelindedir; konteynerler kendilerine ait bir önbelleğe sahip değildir. Ayrıcalıksız bir konteyner içindeki bir süreç ana makinenin /usr/bin/su dosyasını splice ettiğinde ana makinenin önbellekteki kopyasını bozar, dolayısıyla execve yalnızca konteynerde değil ana makinede root verir. Bu nedenle enfekte bir konteyner, ele geçirilmiş bir ana makine demektir ve setup.sh bunun ardından çekirdek rootkit’ini ana makineye yükler. Konteyneri durdurup kaldırmak yeterli değildir; ana makinenin yeniden kurulması gerekir.
getroot’u izole bir sanal makinede (Kali, çekirdek 6.6.15) bir kez çalıştırdık. Tüm AF_ALG dizisini yürüttü, ancak o yapıda root elde edemedi ve komutu ayrıcalıksız çalıştırmaya geriledi; bu da belirli çekirdek yerleşimlerini hedefleyen bir istismarla uyumludur. Madenciyi çalıştırmadık.
xrandom: madenci
xrandom, açık kaynaklı Monero madencisi XMRig 6.26.0’ın yeniden adlandırılmış ve UPX ile paketlenmiş bir kopyasıdır.
| Özellik | Değer |
|---|---|
| Gerçek kimlik | XMRig 6.26.0 |
| Paketleme | UPX 4.2.4 (paketli 2.8 MB, açılmış 10.1 MB) |
| Algoritma | RandomX (rx/0) |
| Havuz | pool.supportxmr.com:443, stratum+ssl üzerinden |
| Cüzdan | 46NVDFL6v5STw5Qw4j77PoBSHRTYnHZGZ8WRoGvHmpaMX7ZyhNUP2u24TLV9pNgncz1bZF2Vm8KkaNTzU7SXqrnFUx5zgHQ |
| Bağış düzeyi | 0 (XMRig geliştirici bağışı devre dışı) |
Madenciliğin TLS ile 443 numaralı port üzerinden yapılması, trafiğin ilk bakışta sıradan HTTPS ile karışmasını sağlar; ancak stratum el sıkışmasının TLS parmak izi, dikkatle bakan biri için farklıdır.
stealth.c: çekirdek rootkit’i
Araç takımının en gelişmiş parçası budur. Çekirdek fonksiyonlarını araya girerek yakalamak ve zararlının izlerini silmek için ftrace fonksiyon kancalaması kullanan bir LKM rootkit’idir ve baştan sona kendisini bir Intel donanım sürücüsü kılığına sokar.
| Özellik | Değer |
|---|---|
| Modül adı | intel_uncore_freq_aux |
| Sahte üst veri | MODULE_AUTHOR("Intel Corporation"), MODULE_DESCRIPTION("Intel Uncore Frequency Control Driver"), MODULE_VERSION("1.2.0") |
| Kancalama | kallsyms_lookup_name üzerinden ftrace (5.7 ve sonrası çekirdeklerde bir kprobe aracılığıyla çözümlenir) |
| Denetim | /sys/kernel/intel_uncore_freq/ altındaki sysfs (enabled, cpu_lo, cpu_hi, mem_lo, mem_hi, hide_tag) |
Neyi, neden kancaladığı:
- CPU maskeleme.
/proc/stat’ı yeniden yazmak içinshow_stat’ı kancalar; kullanımı yapılandırılabilir sınırlar arasında (öntanımlı olarak %40 ila %50) taklit eder ve jiffies ile salındırır, böylece değer sabit kalmak yerine gerçek bir yük gibi hareket eder. - Bellek maskeleme.
/proc/meminfo’yu yeniden yazmak içinmeminfo_proc_show’u kancalar;MemFree,MemAvailable,Buffers,Cached,ActiveveInactivedeğerlerini taklit eder. - Süreç saklama.
/proclistelemelerini filtrelemek içiniterate_dir’i kancalar ve adları gömülü bir kümeyle eşleşen PID’leri saklar:stealth,masscan,sshruns,ransomx,cpumask,xrandom,cpm_,kcpm,mask_helper,ftrhook,kintel_aux. Operatör,/sys/kernel/intel_uncore_freq/hide_tagüzerinden çalışma zamanında yeni adlar ekleyebilir. - Dosya saklama.
stealth,cpumask,kintel_aux,intel_uncore_freq_auxile eşleşen yolları ve sysfs dizininin kendisini saklar. - Kendini saklama. Yüklenirken
list_del_initile kendisini/proc/modulesve/sys/module/içinden çıkarır, sysfs kobject’ini siler vetry_module_getile kendi referans sayacını artırır; böylecermmodmodülü kaldıramaz.
Bu saklama listesi aynı zamanda bir ipucudur: madencinin yanı sıra masscan, sshruns ve ransomx’i de gizler, dolayısıyla operatörün bir tarayıcı çalıştırdığı ve kitinde bir madenciden fazlasının bulunabileceği değerlendirilmektedir.
Pratik sonuç şudur: top’u izleyen bir yönetici meşgul ama normal bir makine görür, hiçbir yetkisiz süreç bulamaz ve bu yanıltmayı yapan çekirdek modülünü göremez. İpuçları fiziksel ve bant dışıdır: makine ısınır, fanlar hızlanır ve güç tüketimi yükselir; rootkit bunların hiçbirini taklit edemez.
Kalıcılık: moda göre ayrılan üç mekanizma
Rootpacket’in kalıcılığı, içine düştüğü moda bağlıdır. Root modunda birbirini pekiştiren iki mekanizmayı katmanlar; kullanıcı alanı modunda ise üçüncü bir mekanizmaya geriler.
| # | Mekanizma | Mod | Ayrıntı |
|---|---|---|---|
| 1 | systemd servisi | root | kernel-kd.service, Type=simple, Restart=always, RestartSec=3 |
| 2 | DKMS modülü | root | Rootkit’i /lib/modules/$(uname -r)/extra/ altına kurar; çekirdek yükseltmelerinden sağ çıkar |
| 3 | crontab | kullanıcı | @reboot ve her dakika (* * * * *), PID kilidi ve setsid ile |
İnatçı olan DKMS kaydıdır: rootkit’i çekirdeğin kendi modül derleme sistemi üzerinden kurar, dolayısıyla rutin bir çekirdek yükseltmesi onu kaldırmak yerine yeniden derleyip tekrar devreye alır.
killservice.sh: makineyi temizlemek ve kapatmak
Betik, banner’ında kendisini “cryptojacker hardening” olarak tanımlar ve bu tanım operatörün bakış açısından doğrudur. Üç aşamada çalışır.
Aşama 1: dışa açık servisleri kapatmak. 0.0.0.0 üzerinde dinleyen ve yaygın cryptojacking giriş noktaları olan servisleri hedefler; her birini durdurur, devre dışı bırakır ve maskeler, ikili dosyalara chmod 000 uygular ve iptables DROP kuralları ekler:
| Servis | Port |
|---|---|
| Redis | 6379 |
| Docker | 2375/2376 |
| PostgreSQL | 5432 |
| MongoDB | 27017 |
| Elasticsearch | 9200/9300 |
| Memcached | 11211 |
| Hadoop YARN | 8088 |
| Jenkins | 8080 |
| Confluence | 8090 |
Docker satırı, RedTail raporumuzla bağ kuran halkadır: Rootpacket, RedTail’in içinden geçtiği tam olarak aynı 2375/2376 kapısını kapatır. İlk gelen operatör ana makinede madencilik yapar, ardından sıradaki grubu dışarıda bırakır ve makineyi onların kullanacağı tekniklere karşı sıkılaştırır.
Aşama 2: rakip madencileri kaldırmak. Süreçleri sonlandırır, dosyaları siler, cron işlerini temizler ve bilinen cryptojacking ailelerine bağlı SSH anahtarlarını temizler; bunlar arasında XMRig, Kinsing (kdevtmpfsi), TeamTNT (tntrecht, mdrfckr), sustes, watchdogs ve minerd ile birlikte masscan, pnscan ve zgrab gibi tarayıcılar yer alır.
Aşama 3: kullanıcı alanı rootkit’lerini kaldırmak. /etc/ld.so.preload içinden bilinen zararlı LD_PRELOAD kayıtlarını (libprocesshider.so, libjdk.so, libpamx.so, sahte bir libselinux.so.3 ve xhide) çıkarır ve ilgili kütüphaneleri siler; böylece kendi rootkit’ine karışabilecek rakip kullanıcı alanı rootkit’lerini temizler.
Atıf
Araç takımındaki Türkçe değişken adları, yorumlar ve durum dizgileri (örneğin ROOT ele gecirildi!, yani “root elde edildi”) orta güvenle Türkçe konuşan bir operatöre işaret etmektedir. Cloudflare Pages üzerinde barındırılan linuxutil5.pages[.]dev adresinde bir dağıtım veya hazırlık URL’si tespit ettik; bu, yükleri karışıp kaybolmak amacıyla ücretsiz ve itibarlı altyapıda hazırlama örüntüsüyle uyumludur. Araç takımının tamamının kendi içinde eksiksiz bir kopyası olan içteki rootpacket.tar.gz, operatöre sıradaki ana makineye aktarmaya hazır bir paket sağlar.
İhlal göstergeleri
Ağ
| Gösterge | Bağlam |
|---|---|
pool.supportxmr.com / pool.supportxmr.com:443 | Birincil Monero madencilik havuzu, stratum+ssl |
linuxutil5.pages[.]dev | Dağıtım / hazırlık (Cloudflare Pages) |
api.xmrig.com, randomx.xmrig.com:443 | XMRig API ve kıyaslama uç noktaları |
donate.v2.xmrig.com, donate.ssl.xmrig.com | XMRig geliştirici bağış havuzları (mevcut, bağış devre dışı) |
443 portuna stratum+ssl:// | Dışa doğru TLS madencilik trafiği |
Monero cüzdanı: 46NVDFL6v5STw5Qw4j77PoBSHRTYnHZGZ8WRoGvHmpaMX7ZyhNUP2u24TLV9pNgncz1bZF2Vm8KkaNTzU7SXqrnFUx5zgHQ
Dosyalar (SHA-256)
| Dosya | SHA-256 | MD5 |
|---|---|---|
rootpacket.tar.gz (dış) | e2d0dab6b29df89d123fe8581047a03ac9b89ae8fa0d1f334b5aefbb93152857 | |
getroot | dda96d8a4bcc39dc7679347a4386bf1024152d2ccc46d333725ad0cda855d952 | |
xrandom (paketli) | ec3ef3dce99fa6cbc480f0f0b0c292676afed68704c44396271c7dc6afea2937 |
Build ID’leri: getroot 148d8d902efd93ed892a541972fbcea3a99d05a3, xrandom d7a91225bdd2e3ab67cabded9d7809bcc724401f.
Ana makine artefaktları
| Yol | Bağlam |
|---|---|
/opt/kernel-kd/xrandom | Madenci ikilisi (root modu) |
~/.xrandom/xrandom, ~/.xrandom/run.sh | Madenci ve başlatıcı (kullanıcı alanı modu) |
/tmp/.xrandom.lock | PID kilidi (kullanıcı alanı modu) |
/etc/systemd/system/kernel-kd.service | Zararlı systemd birimi |
/usr/src/intel_uncore_freq_aux-1.2.0/ | Rootkit için DKMS kaynağı |
/sys/kernel/intel_uncore_freq/ | Rootkit sysfs denetim arayüzü |
/lib/modules/*/extra/intel_uncore_freq_aux.ko | Derlenmiş rootkit modülü |
Davranışsal
- root veya mevcut kullanıcı olarak çalışan
xrandomadlı bir süreç. - Donanım performans sayaçlarıyla (
perf stat) ya da fan hızı ve güç tüketimiyle çelişen/proc/statCPU değerleri. kernel-kdadlı bir systemd servisi (etkin,Type=simple,Restart=always).# xrandom-userland-autostartetiketli bir cron kaydı.- Açılışta yüklenen ancak
lsmodçıktısında görünmeyen birintel_uncore_freq_auxçekirdek modülü.
Tespit
Rootkit yüklü değilse
systemctl status kernel-kd.service
ls -la /opt/kernel-kd/ ~/.xrandom/
dkms status | grep intel_uncore_freq
crontab -l | grep xrandom
lsmod | grep intel_uncore
Rootkit yüklüyse
Kullanıcı alanı görünümleri ele geçirilmiş durumdadır, dolayısıyla tespitin rootkit’in altından veya yanından gelmesi gerekir:
/proc/statCPU değerleriniperf statile donanım sayaçlarıyla karşılaştırın. Büyük bir fark, aradığınız ipucudur.show_stat,meminfo_proc_showveiterate_dirüzerindeki ftrace kancalarını izleyin.- Bildirilen CPU ile gerçek güç tüketimi, ısı veya fan hızı arasındaki tutarsızlığı güçlü bir sinyal olarak değerlendirin.
Ayrıcalık yükseltmesini yakalamak
- Bilinen bir kripto aracı (
cryptsetup,openssl,gpg,systemd-cryptsetup) olmayan bir süreç tarafından açılanAF_ALG,SOCK_SEQPACKETsoketi temel ipucudur. Tam sıra şöyledir:socket(AF_ALG)→bind→setsockopt(SOL_ALG)→accept→pipe→splice→sendmsg→splice→recvmsg(tekrarlı), ardındanexecve(/usr/bin/su). - Her SUID ikilisinin diskteki baytlarını sayfa önbelleği görünümüyle karşılaştırın.
sha256sumönbellek üzerinden okuma yapar ve bozulmuş kopyayı gösterir, bu nedenle diski doğrudandd if=<file> iflag=directile okuyup onun özetini alın, sonra karşılaştırın. Bir SUID ikilisinde uyuşmazlık, sayfa önbelleği bozulması anlamına gelir.
Aday YARA
rule Rootpacket_Cryptojacker
{
meta:
description = "Rootpacket Linux cryptojacking toolkit"
reference = "Kinryu Labs CTI 2026-06-16"
strings:
$wallet = "46NVDFL6v5STw5Qw4j77PoBSHRTYnHZGZ8WRoGvHmpaMX7ZyhNUP2u24TLV9pNgncz1bZF2Vm8KkaNTzU7SXqrnFUx5zgHQ" ascii
$svc = "kernel-kd" ascii
$cron = "xrandom-userland-autostart" ascii
$mod = "intel_uncore_freq_aux" ascii
condition:
$wallet or 2 of ($svc, $cron, $mod)
}
Giderme
- Rootkit’i bilinen temiz bir durumdan kaldırın. Canlı ortam veya kurtarma medyasından başlatın.
/lib/modules/*/extra/intel_uncore_freq_aux.ko*dosyalarını silin vedkms remove intel_uncore_freq_aux/1.2.0 --allkomutunu çalıştırın, ardından/usr/src/intel_uncore_freq_aux-1.2.0/dizinini silin ve initramfs’i yeniden oluşturun (update-initramfs -u,dracut -fveyamkinitcpio -P). DKMS kaydı mutlaka kaldırılmalıdır, aksi halde modül yeniden derlenir. - Servisi kaldırın:
systemctl stop kernel-kd; systemctl disable kernel-kd; rm /etc/systemd/system/kernel-kd.service; systemctl daemon-reload. - Madenciyi kaldırın:
rm -rf /opt/kernel-kd/ ~/.xrandom/ /tmp/.xrandom.lock, ardındanpkill -9 -f xrandom. - Cron’u temizleyin:
# xrandom-userland-autostartsatırlarını kaldırın. - killservice.sh’ın bozduklarını onarın. Betik Redis, Docker, PostgreSQL, MongoDB ve diğer ikili dosyalara
chmod 000uygular ve iptables DROP kuralları ekler. Etkilenen paketleri yeniden kurun ve güvenlik duvarını gözden geçirin. - Yatay olarak av yapın. İçteki
rootpacket.tar.gzyeniden dağıtım için hazırlanmıştır, bu nedenle diğer ana makineleri aynı göstergeler açısından kontrol edin ve giriş yolunu bulmak içinkillservice.shiçindeki servislerin istismarına ilişkin kayıtları inceleyin. - CVE-2026-31431’i kapatın. Düzeltilmiş bir çekirdeğe (6.18.22, 6.19.12, 7.0+ veya dağıtımınızın geri aktarımı) güncelleyin. Hemen yama uygulayamadığınız yerlerde, zafiyetli arayüzü devre dışı bırakın:
echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif-aead.confardındanrmmod algif_aead. Konteynerler için seccomp profilindeAF_ALG’ı (aile 38) engelleyin. - Konteynerden ana makine ele geçirilmesini varsayın. Sayfa önbelleği yazımı konteyner sınırını aştığı için,
setup.shçalıştırmış olan her ana makineyi, bu konteyner içinden olmuş olsa bile tümüyle ele geçirilmiş kabul edin. Yalnızca konteyneri kaldırmak yerine ana makineyi yeniden kurun.
MITRE ATT&CK eşlemesi
| Taktik | Teknik |
|---|---|
| Başlangıç Erişimi | T1190 Exploit Public-Facing Application (Redis, Docker, MongoDB, Elasticsearch, Jenkins, Hadoop YARN; ima ediliyor) |
| Yürütme | T1059.004 Unix Shell |
| Ayrıcalık Yükseltme | T1068 Exploitation for Privilege Escalation (CVE-2026-31431, AF_ALG algif_aead); T1611 Escape to Host (paylaşılan sayfa önbelleği) |
| Kalıcılık | T1543.002 Systemd Service; T1053.003 Cron; T1547.006 Kernel Modules (DKMS) |
| Savunmadan Kaçınma | T1014 Rootkit; T1036.005 Masquerading: Match Legitimate Name; T1027.002 Software Packing (UPX); T1070.004 File Deletion; T1564.001 Hidden Files |
| Keşif | T1057 Process Discovery (rakip arama) |
| Yatay Hareket | T1570 Lateral Tool Transfer (içteki yeniden dağıtım paketi) |
| Etki | T1496 Resource Hijacking (Monero madenciliği) |
Yöntem ve analist notları
- Analiz ağırlıklı olarak statik yöntemlerle (dizgi çıkarımı, disassembly, kaynak incelemesi, yapısal analiz) Kali Linux x86-64 üzerinde yürütülmüştür. Ayrıca davranışını izlemek için
getroot’u izole bir sanal makinede (çekirdek 6.6.15) bir kez çalıştırdık: AF_ALG dizisini denedi, o yapıda root elde edemedi ve komutu ayrıcalıksız çalıştırmaya geriledi. Madenci çalıştırılmamış ve hiçbir şey yüklenmemiştir. - Ayrıcalık yükseltme bileşeni CVE-2026-31431’dir; bu, AF_ALG soketine bağlanan
authencesn(hmac(sha256),cbc(aes))şablonu,/usr/bin/susayfa önbelleği hedefi ve ikili dosyadakisplice/sendmsg/recvmsgyazım döngüsünden tespit edilmiştir. - Örnekler (araç takımı ve bileşenleri), talep üzerine diğer araştırmacılara ve savunuculara sunulmaktadır. Kim olduğunuzu ve örnekleri ne için istediğinizi kısaca belirten bir not ile [email protected] adresine e-posta gönderin.