paint-brush
Paket Diseksiyonu Kullanılarak Wireshark Kullanılarak Bir Drone Nasıl Tersine Tasarlanır?ile@angelinatsuboi
7,951 okumalar
7,951 okumalar

Paket Diseksiyonu Kullanılarak Wireshark Kullanılarak Bir Drone Nasıl Tersine Tasarlanır?

ile Angelina Tsuboi26m2023/05/19
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Bu makale, Wireshark ile paket izleme tekniklerini kullanarak DJI drone'larına tersine mühendislik yapmak için attığım adımları özetlemektedir. Ayrıca paket ayrıştırmanın ayrıntılarına ve Lua programlama dilini kullanarak kendi protokol ayrıştırıcınızı nasıl geliştirebileceğinize de değineceğim. Daha gelişmiş drone sistemleri devreye alındıkça ve çeşitli sektörlere entegre edildikçe, bunların oluşturabileceği güvenlik açıklarını hesaba katmak daha da önemli hale geliyor.
featured image - Paket Diseksiyonu Kullanılarak Wireshark Kullanılarak Bir Drone Nasıl Tersine Tasarlanır?
Angelina Tsuboi HackerNoon profile picture

Daha gelişmiş drone sistemleri devreye alındıkça ve çeşitli sektörlere entegre edildikçe, uygulamalarının güvenliğinin sağlanması için oluşturabilecekleri güvenlik açıklarının dikkate alınması her zamankinden daha önemli hale geliyor.

Havacılık ve uzay siber güvenliğine ilgi duymaya başladığımdan beri her zaman hacklemenin bir yolunu bulmak istediğim şey İHA'lardı. Bu makalede, Wireshark ile paket izleme tekniklerini kullanarak DJI drone'lara tersine mühendislik yapmak için attığım adımları özetleyeceğim ve paket ayrıştırma ayrıntılarına ve Lua programlama dilini kullanarak kendi protokol ayrıştırıcınızı nasıl geliştirebileceğinize değineceğim.

Tersine mühendislik dronları kolay bir başarı olmasa da, ciddi sonuçlara yol açabilecek çok çeşitli siber tehditlere karşı hala savunmasızdırlar. Paket verilerde saklanan hassas bilgileri ortaya çıkarmak için DJI drone'larına tersine mühendislik yaparak uyguladığım süreci özetleyerek, araştırmanın mevcut drone sistemlerini korumak için daha iyi alternatifler bulmak amacıyla mevcut güvenlik açıklarını vurgulayacağını umuyorum.

İçindekiler

  • İnsansız hava aracı
  • Drone'ların yapısı bozuldu
  • İHA'nın güvenlik açıkları
  • Paket Koklama ve Analizi Nedir?
  • Wireshack nedir?
  • Wireshack Görüntü Filtreleri
  • Paket Diseksiyonu Nedir?
  • Wireshack ile Paket Diseksiyonu
  • Tersine Mühendislik DJI Drone'lar
  • Wireshack ile DJI Paket Diseksiyonu
  • Wireshack Ayırıcılara Daha Derin Dalış
  • Wireshack ile Disector Kurulumu

İnsansız hava aracı

İnsansız Hava Aracı (kısaca İHA), içerisinde herhangi bir pilot veya yolcu taşımayan hava aracıdır. Çoğu zaman bu terim dronlara uygulanır, ancak araştırma amaçlı yüksek irtifa, uzun ömürlü bir İHA olan NASA'nın Global Hawk'u gibi başka İHA araçları da mevcuttur. İHA'lar, arama ve kurtarma görevleri, veri toplama, askeri ve kolluk kuvvetleri, hava fotoğrafçılığı vb. gibi çok çeşitli uygulamalar için kullanılır. Geleneksel uçaklarla karşılaştırıldığında İHA'lar kompakt bir forma sahiptir ve yüksek çeviklik, doğruluk ve hassasiyet sergiler. manevralar yapar ve uygun maliyetli olduğunu kanıtlar, bu da onları teslimat hizmetleri ve hava araştırmaları gibi çeşitli ticari ve tüketici uygulamaları için yaygın olarak tercih edilir hale getirir.


Yapısı Bozulmuş Drone'lar

Bu makale drone adli bilimini derinlemesine ele alacağından, DJI Phantom 4'ü oluşturan bileşenlere hızlı bir genel bakış sağlamak önemlidir. Bir drone tarafından barındırılan bileşenlerin markaya veya versiyona bağlı olarak değişebileceğini belirtmekte fayda var, çoğu İHA'nın ortak özelliği bileşenlerin önemli bir çoğunluğu.

Şasi: Drone'un şasisi, tüm bileşenleri bir arada tutan fiziksel çerçevedir. Şasi genellikle sürüklenmeyi ve ağırlığı azaltarak dronun genel uçuş performansını azaltmak için plastik veya karbon fiber gibi hafif malzemelerden yapılmıştır

Drone Motoru: Drone'lar, uçuş için gerekli miktarda kaldırma kuvveti oluşturmak için motorları kullanır. çoğu drone genellikle dört motordan oluşan bir quadcopter konfigürasyonuna sahiptir: dönme kuvvetini eşitlemek için saat yönünde dönen iki motor ve saat yönünün tersine dönen iki motor. Bu konfigürasyon, Newton'un Üçüncü Yasasının, her eylem için eşit ve zıt bir tepki olduğunu belirtmesi nedeniyle mevcuttur; bu nedenle, aynı sayıda ters ve saat yönüne sahip motorlara sahip olmak, drone'ya eşitlenmiş dönüş kuvveti yoluyla uçuş koordinasyonu sağlar.

Drone Uçuş Kontrol Cihazı: Bir drone'un uçuş kontrol cihazı beyni gibi davranır. Uçuş kontrolörü, motorları kontrol etmek için elektronik hız kontrolörlerine (ESC'ler) özel talimatlar vermek amacıyla GPS modülü gibi drone üzerindeki sensörlerden girdiler alır.

GPS Modülü: küresel konumlandırma uydusu (GPS) modülü, drone'nun konumunu belirlemek için iki farklı küresel konumlandırma sistemi kullanır. Drone, GPS modülünü kullanarak, iletilen sinyallerin farklı uydulardan gelmesi için geçen süreye dayalı olarak coğrafi konumunu hesaplayabiliyor.

Elektronik Hız Kontrol Cihazı (ESC): ESC'ler, drone'un güç dağıtım panosu ile motorlar arasındaki orta adamdır. Motora tahsis edilen güç miktarını kontrol etmek için uçuş kontrolöründen gelen sinyalleri kullanırlar.

Güç Bağlantı Noktası Modülü: Güç bağlantı noktası, pilden gelen güç miktarını ölçen ve bu gücü drone'nun ESC'lerine ve uçuş kumandasına dağıtan bir modüldür.

Engellerden Kaçınma Sensörleri: Bazı drone'ların çerçevelerinde stereo görüş sensörleri bulunur. Bu sensörler, her sensörün yakaladığı görüntü pikselleri aracılığıyla derinliği hesaplayarak drone ile sensörün önündeki engel arasındaki mesafeyi hesaplar.

3 Eksenli Gimbal: Gimbal, görüntüleri sabitlemek için drone'a bağlı kamerayı sabitler. Sensörler herhangi bir eksen etrafında hareket fark ettiğinde, kamera görüntüsünü yumuşatmak için uygun ayarlamaları yapması için gimbal'e sinyal gönderir.

Drone Pili: Piller drone'a güç sağlar. Bazı piller ayrıca aşırı şarj koruması, güç çıkışı iletişimi vb. özellikler içerir.

Drone Kamerası: Drone'un kamerası çekim yapmak ve fotoğraf çekmek için kullanılır. Kameradaki görüntü sensörü, gelen ışık ışınlarını yakalar ve bunları dijital bir görüntüye dönüştürür

Drone Antenleri: Drone antenleri, kontrolör ile drone arasında bilgi aktarımı için bir iletim sistemi görevi görür

Aşağıya Doğru Ultrasonik Engellerden Kaçınma Sensörü: Bu sensörler drone'un yerden yüksekliğini hesaplamak için kullanılır. Yükseklik, bir sensörden yüksek frekanslı bir ses darbesi gönderilerek ve diğer sensörün bunu alması için geçen süre ölçülerek hesaplanabilir.

Uçuş LED'i: Uçuş LED'leri genellikle drone'nun uçtuğu yönü belirtmek için kullanılır. Yanıp sönen iki kırmızı ışık drone'un ön tarafını, yanıp sönen yeşil ışıklar ise arka tarafını gösterir

Joystick'ler: joystick'ler, çubukların fiziksel hareketini, kontrol cihazının drone ile hareket yönleri olarak iletişim kurabileceği bilgilere dönüştürerek drone'u kontrol etmek için kullanılır.

Ana Uzaktan Kumanda Kartı: Uzaktan kumanda kartı, drone hakkında rakım, konum ve kamera görüntüleri gibi faydalı telemetri bilgileri alır

Ana Kamera Kartı: Kamera kartı, sabit görüntüleri sentezlemek için görüntüleme sensöründen ve gimbal motorlarından gelen verileri işler

İHA'ların güvenlik açıkları

Her ne kadar İHA'lar, yerleşik bilgisayar sistemine sahip diğer tüm cihazlar gibi çok çeşitli uygulamalar için kullanılsa da, çeşitli siber güvenlik tehditlerine karşı savunmasızdırlar. İHA'larla ilgili en yaygın siber güvenlik tehditlerinden bazıları şunlardır:

Yetkisiz Erişim: İHA'lar, drone'yu kontrol etmek için kullanılan kablosuz sinyalleri yakalayabilen veya taklit edebilen kötü aktörlerin yetkisiz saldırılarına karşı savunmasızdır. Bu, bilgisayar korsanının drone'u kontrol etmesine veya pasif olarak onlardan bilgi çalmasına olanak tanır.

Veri Hırsızlığı: İHA'lar, ortamları hakkında fotoğraf, video ve telemetri okumaları gibi aktif olarak bilgi toplayan çok çeşitli sensörlerle donatılmıştır. Bu veriler, onu kötü amaçlarla kullanabilecek bilgisayar korsanlarının müdahalesine karşı savunmasız olabilir

Hizmet Reddi: Bilgisayar korsanlarının drone'ları hacklemek için kullanabileceği daha spesifik bir saldırı, Hizmet Reddi'dir. Bu, bir bilgisayar korsanının drone ile aynı kablosuz iletişim sistemi üzerinde bir DOS başlatarak veri alma veya iletme yeteneğini bozduğunda meydana gelir.

İHA'ların popülaritesinin artmasıyla birlikte daha fazla güvenlik açıkları keşfedildikçe, güvenlik araştırmacılarının cihazları kötü amaçlı amaçlarla adli olarak analiz etmesi gerekiyor. Siber güvenliğin adli analiz olarak adlandırılan bir alt alanı, soruşturma amacıyla bir saldırıdan elde edilen verilerin toplanmasına ve analiz edilmesine odaklanır .

Bu süreç, bir bilgisayar sisteminin dijital bilgilerinin ele geçirildiği ve araştırılması gereken gerçek hayattaki suç senaryolarında kullanışlıdır. Çoğu zaman, makinedeki bilgilerin büyük çoğunluğu suçla ilgili değildir ve suç senaryolarını ayrıştırmak için filtrelenmesi gerekir.

Drone'ların yetkisiz alanlara kaçak mal bırakma, yabancı sınırlar üzerinden uyuşturucu bırakma ve istenmeyen gözetleme gibi çok çeşitli yasa dışı uygulamaları bulunmaktadır. Bu senaryoların çoğunun ardından, cihaz sahipliği gibi bilgileri ve suçla bağlantılı verileri belirlemek için dijital adli tıptan yararlanılıyor.

Çeşitli suç mahallerinde yaygın olarak kullanılan drone modelleri üzerinde yapılan bir araştırma , fotoğraf veya video formatındaki medya dosyaları, uçuş düzenleri, konumlar ve sahip bilgileri gibi bilgilerin, kolluk kuvvetleri tarafından yürütülen dijital adli vakalarda başarıya en çok yardımcı olan bilgiler olduğunu gösterdi. Araştırmanın araştırmacıları dijital adli tıp tekniklerini kullanarak suçla ilgili bilgileri filtreleyebilse de çalışma, eyalet ve federal mevzuatın drone teknolojisinin arkasındaki düzenlemeleri gerektiği gibi ele almadığını ve sonuç olarak birçok paydaşı savunmasız bıraktığını belirtti. Genel olarak, adli tıp araçlarının ve evrensel drone yapısının eksikliğinin, daha fazla veri çıkarma yönteminin geliştirilmesini gerekli kıldığı sonucuna vardılar.

İHA adli tıp araçlarının eksikliğinin üstesinden gelmede bir rol oynamak için, dijital adli tıp senaryoları sırasında yararlı ağ bilgilerini bulmak amacıyla Lua programlama dilini kullanarak Wireshark için nasıl bir paket ayrıştırma komut dosyası oluşturduğumu göstereceğim. Araç, soruşturma durumlarında meydana gelen suçla ilgili daha fazla veri toplamak için kullanılabilecek İHA'lar hakkında yararlı bilgiler toplamak amacıyla dijital adli tıp becerilerinin ilk elden uygulanmasıdır.

Paket Koklama ve Analizi Nedir?

Paket Sniffing, belirli bir ağ üzerinden iletilen veri paketlerini yakalama ve inceleme eylemidir. Bu teknik, siber güvenlik uzmanları tarafından güvenlik açıklarını izlemek, ağlarındaki hataları ve performansı teşhis etmek veya tehditleri keşfetmek için kullanılır.

Bir bilgisayarda ağ arayüz kartı (NIC olarak da bilinir), bilgisayarın ağlarla arayüz oluşturmasına ve paket koklama gerçekleştirmesine olanak tanıyan yerleşik bir devre kartı içeren bir donanım bileşenidir. Siber güvenlik veya bilgisayar korsanlığı amacıyla daha ayrıntılı koklama, genellikle NIC'nin bilgisayarın çevredeki ağ trafiğini almasına olanak tanıyan karışık moda getirilmesini gerektirir. Bir kod çözme işlemi kullanarak, koklayıcılar, bir ağ üzerinden taşınırken veri paketlerinde depolanan kodlanmış bilgilere erişebilirler. Koklama iki genel kategoriye ayrılabilir: aktif ve pasif koklama.

Pasif Koklama

Pasif koklama, yalnızca ağ trafiği olarak gönderilen paketleri dinlemekten oluşur. Genellikle trafik ve ağ üzerinden aktarılan veri türü hakkında ilgili bilgileri ölçmek için bir keşif tekniği olarak kullanılır. Bu, güvenlik profesyonellerinin, ağ sorun giderme (ağ trafiğini ağ sorunları için bir ölçüm olarak kullanma) ve tıkanıklık alanlarını belirleyerek performans optimizasyonu gibi herhangi bir anormallik veya şüpheli etkinlik açısından ağı analiz etmesine olanak tanır.

Aktif Koklama

Aktif koklama, ağ cihazlarından yanıt almayı amaçlayan paket enjeksiyonu/sahtekarlık uygulamalarında kullanılan bir tekniktir. Örneğin bir saldırgan, belirli bir cihazı veya uygulamayı hassas bilgilerle yanıt vermesi için kandırmak amacıyla belirli bir paket gönderebilir. Bu, ortadaki adam (MiTM) saldırısı düzenlemek ve ağ oturumlarını ele geçirmek gibi çok sayıda zararlı etkinliği gerçekleştirmek için kullanılabilir. Aktif koklama, çevredeki ağ trafiğini maskelemek için tasarlandığından, tespit edilmesi pasif koklamaya göre biraz daha zordur. Aktif koklama, anahtar içeriği adres belleği (CAM) tablosunu aşırı yüklemek amacıyla adres çözümleme protokolü (ARP) paketlerinin kasıtlı olarak girilmesiyle gerçekleştirilir. Bu, meşru ağ trafiğinin, ARP Sahtekarlığı, dinamik ana bilgisayar yapılandırma protokolü (DHCP) saldırıları ve DNS (etki alanı adı sistemi) zehirlenmesi gibi kimlik sahtekarlığı saldırılarının temelini oluşturan farklı bağlantı noktalarına taşınmasına yol açar.

OSI Modeli

OSI (Açık Sistem Bağlantısı olarak bilinir) modeli, bir ağın farklı bileşenlerinin birbirleriyle nasıl iletişim kurduğunu kavramsallaştırmak için kullanılır. Model, farklı cihaz ve programların ağ üzerinden nasıl iletişim kurabileceğine ilişkin standartlaştırılmış bir kural seti içeren yedi katmanlı bir model olarak sunulmaktadır.



OSI modeli birkaç katmana ayrılabilir: Uygulama, Sunum, Oturum, Aktarım, Ağ, Veri Bağlantısı ve Fiziksel.

Fiziksel katman
Bu, kablolar, konektörler ve sinyaller gibi cihazlar arasındaki fiziksel bağlantıdan sorumlu olan ağın fiziksel özelliklerini açıklar. Bu katmanda veriler bitler aracılığıyla aktarılır.

Veri bağlantısı katmanı
Bu katmanda veriler paketler halinde formatlanır ve ağ üzerinden iletilir. Veri bağlantısı katmanı ayrıca verilerinizin herhangi bir dahili hata içermemesini de sağlar. Veriler çerçeveler kullanılarak aktarılır.

Ağ katmanı
Ağ katmanı, paketi göndermenin en uygun yolunu bularak paketlerin ağ üzerinden nasıl adresleneceğini ve gönderileceğini yönetir. Bu aşamada paketin başlığına IP adresleri eklenir.

Taşıma katmanı
Taşıma katmanı, ağ ve oturum katmanları arasındaki geçiştir. Bu katman, uygulamalar arasında veri aktarımının nasıl yapılacağını belirlemek için UDP ve TCP gibi ağ protokollerini kullanır. Bu katmanda taşınan verilere segment adı verilir.

Oturum Katmanı
Bu katman, uygulamaların birbirleriyle nasıl bağlantı kurduğunu ve sürdürdüğünü tanımlar.

Sunum katmanı
Sunum katmanı, segmentlerdeki verileri daha insan tarafından okunabilir bir formata dönüştürür. Bu katman aynı zamanda paketlerin şifrelenmesini ve şifresinin çözülmesini de kapsar.

Uygulama katmanı
Uygulama katmanı, kullanıcılarla arayüz oluşturmak için kullanılan katmandır. Uygulamaların ağ ile iletişim kurmak için kullanabileceği protokolleri ve arayüzleri tanımlar.

Paket Bilgilerinin Dağılımı

Ağ iletişiminde paket, daha büyük bir mesajın küçük bir bölümüdür. Bir ağ üzerinden iletilen her türlü veri paketlere bölünür. Ağ üzerinden geçtikten sonra bu paketler, onları alan cihaz tarafından yeniden oluşturulur.

Ağ üzerinden gönderilen paketlerin yapısında başlık, yük ve fragman bulunur. Bir paketin içerdiği bilgi türünü göstermek için örnek olarak IPv4 paketini kullanacağım.

1. Paket Başlığı
Paket başlığı bir paketin başlangıç kısmıdır. Paketin hedefine ulaşması için gereken adresleme ve diğer verileri içerir. IPv4 başlığı 13 alan içerir…

- Sürüm: kullanılan internet protokolünün sürüm numarası (ör. IPv4)

- İnternet Başlığı Uzunluğu (IHL):
tüm IP başlığının uzunluğu

- Açık Tıkanıklık Bildirimi:
yolda görülen tıkanıklık bilgileri hakkında bilgi

- Toplam Uzunluk:
tüm IP paketinin uzunluğu (başlık ve gövde dahil)

- Tanımlama:
IP paketi parçalanmışsa, her paket ait oldukları orijinal IP paketini tanımlamak için karşılık gelen bir kimlik numarası içerecektir

- Bayraklar:
paketin parçalanacak kadar büyük olup olmadığının göstergesi

- Parça Ofseti:
parçanın IP paketindeki konumlandırılması

- Yaşam Süresi (TTL):
ağdaki döngüyü önlemek için paketin geçmesi gereken yönlendirici sayısı

- Protokol:
paketin ait olduğu hedef ana bilgisayardaki ağ katmanı (örn. TCP = 6, UDP = 17 ve ICMP = 1)

- Başlık Sağlama Toplamı:
paketin herhangi bir hata içermediğini doğrulamak için kullanılan tüm başlığın sağlama toplamı değeri

- Kaynak Adresi: Paketin göndericisinin (kaynağının) 32 bitlik adresi

- Hedef Adresi:
Paketin Alıcısının (hedef) 32-bit adresi

- Seçenekler:
Kayıt Rotası, Zaman Damgaları vb. gibi bilgileri içerebilen isteğe bağlı alan

2. Yük
Bir paketin yükü, paketin hedefine taşımayı planladığı gerçek verileri içerir. IPV4 paketi durumunda, paketin 32 bit sınırlaması dahilinde bitmesini sağlamak için yüke 0 bitlik bir dolgu verilir.

3. Fragman
Bazen paketler, paketlerine fragman adı verilen bir son içerebilir. IPV4 paket yapısı bir fragman içermese de Ethernet çerçeveleri, Ethernet üzerindeki ağ bağdaştırıcılarının çerçeveyi işlemesi için ihtiyaç duyduğu bilgileri içeren bir fragman içerir.

Wireshark nedir?

Wireshark, yaygın olarak kullanılan ve açık kaynaklı bir ağ protokolü ve paket analiz aracıdır. Kablosuz (IEEE.802.11), Bluetooth, Ethernet, jeton halkaları vb. kaynaklardan ağ paketlerini yakalamanıza olanak tanır. Wireshark ayrıca, ekranınızda görüntülenen paketlerin günlük akışını filtrelemenize olanak tanıyan bir paket filtreleme özelliğine de sahiptir. .

Paket Analizi için Wireshark Kullanımı

Wireshark arayüzü paket bilgilerini görüntülemek için farklı bölmeler içerir. Ana panel, ağ üzerinden akan tüm paketlerin listesini görüntüler. Bireysel bir paket seçerseniz ekranın alt kısmına yakın bir yerde daha spesifik paket verileri içeren iki bölme açılmalıdır. Ana paneldeki sütun kategorilerinin her birine ilişkin ayrıntılar aşağıdaki gibidir:

No.: Yakalama dosyasındaki paket numarası

Zaman: Paket koklama başlatıldıktan sonra bu paketin yakalandığı süre

Kaynak: Gönderen cihazın IP adresi ve port numarası

Hedef: Alıcı cihazın IP adresi ve port numarası

Protokol: Paketin türü (örn. TCP, UDP, HTTP, vb.)

Bilgi: Yakalanan paket türüne göre değişiklik gösterecek olan paket hakkında daha fazla bilgi içeriği

Bunlar Wireshark'ta önceden yapılandırılmış bilgi sütunlarıdır, ancak "Sütunlar" ayarları seçildiğinde araçta TTL, sağlama toplamı vb. gösterilebilecek çok daha fazla sütun vardır.

Aracın Paket Detayları bölümü, paket türüne göre değişen, paket hakkında daha yorumlanabilir bilgiler gösterir. Alt bölme, Paket Baytları , paket içeriğini saf onaltılık formatta gösterir.

Wireshark Yakalama Filtreleri

Wireshark'taki yakalama filtreleri, eklenen filtre tarafından yakalanan paketleri sınırlar. Fark etmiş olabilirsiniz, Wireshark yakalama filtreleri, başka bir popüler ağ paketi yakalama aracı olan tcpdump ile aynı formatı izler. Paket yakalamaların sözdizimi, Berkeley Paket Filtresi (BPF) sözdizimi ifadelerine uyar. Wireshark için bazı yaygın yakalama filtreleri şunları içerir:

Yalnızca 172.18.5.4 IP adresine giden ve bu adresten gelen trafiği yakalayın:

 host 172.18.5.4

Bir dizi IP adresine giden veya bu adreslerden gelen trafiği yakalayın:

 net 192.168.0.0/24

VEYA

 net 192.168.0.0 mask 255.255.255.0

Bir dizi IP adresinden gelen trafiği yakalayın:

 src net 192.168.0.0/24

VEYA

 src net 192.168.0.0 mask 255.255.255.0

DNS trafiğini yakalayın (bağlantı noktası 53):

 port 53

Tüm ARP ve DNS trafiği hariç yakalama:

 port not 53 and not arp

Yalnızca IPv4 paketlerini yakalayın:

 ip

Yalnızca Ethernet paketlerini yakalayın (EAPOL):

 ether proto 0x888e

Wireshark Görüntü Filtreleri

Wireshark'taki görüntüleme filtreleri özelliği, yakalanan paket listesinde gösterilen paket türlerini daraltmanıza olanak tanır. Görüntüleme filtrelerinin yaygın örnekleri aşağıdakileri içerir:

Protokol Tabanlı Filtreler:

Paket trafiğini ağ protokolüne göre filtreleyebilirsiniz

 http

Yukarıdaki örnek yalnızca HTTP protokolüne sahip paketleri göstermektedir

Paketleri adrese göre filtreleyin (örn. IP adresi filtreleme):

Paketleri gönderenin veya alıcının adresi üzerinden filtreleyebilirsiniz.

 ip.src == xxxx

Yukarıdakiler belirli bir IP adresinden gelen trafiği gösterir

Bağlantı Noktası Tabanlı Filtreler:

Paket trafiğini kullanılan bağlantı noktası numarasına göre filtreleyebilirsiniz

 http

Yukarıdaki örnek yalnızca 80 numaralı bağlantı noktasına sahip TCP paketlerini göstermektedir

Zamana Dayalı Filtreler:

Paketleri yakalandıkları zamana göre filtreleyebilirsiniz

 frame.time >= "YYYY-MM-DD HH:MM:SS" && frame.time <= "YYYY-MM-DD HH:MM:SS

Yukarıdaki örnek yalnızca seçilen bir zaman aralığındaki paketleri gösterir

İçerik tabanlı filtreler:

Paketlerin içeriğine göre paketleri filtreleyebilirsiniz

 frame contains google

Yukarıdaki örnek, içeriği “google” anahtar kelimesini içeren paketleri göstermektedir.

Paket Diseksiyonu Nedir?

Paket analizi süreci ağ trafiği modellerine genel bir bakış elde etmek için kullanılırken, paket ayrıştırma çok daha dar bir yaklaşımı içerir. Paket ayrıştırma, ağ işlemleri veya izlenen cihaz hakkında değerli bilgiler elde etmek için bireysel paketleri farklı bileşenlerine (yani başlıklar, yük içerikleri vb.) ayırma işlemini ifade eder. Paket ayrıştırmalarının kullanılabileceği bazı uygulamalar arasında protokol analizi ve adli tıp yer alır.

Wireshark ile Paket Diseksiyonu

Bizim için şanslıyız ki Wireshark, ağ üzerinden taşınan her paket üzerinde ayrıntılı paket incelemesi gerçekleştirmek için entegre bir araç seti içerir. Paket diseksiyonu gerçekleştirmek için bazı teknikler şunları içerir:

Protokol Kod Çözme: Paket ayrıntıları bölmesindeki katman ayrıntılarını genişleterek her paketin protokol ayrıntılarını görüntüleyebilirsiniz. Bu, TCP, UDP, DNS vb. gibi çeşitli protokollerin kodunu çözmek için kullanışlıdır.

TCP Akışları: Wireshark ayrıca bir TCP bağlantısı üzerinden akan tüm paketlerin TCP akışını görüntüleyen bir özellik içerir. Bu özelliği kullanmak için TCP bağlantısına ait bir paket seçin, pakete sağ tıklayın ve “Takip Et > TCP Akışı” seçeneğini seçin.

Renk Kodlaması: Paket uzunluğu veya protokol türü gibi belirli kriterlere göre paketleri de görselleştirebilirsiniz. Bu özelliği görmek için “Görünüm”e gidin ve “Renklendirme Kuralları”na tıklayın.

Akış Grafikleri: Wireshark, iki makine arasındaki paketin zamanlama ve sıra detaylarını gösteren akış grafiği görüntüleyen bir özelliğe sahiptir. Bir akış grafiği yapılandırmak için “Koruma Filtresi”ne gidin ve “TCP” seçeneğini seçin. Bu, iki makine arasında iletilen tüm paketleri gösteren bir filtre oluşturur. Daha sonra akış grafiğini oluşturmak için “İstatistikler” ve “TCP Akış Grafikleri”ni seçin

Protokol Analizi için Paket Diseksiyonu

Hangi tür ağ protokollerinin kullanıldığını ve nasıl kullanıldığını analiz etmek için paket diseksiyonu uygulanabilir. Wireshark ile protokol analizini denemek için, paketleri seçtiğiniz ağ arayüzüyle yakalayarak başlayın. Daha sonra, paketler yakalandıkça HTTP (bağlantı noktası 80), HTTPS (bağlantı noktası 443), SSH (bağlantı noktası 22) ve SNTMP vb. gibi çeşitli protokolleri iletmeleri gerekir. Paket ayrıştırma örneğimiz için HTTP'yi kullanalım. Aşağıdaki gibi kendisine HTTP protokolü atanmış bir paketi http anahtar kelimesiyle filtreleyerek seçerek başlayın...



Paket seçildikten sonra paketle ilgili bilgileri görmek için İletim Kontrol Protokolü (TCP) menüsünü genişletin.



Paket ayrıntıları genişletildikten sonra, Kaynak ve hedef IP adresleri, kaynak ve hedef bağlantı noktaları, kullanılan HTTP yöntemi (GET, POST, DELETE, vb.) ve HTTP yanıt kodu gibi protokolün farklı alanlarını analiz edebilirsiniz.


Adli Tıp için Paket Diseksiyonu

Paket ayrıştırma, belirli ağ olaylarının ardındaki bilgileri çıkarmak amacıyla dijital adli tıpta da kullanılabilir. Örneğin, bir bilgisayar korsanının hassas bilgileri ağınız üzerinden uzaktaki bir sunucuya gönderdiği bir durumu hayal edin. Bilgisayar korsanının makinesine gelen trafiği, bilgisayar korsanının cihazının IP adresini ve uzak sunucunun IP adresini kullanarak izole etmek için Wireshark'ta görüntü filtrelerini kullanabiliriz. Daha sonra hacker ile uzak sunucu arasındaki TCP veri akışını yeniden oluşturmak için Wireshark'ın sunduğu “TCP Akışını Takip Et” özelliği gibi paket ayrıştırma araçlarını kullanabiliriz. Bu bilgileri kullanarak, bilgisayar korsanının uzak sunucuya gönderdiği, kötü amaçlı dosya veya görüntülerin aktarımı gibi gizli bilgileri ortaya çıkarabilirsiniz. Bu paket ayrıştırma uygulaması aynı zamanda ağ trafiğini analiz etmek ve herhangi bir suç faaliyetini tespit etmek için de uygulanabilir.

Tersine Mühendislik DJI Drone'lar

Tersine mühendislik, bir sistemin "kaputun altında" nasıl çalıştığını anlamak ve ondan gerekli bilgileri çıkarmak için sistemin yapısını bozma ve analiz etme sürecidir. Bu süreç genellikle bir sistemin belirli yönlerinin yapısını bozan, teknik özelliklerini ve kodunu analiz eden ve sonuçlarını incelemek için belirli testler yürüten yinelemeli bir süreç yoluyla gerçekleştirilir. İHA korsanlığına gelince, bir drone'un yazılımını ve donanım yazılımını analiz etmek, telemetri bilgilerini çıkarmak ve yararlanılacak güvenlik açıklarını belirlemek için tersine mühendislik ilkelerini uygulayabiliriz. Bu araştırma deneyi için, DJI adlı popüler bir drone şirketi tarafından eğlence amaçlı kullanım için tasarlanmış küçük, kompakt bir drone olan DJI Mini 2'de tersine mühendislik yapmaya karar verdim.


Ortadaki Adam Yapılandırması

Pasif dinleme, tersine mühendislikle sonuçlanabilecek herhangi bir sonuç getirmediğinden, bunun yerine, aşağıdaki yapılandırmayı izleyerek drone ile operatör arasındaki kablosuz iletişimin incelenebilir ve ele geçirilebilir olmasını sağlamak için yapay ve gizlice dinleme dostu bir ağ yapılandırması kullandım:

a) Drone: Done, ağdaki eşleriyle doğrudan iletişim için kullanılan bir erişim noktasını başlatarak süreci başlatır.

b) MITM AP: Mobil istemci için AP kılığına giren makinemizle ikinci bir sanal ağ kuruyoruz

c) MITM İstemcisi: MITM istemcisi doğrudan drone ile bağlantı kurarak MITM AP'nin ağlarını drone'a iletir ve bunun tersi de geçerlidir.

d) MITM Makinesi: MITM makinesi, sanal MITM AP'leri NAT (Ağ Adres Çevirisi) aracılığıyla MITM istemcisinin dahili NIC'sine bağlayarak gizlice dinlemek için kullanılan cihazdır.

e) Operatör: Operatör, drone temsilcisine (MITM-AP) Wi-Fi aracılığıyla bağlanan DJI uygulamasını çalıştıran mobil cihazdır.

Erişim Noktası Yapılandırması

MITM AP'yi yapılandırmak için create_ap'i kullandım makinemdeki komut satırı üzerinden sanal bir AP oluşturma komutu.

 sudo create_ap wlan0 wlan0 Operator 12345678 -w 2 -c 2 -m nat --freq-band 2.4 --country US

Bu komut, 2,4 GHz frekansına odaklanarak ve aşağıdaki parametreleri belirleyerek bağlantı arasındaki bozulma sayısını ortadan kaldırmak için tasarlanmıştır:

 -w 2
CCMP şifreleme modunda WPA2-PSK

 -c 2
keyfi ve statik boş kanalın kullanımı

 -m nat
Sanal AP ile fiziksel NIC arasında bağlantı kurmak için NAT

 --freq-band 2.4
yalnızca 2,4 GHz bandını seçme

 --country US
Yerel düzenlemelere uymak için doğru ülke kodunu koymak

İletişimin Gizli Dinlenmesi

Gizlice dinlemek için MITM ağının performansını optimize etmek amacıyla komut satırı aracını kullandım. Tcpdump ile yakalanan ağ paketleri, daha sonra bir dizi ağ analiz programı tarafından analiz edilebilecek ilgili PCAP dosyasında saklanacaktır. Yakalanan çıktının aralığını yalnızca drone ile makine arasındaki ilgili ağ paketlerinden oluşacak şekilde azaltmak için ek filtreler de uyguladım.

 sudo tcpdump --interface=ap0 -n udp host 192.168.2.1 -w /tmp/dumps/capture.pcap

 -n
DNS çözümlemelerini önler

 udp
TCP paketlerini yok sayar

 host 192.168.2.1
görüntülenen paketlerin drone ile ilgili olmasını sağlar

Araştırma Özellikleri

DJI Mini 2 üzerinde dijital adli tıp araştırması yapmak için, Wireshark kullanarak drone tarafından gönderilen ağ paketlerini analiz ederek DJI Wi-Fi protokolünü tersine mühendislik yapmaya çalıştım. Drone tarafından iletilen paketlerin tam protokol yapısını belirlemek için, her bir biti klasik hale getirmek için bit kesinliğinde akıl yürütme kullandım. Süreç boyunca Wireshark'ta aşağıdaki filtre yüklemlerinin en yararlı olduğunu gördüm:

 !dns && !mdns && !icmp
Bu işlemle yalnızca uygulama düzeyindeki ağ paketleri ilgili olduğundan, DNS, İnternet Kontrol Mesajı Protokolü (ICMP) ve Çok Noktaya Yayın DNS (MDNS) protokollerini aramamızın dışında tutabiliriz

 ip.src == 192.168.2.1
192.168.2.1 IP adresi drone'un IP adresini temsil eder. Burada o IP'ye göre filtrelenecek kaynak ve hedefi belirtiyoruz.

 data.len == 1472
Bu örnekte, tam olarak bu yük boyutuna sahip drone paketlerini görüntüleyen sonuç görünümüne yalnızca 1472 bayt uzunluğundaki paketler dahil edilir

 data.data[0] == 0x00
bu, statik onaltılık değeri ilk endeksin yük içeriğiyle karşılaştırır. Bu faydalıdır çünkü uçuş ortasında paket incelemesi, protokol ile operatörün drone kontrol talimatları arasındaki ilişkili değişikliklere odaklanmaktadır.

Paket Bilgileri

Wireshark kullanarak elde ettiğim paketler ile 0x2A indeksinden Ethernet çerçeve uzunluğuna kadar olan payloada odaklandım. Paketin tamamı bilgi içermesine rağmen, 0x2A'dan sonuna kadar olan veri baytları tersine mühendislik amaçları için yeterlidir. Referans olması açısından aşağıya Ethernet OSI model katmanları tablosunu ekledim:

Yük Şifreleme

İletişim akışının tamamı şifrelenmiş olsa da, şifresi çözülmüş veri akışı yine de şifrelemenin bütünlüğünü tehlikeye atabilir. İHA sistemleriyle bilgilerin şifresini çözmenin bir yöntemi, kalıpları belirlemek için birden fazla veri yükü arasında yan yana karşılaştırma yapmaktır. Elektronik Kod Kitabı Modu (ECB), tekrarlayıcı şifreli metin blokları oluşturmak için her düz metin bloğuna aynı sözde rastgele permütasyonu uygulayan bir deterministik veri dizisi üretir. Bunu, UDP paketleri içinde sözde rastgele bir veriyle veya iki özdeş veriyle karşılaşma ihtimaline karşı tersine mühendislik sürecimizde uygulayabiliriz. Her ne kadar aynı yükleri bulamasam da, birbirine çok benzeyen birçok yük vardı. Örneğin, aşağıdaki resimlerde yalnızca 5 baytlık farkın olduğu iki paket gösterilmektedir. İki veri çok benzerdir ve hatta şifrelenmemiş bir veri akışına işaret eden bir artışa bile işaret etmektedir.

Tümdengelim

DJI Mini 2'de tersine mühendislik yapmak için kullandığım ana yaklaşım, operatör girdilerini ilişkilendirerek yükleri karşılaştırmak için tümdengelimli akıl yürütme uygulamaktı. Doğrudan drone kontrol talimatlarını (yani iniş, hareket, kalkış vb.) kullanarak operatörü temsili ağ paketini sinyal vermeye zorladım. Kontrol talimatları, komut tipini ve yük içeriğini sinyalleme yeteneğine sahipti. Daha sonra paketler yukarıda belirtilen ikili karşılaştırma tekniği kullanılarak birbirleriyle karşılaştırılarak komut yapısı ve parametre değerleri ortaya çıkarıldı. Paket analizi, çoğunlukla Maksimum İletim Birimi'ne (MTU) dayanan, drone'dan operatöre paketlerden oluşan yüksek trafikli bir protokolü ortaya çıkardı.

Biraz Hassas Muhakeme

İletilen paketler içinde depolanan veriler hakkında daha fazla bilgi toplamak amacıyla, her paketin özelliği hakkında özel yargılarda bulunmak amacıyla 56 baytlık veriler içindeki bitlerin analizi için bit-kesinlik akıl yürütme adı verilen bir teknik kullanıldı. Süreci basitleştirmek için, yüklerin her biri tam olarak aynı uzunlukta olacak şekilde bir araya getirilmesi için kümeler kullanıldı. Bu teknik hakkında daha fazla bilgi edinmek için drone'ların tersine mühendislik için bit hassasiyeti yöntemini derinlemesine inceleyen bu araştırma makalesini okumanızı şiddetle tavsiye ederim. Aşağıdaki tablo, bit-hassas akıl yürütme kullanılarak çıkarılabilen bilgilerin genel bir özetini göstermektedir.

Wireshark ile DJI Paket Diseksiyonu

Bu araştırma süreci boyunca, keşif ve dijital adli tıp/tersine mühendislik için paket ayrıştırmanın tamamen farklı yaklaşımlar gerektirdiğini öğrendim. Neyse ki, pasif keşif ve ağ iletişim ayırıcısı kullanan paket diseksiyonu, DJI Mini 2'nin iletişim arayüzlerini analiz etmek için gerçekten kullanışlı oldu.

Paket ayrıştırma işlemine başlamak için, Wireshark kullanarak her türlü DJI drone için geniş bir iletişim verisi günlüğü içeren bu DJI iletişim paket dökümü deposunda listelenen PCAP dosyalarını indirdim. PCAP dosyaları indirildikten sonra bunları Wireshark kullanarak farklı ayırıcılar kullanarak analiz ettim.

Bilgi Formatlarını Analiz Etme

DJI paket dökümlerinin spesifik paket ayrıştırma sürecine derinlemesine girmeden önce, tüm

UART İletişimi: UART, Evrensel Asenkron Alıcı-Verici anlamına gelir; tek bir iletişim hattı üzerinden veri bitlerinin asenkron akışını sırayla kullanan elektronik cihazlar arasında bilgi iletmek için yaygın olarak kullanılan bir seri protokoldür.

DUML Akışları: DUML, DJI iletişimi için yakın kaynaklı protokolü tanımlayan DJI Evrensel İşaretleme Dili anlamına gelir. Cihazın dahili ayarlarını kontrol etmek veya cihaz yazılımı güncellemelerini başlatmak için kullanılır.

KML Dosyaları: Anahtar Deliği İşaretleme Dili olarak da bilinen bunlar, haritalama yazılımında özellikle coğrafi verileri görüntülemek için kullanılan, ezbere XML dosyalarıdır. KML dosyaları belirli konumlar, şekiller, yollar ve diğer coğrafi özellikler hakkında veriler içerir

DAT Uçuş Günlükleri: DAT, şu anlama gelir: Dijital Ses Bandı. Dijital Ses Bantlarında saklanan kayıtlı uçuş verilerini ifade ederler. DAT dosyaları analiz için ilgili uçuş bilgilerini içerir

DJI paket dökümü deposundaki PCAP dosyası, çeşitli DJI donanımlarından gelen büyük miktarda iletişim günlüğü dökümü içerir. İletişim günlüklerinin bu şekilde depolanması, donanım içindeki donanım sorunlarını araştırmak için iyi bir referans noktasının yanı sıra protokollerin dahili iletişimlerini deşifre etmemize olanak tanır. Örneğin, ilk günlük dosyası p3x_ofdm_to_center_run1, DJI P3X Alıcı Kartı UART dökümünden bir iletişim dökümü içerir. Veri dökümü, drone üzerindeki OFDM (Ortogonal Frekans Bölmeli Çoğullama) MCU (Mikrodenetleyici Birimi) ve FC (Uçuş Kontrol Cihazı) arasında bir şerit kablo ve comm_serial2pcap.py programı kullanılarak ikili bir iletişime sahiptir .

Wireshark'ı kurma

Temel bir DJI iletişim incelemesi oluşturmak için DJI donanım yazılımı araçlarında listelenen iletişim inceleme dosyalarını kullandım. İletişim diseksiyon araçları aşağıdaki işlevleri sağlar:

- Bir drone kaynağından yakalanan DUML paketlerindeki alanları görüntüleyin

- İkili uçuşta saklanan paketlerin içindeki alanları göster

- DAT dosyalarını kaydedin

- KML dışa aktarma özelliği aracılığıyla uçuşları görselleştirin

Araçlar ayrıca aşağıdaki seçenekler aracılığıyla protokol komutlarını analiz etmenize de olanak tanır:

- DUML akışı tabanlı PCAP dosyaları

- Gömülü DUML verileri içindeki USB/Ethernet iletişim dökümlerini içeren PCAP dosyaları

- DAT Uçuş Günlüğü tabanlı PCAP dosyaları

Ortamınızı kurmaya başlamak için bu bağlantı altında listelenen tüm .lua dosyalarını indirin. Ardından Wireshark'ta Wireshark Hakkında menüsünü açın ve Klasörler sekmesine gidin.

Ardından, Kişisel Lua Eklentileri dosya yolu referansına tıklayın ve tüm dosya içeriğini yapıştırın .

Bu ayarlandıktan sonra, tüm iletişim inceleme araçlarını yüklemek için Ctrl+Shift+L komutunu kullanarak Wireshark'ı yenileyin. Bu yüklendikten sonra açın

 Preferences -> Protocols -> DLT_USER -> Edit
ve aşağıdaki resme göre atamaları yapın:

DLT tablosu başlatıldıktan sonra şuraya gidin:

 Preferences -> Appearance -> Columns
ve istediğiniz protokol bilgilerini görüntülemek için ayarları yapın. Aşağıda yapılandırılabileceği yollardan birine bir örnek verilmiştir:

İletişim Diseksiyonu

İletişim diseksiyon araçlarından DJI iletişim protokollerinden aşağıdaki bilgileri çıkarabiliriz:

Firmware Dosya Yapısı: ayırıcı, başlıklar, bölümler ve veri bölümleri gibi firmware dosyalarının yapısı hakkındaki bilgileri tanımlayabilir

Firmware Bileşenleri: Araçlar aynı zamanda önyükleyici, uçuş kontrol firmware'i, kamera firmware'i, gimbal firmware'i vb. gibi bireysel firmware bileşenlerini de çıkarabilir.

Konfigürasyon Parametreleri: kamera, uçuş kontrolü ve sensörler gibi bileşenler için ayar bilgileri sağlayan konfigürasyon parametrelerine de bakılabilir

Komut dosyaları: kod parçacıkları ve çalıştırılabilir ikili dosyalar, ürün yazılımı dosyasında da ortaya çıkarılabilir

Şifreleme: duruma bağlı olarak, ayırıcı aynı zamanda donanım yazılımı dosyalarının bazı bölümlerinin şifresini çözebilir ve şifreleyebilir ve aygıt yazılımı şifreleme işlemiyle ilgili bilgileri ortaya çıkarabilir.

Dosya Sistemi İçeriği: Bir ürün yazılımı dosyası bir dosya sistemi içeriyorsa araçlar aynı zamanda bu dosya sistemi içindeki içerikleri de çıkarabilir ve analiz edebilir.

Wireshark Ayırıcılara Daha Derin Dalış

Wireshark'ta, ağ protokollerinin yorumlanmasından ve kodunun çözülmesinden bir ayırıcı sorumludur. Ayırıcılar faydalıdır çünkü yakalanan ağ paketlerini analiz ederler ve bunlardan protokolün yapısı, alanları ve kodlama kuralları gibi yararlı bilgileri çıkarırlar ve bunları insan tarafından okunabilir bir formatta görüntülerler.

Wireshark ayrıca Lua adlı bir programlama dilini kullanarak kendi özel ayırıcılarınızı geliştirmenize de olanak tanır. Her ne kadar Wireshark C dilinde yazılmış olsa da ve programın ayırıcıları genellikle C dilinde yazılmış olsa da, Wireshark aynı zamanda geliştirmede yeni olan insanlar için öğrenme eğrisini daha az dik hale getirmek amacıyla ayırıcıların Lua programlama dilinde yazılmasına da izin verir. Lua, entegre nesne yönelimli özelliklere sahip, çok paradigmalı, prosedürel ve işlevsel bir programlama dilidir. Disektör geliştirme dili olarak Lua'yı seçmek hızdan ödün vermesine rağmen, hafifliği ve öğrenme kolaylığı nedeniyle çoğu durumda tercih edilir.

Lua'ya Temel Giriş

Daha önce de belirttiğim gibi Lua, sezgisel ve basit bir kod sözdizimine sahipken hızı, taşınabilirliği ve diğer programlarla entegrasyonu göz önünde bulundurarak, işlevsellik ve performanstan çok fazla ödün vermeden almayı kolaylaştırır. Dilin temel özelliklerini özetleyen bazı temel kod parçacıkları şunlardır:

Değişkenler ve İşlemler

 local a = 25
local b = 5
local result = a + b print (result) -- Output: 30

Koşullu İfadeler

 local temperature = 15
local heatSetting = 0
if temperature < 0 then heatSetting = 3
elseif temperature <= 20 then heatSetting = 2
else heatSetting = 1 end
print (heatSetting) -- Output: 2

Döngüler

 -- While Loops
local i = 0
while i < 10 do 
 i = i + 1
end
print (i) -- Output: 10
 -- For Loops
local i = 0
-- i = first, last, delta
for i = 0 , 10 , 1 do
  print (i) end
print (i) -- Output: 10

Tablolar

 local new_table = {} -- Table value assignment
new_table[ 20 ] = 10
new_table[ "x" ] = "test"
ax = 10  

Fonksiyonlar

 function add (arg1, arg2)
    return arg1 + arg2 end
local added_number = add( 2 , 3 ) print (added_number) -- Output: 5

Lua Hakkında Özet Notlar

Lua dinamik olarak yazılmıştır

Kapsam yerel veya global olarak belirlenir. Global varsayılandır

Boşlukların daha fazla değer taşıması için noktalı virgül gerekli değildir

-- bir yorumu belirtir

i = i + 1 değişken artış için kullanılır

~= != yerine kullanılır

Türler şunlardır: dize, sayı, boolean, sıfır, işlev, kullanıcı verileri, iş parçacığı ve tablo

Nil değer olmayan bir şey için kullanılır

Koşullu ifadelerde: sıfır ve yanlış sahtedir, geri kalanı doğrudur.

Lua'nın tek veri yapısı tablodur. Tablolar ilişkisel dizileri uygular. İlişkisel diziler hem sayılara hem de dizeler gibi diğer türlere göre indekslenebilir. Dinamiktirler ve sıklıkla nesneler olarak adlandırılırlar.

Wireshark ile Disector Kurulumu

Wireshark'ta Lua komut dosyalarıyla disektör geliştirmeyi ayarlamak için

 Help -> About Wireshark -> Folders
. Oradan, Kişisel Lua Eklentileri veya Global Lua Eklentileri klasör referansına tıklayın. Yol, Windows'ta C:\Program Files\Wireshark\plugins\2.4.2 gibi görünmelidir . Bir disektör oluşturmak için, o dizindeki gibi bir dosyayı başlatın.
 example.lua
. Wireshark yeniden yüklendiğinde komut dosyası otomatik olarak uygulanacaktır. Uygulamayı yeniden başlatarak veya Ctrl+Shift+L tuşlarını kullanarak tüm Lua komut dosyalarını yeniden yükleyerek Wireshark'ı yeniden yükleyebilirsiniz .

Protokol Ayarlama

Artık her şeyi ayarladığınıza göre, size özel bir protokol hakkındaki bilgileri çıkaran ve görüntüleyen temel bir disektör komut dosyası boyunca yol göstereceğim.

 -- Create a new protocol for our custom protocol
local custom_protocol = Proto( "CustomProtocol" , "Custom Protocol" ) -- Define the fields of our custom protocol
local field1 = ProtoField.uint8( "custom_protocol.field1" , "Field 1" , base.DEC) local field2 = ProtoField. string ( "custom_protocol.field2" , "Field 2" ) -- Register the fields to the custom protocol
custom_protocol.fields = { field1, field2 } -- Create a function to dissect the packets of our custom protocol
function custom_protocol.dissector (buffer, pinfo, tree)
  -- Create a subtree for our custom protocol in the Wireshark GUI
  local subtree = tree:add(custom_protocol, buffer(), "Custom Protocol Data" )  -- Extract and display the values of Field 1 and Field 2
  local field1_value = buffer( 0 , 1 ):uint() subtree:add(field1, buffer( 0 , 1 )):append_text( " (Value: " .. field1_value .. ")" )  local field2_value = buffer( 1 , 5 ): string () subtree:add(field2, buffer( 1 , 5 )):append_text( " (Value: " .. field2_value .. ")" ) end
-- Register our custom protocol as a dissector in Wireshark
local udp_port = DissectorTable.get( "udp.port" ) udp_port:add( 12345 , custom_protocol)

- kod, Proto nesnesi adı verilen özel bir protokolün başlatılmasıyla başlar.

 CustomProtocol


protokol için iki özel alan içeren bir alan tablosu başlatılır:
 field1
Ve
 field2


özel protokol tipine sahip her paket için bir kez çağrılan protokol için ayrıştırıcı işlevi başlatılır. Fonksiyon parametreleri alır
 buffer
,
 pinfo
, Ve
 tree
. tampon, paketin arabelleğini ve Tvb nesnesini içerir, pinfo paket listesinin sütunlarını içerir ve ağaç , ağaç köküdür

- Disector fonksiyonu içerisinde Wireshark Paket Detayları bölümünde özel protokolümüzü alan olarak gösteren bir alt ağaç oluşturuyoruz

- Ağaç görünümü bölümünde, özel protokol içindeki ilgili alanların her biri için paket bilgilerini görüntülüyoruz

- Son olarak bir porta protokol atadık. Bu durumda kullanılan port

 12345
UDP için

Çözüm

Genel olarak, Wireshark'ı birkaç DJI tabanlı iletişim ayırıcıyla birlikte kullanarak, DJI dronları tarafından iletişim protokolleri aracılığıyla iletilen hassas bilgileri ortaya çıkarabildik. Umuyorum ki, özetlenen bu kapsamlı araştırma süreci, siber güvenlik süreciniz sırasında mevcut sistemlerdeki güvenlik açıklarını bulmak için uygulayabileceğiniz birkaç tersine mühendislik tekniğini açıklığa kavuşturmuştur. Üstelik bu raporun drone hacklemenin biraz sıkıcı olsa da imkansız olmadığını da kanıtlayacağını umuyorum. Mevcut kusurları kötü aktörler tarafından fark edilmeden önce vurgulamak amacıyla, bir sistem hakkında şu anda bilinenlerin sınırlarını zorlamaya devam etmek önemlidir. Bu durumda, DJI gibi büyük, güvenilir marka üreticilerinin bile drone protokollerinin veri müdahalesine ve tersine mühendisliğe karşı hala savunmasız olduğunu ortaya çıkardık. Bunu dikkate alarak mevcut güvenlik açıklarını azaltmak ve drone iletişim kanallarının güvenliğini sağlamlaştırmak için yapıcı eylem adımları atılabilir.

Ayrıca burada yayınlandı.