İyi günler Türk Hack Team ailesi.
Bugün sizlere dünyada popüler fakat ülkemizde adı çok geçmeyen QRLJacking konusunu anlatacağım.
Forumda Whatsapp hackleme, vb. gibi başlıklarla aratınca benzer konular mevcut.
Kaynak çeşitliliğini arttırmak amacıyla farklı noktalara değineceğim ve sizlere özgün bir konu çıkartmaya çalışacağım.
QR kodlarının popüler hale gelmesiyle birlikte, QR kodlarını kullanarak kimlik avı yapmak için yeni yollar ortaya çıkmaktadır. QRLJacking, bir saldırganın QR kodunu sahte bir web sitesine yönlendirerek bir kullanıcının kimliğini ele geçirmesine olanak tanıyan bir saldırı türüdür.
QRLJacking Nedir?
QRLJacking, Quick Response (QR) kodlarını kullanarak kimlik avı yapmak için kullanılan bir saldırı türüdür. Saldırgan, hedef kullanıcının QR kodunu taramasını sağlayacak bir yol bulur, genellikle bir web sitesinde veya uygulamada yer alan bir QR kodudur. Saldırgan daha sonra bir sahte web sitesi veya uygulama oluşturarak, hedef kullanıcının QR kodunu taramasını sağlayacak olan hedef web sitesine veya uygulamaya benzer bir kullanıcı arayüzü tasarlar. Hedef kullanıcı, QR kodunu sahte web sitesi veya uygulamaya tarar ve kimlik bilgileri gibi hassas bilgileri, saldırganın kontrol ettiği bir sunucuya gönderir.
Günümüzde birçok platform QR kodu ile giriş yapmaya izin veriyor. Benim kullandığım ve aklıma gelen platformları aşağıda listeledim.
1.Whatsapp
2.Telegram
3.Binance
QRLJacking Saldırısının Temel Prensipleri
QRLJacking saldırısının temeli, saldırgan kişisinin oluşturduğu QR kodu kullanıcı kişisiyle değiştirmek ve bu şekilde kullanıcının hesabına giriş yapmasıdır.
Bu işlem birkaç farklı şekilde yapılabilir.
1. Sahte bir website oluşturulup kullanıcı oraya yönlendirilebilir. (Phishing)
2. MITM (Man In The Middle Attack) saldırıları ile QR Kod değiştirilebilir.
3. Farklı teknikler ile hedef website'de yer alan QR kodlar değiştirilebilir. (Bunun literatürde bir adı varsa lütfen cevap olarak yazın. Konuyu yazarken aklıma gelmedi.)
QRLJacking İçin Araçlar
QRLJacking ile ilgili birçok saldırı toolu mevcut.
Forum içerisinde bu saldırı toolarının çoğuna farklı başlıklar altında değinildiği için detaylı anlatmayacağım.
Fakat ilginizi çekerse araştırabilirsiniz.
OWASP-QRLJacking
OWAS-QRLJacking (Termux için başka bir kullanıcı tarafından düzenlenmiş hali.)
QRLJackingJS (Javascript İmplementasyonu)
OWASP QRLJacking bu saldırı türünün babasıdır. Bundan dolayı bu tool'u referans edinebilirsiniz.
Bu araçlar genel olarak hedef websitenin fakesini oluştururlar ve sizin QR kodunuzu içerisine gömerler.
Ardından Ngrok ve benzeri araçlar ile tünelleyerek fake websitenizi kurban'a iletirsiniz.
QRLJacking Saldırı Vektörü Oluşturalım.
Şimdi hem farkındalık oluşturmak için hem de içerik zenginliği açısından benim stilimle bir saldırı vektörü oluşturalım.
Kafamdaki vektörü aşağıda çizmeye çalıştım.
Öncelikle bir tarayıcı eklentisi oluşturmakla başlayalım. Ben daha önceden tecrübe sahibi olduğum için Firefox add-on'u geliştireceğim.
Sunucu tarafını Flask ile yapacağım. Eğer gerçek bir sunucuya kurulum yaparsam, kurulumun hızlı olması için Flask iyidir.
Ayrıca erişilebilirlik açısından kolay olması için çok basit kodlarla bu işlemleri yapmaya çalışacağım.
İlk olarak Flask ile web.whatsapp'a girip kendi sessionum ile oluşan QR kodunu kaydetmem gerekiyor.
Bunun için QRLJacking'de en fazla kullanılan Selenium kütüphanesinden faydalanacağım.
Selenium'u çalıştırabilmek için webdriver'e ihtiyaç duyuyoruz. Aşağıdaki linklerden indirebilirsiniz.
Firefox webdriver için: Releases · mozilla/geckodriver
Chrome webdriver için: ChromeDriver - WebDriver for Chrome - Downloads
Veya otomatik indirmek için
geckodriver_autoinstaller
chromedriver_autoinstaller
kütüphanelerinden faydalanabilirsiniz.
Python Kodları aşağıda verilmiştir.
Ardından Add-on için bir klasör oluşturalım ve içerisine manifest.json adında bir dosya oluşturalım. İçeriğini aşağıdaki gibi düzenleyelim.
manifest_version : Manifestomuzun versiyonunu belirler.
name: add-on'umuzun adı
version: add-on'umuzun versiyonu
description: add-on'umuzun açıklaması.
matches: add-on'un hangi websitelerde çalışacağını belirler. Eğer * yazarsanız bütün websitelerde çalışır.
js: add-on'un hangi javascript dosyasını çalıştıracağını belirler.
permissions: add-on'un yetkileri görselde sadece aktif tabda çalışması gerektiğini belirttik.
name: add-on'umuzun adı
version: add-on'umuzun versiyonu
description: add-on'umuzun açıklaması.
matches: add-on'un hangi websitelerde çalışacağını belirler. Eğer * yazarsanız bütün websitelerde çalışır.
js: add-on'un hangi javascript dosyasını çalıştıracağını belirler.
permissions: add-on'un yetkileri görselde sadece aktif tabda çalışması gerektiğini belirttik.
Şimdi qrljacking.js adında bir javascript dosyası oluşturalım. Bu dosya add-on'un çalıştıracağı javascript kodlarını içerecek.
Yukarıdaki kod, kullanıcı web.whatsapp.com adresine gittiğinde otomatik olarak img.src(5. satır) içerisinde yer alan urlye giderek, sayfa içerisindeki qr kodu gelen kod ile değiştirecektir.
Ayrıca ben bu konuyu eğitim içeriği olarak hazırladığım için kodu olabildiğince basit tutmaya çalıştım. Sizler isterseniz JS kodu içerisine Whatsapp giriş yapılıysa, otomatik çıkış yapıp giriş yapmaya zorlayabilirsiniz. Ayrıca manifest.json içerisinden logo belirleyip, eklenti adını sosyal mühendislik becerilerinize göre değiştirebilirsiniz.
Şimdi artık uygulamamızı test edebiliriz. Add-on'u xpi formatına dönüştürerek kullanıcıya indirtmemiz gerekiyor. Ben test etmek için firefox'a add-on'u ekledim.
Ardından web.whatsapp'a gittiğimde QR Kod otomatik olarak değiştirildi.
Umarım faydalı ve bilgilendirici bir yazı olmuştur.
Ayrıca konu hoşunuza gittiyse, daha önceden yazdığım aşağıdaki konular ilginizi çekebilir.
İyi Forumlar!