“dd” Komutu İle İmaj Alma Ve Data Recovery

October 9, 2011 Leave a comment

Bu yazımızda sizlere,   linux distrolarında gelen “ dd “  tool ile imaj almayı ve bu imajı windows bir makinaya sanal HDD olarak  tanıtıp,  herhangi bir recovery program ile bu disk üzerinde işlem yapmadan bahsedeceğim .

Öncelik ile neden format atılmış bir diskin imajını alıp recovery yapıyoruz da, direkt olarak bu diskimizin üzerinde recovery programlarını kullanmıyoruz  ? sorusuna cevap verelim.Recovery programları diskteki verilerin adreslerini belirten metedata bilgilerini değiştirmektedir.Bu yüzden kullandığınız programlar ile orjinal diskte işlem yaparsanız farklı bir program ile kurtarabileceğiniz datanızın metadata bilgisini silip, o veriye hiç ulaşamayabilirsiniz.”DD” ile imaj alırsanız diskin hardcopy imajını almış ve orginal diskin  metedata satırlarını bozmadan dilediğiniz program ile tarama yapabilirsiniz.Bukadar bilgilendirmeden sonra işleme koyulabiliriz.

İlk yapacağımız işlem, ubuntu makinamızda “dd” ile imaj alma olacak,

Şekil 1 : dd ile imaj alma

Şekil1’de görünen komutları biraz açarsak,

“İf =”  komutu, hangi diskin imajını alacağımızı belirtmek için girdiğimiz değerdir.”

“/dev/sda “  değeri, linux makinalarda diskler “dev” dizini altında bulunmaktadır ve siz, farklı bir hdd takarsanız,  bu değer sdb,sdc şeklinde devam eder.Ben makina üzerinde işletim sisteminin kurulu olduğu diskin imajını alacağım için if=/dev/sda komutunu kullandım.Burada harici bir disk takıp o diskin imajını almak istiyorsanız o zaman yapmanız gereken başka bir işlem daha var.

“Count=10000” bu değeri vermemdeki amaç ise ben diskin sadece belirttiğim kısmının imajını alacağım için bu değeri girdim full imaj alacaksanız bu değeri girmenize gerek yok.

“Of=/home/gokhan/Desktop/son.img”bu komut ile ,  diskin  imajını atacağmız yeri belirtiyoruz.

Burda dikkat etmemiz gereken işlem ubuntu üzerine farklı bir disk takıp o diskin imajını almak istiyorsanız.External olarak diskinizi taktıkdan sonra,

Şekil 2: Disk sıralama

Şekil’de bulunan komutu çalıştırarak “ls –al /dev/sd* ” bilgisayara bağlı olan disklerin listesini göreceksiniz.Bende tek disk olduğu için sda ve partition’ları görünüyor .Siz farklı bir disk taktıysanız sdb veya sdc olarak görünecek.Burda dikkat etmeniz gereken external disk taktığınızda sizlerde alt partitionlar olacaktır (sdb,sdb1 v.b)burda sizin tek yapmanız gereken  sdb(asıl partition) imajını almak, çünkü ubuntu alt partitionları otamatik olarak o imaja ekliyor.

Ben imaj dosyasını masa üstüne attığım için “of=” parametresinde masa üstünü gösterdim.Siz farklı bir external diski göstermek istiyorsanız ozaman girmeniz gereken yer external diskin mount edildiği dizindir.Burda linux makinada” mount” parametresini girerek karşınıza listelenecek bir path olacak,  örnek olarak şekil 3 .

Şekil 3: Mount Komutu

Bilgisayarıma external bağladığm bir diski /dev/sdb1 olarak gördü fakat mount ettiği dizin,

“/dev/sdb1 on /media/4EFAD102FAD0E6ED “ olarak görünmekte bunun sebebi ise siz linux bir makinada diske direk olarak veri yazamazsınız,  o diskin mount  edildiği yere veri yazabilirsiniz.if komutu ile imaj alırken bu dizini kullanmamamızın sebebide buydu.Kısaca özetlersek sizin imajı alacağınız ve imajı atacağınız diskler external bir disk ise ,

“İf= /dev/sd(ls komutu ile bakılınca imajı alınacak disk adı)        of=/media/(mount ile bakılan dizin) “

Bu işlemlerden sonra ben windows7 makinama attığım son.img adlı imaj dosyamı sanal disk şeklinde makinama tanıtmak olacak.

Bunun için indirmem gereken bazı programlar var bunlardan bir tanesi , imaj dosyamı makinama mount etmeye yarayan program , aşşağıdaki link’den indirebilirsiniz.

http://www.getdata.com/download.php?FILE=MIP-Setup.exe  (Mount image pro v4)

Bu programın kurulum aşamasını anlatmıyorum J

Program kurulumu bittikden sonra  yapılacak işlemleri tek bir ressimde gösterip izah edeceğim,

Şekil 4:Mount image

Programda Mount  > Add Image > Son.img  adımlarını izledim ve “Mount Disk” butonuna bastım, siz burda “Mount Filesystem “ butonuna basarsanız karşınıza o diskteki dosyalar sıralanacaktır .

Şekil 5: Mount Disk

Mount Disk ‘e bastığımızda hdd’in özelliklerini belirtiyoruz sizde ekrandaki gibi yapabilirsiniz .

Şekil 6: Disk kontrol

Görüldüğü gibi “ I “ adlı diskim bilgisayarımda görünmekte şimdi internetten indireceğimiz data recovery programı ile bu diski taratacağız.

Şekil 7:Data Recovery

İnternetten “icare” adlı programı indirip kurdum ve programda “format recovey” özelliğini seçtim karşıma bilgisayarda tanımlı diskleri gösterdi.Ben burda, ismi çıkmadığı için boyutuna bakarak partition seçtim ki, bizim mount işlemi için kullandığımız programda capacity sekmesinde imaj dosyamızın boyutu ile tutuyor.Bizim tek yapmamız gereken Recover butonuna basmak J

Şekil 8 : Recovery

Bu aşamadan sonra siz  kurtarmak istediğiniz datayı seçerek recover yaparsınız.

Kolay gelsin….

Categories: 3 Party

Layer 2 Paket Analizi , Saldırı ve Korunma Yöntemleri Bölüm 1

Bu yazı dizimizde sizlere network üzerinde , OSI referans modeli dediğimiz yapının katmanlarından 2.katman olan (Layer 2 ) veri bağlantı (Datalink ) katmanındaki işleyişi ve bu katmanda oluşan zafiyetler ile network’de oluşabilecek tehditlerden bahsedeceğim.

Datalink(Layer2) ,ağ üzerinde bulunan bilgisayarların ARP veya RARP protokolü ile fiziksel olarak adreslenmesini ve aynı ağ üzerinde bulunan bilgisayarların veri alışverişinin gerçekleşmesini sağlayan katmandır.ARP protokolü fiziksel adresleri IPv4 çevirmeyi sağlayan protokoldür.Datalink katmanı bir alt katmandan aldığı verileri frame haline getirerek bir üst katman olan network katmanına iletir.Datalink katmanında her frame’de veriyi gönderen ve alan adresin bilgileri yer alır ve MAC(Media Access Control ) adreslerini kullanarak verilerin iletilmesini sağlarlar.MAC adresleri ethernet kartının üreticisi tarafından verilir , bu adres her ethernet kartı için farklılık gösterir . Aynı network üzerinde bulunan bilgisayarlar böylece adres çakışması yaşamazlar.

Şekil1:ARP Paket Yapısı

Bir bilgisayar networke dahil olmak istediğinde veya aynı ağ üzerinde başka bir bilgisayara veri göndermek istediğinde ARP broadcast (toplu yayın ) yapar ve paketi göndermek istediği bilgisayarın bu yayına cevap vermesini bekler.Anlatımımıza ARP request ve ARP replay paketlerini inceleyerek devam edelim.TCP/IP yapılarında trafiği dinlemek için birçok program mevcut ben günümüzde en çok tercih edilen Wireshark programını kullanacağım.

Şekil2:Arp Request Paketi

Şekil2′de arp request paketini inceledğimizide ,

Kaynak mac adresi  ”08:00:27:67:26:db  ”,  ,”192.168.10.160 ” ip adresi olan bilgisayar ortama  ” ff:ff:ff:ff:ff:ff ” mac adresli arp broadcast yapıyor böylece bütün bilgisayarlar  broadcast paketini görecekler fakat replay cavabını,paketimiz içindeki  Target IP address 192.168.10.1 olduğu için sadece bu ip adresine sahip bilgisayar veya router verecektir.Burda dikkat edilmesi gereken , bir bilgisayar  ortamdaki ip adresine ait mac adresini öğrenmek istediği zaman broadcast yapmasıdır.İleride göreceğimiz Man in the middle teknikleri ile bu masum görünen broadcast paketlerinin başımıza ne gibi işler açacağını göreceğiz .

Wireshark’da paket analizine biraz daha detaylı bakacak olursak ;

Şekil4:Wireshark Destination Mac Address

Şekild 4 de destination mac adres belirtilmiştir.

Şekil 5: Wireshark Source Mac Address

Belirtilen alan paketi yollayan source mac adresini belirtmektedir.

Şekil 6 :Wireshark Arp Protokol Information

Şekil 6 ‘da  ARP protokolü’nün hexadecimal karşılığı bulunmaktadır.

Şekil7 :Wireshark Ethernet Type

Şekil7′de  ARP paketinin hazırlandığı donanımın ethernet  kartı olduğunu belirmekte.

Şekil8 : Wireshark Hardware Size & Protocol Size

Şekil 8 de belirtilen 06  paketimizin ethernet ağı , 04 rakamı ise IPv4 adresi olduğunu belirtmektedir.

Şekil9 : Wireshark Packet Opcode

Opcode değeri paketimizin request’mi yoksa replay paketimi olduğunu anlamamıza yarar .Bizim incelediğimiz paket request paketi olduğu için opcode değeri 0×0001 göstermekte.Opcode değeri 0×0002 olsaydı o zaman replay paketi olduğunu anlıyacaktık.

Şekil10 : IP Address Hexadecimal

Belirtilen alanda Source mac adresine ait IP adresini hexadecimal olarak  belirtmekte .Bir alt satırda ise Target Ip adresinin hexadecimal karşılığını belirtmektedir.

Şekil 11: Arp Replay Paketi

Şekil 11 ‘de gördüğümüz gibi ” 192.168.10.1 ” ip adresli bilgisayar ” 192.168.10.160 ” dan gelen arp request paketini aldı ve kendi mac adresini bildiren bir replay paketi yolladı .Swıtch olan ortamlarda veri iletişimi sadece request isteğine cevap veren bilgisayar ile yapılır.Hub olan ortamlarda ise veri aynı networkde bulunan tüm pc’lere gönderilir bu da güvenlik açısından nekadar tehlikeli olduğunu göstermektedir.

ARP paket yapısı ve analizinden sonra bir sonraki yazımızda konumuzun devamı olan layer2 saldırı türlerini anlatabiliriz.Ençok kullanılan saldırı türlerini gördükten sonra networkümüzü bu saldırı türlerine karşı nasıl koruyabiliriz ,  bunları anlatıyor olacağım.

Categories: Security

Scapy -1

April 14, 2011 1 comment

erhaba arkadaşlar,
Bu makalemde sizlere python ile yazılmış SCAPY kütüphanesinden bahsedeceğim. Scapy baktığımız zaman üzerinde geniş kapsamlı çalışma yapılabilecek bir konu olduğu için her hafta bu yazı dizime ek makaleler yayınlayarak konunun iyice anlaşılmasını sağlamaya çalışacağım. Bu hafta Scapy makelemde aşağıdaki konu başlıklarına değinerek tamamlayacağım .

  • Scapy nedir?
  • Scapy Kurulumu ve Konfigrasyonu
  • Scapy ile çalışma

Scapy, network ağları için özelleştirilmiş paketler üretmeye yarayan python ile yazılmış bir kütüphanedir. Scapy ile aynı zamanda network tarama ve analiz işlemleri yapabiliriz. Scapy python ile yazıldığı için ilgili uygulamalar kuruluğu zaman (python, nmap, Vpython, pcap v.b) Windows ve Linux sistemler ile komut satırından sorunsuz bir şekilde çalışır, platform bağımlılığı yoktur. Scapy’i diğer programlardan (nmap, hping v.s) ayıran özelliği esnek bir yapıya sahip olmasıdır. Esnek yapıdan kastımız ise bu programlar size tasarımcısının sunduğu özellikleri kullanmanızı sağlarken, scapy ile bunların yanında kendi ihtayıcınıza özel TCP/IP paketlerini oluşturarak bu paketler ile networkünüzü analiz edebilirsiniz. ARP paketleri oluşturarak sisteminize arpspoofing testleri yapabilirsiniz.

Scapy python ile yazıldığı için kullandığınız işletim sisteminde mutlaka python kurulu olması gerekmektedir. Python kurulumu ile ilgili http://www.istihza.com adresinden faydalanabilirsiniz. Python kurulumunu gerçekleştirdikden sonra kullanım kolaylığı bakımından python’un işletim sisteminizde path olarak tanımlamanızda fayda olacaktır. Python Linux sistemlerde otamatik kurulu gelmektedir ve path olarak tanımlı olduğu için terminal sayfasında python yazdığınız zaman python’ın komut satırına ekran düşecektir. Python GUI kullanıcaksanız o zaman IDLE’ı yüklemeniz gerekicektir. Redhat’ın lisanssız sürümünü kullanıyorsanız bu işlemleri manuel olarak yapmanız gerekecektir. Ubuntu, Centos gibi depolarını ücretsiz kullandıran işletim sistemi kullanıyorsanız redhat gibi manuel kurmanıza gerek kalmayacaktır çünkü depolarında scapy dahil tüm paketler bulunmaktadır. Windows kullananlar scapy , python dahil tüm programları manuel kurması gerekmektedir. Ben makalemde her iki işletim sisteminde de kurulumu göstereceğim. Öncelik ile ben çalışmalarımı Linux tarafında Ubuntu, Windows tarafındada ise Windows 7 kullanarak anlatacağım. Ubuntu tarafında scapy kurulumuna bir göz atalım.

Scapy pyhon kütüphanelerinde bulunduğu için ubuntu üstünde “apt-get install python-scapy” komutu ile kurulumunu gerçekleştiriyoruz. Backtrack kullanıyorsanız bunu yapmanızada gerek yok çünkü backtrack’da kurulu olarak geliyor. İleriki makalelerimde scapy ile ilgili ek bileşenlerin kurulumlarından ve özelliklerinden bahsediceğim için şimdi onların kurulumlarına girmiyorum bizim konuyu öğrenme adına ilk aşamada scapy kurulumunu bilmemiz yeter.

Windows kurulumuna göz atacak olursak, python kurduğunuzu varsayarak anlatıyorum,http://www.secdev.org/projects/scapy/ adresinden scapy’nin executable.zip dosyasını bilgisayarınıza indirmeniz gerekmekte. Bu işlemi yaptıktan sonra komut sayfası açarak scapy’nin kurulu olduğu dizine ilerliyorsunuz (cd c:\downloads\scapy.2.0 gibi) ve python’u path olarak tanımladıysanız eğer “python setup.py install” komutunu çalıştırarak scapy kurulumunu gerçekleştiriyorsunuz. Python’ı path olarak tanımlamadıysanız bu komut hata verecektir o zaman yapmanız gereken işlem komut satırında python’ın ve scapy’nin dizinlerine giderek bu setup dosyasını çalıştırmanız gerekecektir. (python c:\Users\gokhan_test\Desktop\scapy-2.2.0\setup.py install) bu işlemi her defasında yapmak yerine path olarak tanımlamanız daha kullanışlı olacaktır. Bu işlemleri yaptığınızda C dizini altında bulunan python klasörü altına “Scripts” adında bir klasör daha gelecektir ve scapy’nin script dosyaları burada olacaktır.

Python için path tanımladığım gibi scapy içinde path tanımladığımdan cmd de scapy yazdığıma scapy’nin komut satırı karşıma gelmekte.Ben makalemin devamında ubuntu üzerinden testler yapacağım ama dediğim gibi Windows işletim sistemlerinde de aynı komutlar sorunsuz bir şekilde çalışacaktır.

LS() Komutu

Scapy’i çalıştırdığınız zaman karşınıza “>>>” şeklinde komut girmenizi bekleyen bir alan gelecektir. Biz burada “ls()” komutunu çalıştırdığımız zaman scapy içersinde hazır bulunan protokollerin listesini almaktayız daha sonra bu alana ek olarak kendi oluşturduğunuz protokolü ekleyebilirsiniz scapy’nin farklı özelliklerinden biride bu, örnek olarak şirketinizde Erp sisteminiz var ve bilgisayarlarda kullanması gereken bir port var siz buna xcompany_port adını verdiniz. Bu port bilgisini buraya eklediniz ve networkde bir tarama yaptınız bu port hangi bilgisayarlarda açık ise listesini o isim ile görebilirsiniz nmap ile bu taramayı yaptığınızda size sadece o port’un numarasını verecektir ismini kendi db’sinde bulunmadığı için vermeyecektir.

LSC() Komutu

>>>lsc() komutu ise bizim scapy’de kullanabileceğimiz parametrelerin bilgisini vermektedir.Alıştırmalarımızda daha detaylı göreceğimiz parametrelerin bu komut ile çıkan sayfada , açıklamalarınıda görmekteyiz.
>>>Conf komutu ilede scapy’de bulunan konfigrasyon ayarlarımızı görmekteyiz.

Temel anlamda bilgilendirmelerimizden sonra scapy alıştırmalarımıza başlayabiliriz.

Benim alıştırmalarda izleyeceğim yol ilk olarak basit örnekler yaparak konunun farkındalığını arttırmak sonrada önümüzeki haftalar dahil olmak üzere kendi scriptlerimizi yazarak scapy üzerinden exploiting olacaktır. Network üzerinde belirlediğimiz bir ip adresine Tcp paketi yollama.

Adım adım paketimizi inceleyelim.

Adeo” Bizim değişkenimizin adı, yani biz bu tcp paketini adeo değişkenine atadık ve ileriki aşamada bu paketimizi adeo olarak çağıracağız.

IP(dst=”192.168.10.114″) Scapy de bir komutu tanımlarken alacağı içeriği parantez içinde belirtiyoruz burada “IP” paketimizin türünü, (dst=”192.168.10.114″) ifadesi ise hedef ip adresini belirttiğimiz anlamına geliyor. Paketimizin IP paketi olduğunu belirtip enter tuşuna bastığımızda bu paketi scapy otamatik olarak hafızasına kayıt ediyor.
Adeo.show() parametresi ile bizim Adeo değişkenimizdeki IP paketinin içeriğini görebilmekteyiz.

Version=4
Paketin IPV4 olduğunu ,

Ttl=64
Paketin yaşam süresini

Flags=
Boş görünmesinin nedeni ise biz daha bu pakete TCP paketi olduğunu belirtmememizden kaynaklanmaktadır. Şimdi farklı bir parametre ile bu IP paketine TCP paketi olduğunu belirtelim.

Biraz önce ip paketimizi oluşturduğumuz gibi farklı bir değişken ismi ile tcp paketini oluşturdum,burada dikkat etmenizi istediğim bir konu bu paketin “flags” değeri “S” olarak değişti, yani SYN paketi oldu. Biz bunda bir düzenleme yapıcaz ve bu paketi SYN+FIN paketi olarak değiştireceğiz.

Adeos.flags=”FS”
Bir paketin içeriğine değer atıyacaksak bunu çift tırnak içersine alarak yapıyoruz. Burda “adeos.flags” adeos değişkenindeki “flags” anlamına gelmektedir. “FS” ise flags alanına “FS” değerini atamak manasına gelmektedir. Bu işlemi yaptıkdan sonra “adeos.show()” komutunu çalıştırarak daha önce flags’ın SYN olduğunu fakat şimdi FS yaniSYN+FIN paketi olduğunu görmekteyiz. Şimdi bu paketimizi hedefe yollayalım.

>>>Send(adeo/adeos) komutu ile adeo ve adeos paketimizi mesh ederek karşı tarafa yollamaktadır. Şimdi bu giden paketin karşı tarafta nasıl göründüğüne bakalım.

Görüldüğü gibi sürekli ben bu paketleri send’e basarak yolladığımda karşı tarafta paket içeriğini izlemekteyiz. Bu gönderme işlemini otomatik yapıp ve paketin içeriğini değiştirdiğimizde DDOS’a kadar yolu var :)

Yaptığımız işlemleri özetlersek, önce sistemimize python kurduk daha sonra scapy kurulumunu yaptık ve scapy komut satırına girerek IP paketi oluşturdukdan sonra farklı bir parametre ile TCP paketini ekledik. Scapy’nin bir güzel tarafıda komutları birbiri içerisine ekleyebiliyoruz. Biz TCP/IP paketlerimizi ayrı ayrı oluşturduktan sonra gönderdik fakat tek bir satır ilede bunu yapabilirdik. Bu komut ise adeo=(IP(dst=”192.168.10.114″)/TCP(flags=”FS”)) bu komutta dikkat etmemiz gereken”/” işareti olacaktır. Bu işaret TCP paketinin IP’nin bir modülü olduğunu belirtmektedir.

Sizi sıkmamak adına bu hafta burada makalemi sonlandırmak istiyorum. Haftaya başka bir scapy makalesinde buluşmak üzere.

Categories: Network
Follow

Get every new post delivered to your Inbox.