Kendi USB RubberDucky’nizi Yapın

Selamlar arkadaşlar. Bloguma ya da youtube kanalıma baktıysanız BadUINO adında birçok video görmüşsünüzdür. Ekim ayında başladığım projemde amacım USB RubberDucky’i daha ucuza mâl etmek ve cihazın işleyişini kavramaktı. Ufak araştırmam sonrası elde ettiğim bilgileri aktarayım.

Cihazın basit işleyişi : Kendini klavye olarak tanıt > Önceden yüklenen komutları sırayla yollamaya başla

Detaylar…

Kendini klavye olarak tanıtma dediğimiz HID(Human Interface Device) aslında. Mike Van tarafından ilk defa kullanılan bu sözcükler insan ile etkileşime geçip veri aktarabilen cihazlar için kullanılıyor. Klavye de bu cihazlardan biri. USB RubberDucky de kendini HID Keyboard olarak tanıtıyor. Bu tanıtım olayı ise mikrokontrolcü ile alakalı bir olay. Bu yazımda atmega32u4’e sahip bir kart ile cihazımızı yapacağız lakin Phison2303 kontrolcüye sahip bir USB bellek ile de bunu yapabilirsiniz. Phison için buraya, Türkçe okumak istiyorum diyorsanız Mert Sarıca’nın bu yazısına yönlendireyim sizleri. USB RubberDucky de Amtel AT32UC3B1256 kontrolcü ile işlerini yerine getiriyor.

Önceden yüklenen komutları sırayla yollamak ise klavye olmamızın bir getirisi. Yazımda arduino ile yüklediğimiz kod üzerinden komutlar yollanıyor. RubberDucky ise payloadı convert ettikten sonra firmware’i güncelliyor.

Basitleştirilmiş teknik bilgilerden sonra prototipimizi yapmaya başlayalım. 32u4 kontrolcü Arduino Micro/Leonardo ve A-Star 32u4 Micro kartlarında bulunuyor. Arduino’nun Keyboard fonksiyonunu doğal olarak kullanabiliyorlar. Arduino ile BadUSB mantığında nasıl kodlar geliştirebilirim diyerek bu videoyu çekmiştim. İlk prototipim Leonardo idi ardından boyutsal küçültmeye giderek A-Star 32u4 micro ve “b to a” dönüştürücü aldım.

Ürünlere şuralardan ulaşabilirsiniz :

Pololu A-Star

Dönüştürücü Set

 

Ürünlerimiz geldi bir heves ile açtık Keyboard lib’ini kullanarak komut yolladık, teorik bilgimizi fiziksel hale büründürdük ve önümüze çıkan sorunları yazalım.

•Arduino için yazmakla uğraşmak sizi yorabilir ve detaylı payloadlarınızı kodlarken çıldırma durumuna gelebilirsiniz. Vaktiniz değerli unutmayın.

• Library ingilizce klavyeye göre yazılmış ve TR klavye yerleşimi bakımından farklı olduğundan iletişim esnasında sıkıntılar çıkacak ve koda yazdığınız karakterler çalışma esnasında farklı olarak yollanacak.

Bu sorunlar başıma geldiğinden çözmek için çalışmalara başladım. Öncelikle Türkçe karakter sorununu Arduino kütüphanesine dokunmadan çözmem gerekiyordu. Türkçe klavye ve İngilizce klavye arasındaki bağlantı için 9-10 deneme ardından metodumu belirledim ve her karakter için Türkçe klavyedeki karşılığını buldum. Projenin en sıkıcı kısmı burasıydı.

screenshot_2

Detaylı çalışmam sonucu hatasız bir liste oluşturdum. 2. sorunum ortadan kalktı ve geriye yapay payload dilini yapılandırmak kaldı. .NET ile bir arayüz yazmak istedim ve başladım.”STR” ile string yollanacak “DLY” ile delay verilecek ve diğer tuşlar kullanılacaktı. Payloadları arduino koduna çevirerek yolu belirtilmiş arduino uygulaması üzerinden seçilen porttaki karta yükleyecekti.

2 günlük bir çalışma sonucu arayüzü oluşturarak projemi tamamladım ve kendimi payload yazmaya adadım.

screenshot_5

Test ettiğimce hataları kapatmaya çalıştım ve genel olarak biten projemi herkesin kullanabilmesi amacıyla sizlerle paylaşıyorum. Vakit buldukça geliştirmeye devam ediyorum. Bu noktada geri dönüşleriniz benim için önemli. Görüşlerinizi bekliyorum.

Kaynak kodlar

YouTube Kanalım

 

CyberWarrior – ProgrammerMan

AKINCILAR

 

Kendi USB RubberDucky’nizi Yapın’ için 9 yanıt

  1. ben bunu arduino uno ile ve mikro pro ile yaptım yakında mikro pro ile birebir hafıza kartı barındıran bir versiyonunu çıkarıcağım. tr klavye sorunu için yardımını istiyorum. teşekkürler. mail adresinden ulaşabilirsen sevinirim.

    Beğen

  2. Google a Bad usb yazdığım zaman türkçe sayfalar arasında kendimi burada buldum. Türkçe kaynak pek yeterli değil bu konuda öncelikle yazmış oldugunuz yazılar için Teşekkürler. Benim de yapmak istediğim bir badusb var. Şu video açıklayacaktır :

    badusb wifi ile ilgili herhangi bir çalışmanız oldu mu? Scripti içerden çalıştırmak dansa wifi bağlantısı üzerinden arduiona gönderip çalıştırmak bana daha ilham verici gözüktü. Bir nevi telefondan kontrol edebildiğim badusb gibi…

    Birde başka bir sorum : sd kart destekli bir bad usb yapmak istiyorum. Cihazın oldukça mikro (ufak) olmasını istiyorum. Hangi kart ve hangi parçaları önerirsin ? (Arduiono micro ile astar 32u-4 farklı kartlar mı?

    Liked by 1 kişi

    1. ESP modülü ile dediğin wifi olayı yapılır(revize bekleyen yazılarım arasında var ancak sınav senesinde olduğumdan yayınlamaya vakit bulamadım uygun vakitte yayınlarım). O işin tek sıkıntısı aynı ortamda bulunman gerek oluşan bağlantı noktasına bağlanmak için. SD kart destek olayına gelirsek 2 kapı var, bilgisayar sd kartın içeriğini görecek mi görmeyecek mi ?
      Görmeyecekse direk kartın pinlerine micro girişi lehimleyebilirsin. SD kartı bilgisayar görecekse 2 girişli usb hubların küçültülmüş halleri vardı bu şekilde amacına ulaşabilirsin.
      Bu 2 başlığı yakın zamanda yayınlamayı düşünüyorum. O zaman sorularına daha detaylı ve teknik cevap verebilirim.

      Beğen

  3. Kolay gelsin hocam çok emek harcamışsınız ustat olarak sormak istediğim bir soru var ben kendime klavye yapmak istiyorum ama tam bir klavte değil yani max 24 karakter içerecek bir klavye örneğin klavyede ” W-A-S-D-R-Q-M-N-Ş-İ vs. ” gibi karışık olacak ve toplamda 24 ila 30 karakter arası bir klavye olacak bana nasıl yapacağım konusunda yardımcı olurmusunuz şimdiden teşekkür ediyorum… ( Örnekteki harfler değişiklik gösterecektir )

    Beğen

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s