Blog

Kötücül USB'ler, Çalışma Yapıları ve Korunma Yolları

Bu yazımda son yıllarda adı sıklıkla duyulan kötücül USB’lerin nasıl çalıştığını, kendimize ait aynı işlevi gören bir cihazı nasıl yapabileceğimizi ve bu cihazlardan kendimizi nasıl koruyabileceğimizi anlatacağım.

Kötücül USB Nedir ve Nasıl Çalışır?

Kötücül USB’ler temel yapı itibari ile USB HID (Klavye, Mouse) gibi insan etkileşimli cihazlardır. Kötücül USB’ler genellikle bulundurdukları mikro kontrolcü sayesinde etkileşime geçtiği bilgisayara kendisini klavye olarak tanıtabiliyor ve içerisine yüklenmiş sıralı tuş komutlarını gerçekleştirebiliyor. Bu şekilde bir insanın klavye ile 10 saniyede yapabileceği sıralı tuş girişini 3 saniye içerisinde gerçekleştirmek mümkündür. Bu cihazların “Kötücül USB” olarak tanınmasının sebebi ise içerisine yüklenen kodların amacının genelde kötü olmasından kaynaklıdır.

Kötücül USB’ler ile Uyumlu Kontrolcüler

Ticari olarak USB Rubber Ducky ön planda. RD Amtel AT32UC3B1256 mikro kontrolcüye sahip. Yine ticari olarak üretilen ancak sadece usb bellek olarak kullanılan Phison marka belleklerden Phison2303 kontrolcüye sahip cihazlar kötücül amaçlar doğrultusunda firmware’si düzenlenerek kullanılabiliyor.

Bu yazıda kendimize ait bu işlevde çalışan bir cihaz oluştururken kullanacağımız programlanabilir kart ise ATMEGA 32U4 kontrolcüye sahip. Pro Micro, Pololu A-Star 32U4 Micro ve Arduino Leonardo 32U4 kontrolcüye sahip programlanabilir kartlardan biridir. Bu mikro kontrolcüye sahip devreler ile etkileşime geçilen bilgisayara komutlar yollayabilirsiniz.

Kendi Kötücül Cihazımızı Yapalım

Bu bölümde yaygın olan firmware patchingden ziyade programlanabilir kartlar ile cihazımızı yapacağız. 32U4 kontrolcüye sahip arduino bootloader yüklü bir kartınız varsa anlatacaklarımı uygulayabilirsiniz.

Ben A-Star 32U4 Micro kullanıyorum. Boyutu oldukça küçük olduğundan tercih ettim.

Öncelikle belirtmek isterim ki Arduino’nun kendi keyboard kütüphanesi Türkçe klavyeler ile uyumlu değil. Bundan dolayı bazı karakterlerde sıkıntı yaşatıyor ve payloadlar düzgün olarak çalışmıyor. Bu konuda bir çözüm üretmek amacı ile ufak bir payload converter yazdım. Bölüm sonunda yer alan GitHub linkinden dönüştürücünün kodlarına ulaşabilirsiniz.

Öncelikle Arduino’yu açalım ve yeni bir proje oluşturalım. Projemize klavye kütüphanesini ekleyelim. Arduinonun kütüphanesi bize tanımlanmış tuşlara basmamıza, string yazmamıza imkan sağlıyor.

Arduino için tanımalnmış tuşlar aşağıdaki gibidir,İsterseniz tekil olarak tuş da bastırabilirsiniz.

Keyboard kütüphanesinin kullanacağımız komutları şu şekilde ;

Keyboard.begin(); //Projemize eklediğimiz kütüphaneyi kullanmaya başlıyoruz.

Keyboard.press(KEY_LEFT_GUI); //Tanımlanmış tuşlardan birine basmamıza imkan sağlıyor.

Keyboard.releaseAll(); //Kombinasyonlu tuş basışı için kullanılır ve kendinden önce yazılan press komutlarını gerçekleştirir

Keyboard.print("example"); //Yazı yazmamızı sağlar

Keyboard.end(); //Kullanımı bitirir

Örnek bir proje;

Gördüğünüz üzere cmd komutları olması gerekenlerden farklı durumda, bunun sebebi ise örneğin Türkçe klavye düzenine göre olmasıdır.

Payload Converter Kullanarak Proje Geliştirmek

Verilen adresten (https://github.com/kaganisildak/baduino) payload converter’a ulaşabilir, derleyipkullanmaya başlayabilirsiniz.

BadUINO dönüştürücüsü için 2 temel komut ve 35 tanımlanmış tuş bulunmakta. DLY value ile payloadınızı sayı olarak tanımlanmış value kadar bekletebilirsiniz. STR biryazı ile Keyboard.print fonksiyonunu gerçekleştirebilirsiniz.

Aşağıda yer alan tuşlar ile tekil basımlar yollayabilir yahut kombinasyonlar halinde komut gönderebilirsiniz.

Örnek olarak LGUI r yazdığınız zaman windows işletim sistemine sahip bir bilgisayarda çalıştır ekranını açarsınız.

 

Aşağıda takıldığı anda lsass.exe’yi dump edip kaydını alan bir payload bulunmakta.

Korunma Yolları

Yazının başında bu tarz cihazların kendini HID olarak tanıttığını ve bu şekilde amaçlarını gerçekleştirdiklerini söylemiştim. Bu cihaz bilgisayara takıldığında aşağıda olduğu gibi aygıt listesine girmekte.

Bu aygıtı deaktif ederek bilgisayarınızı benzeri cihazlara karşı koruyabilirsiniz. Bu işlemi kolaylaştırmak amacı ile yazmış olduğum bir yazılım var. Aşağıdaki adresten kodlarına ulaşabilirsiniz;

https://github.com/kaganisildak/devica

Aygıt yöneticisi ile uğraşmak istemiyorsanız, cihazın mikro kontrolcüsüne bakarak temkinli yaklaşabilirsiniz ancak unutmamalısınızki bu yol sizi tam olarak korumaz. Bunun sebebi ise 2 saniye içerisinde takılabilen Kötücül USB’de bulunan bir scriptin çağrılması bile cihazı programlayanın amaçlarından biridir ve çalışan scriptin ne amaç doğrultusunda yazıldığını bilmemekteyiz.

Güvenli günler dilerim.




Yazar Hakkında

Lise son sınıf öğrencisi olan Işıldak, 11 yaşında programlama dillerini öğrenmeye başlamış ve daha sonra C, C# ve VB.NET dilleri ile ilgilenmeye başlamıştır. Siber güvenliğin yanı sıra kriptoloji algoritamaları ve gerçekleme, mahremiyet problemleri ve zararlı yazılımlar üzerine çalışmalarını sürdürmekte olan Işıldak, son kullanıcıya yönelik uygulamalar geliştirmektedir.






Yorum Yapmak İçin Giriş Yapın.