· kaynak dev.to (home feed)
Trojanize edilmiş PuTTY çalışmaya devam ederken gizli bir TLS reverse shell başlatıyor
Dev.to üzerinde yayımlanan bir kötü amaçlı yazılım analizi, gizli bir PowerShell reverse shell başlatacak şekilde değiştirilmiş, tamamen işlevsel bir PuTTY derlemesini inceliyor; geçersiz PE checksum'ı ve bir SSH istemcisinin PowerShell başlatması oyunu bozuyor.

İçinde fazladan bir şeyler barındıran, çalışan bir SSH istemcisi
Tehdit tespiti mühendisi Vasilis Mantas'ın dev.to üzerinde yayımladığı kötü amaçlı yazılım analizine göre örnek, SSH istemcisi açtıktan yaklaşık bir saniye sonra gizli bir PowerShell süreci başlatacak şekilde değiştirilmiş, gerçek ve çalışan bir PuTTY derlemesi. PowerShell komut satırı base64 ile kodlanmış ve gzip ile sıkıştırılmış; çözüldüğünde TLS üzerinden 8443 numaralı porta bonus2.corporatebonusapplication.local adresine bağlanan bir reverse shell ortaya çıkıyor. SSH istemcisi bu süre boyunca normal şekilde çalışıyor ve bu implant sınıfını etkili kılan şey de tam olarak bu.
Mantas, örneğin gerçek bir olaydan değil, bir eğitim setinden geldiğini açıkça belirtiyor. Gerçek dünyada mağdur olduğuna dair hiçbir işaret yok. Değeri eğitsel: bu örnek, amacını yine de yerine getiren kurcalanmış bir aracın neden açıkça kötü amaçlı olandan daha zor yakalandığını ve yıllardır dolaşan oldukça standart bir PowerShell reverse shell olan payload'ın sofistikeliğinden çok burada teslimat şeklinin neden daha önemli olduğunu gösteriyor.
Dosyanın kimlik kontrolleri tutuyor
Yazıda yer alan statik analiz, ikili dosyanın kimliğine dair neredeyse her şeyin gerçek olduğunu ortaya çıkardı. Manifest kimliği PuTTY olarak okunuyor, sürüm kaynağı Simon Tatham'ı gösteriyor ve gömülü bir URL resmi PuTTY ana sayfasına işaret ediyor. VirusTotal, analiz anında dosyayı 68 motordan 50'siyle işaretledi; bu, dosyanın incelenmeye değer olduğunu gösteriyor ama başka pek bir şey söylemiyor.
İlginç bulgular, statik araçların tutmadığı yerlerde. PE checksum'ı geçersiz; Mantas, meşru şekilde derlenmiş bir PuTTY sürümünün geçerli bir checksum taşıdığını, bu dosyadakinin ise derlenmiş ikili dosyada birileri değişiklik yaptıktan sonra yeniden hesaplanmadığını belirtiyor. Bu, tek başına kötü niyetten çok kurcalandığını kanıtlıyor; ancak 7.394'lük entropi değeri ve 1.47 MB'lık bir GUI ikili dosyasındaki yazılabilir-ve çalıştırılabilir bölümle birleşince patlatma (detonation) sürecini gerekli kıldı. String çıkarma işlemi çoğunluğu sıradan Windows API çağrılarından oluşan 41.000'den fazla string üretti; payload basitçe string analizinin baktığı yerde bulunmadığı için açık halde bir C2 adresi veya kodlanmış bir blob yoktu.
Tespit tekrarlanan çalıştırmalardan geldi
İlk patlatma olayısızdı: PuTTY açıldı, yapılandırma penceresi göründü ve uygulama tam olarak beklendiği gibi davrandı. Mantas, tek bir çalıştırmanın ardından buna temiz derdiğini yazıyor. Üçüncü ya da dördüncü çalıştırmada, başlatmadan yaklaşık bir saniye sonra beliren ve yalnızca saniyenin çok küçük bir kesri görünür kalan bir konsol penceresinin parladığını fark etti. Süreç izleme, gözün yakaladığını doğruladı: PuTTY, 32-bit SysWOW64 yolundan powershell.exe başlattı.
Mantas'ın çerçevesiyle, bir SSH istemcisinin bir script yorumlayıcısı başlatması kendiliğinden anormaldir ve o tek ebeveyn-çocuk ilişkisi tüm tespiti taşır. Otomatik sandbox'lar süreç oluşturmayı kaydederdi; bir insan tek seferde tıklayarak hiçbir şey yakalayamayabilirdi.
Özenli paketlenmiş eski bir payload
Komut satırı, herhangi bir kod çalışmadan önce dört bayrağı üst üste diziyor: profil yükleme, gizli pencere, etkileşimsiz olma ve execution policy bypass. Her birinin tek başına makul bir gerekçesi var; birlikte ele alındığında, olağan şekilde görülmekten veya kaydedilmekten kaçınmak için tasarlanmış bir süreci tanımlıyorlar. Payload yapısı, script bloğunun etrafına sarılmış gzip'in etrafına sarılmış base64; dolayısıyla gerçek kod, pek çok kaydın durduğu nokta olan süreç komut satırında okunabilir metin olarak hiç görünmüyor.
Bir Linux analiz sanal makinesinde çözüldüğünde, script hem 8443 portunu dinleyen bind modunu hem de sabit kodlanmış hosts bağlanan reverse modu destekleyen powerfun adlı bir fonksiyon tanımlıyor. Reverse mod, kurumsal ağlarda en çok önem taşıyor; çünkü giden bağlantılar genellikle, gelen bağlantıların engellendiği yerde başarılı olur. TLS bağlantısı kimlik doğrulama ile ilgili değil: sertifika doğrulama callback'i koşulsuz olarak true döndürüyor; yani şifreleme, saldırganın makinesinde üretilmiş kendi imzalı bir sertifika dahil herhangi bir sertifikayı kabul ederken trafiği incelemekten gizlemeye yarıyor. Alan adının kendisi ise bilinçli bir seçim; bir proxy kaydında kimsenin sorgulamayacağı türden sıkıcı bir iç uygulama gibi okunuyor.
Neden önemli
Bu örnek, tedarik zinciri probleminin minyatür hali. Görevini yine de yerine getiren kurcalanmış bir araç, bir kullanıcının yapacağı en temel doğrulamayı alt eder: aç, kullan, çalıştığını gör. Elli VirusTotal motoru dosyayı işaretledi; ancak onu gerçekte açıklayan sinyaller, yani geçersiz bir checksum ve gizli bir script yorumlayıcısı başlatan bir SSH istemcisi, bilinçli analizden geldi ve davranışsal ipucu yalnızca tekrarlanan çalıştırmalarda ortaya çıktı. Bunun önerdiği pratik savunmalar şunlar: gizli pencere bayraklarıyla script yorumlayıcıları başlatan GUI uygulamalarına yönelik davranışsal uyarılar, dağıtımdan önce indirilen araçların bütünlük doğrulaması ve tanıdık olmayan, iç sisteme benzeyen hostlara yapılan giden TLS bağlantılarının dikkatle incelenmesi. Örnek bir eğitim artefaktı; ancak gösterdiği teknik, gerçek tedarik zinciri kurcalamasının sessiz kalmasının tam olarak bu yolu.
- #security
- #malware
- #powershell
- #supply-chain
- #putty
İlgili yazılar
- Coder registry ihlali, Cloudflare üzerinden kötü niyetli Terraform modülleri dağıttı
- MCP tarayıcısının path-traversal kuralı, 9.1 puanlı bir RCE dahil 2026'daki tüm yazma tarafı MCP CVE'lerini kaçırdı
- Runtime gateway'leri ve katmanlı savunmalar: ekipler yapay zeka agent'lerini üretimde nasıl yönetiyor