Murat TORAMAN, Yazar: CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Mon, 17 Aug 2020 10:12:21 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png Murat TORAMAN, Yazar: CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | XML External Entity (XXE) https://canyoupwn.me/tr-xml-external-entity-xxe/ https://canyoupwn.me/tr-xml-external-entity-xxe/#respond Tue, 11 Apr 2017 23:43:47 +0000 https://canyoupwn.me/?p=6848 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

XML EXTERNAL ENTITY(XXE) Hakkında Bu yazımızda XML EXTERNAL ENTITIY(XXE injection) kavramını ve atak türlerini anlatmaya çalışacağım. Aşama aşama hangi konuları inceleyeceğiz görelim: XML nedir ? XML kullanıldığı alanlar ? XML avantaj ve dezavantajları nelerdir ? XXE injection nedir ? XXE saldırıları tarihsel örnekler Test ortamlarında uygulamalı XXE injection attack çözümleri XML Nedir ? Xxe injection […]

TR | XML External Entity (XXE) Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

XML EXTERNAL ENTITY(XXE)

Hakkında

Bu yazımızda XML EXTERNAL ENTITIY(XXE injection) kavramını ve atak türlerini anlatmaya çalışacağım. Aşama aşama hangi konuları inceleyeceğiz görelim:

  • XML nedir ?
  • XML kullanıldığı alanlar ?
  • XML avantaj ve dezavantajları nelerdir ?
  • XXE injection nedir ?
  • XXE saldırıları tarihsel örnekler
  • Test ortamlarında uygulamalı XXE injection attack çözümleri

XML Nedir ?

Xxe injection saldırısına geçmeden önce xml yapısını ve mantığını kavramak bu aşamada gerçekten önemlidir. İlk olarak xml nedir sorusuna cevap arayalım. Açılımı Extensible Markup Language (Genişletilebilir İşaretleme Dili) ‘ dir. XML W3C (World Wide Web Consortium) tarafından tasarlanmış  veri iletişimi ve veri saklama standardıdır. XML veri iletimi noktasında sistemlerin aynı dili konuşmasına olanak sağlaması olarak görülebilir. XML’in tasarımcısı HTML’i de tasarlamış olan Tim Berners Lee ‘ dir. XML’in HTML’den farklı olan noktasını öğrenirsek kafamızda daha iyi canlandırabiliriz. Örneğin Html sayfası tasarlarken önceden belirlenmiş tagları kullanırız. Fakat XML bu şekilde değildir. XML de belli kurallara göre taglari geliştirici kendisi belirlemektedir. Diğer önemli nokta ise html verinin sunumuyla ilgilenmektedir. Xml ise direk olarak verinin kendisiyle ilgilenmektedir. Yani html de verinin konumlandırılması, boyutlandırılması ele alınırken xml de direk olarak verinin kendisi ele alındığından verinin tanımı, bilgileri gibi özellikleri işlenmektedir. Farklı sistemlerdeki veri alışverişlerinde xml kullanımı yaygındır. Ayrıca html statik verileri döndürürken xml dinamik verileri saklayabilir. Html ‘ de hatalarla karşılaştığımızda çalışma durumlarında devamlılık görebiliriz. Fakat XML hatalara karşı kontrol sistemine sahiptir yani bir hata ile karşılaşıldığında çalışma durumu sonlanmaktadır. XML ve HTML birbirlerini tamamlayan unsurlar olarak görülebilir. Bir nevi XML HTML’in geliştirilmiş modeli olarak düşünülebilir.

<?xml version="1.0" encoding="utf-8"?>
<takimlar>

<takim no="1">
<isim>Canyoupwnme</isim>
<sayi>12</sayi>
</takim>

<takim no="2">
<isim>Hacktrick</isim>
<sayi>25</sayi>
</takim>

</takimlar>
<html>
<body>
Canyoupwnme 12<br />
Hacktrick 25 <br />
</body>
</html>

2 koda baktığımızda xml kodlarındaki ögelere nasıl rahat erişebileceğimiz gözükmektedir. Ayrıca kendi taglerimizi belirttiğimiz için daha anlaşılır hale gelmektedir. Buna nerede denk gelebiliriz diye sorarsak örneğin elimizde bir xml dosyası var ve biz bu xml içerisindeki verilere kontrollü erişmemiz gerekmektedir. Verilere erişim değişken tarzında olduğu için istersek örnekteki Canyoupwnme verisini çekebiliriz veya  Hacktrick verisini çekebiliriz. XML bize bu avantajı sağlamaktadır.

XML’in Kullanıldığı Alanlar

XML veri alışverişinin yapıldığı sistemlerde çoğunlukla kullanılmaktadır. Unicode desteği bulunmaktadır ve bu özellik çoğu alfabedeki karakter desteğini sunmaktadır. Böylelikle evrensel bir uygulama da tercih edilebilir. Veri paylaşımlarında veri tabanı sistemleri farklılıklar gösterebilir ve bunların paylaşımları zor olabilir. Hele birde verilerin büyüklüğü devasa ise (big data ) XML ‘in text tabanlı olması ve kolay anlaşılabilir olması avantaj sağlar. Bu açıdan Busines To Busines (B2B) uygulamalarında büyük avantaj sağlamaktadır. Kısaca özetlemek istersek verinin taşınması ve saklanması gerekilen uygulamalarda XML kullanımı yaygındır.

XML Avantajlar Ve Dezavantajlar

Avantajlar :

  • XML entegrasyonu ile dinamik ve hızlı e-ticaret siteleri
  • Evrensel dilde tagler belirleme ve anlaşılabilirlik
  • Her sistemde çalışabilir olması çalışabilirlik açısından bir bağımlılığının olmaması
  • Birbirinden farklı sistemler arasındaki uyumluluğu , optimizasyonu
  • Öğrenilmesi kolaydır.
  • İçerisindeki verilere erişimin kolay olması. Bu sayede geliştirilecek uygulamalarla kolay çalışabilmesi.

Dezavantajlar :

  • XML verinin nasıl işleyeceğini tanımlamaz.
  • XML kendi başına harikalar yaratamaz. XML onu işleyecek ayrıştırıcılara ve uygulamalara gereksinim duyar.
  • Beraberinde getirdiği güvenlik açıkları

 XXE Injection nedir ?

XXE zafiyeti ile neler yapılabilir ilk olarak bunlardan bahsedelim. XXE zafiyeti ile sistemimizdeki hassas dosyalar okunabilir ve bazı özel durumlarda sistemde komut çalıştırılabilir. Bunların ne denli önemli olduğu aşikardır. Eski bir örnek verecek olursak “My Fullxml website” anahtar kelimesini google da arattığımızda karşımıza gelen sonuçlardan /db/member.xml uzantısına sahip olan sitelerde admin password bilgileri bulunabiliyordu. Böylelikle sitede admin yetkisi ile giriş yapılabilmekteydi. Bir örnek ile xxe injection inceleyelim;

payload = '''<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ZSL [
   <!ENTITY xxe1 SYSTEM "file:////etc/passwd" >
   <!ENTITY xxe2 SYSTEM "file:///etc/resolv.conf" >
   <!ENTITY xxe3 SYSTEM "file:///etc/issue" >]>
<package id="1" uuid="eecb64f8-35b0-412b-acda-3d83edf4ee63">
  <dateCreated id="2">2015-11-06 10:47:19</dateCreated>
  <name>&xxe1;</name>
  <description>&xxe2;</description>
  <openmrsVersion>&xxe3;</openmrsVersion>
  <version>1</version>
</package>'''

Bu payload’a exploit db’de rastladım. Bu örnek üzerinden incelememizi yapalım. İlk olarak taglere göz atalım. Name , description ve openmrsVersion tagleri arasında &xxe1 , &xxe2 , &xxe3 verileri tanımlanmış. Bakıldığında bir tehlike arz etmemektedir. Fakat !ENTITY ile başlayan taglere baktığımızda sistem dosyalarına erişebildiğimiz görülmektedir. Örneğin xxe1 verisi ile /etc/passwd dosyasına erişilmiştir. Bu gibi hassas verilere ulaşmak çok tehlikelidir. Bunun gibi örnekler çoğaltılabilir. Uygulama kısmında bu atak türü daha iyi anlaşılabilir.

XXE Saldırıları Tarihsel Örnekler

Bu kısımda ise hangi önemli sistemler xxe zafiyeti bulundurmuştur incelemeye çalışacağız. Bunların en başında tabii ki devasa bir kuruluş olan Facebook gelmektedir. Rastladığım bir yazıda .docx uzantılı dosyaların sıkıştırılmış xml dosyaları olduğu belirtilmekteydi. Ve saldırgan Facebook/career kısmında cv dosyasını yüklemeye çalıştığında başarılı olduğunu belirtmişti. Ardından cv dosyasını .docx uzantısında bir takım değişiklikler ile yüklemeye çalıştığını belirtmişti. Edindiği bilgide .docx dosyalarının sıkıştırılmış xml dosyaları türünde dosyalar olarak bilindiğini söylemekteydi. Ardından .docx uzantılı cv dosyasını 7zip programıyla açtığını ve içindeki xml dosyalarına eriştiğini belirtmekteydi. Burada bir takım değişiklikler yaparak dosyayı tekrar sisteme yüklediğinde zafiyeti keşfettiğini belirtmiştir. Bunu incelemek isterseniz aşağıda ki linki kontrol edebilirsiniz.

https://www.linkedin.com/pulse/how-i-hacked-facebook-word-document-mohamed-ramadan

Diğer çok önemli olan zafiyet ise Cisco Webex XXE zafiyetidir. Bu önemli zafiyeti sayın Ali Ardıç aşağıdaki linkte ayrıntılı ve Türkçe olarak belirtmektedir.

https://www.slideshare.net/CezeriSGACezeriSiber/cisco-webex-xxe-zafiyeti

Bu örnekler exploit db vb. platformlardan incelenerek çoğaltılabilir. Şimdi uygulamalı örneklere göz atalım.

Test ortamlarında uygulamalı XXE injection attack çözümleri

 Bu kısımda Web For Pentester , bWAPP tarzı test ortamlarında ekran görünrüleriyle XXE injection örneklerine değineceğiz.

 İlk olarak Web For Pentester’daki xml attack kısmındaki 2 örneğin çözümlerini inceleyelim.

Web For Pentester XML attacks Example 1 :

Kaynak Kod analizi :

Example1 örneğinde sayfanın kaynak koduna bakalım. Kaynak kodunu aşağıda verelim ;

<?php require_once("../header.php"); ?>
Hello  
<?php
  $xml=simplexml_load_string($_GET['xml']);
  print_r((string)$xml);
?>
<?php require_once("../footer.php"); ?>

Burada xml adında bir değişken tanımlanmıştır. Ve bu değişkende php modülü olan “simplexml_load_string” kullanılmıştır. Bunun diğer bir örneği ise “simplexml_load_file” dır. simplexml_load_file modülünde xml dosyası okunmaktadır. simplexml_load_string modülü ise kendi dökümanlarında belirttiğine göre bir xml dizgesini bir nesne haline getirmektedir. Daha sonra GET isteği ile parametreden gelen xml verisini print_r ile sayfaya bastırmaktadır. Alınan parametre sayfaya bastırılırken “Hello” kelimesinin yanına eklenmektedir.  Kaynak kodu inceledikten sonra sayfada uygulamaya geçelim.

Aşama 1 :

 Sayfayı incelediğimizde url kısmında ‘xml=’ ile kullanıcıdan bir parametre almakta ve bunu sayfada bastırmaktadır. <test>hacker</test>  kodu ile hacker string nesnesi xml değişkenine atanmakta ve sayfada bastırılmaktadır. Bu kod daha önce belirttiğimiz şekilde kullanıcı tarafından belirlenmiş tagler kullanılarak oluşturulmuştur. Biz tagler içerisinde değilde sadece string bir ifadeyi xml= kısmına girerek deneyelim.

Aşama 2 :

Bu şekilde url kısmında xml=Canyoupwnme olarak girdiğimizde hata ile karşılaşmaktayız. Hatada ‘<‘ ile başlayan bir tag bulunmadığını belirtmektedir. Demek ki göndereceğimiz parametre ‘<‘ gibi taglerle belirtilmesi gerekmektedir. Söylenildiği şekilde deneyelim fakat <test> tagi ile değil de xml özelliğinde belirtiğimiz kullanıcılar tagleri kendi oluşturabilir ifadesinden yola çıkarak kendi tagimizi oluşturalım ve öyle deneyelim.  Örneğin <deneme>Canyoupwnme</deneme>  gibi ;

Aşama 3 :

Görüldüğü üzere oluşturduğumuz tag bir sıkıntı çıkarmadı ve bize Canyoupwnme yazısını bastırdı. Bunu bildiğimize göre artık sistemdeki hassas dosyalara erişmeye yönelik çalışmalar yapalım. Örneğin şöyle bir kodu enjekte etmeye çalışalım.

<!DOCTYPE deneme [<!ENTITY canyoupwnme SYSTEM "file:///etc/passwd">]><deneme>&canyoupwnme;</deneme>

Bu payload ile deneme tagleri arasında canyoupwnme değişkenini kullanarak /etc/passwd dosyasını çağıralım.

Çözüm :

Payloadımız işe yaramadı ve bir hatayla karşılaştık. “Parser error” payloadımız parse edilirken sorunla karşılaştı. Bu payloadı birde bazı sistemlerde karşılaştığımız gibi url encode ile deneyelim.

Payload: <!DOCTYPE deneme [<!ENTITY canyoupwnme SYSTEM “file:///etc/passwd”>]><deneme>&canyoupwnme;</deneme>

Payload Url Encode :  %3C!DOCTYPE%20deneme%20%5B%3C!ENTITY%20canyoupwnme%20SYSTEM%20%22file%3A%2F%2F%2Fetc%2Fpasswd%22%3E%5D%3E%3Cdeneme%3E%26canyoupwnme%3B%3C%2Fdeneme%3E

Böylelikle payloadımız çalışmış oldu ve sistemdeki /etc/passwd dosyasına erişmiş olduk.

Web For Pentester XML attacks Example 2 :

Kaynak Kod analizi :

Example2 örneğinde sayfanın kaynak koduna bakalım. Kaynak kodunu aşağıda verelim ;

<?php require_once("../header.php"); 

  $x = "<data><users><user><name>hacker</name><message>Hello hacker</message><password>pentesterlab</password></user><user><name>admin</name><message>Hello admin</message><password>s3cr3tP4ssw0rd</password></user></users></data>";

  $xml=simplexml_load_string($x);
  $xpath = "users/user/name[.='".$_GET['name']."']/parent::*/message";
  $res = ($xml->xpath($xpath));
  while(list( ,$node) = each($res)) {
  	echo $node;
  } 
?>
<?php require_once("../footer.php"); ?>

Buradaki kaynak kodlarını incelediğimizde ilk olarak x değişkeni ile bir XML haritası oluşturulmuştur. Daha sonra xml değişkenine 1. örnekte olduğu gibi simplexml_load_string modülü ile x değişkeni atanmıştır. xpath değişkeni ile name tagi içerisindeki veri GET isteği ile atanmıştır. While döngüsü ile de xpath değişkeninden gelen parametre ekrana bastırılmaktadır. Kodu analiz ettiğimizde name taginde hacker ver admin verileri bulunmaktadır. Fakat biz diğer hassas verileri çekmemiz gerekmektedir. Örneğin password taginde ki verileri elde etmek gibi. Peki bunu nasıl yapabiliriz  ? Bu sorunun cevabını denemelerimiz ile bulmaya çalışalım.

Aşama 1 :

name kısmında parametre almaktadır. Biz buraya admin veya hacker yazdığımızda sayfa sorunsuz çalışmaktadır. Fakat başka herhangi bir şey yazdığımızda sayfa boş dönmektedir. Bu biraz bize Sql injection çağrıştırmaktadır. name kısmına tırnak attığımızda bize hata döndürmektedir. Invalid predicate bize geçersiz yüklenici hatası vermektedir. Birde çift tırnak atıp deneyelim. Çift tırnak attığımızda sayfa bize boş olarak dönmektedir. İşlemlerimize tek tırnak üzerinden devam edip hata kodunu yok etmeye çalışalım.

 hacker’ or 1=1 — kodunu parametre olarak yollayalım ve sonucu inceleyelim.

Aşama 2 :

Burada bize Unfinished literal bitmemiş yazılı hatası verdi. Demek ki sorguyu  sonlandıramadık. Bunu çözmeyi deneyelim. — yerine %00 verdiğimizde tekrar geçersiz yüklenici hatası vermektedir. %00 ile sonrasında gelenleri yorum satırı yapmadan önce sorguyu sonlandırmayı normal parantez ile deneyelim. Fakat buda bize hata döndürmektedir. Birde süslü parantezle deneyelim. O da aynı sonucu vermektedir. Birde köşeli parantez ile sorguyu sonlandırmayı deneyelim. Ve başarılı bir sonuca ulaşmış olduk . Görelim ;

payload :

hacker' or 1=1 ] %00

Aşama 3 :

Sayfa bize name tagleri içerisindeki verileri getirmiş oldu. Şimdi diğer taglerde tutulan verilere erişmeye çalışalım. Peki bu verilere nasıl erişebiliriz. Bu noktada aklımıza PHP DOM(Document Object Model) yapısı gelmektedir. Bu yapı ile HTML veya XML dosyalarımızda nesnel erişim sağlayarak elementler üzerinde işlem yapabilmekteyiz.  Şimdi payloadımıza geri dönelim.  Sorguyu yaptıktan sonra child::node() ile geçerli düğümün tüm çocuklarını seçelim. Bu bilgiye ise google da XPath Axes anahtar kelimesi ile erişebiliriz. Daha sonrada geçerli düğümün tüm atalarına erişmeyi deneyelim . İlk olarak çocuk düğüme erişebiliyor muyuz deneyelim ;

payload : hacker’ or 1=1 ]/child::node() %00

Çözüm :

Görüldüğü üzere bir hata ile karşılaşmadık. Demek ki çocuk bireyler hacker ve admin verileri. Şimdi ata bireylere erişmeyi deneyelim. Bunu da parent::node() ile deneyelim.

payload : hacker’ or 1=1 ]/parent::node()/child::node() %00

Böylelikle tüm ata bireylere de erişmiş olduk. Peki burada ne anlamıştık. child::node() ile çektiğimiz veriler hacker ve admin verileriydi. Yani bunlar name tagleri ile tutulan verilerdi. name tagini username tagi gibi düşünebiliriz. Bunu url kısmında şu şekilde deneyerek ne olacağını görelim ;

payload:

hacker' or 1=1 ]/parent::node()/name%00

Görüldüğü gibi düşüncemiz doğrulanmış oldu. Yani herhangi bir hata ile karşılaşmadık. Şimdi bu düşüncemize göre password bilgilerini çekmek isteseydik ne olurdu ? Şu şekilde deneyelim ;

payload :

hacker' or 1=1]/parent::node()/password%00

Ve sonuca ulaştık. XML tagleri içerisindeki password bilgilerine eriştik. Böylelikle Web For Pentester içerisindeki XXE injection örneklerini çözmüş olduk.

bWAPP XML External Entity Attacks (XXE) :

Bu kısımda ise çeşitli zafiyetlerin bulunduğu test ortamı olan bWAPP içindeki XXE attacks bölümünü inceleyeceğiz.

İlk olarak inceleyeceğimiz kısımı görelim ;

Görüldüğü üzere sayfamız bu şekildedir. Burada sadece ‘Any bugs?’ butonu bulunmaktadır. Bu butona bastığımızda bir değişiklik olmamaktadır. Peki bu noktada ne yapmalıyız? Burpsuite ile butona bastıktan sonra araya girelim ve hangi veriler gönderilmekte ne gibi istekler yapılmakta bunu inceleyelim.

Any bugs? butonuna tıklayıp burpsuite ile araya girdiğimizde ekran görüntüsündeki gibi paket bilgileri gönderilmektedir. bee kullanıcısı ile giriş sağladığımızdan <login> tagleri arasında bee görmekteyiz. <secret> tagleri arasında ise kullanıcı oluştururken bizden secret stringi istemektedir burada onu görmekteyiz. Burada xml taglerinin farkındayız ve önceki aşamalarda gerçekleştirdiğimiz xxe injection tekniklerini burada uygulamayı deneyelim. Xml ile kendi oluşturduğumuz değişkende robots.txt dosyasını çağırmayı deneyelim. Bunları denerken bilgileri repeater’a atıp değişiklikleri orada deneyelim.

Çözüm :

Görüldüğü üzere robots.txt dosyasına, yazdığımız xml kodları ile ulaşabiliyoruz. Bu kodları daha anlaşılabilir olması bakımından XML kısmında ekledim. Kodu aşağıda verelim.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE deneme [
<!ENTITY canyoupwnme SYSTEM "http://localhost/bWAPP/bWAPP/robots.txt">
]>

Burada canyoupwnme değişkenini belirledik ve bu değişken ile robots.txt dosyasını çağırdık. Robots.txt dosyasının yolunu belirtirken http url’i üzerinden belirttik burada bWAPP sistemimizde nerede kurulu ise o yolu vermeye dikkat edelim.

Ayrıca login taglerinde de oluşturduğumuz canyoupwnme değişkenini belirtelim ;

<login>&canyoupwnme;</login>

Böylelikle robots.txt dosyasına eriştik. Peki bir saldırgan gibi düşünerek /etc/passwd dosyasını okumak istesek başarılı olabilir miydik ? Bunu aşağıdaki kod ile deneyelim ve sonuçları görelim.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE deneme [
<!ENTITY canyoupwnme SYSTEM "file:///etc/passwd">
]>

Bu kodda sadece SYSTEM’den sonra çift tırnak içerisinde http değilde file olarak değiştirdik. Ve /etc/passwd dosyasını bana getir dedik daha sonra &canyoupwnme; ‘yi login tagleri arasında belirttik. Sonucu ekran görüntüsü ile görelim ;

Görüldüğü üzere /etc/passwd dosyasına da xxe injection ile erişmiş olduk. bWAPP’ın bu konudaki challenge’ını böylelikle göstermiş olduk.

Bu aşamada karşılaştığım bir sorunu ve çözümünü de anlatayım. İlk olarak bWAPP ‘ı sistemimde default olarak apache2 sunucusuna kurdum. Daha sonra çözümü denediğimde sürekli bir hata ile karşılaştım. Hatada sonuç olarak ”An error occured” döndürmekteydi. Bu hatayı bir süre aşamadım. Daha sonra araştırdıktan sonra bunun sunucu kaynaklı olduğunu öğrendim. Apache2 sunucusu üzerinden sistemi çalıştırdığım için dosyaları okumak istediğimde hata alıyordum. Bunun sebebinin izinlerden dolayı kaynaklandığını düşünüyorum.

Peki bu sorunu nasıl çözdüm ? Bu noktada devreye XAMPP girdi. Kali sistemine XAMMP kurdum ve mysql,apache ‘yi XAMPP üzerinden çalıştırdım. bWAPP’ı ise XAMPP htdocs içerisine kurdum. Böylelikle sorun çözülmüş oldu. Bunun WAMP server ile de çözülebileceğini düşünüyorum.

Sonuç

Bu yazımızda xxe injection anlatmaya çalıştım. XML’den bahsettik ve daha sonra Web For Pentester xxe örneklerinin çözümünü anlattık. Daha sonra başka bir test ortamı olan bWAPP üzerinde XXE attack challenge’nın çözümünü anlatmış olduk.

TR | XML External Entity (XXE) Murat TORAMAN

]]>
https://canyoupwn.me/tr-xml-external-entity-xxe/feed/ 0
TR | Dirtycow https://canyoupwn.me/tr-dirtycow/ https://canyoupwn.me/tr-dirtycow/#respond Mon, 13 Mar 2017 06:30:53 +0000 https://canyoupwn.me/?p=6494 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

TR | DIRTYCOW Hakkında Dirtycow Linux sistemlerde hak yükseltme zafiyeti olarak bilinmektedir. Dirtycow olarak adlandırılmış ve resmi olarak CVE-2016-5195 etiketini almıştır. Bu zafiyet android sistemlerde dahil olmak üzere tüm linux tabanlı işletim sistemlerini etkilemektedir. Zafiyetin tespiti Red-Hat firmasının araştırmaları sonucu ortaya çıkmıştır. İsmini ise linux çekirdek mekanizmasındaki Copy-On-Write sisteminden almıştır(COW). Çekirdeğin bellek yönetimi esnasında alt sistemlerinde yazma […]

TR | Dirtycow Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

TR | DIRTYCOW

Hakkında

Dirtycow Linux sistemlerde hak yükseltme zafiyeti olarak bilinmektedir. Dirtycow olarak adlandırılmış ve resmi olarak CVE-2016-5195 etiketini almıştır. Bu zafiyet android sistemlerde dahil olmak üzere tüm linux tabanlı işletim sistemlerini etkilemektedir. Zafiyetin tespiti Red-Hat firmasının araştırmaları sonucu ortaya çıkmıştır. İsmini ise linux çekirdek mekanizmasındaki Copy-On-Write sisteminden almıştır(COW). Çekirdeğin bellek yönetimi esnasında alt sistemlerinde yazma sırasında kopyalama işlemini gerçekleştirirken yarış koşullarından yaralanılarak(bkz : race condition , kernel race condition) yetki yükseltme işleminin gerçekleşmesi hatasıdır. Bu hatayı Phil Oester keşfetmiştir. Fakat Linus Torvalds bu açığı daha önceden bildiğini ve düzeltmeye çalıştığını bunun üzerine başarısız olduğunu , bulunduğu zaman dilimi içerisinde bunun zor olduğunu ve o şekilde bıraktığını itiraf etmiştir.

Tarihçe

Zafiyetin Eylül 2007 de piyasaya sürülen 2.6.22 sürümünden bu yana Linux çekirdeğinde bulunduğu belirtilmektedir. Ayrıca bu zafiyetin Ekim 2016 tarihine kadar sömürüldüğüne dair iddialar bulunmaktadır. Sürecin bu kadar uzun olması ve zafiyetin bu süreç içerisinde düzeltilmemesi saldırganlar için velinimet olması aşikardır. Bu zafiyetin 4.8.3 , 4.7.9 , 4.4.26 ve daha yeni çekirdek sürümlerinde düzeltildiği belirtilmektedir. Bu yüzden kendi çekirdek sürümümüzü (bkz: kernel version) güncellememiz gerekmektedir. Bir başka konuya değinmek gerekirse bu da android sistemlerdeki zafiyettir. Kendi çekirdeğimizi güncellemek daha kolay olabilir fakat android sistemlerde gerek güncellemelerin alınması gerek bu güncellemelerle çekirdek versiyonun yükseltilmesi ne kadar mümkün tartışılabilir. Ayrıca büyük şirketler bazı eski cihazlardan desteğini çekmesi gibi bir konuda mevcut. Bu bilgiler ışığında piyasada bu zafiyete sahip birçok android cihazın bulunduğunu öngörmek çokta yanlış değildir.

Açıklama

Bu zafiyeti incelerken neler yapacağız belirtmek gerekirse Copy-On-Write özelliğinde ki hatayı kullanarak sadece okuma yetkisi verilmiş bir dosyaya herhangi bir root yetkisinde olmayan bir kullanıcı yetkisi ile bir şeyler yazmaya çalışacağız. İlk olarak bu dosyaya bir şeyler yazmayı denediğimizde ‘permission denied’ hatasını alacağız. Ve bu hatayı Dirtycow zafiyetini kullanarak aşmaya çalışacağız. Daha sonra ise root yetkisine erişmeyi deneyeceğiz. Benim bu zafiyeti test etmek için kullandığım sistem Ubuntu 14.04 LTS işletim sistemidir. Bu işletim sistemi kernel versiyonu ise 4.4.0-31-generic sürümüdür. Şimdi ekran görüntüleriyle bu zafiyeti uygulamalı olarak inceleyelim.

İnceleme

İlk olarak kullanıcı yetkimizi ve kernel sürümüzü görelim. Bunun için aşağıdaki komutları kullanabiliriz.

id
uname -r

  • id  ile canyoupwnme kullanıcısının bilgilerini görmekteyiz.
  • Şimdi uname -r ile çekirdek sürümümüzü kontrol edelim.

  • Böylece çekirdek sürümümüzün 4.4.0-31-generic olduğunu görmekteyiz.

Şimdi gerçekleştireceğimiz test işlemlerine geçelim. İlk olarak aşağıda vereceğim siteyi incelemenizi öneriyorum.

https://dirtycow.ninja/

Burada Dirtycow hakkında bilgi alabilirsiniz ve yazılan exploiti indirebilirsiniz. View Exploit kısmına tıklarsanız sizi Dirtycow exploitinin bulunduğu github reposuna yönlendirmektedir. Buradan Dirtycow exploitini indirelim.

Ayrıca aşağıda vereceğim link üzerinden de ulaşabilirsiniz.

https://github.com/dirtycow/dirtycow.github.io

  • Burada dirtycow sitesinin anasayfasını görmekteyiz. View Exploit diyelim veya yukarıda verdiğimiz bağlantıya tıklayalım.

  • Bu kısımda gördüğünüz dosyalardan dirtyc0w.c isimli exploit dosyasını kullanacağız. Bu dosyayı değişik yollardan sisteme indirebiliriz ben wget kullanacağım. Ayrıca bu repo üzerinden exploitin kaynak kodlarını inceleyebilirsiniz.

 

  • Kullandığım komut :
  • wget dirtycow.github.io/dirtyc0w.c
  • Böylelikle exploitimizin yazıldığı .c uzantılı dosyamızı indirmiş olduk.

 

  • Dosyamızı indirdikten sonra yapacağımız işlem bu dosyayı derlemek. Bu bir c dosyası olduğundan dolayı gcc ile derleyerek çalıştırılabilir dosya haline getirelim.
  • Dosyamızı derlemek için kullanacağımız komutu aşağıda verelim.
  • gcc -pthread dirtyc0w.c -o canyoupwnme

     

  • Dosyamız derlendikten sonraki ekran görüntüsünü görelim.

  • Böylelikle exploitimizi çalıştırılabilir dosya haline getirdik. Şimdi ise yazma yetkisi olmayan bir dosya içine birşeyler yazmayı uygulamalı olarak gösterelim.
  • Bunun için bir text dosyası oluşturalım ve izinlerini ayarlayalım.
  • Komutlar:
  • echo CanyoupwnmeDeneme > cypwntest.txt
    
  • chmod 0404 cypwntest.txt  komutu ile dosyamıza sadece okuma izni verelim.

  • Bu dosyanın izinlerini görelim.

  • Görüldüğü üzere dosyamız sadece okuma yetkisine sahiptir. Biz yinede nano metin editörü ile bu dosyaya bir şeyler yazalım ve kaydetmeyi deneyelim.
  • nano cypwntest.txt komutu ile dosyamızın içine bir şeyler yazalım.
  • Daha sonra kaydetmek istediğimizde ekran görüntüsü aşağıdaki gibi olacaktır. Ve ‘Permission Denied’ hatası alacağız. Çünkü dosyaya yazma iznimiz yoktur.

Exploit Aşaması

  • Görüldüğü üzere yazma yetkimiz olmadığı için hatayla karşılaştık. Şimdi zafiyeti exploit ederek dosya içine birşeyler yazalım.
  • ./canyoupwnme cypwntest.txt Möööööööö  komutu ile dosya içerisine ‘Möööööööö’ yazdıralım.

  • Komutumuzu çalıştırdıktan sonra işlem tamamlandığında bu ekranı görmekteyiz. Şimdi dosyamızı okuyalım bakalım değişiklik olmuş mu ? Daha önceden dosya içerisinde CanyoupwnmeDeneme yazdığını biliyorduk.

  • Görüldüğü üzere zafiyeti kullanarak sadece okuma yetkisine sahip bir dosya üzerinde yazma işlemini uygulamış olduk. Bunu root yetkisi olmadan sistem açıklığından faydalanarak gerçekleştirdik. Bunu saldırganlar sistem dosyaları ve önemli dosyalarımız üzerinden kullanarak zarar vermeye çalışabilir. Bu yüzden çekirdek sürümümüzü güncellememiz gerçekten önem arz etmektedir.
  • Şimdide sistemde zafiyeti kullanarak root yetkisi elde etmeyi deneyelim.
  • Bunun için aşağıdaki linkten c0wroot.c dosyasını sistemimize indirelim. Ve daha sonra zip içerisinden çıkaralım.
  • https://gist.github.com/rverton/e9d4ff65d703a9084e85fa9df083c679

 

  • Buradan Download ZIP kısmından dosyamızı zip olarak indirebiliriz. İndirip çıkartalım.

 

  • Zip içerisinde c0wroot.c dosyamızı görmekteyiz. Çıkardıktan sonra tekrar derleme işlemlerini yapıp exploiti çalıştırmayı ve root olmayı deneyelim.

 

  • Görüldüğü gibi dosyamızı derledik. Bu işlemi şu komutla gerçekleştirebiliriz:
  • gcc -pthread c0wroot.c  -o cypwnROOT
  • Root olmak için exploit kaynak kodunu derleyerek çalıştırılabilir dosya haline getirdik. Şimdi dosyamızı çalıştıralım ve sonuçlarını görelim. Ayrıca çalıştırmadan önce ve sonraki id değerlerine göz atalım.

  • Görüldüğü üzere exploitimizi çalıştırdıktan sonra root yetkisine erişmekteyiz.

Sonuç

Bu yazımızda  Dirtycow zafiyeti ile sadece okuma yetkisine sahip bir dosya üzerinde yazma işlemi gerçekleştirdik. Ve ayrıca root yetkisine erişmiş olduk. Bu zafiyetten kurtulmak için çekirdek sürümümüzü yükseltmemiz önemlidir. Ayrıca geliştirilmekte olan işletim sistemleri için öncelikli güvenlik tavsiyesi güncelleştirmeleri takip etmektir. İşletim sistemimizi her zaman güncel tutmamız tavsiye edilmektedir.

 

 

 

 

TR | Dirtycow Murat TORAMAN

]]>
https://canyoupwn.me/tr-dirtycow/feed/ 0
TR | Doorman https://canyoupwn.me/tr-doorman/ https://canyoupwn.me/tr-doorman/#respond Mon, 03 Oct 2016 07:00:15 +0000 https://canyoupwn.me/?p=4379 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Doorman Kurulum Ve Kullanım Hakkında Doorman parolalarınızı , metinlerinizi , metinlerinizden istediğiniz bölümleri ve kod parçacıklarınızı gizli tutmaya yarayan bir yazılımdır. Açık kaynaklı bir yazılım olan doorman kaynak kodlarını kurulum ve kullanım önergelerini aşağıda vereceğim linklerden de inceleyebilirsiniz. https://github.com/halitalptekin/doorman https://pypi.python.org/pypi/doorman Kurulum Ve Kullanım Aşaması Python dili kullanılarak tasarlanan bu yazılım nasıl kurulur ve kullanılır ekran […]

TR | Doorman Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Doorman Kurulum Ve Kullanım

Hakkında

Doorman parolalarınızı , metinlerinizi , metinlerinizden istediğiniz bölümleri ve kod parçacıklarınızı gizli tutmaya yarayan bir yazılımdır.

Açık kaynaklı bir yazılım olan doorman kaynak kodlarını kurulum ve kullanım önergelerini aşağıda vereceğim linklerden de inceleyebilirsiniz.

  • https://github.com/halitalptekin/doorman
  • https://pypi.python.org/pypi/doorman

Kurulum Ve Kullanım Aşaması

Python dili kullanılarak tasarlanan bu yazılım nasıl kurulur ve kullanılır ekran görüntüleriyle inceleyelim.

Kurulum

  • Başlangıç olarak yazılımı pip ile sistemimize kuruyoruz.
pip install doorman

doorman-1

 

  • Daha sonra aşağıdaki doorman komutu ile yazılımı çalıştıralım.
doorman

doorman-2

 

  • Kurulumu tamamladık ve yazılımı çalıştırdık.Şimdi kullanım aşamasına geçelim.

Kullanım

  • Kullanım aşamasında adım adım sosyal medya parolalarını saklama , metin dosyaları için saklama ve kod parçacıkları için saklama kısımlarını inceleyeceğiz.
  • İlk olarak sosyal medya parolalarını nasıl gizleyip tutabileceğimizi inceleyelim.
  • Bu işlemler için aşağıdaki dizindeki konfigürasyon dosyasını düzenlememiz gerekmektedir.Eğer bu dizinde belirttiğimiz dosya yoksa aynı uzantıya sahip konfigürasyon dosyasını kendimiz oluşturarak düzenleyebiliriz.
~/.config/doorman/doorman.yml
  • Dosyamızın bulunduğu dizine ulaştık veya yoksa oluşturduktan sonra düzenleme aşamasını inceleyelim.

doorman-3

 

nano doorman.yml
  • komutu ile konfigürasyon dosyamızın içine saklamak istediğimiz belgelerin bilgilerini yazalım.Deneme için masaüstüne oluşturacağım dosyaları birazdan inceleyeceğiz.İlk olarak sosyal medya parolalarımızı gizli tutmak için gereken ayarlarımızı yapalım.
  • Masaüstüne twitter.rb adında bir dosya oluşturdum.Daha sonra bu dosyayı bir metin düzenleyici ile açarak düzenleyelim.

doorman-6

 

  • twitter.rb dosyamızı resimdeki gibi düzenledik.Şimdi düzenlediğimiz dosya içerisindeki twitter password bilgilerimizi gizleyelim.Bu işlem için önce daha önce dizinine ulaştığımız doorman.yml dosyamızı düzenleyelim.

doorman-5

 

  • doorman.yml konfigürasyon dosyası içerisine belirttiğimiz bilgileri girdik.Konfigürasyon dosyamıza gizlemek istediğimiz kısımları belirtiyoruz.
/Desktop/twitter.rb

bu metin ile işlem yapacağımız dosyamızı ve yolunu belirtiyoruz.

twitter_password: bHc0yz
private_key: 1VpzKbLDTqC1vXb

metni ile twitter parolamızı ve özel anahtarı gizlemek istediğimizi belirtmiş olduk.

  1. Şimdi twitter.rb dosyası içerisindeki gizlemek istediğimiz kısımları gizleme işlemine geçelim.
  2. Bunun için şu komutu kullanıyoruz:
doorman -s

Komutumuzu terminal ekranına yazdıktan sonra twitter.rb dosyamızın içeriğine bir göz atalım ve neler değişmiş görelim.

doorman-7

  1. Görüldüğü gibi twitter parolası ve özel anahtarımız gizlenmiş bulunmaktadır.
  2. Bir örnek daha ekleyelim.Bu dosyamızda bir klasörün içindeki githup projemizdeki dosyamız olsun.Bunun içinede örnek github parolamızı yazalım ve gizleyelim.

doorman-8

  • Masaüstünde pythoncodes isimli bir klasör oluşturduk ve bu klasörün içinede githubapi.py dosyamızı oluşturduk.Yine bir metin düzenleyici ile bu dosyamızın içine belirtildiği şekilde github parolamızı kaydettik.Şimdi konfigürasyon dosyamızda githubapi.py dosyamızın içeriğini gizlemek istediğimizi belirtelim.

doorman-10

  • Üstte belirttiğimiz şekilde dosya yolunu giriyoruz ve resimdeki şekilde github_password bilgimizi giriyoruz.
  • Yine aşağıdaki komut ile dosyalarımızın içeriğini gizliyoruz.
doorman -s

Şimdi github parolamızı içeren dosyamızı kontrol edelim neler değişmiş görelim.

doorman-11

  • Görüldüğü gibi github password bilgilerimizde gizlenmiş oldu.

Şimdide metin dosyalarımız içerisindeki istediğimiz kısımları gizleme işlemlerini gerçekleştirelim.

  • Masaüstünde secret.conf isminde bir metin dosyası açalım.Ve içine örnek bir metin yazalım.Daha sonra doorman.yml konfigürasyon dosyamızı düzenleyelim.Metnin içinde geçen CanYouPwnMe kısmını gizlemek istiyoruz.Ayarlarımızı aşağıdaki ekran görüntüsündeki gibi düzenleyip kaydedelim.

doorman-12

  • Daha sonra tekrar doorman -s komutu ile içeriğimizi gizleyelim.

doorman-13

  • Görüldüğü gibi CanYouPwnMe kısmını gizlemek istedik ve gizleme işlemini tamamladık.
  • Şimdide kod parçacıklarını gizlemeyi inceleyelim.
  • Herhangi bir kod bloğunda gizlemek istediğimiz kısmı doorman.yml konfigürasyon dosyamızda belirtiyoruz.Masaüstünde örnek olarak my_settings.py adında python dosyası açıyoruz ve içeriğini aşağıdaki ekran görüntüsü gibi düzenliyoruz.

doorman-14

  • Python dosyamızın yolunu ve gizlemek istediğimiz kod parçacığını konfigürasyon dosyamızda belirttik.Yine doorman -s komutu ile gizleme işlemini gerçekleştiriyoruz.Ve sonucu aşağıda görelim.

doorman-15

  • Kod parçacığımızı gizlemeyide inceledik.Bundan sonra gizlediğimiz kısımmları tekrar nasıl görünebilir hale getirebiliriz o aşamayı inceleyelim.Bunun için aşağıdaki kodu kullanıyoruz.
doorman -u

Bu kod ile gizlediğimiz dosyaların içeriğini görünür yapabiliriz.

doorman-16

  • Dosyalarımızın içeriğini gizlemeyi ve tekrar nasıl görünür hale getirilmesini inceledik.
  • Son olarak hangi dosyalarımızda içerik gizleme işlemini uyguladık görelim.
  • Bunun için şu kodu kullanıyoruz.
doorman -v
  • İçeriklerini gizlediğimiz dosyaları ekran görüntüsündeki gibi görebiliyoruz.

Böylelikle doorman yazılımını dosyalarımızın içeriklerini gizlemeyi incelemiş olduk.Böylelikle parolalarınızı,metin dosyalarınızın içeriklerini,kod parçacıklarınızı saklı tutabilirsiniz.

Kodlarımızı özet olarak açıklamasıyla aşağıda gösterelim.

doorman -s
  • Dosyalarımızda istediğimiz kısımları gizlemek için kullanılır.
doorman -u
  • İçeriklerini gizlediğimiz dosyaların içeriklerini tekrar görünür hale getirmek için kullanılır.
doorman -v
  • Hangi dosyalarda gizleme işlemi yaptığımızı görmek amacıyla kullanılır.
doorman -h

Doorman için gerekli açıklamaları görmek ve yardım için kullanılır.

Kaynak linkleri:

https://github.com/halitalptekin/doorman

https://pypi.python.org/pypi/doorman

TR | Doorman Murat TORAMAN

]]>
https://canyoupwn.me/tr-doorman/feed/ 0
TR | Linux Varnish https://canyoupwn.me/tr-linux-varnish/ https://canyoupwn.me/tr-linux-varnish/#respond Mon, 29 Aug 2016 09:16:25 +0000 https://canyoupwn.me/?p=3673 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

  Varnish Cache Nedir? Varnish bir http hızlandırıcı yazılımıdır.Peki bu http hızlandırıcı yazılımı nedir? Web application accelerator(Web uygulama hızlandırıcı) ziyaret ettiğimiz internet sayfalarına erişimi hızlandırmak amacıyla tasarlanmış sistemlerdir. Web sunucu,dinamik ve statik web sayfaları Bir internet sitesini ziyaret etmek istediğimizde o sitenin web sunucuna istekler göndermiş oluruz.Bu web sunucularında ise sitede yayınlanmak istenen sayfalar,resimler veya dökümanlar gibi metaların […]

TR | Linux Varnish Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!


varnish-1

 

Varnish Cache Nedir?

Varnish bir http hızlandırıcı yazılımıdır.Peki bu http hızlandırıcı yazılımı nedir? Web application accelerator(Web uygulama hızlandırıcı) ziyaret ettiğimiz internet sayfalarına erişimi hızlandırmak amacıyla tasarlanmış sistemlerdir.

Web sunucu,dinamik ve statik web sayfaları

Bir internet sitesini ziyaret etmek istediğimizde o sitenin web sunucuna istekler göndermiş oluruz.Bu web sunucularında ise sitede yayınlanmak istenen sayfalar,resimler veya dökümanlar gibi metaların tutulması sağlanır.Bir nevi sitelerin depoları olarak bilinebilir.Bu ziyaret etmek istediğimiz siteler dinamik ve statik olarak ayrılabilir.Statik web sitelerinin güncellenme sıklığı azdır.Yani uzun bir süre değişiklik olamadan yayın yapabilirler.Değişken bir yapı göstermezler.Dinamik web siteleri ise her bir ziyaretçiye özel olarak tasarlanabilir ve değişken bir yapı göstermektedir.Kullanıcı-üye içeren bir web sitesi ise her üyenin sayfası farklı içeriklere sahip olabilir.Örneğin Google anasayfasına erişmek isteyen her kullanıcı aynı içerik ile karşılaşabilir.Fakat birde facebook profil sayfasını ele alırsak her kullanıcının sayfası farklı olabilir.

Nasıl Çalışır?

         Varnish yazılımı ziyaret ettiğimiz statik web sitelerine istek gönderdiğimizde içerikleri web sunucusu üzerinden geri döndürmek yerine içerikleri kendi önbelleğinde var ise ordan döndürmektedir.Buda bize hız ve zaman kazancı olarak geri dönmektedir.Ayrıca web sunucusunu yormadığı için sunucunun daha sağlıklı çalışmasına neden olabilir.Statik web sitelerindeki html,css,jpg,png,pdf gibi içerikler önbelleğe alınabildiği gibi varnish dinamik web sitelerindeki bazı içerikleri de önbelleğine alabilmektedir. Varnish’in en büyük avantajlarından biri ise bu içeriklerin ne zaman dinamik olarak oluşturulup ne zaman statik olarak oluşturacağını bilmesidir.Bu olayı bildiğimiz bir olayla bağdaştırmak istersek şu örneği verebiliriz.Her gün ekmek aldığımız bakkala gitmek yerine ekmek isteğimizi kapıcıya iletiriz ve kapıcı da bize isteğimizi getirir.Böylece bakkala gitmek için harcadığımız zaman ve enerjiden kazanç elde ederiz. Varnishte de kazancımız büyük oranda hız kazancı olmaktadır.

  • Linux için kurulum aşamalarını ekran görüntüleriyle inceleyelim.

İlk olarak aşağıda vereceğimiz adresi ziyaret ederek işletim sistemimize uygun kurulum yönergelerini ve dosyalarını elde edebiliriz.

https://varnish-cache.org/releases/index.html

Ayrıca vereceğimiz varnish linkinden dokümantasyonlara,yeniliklere,versiyonlara göz atabilirsiniz.

https://varnish-cache.org
  • Bu adresteki kurulum yönergeleri ise şu kısımdadır.

varnish-2

  • Bizim inceleme yapacağımız sistemimiz Kali Linux – Debian sistem olduğu için  Installation on Debian  kısmına göz atalım.

varnish-3

  • apt-transport-https  paketini yükleyerek kuruluma başlayalım.

varnish-4

varnish - 5

  • Daha sonra kendi depo adresini ekleyelim.
curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add - echo "deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1"\

varnish-6

  • Daha sonra girdi kısmına
/etc/apt/sources.list.d/varnish-cache.list

yazalım

varnish-7

  • Şu şekilde bir ekran görmekteyiz devam edelim.

varnish-8

  • Herhangi bir hata durumunda /etc/apt/sources.list dosyasına kendimiz depo adresini ekleyebiliriz.Bunun için aşağıdaki adımları takip edelim.
nano /etc/apt/sources.list
  • Komutu ile kaynak depo dosyamıza yazmak için nano  metin editörü ile açalım.
deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1
  • Yeni bir satıra bu kodu ekleyerek kaydedip kapatalım.
apt-get update

ile depomuzu güncelleyelim.

apt-get install varnish
  • Komutu ile varnish’i kuralım.

varnish-9

varnish-10

  • Ve aşağıdaki ekran ile kurulumu tamamlamış bulunmaktayız.

varnish-11

  • Kurulum işlemimizi tamamladık şimdi Varnish konfigürasyon ayarlarımızı yapalım.
nano /etc/default/varnish

komutu ile varnish dosyamızı düzenleyelim.

varnish-12

  • Daha sonra Alternative 2 kısmında DAEMON_OPTS = “-a:80 \  kısmını yazdığımız şekilde değiştirelim.

varnish-13

  • “-a: 80 \” kısmını değiştirdikten sonra kaydedip çıkalım.
  • Daha sonra default.vcl dosyamızı düzenleyelim.

varnish-14

backend default{ .host = “127.0.0.1”; .port = “8080”; }
  • “backend default” kısmını belirtildiği gibi düzenleyelim.Kaydedip çıkalım.

varnish-15

  • Varnish dosyalarımızın konfigürasyon ayarlarını da tamamladık.
  • Şimdide apache2 ayarlarımıza göz atalım.
nano /etc/apache2/ports.conf

komutu ile apache2 port ayarlarını düzenleyelim.

varnish-16

  • Ports.conf dosyasının içerisine şu satırları ekleyelim:
 NameVirtualHost 127.0.0.1:8080
 Listen 127.0.0.1:8080

varnish-17

  • Daha sonra
nano /etc/apache2/sites-available/default

komutu ile default dosyamızı düzenleyelim.

varnish-18

  • default içerisine <VirtualHost 127.0.0.1:8080>  ekliyoruz ve kaydedip kapatıyoruz.

varnish-19

  • Apache2 konfigrasyon ayarlarımızıda tamamladık.Şimdi apache2 ve varnish servislerimizi yenileyelim.
service apache2 restart
service varnish restart

varnish-20

  • Ayarlarımızı tamamladık şimdi ayarlarımızı kontrol etmek için test edelim.
  • Apache2 servisini :8080 portuna ayarlamıştık.Varnish yazılımını kullanarak ise :80 portundan ulaşacağız görelim.
  • İlk olarak varnish’i kullanmadan erişmeyi deneyelim.Bunun için 8080 portunu kullanıyoruz.
ab –n 6000 –c 1 http://127.0.0.1:8080/

komutu ile çıktılarımızı inceleyelim.

varnish-21

  • Şimdide Varnish üzerinden erişelim ve sonuçları görelim.

varnish-22

  • Varnish üzerinden erişimimizin sonuçlarınıda böylece görmüş olduk.

Yazımızda Varnish kurulum,konfigürasyon ayarları ve apache-Varnish test eylemleri ile Varnish yazılımını inceledik.


TR | Linux Varnish Murat TORAMAN

]]>
https://canyoupwn.me/tr-linux-varnish/feed/ 0
TR | Facebook Hesap Güvenliği https://canyoupwn.me/tr-facebook-hesap-guvenligi/ https://canyoupwn.me/tr-facebook-hesap-guvenligi/#comments Wed, 03 Aug 2016 08:44:09 +0000 https://canyoupwn.me/?p=3530 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

FACEBOOK HESAP GÜVENLİĞİ Çağımızın fenomeni,sosyal medya platformlarının bir devi olan facebook en önemli iletişim,paylaşım,sosyal medya,haberleşme kaynağı olarak hayatımızda önemli bir yer etmiştir.Çocuk,genç,yaşlı her yaş kesiminden 1,7 milyar civarında aktif kullanıcısı bulunmaktadır.Hesap güvenliğine girmeden önce çocukların yani geleceğimizin güvenliğine değinelim.Facebook her ne kadar hesap oluşturabilmek için gereken yaş kriterini 13 yaş ve üzeri olarak belirtsede daha […]

TR | Facebook Hesap Güvenliği Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Ekran görüntüsü_2016-07-24_01-14-38

FACEBOOK HESAP GÜVENLİĞİ

Çağımızın fenomeni,sosyal medya platformlarının bir devi olan facebook en önemli iletişim,paylaşım,sosyal medya,haberleşme kaynağı olarak hayatımızda önemli bir yer etmiştir.Çocuk,genç,yaşlı her yaş kesiminden 1,7 milyar civarında aktif kullanıcısı bulunmaktadır.Hesap güvenliğine girmeden önce çocukların yani geleceğimizin güvenliğine değinelim.Facebook her ne kadar hesap oluşturabilmek için gereken yaş kriterini 13 yaş ve üzeri olarak belirtsede daha küçük yaşta kullanımın olduğu çoğu yerde görülmektedir. 13 yaşından küçük bir çocuğun Facebook’u kullandığını düşünüyorsanız ve ya biliyorsanız bunu aşağıda vereceğimiz linkten Facebook’a bildirebilir ve küçük yaşta uygunsuz kullanıma engel olabilirsiniz.

 

https://www.facebook.com/help/contact/209046679279097

Facebook hesap güvenliğine neden hesabımı güvenli hale getirmeliyim sorusuyla giriş yapalım.Burada en önemli başlıklar kişisel mahremiyet,gizlilik,kişisel verilerimiz gibi alanlardır.Böylesine büyük bir platformda ele geçirilen bir hesap bir silah,güç haline gelebilir.Çünkü sanal dünyada gerçekleştirilen eylemler gerçek hayatımıza etki etmeye başladığı anda bu güç tehlikeli bir hal almaktadır.Kısaca belirtmek gerekirse bu gücü kullanarak gerçekleştirilen eylemlerden birkaç örnek verelim.

  • Ele geçirilen hesap ile tanıdıklardan para,mobil bakiye,kredi kartı bilgileri gibi veriler elde etme.
  • Profil analizi çıkartılarak hesap sahibinin zaafları,ilgi alanları kullanılarak istismar etme.
  • Ele geçirilen hesap ile suç teşkil edecek paylaşımlarda bulunma.
  • Ele geçirilen hesaptaki özel konuşmalar,paylaşımlar,resimler vs. ile şantaj yapma.
  • Varsa ele geçirilen hesaba ait grup,sayfa gibi üye bulunduran alanları kötüye kullanma.

Bunlar gibi daha birçok istismar,hırsızlık,kötüye kullanma,sosyal mühendislik eylemleri bulunmaktadır.Bu kadar hayatımıza yer etmiş bir platformda bulunuyorsak hesap güvenliğimizin ne kadar önemli olduğunu anlamamız gerekmektedir.
Hesap güvenliğimizde dikkat etmemiz gereken bir çok alan vardır.Biz ilk olarak parola güvenliğinden başlayalım.

İlk olarak bizim belirlediğimiz parolada aranması gerekenlerden bahsedelim.

  • Klasik bir öneri olan ama yinede önem arz eden parolamız da doğum tarihi,isim,telefon numarası,tekrarlamalar,ardışık klavye tuşlarından oluşan ifadeler gibi kolay tahmin edilebilecek kombinasyonlardan kaçınmamız gerekir.Örnek verecek olursak Facebook devinin kurucusu ve patronu olan Mark Zuckerberg bile bu hataya düşmüş ve bazı sosyal medya hesaplarının parolasını “dadada” olarak belirlemiştir.Buda kaçınılmaz bir saldırıya ve kötü niyetli korsanların hesabı ele geçirmesine neden olmuştur.
  • Parolamızda bulunması gereken,tercih edilebilecek öneriler şunlar olabilir;
    • Büyük,Küçük harf bir arada kullanımı
    • Noktalama işaretleri
    • Özel karakterler(#$%& vb.)
    • En az 8 karakterden oluşması
      Yukarıdaki özelliklerin birlikte kombinasyonları(örneğin: !C@nY0uPwNM3! )
      Bunlara ek olarak parolamızda uzunluğa ve karmaşılığa ne kadar özen gösterirsek yani uzunluğu ve karmaşıklığı kendimizin hatırlayabileceği,kolay kullanabileceği şekilde arttırarak düzenlersek o kadar iyi olabilir.
  • Diğer bir önemli olan konu ise Facebook haricinde diğer birçok alanda parola kullanımı olabilir.Bu alanlardaki parola kullanımında dikkat etmemiz gereken nokta ise farklılıktır.Yani her hesabımızda aynı parolayı kullanırsak Facebook dışındaki bir hesabımız ele geçirildiğinde diğer hesaplarımız ile birlikte Facebook hesabımıza da elveda demiş olabiliriz.Unutmayalım ki kötü niyetli korsanlar,saldırganlar tek bir hesapla yetinmeyebilir.
  • Parolalarımızı belirli aralıklarla değiştirmekte bize fayda sağlayabilir.En az 3 veya 4 ay da bir parolalarımızı değiştirirsek kırılma zorluğu,süresi artar ve buda bize pozitif yönde fayda sağlayabilir.
    Şimdide ekran görüntüleriyle hesabımızın güvenlik ayarlarına bir göz atalım.

Ekran görüntüsü_2016-07-24_01-14-38

Ayarlar kısmından güvenlik seçeneği ile resimdeki ekrana ulaşabilmekteyiz.Peki nedir bu ekrandaki yönergeler inceleyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Giriş uyarıları kısmında belirtildiği gibi tanınmayan bir cihazdan veya tarayıcıdan hesabımıza giriş yapıldığında bildirimler alabiliriz ve giriş uyarılarını istersek e-posta hesabımıza istersek eklediğimiz cep telefonu numaramıza gönderilmesini sağlayabiliriz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Diğer bir kısım ise giriş onayları kısmı.Burada da bahsettiği gibi bilinmeyen tarayıcılardan giriş yapılmak istendiğinde hesaba erişmek için güvenlik kodu istenmektedir.Seçili hale getirelim ve nasıl kullanıldığını inceleyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Yönergelerde belirtildiği üzere giriş onayları bilinmeyen bir tarayıcıdan giriş yapılırken hesabımıza erişmek isteyen kişinin biz mi yoksa başka bir birey mi olduğunu telefondan sorgulayan ve doğrulayan bir güvenlik koruma sistemidir.Başla diyerek devam edelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Başla dedikten sonra karşımıza böyle bir yönerge gelmektedir.Devam diyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Devam dedikten sonra yukarıdaki gibi bir ekranla karşılaşmaktayız.Bu kısımda telefonumuza sms ile kod gönderilmektedir. ”Giriş onaylarini etkinleştirmek için lütfen şu kodu kullan:123456” gibi bir sms gelmektedir.Gelen kodu girelim ve devam edelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Kodu yazdıktan sonra “Çalıştı!” uyarısı ile onaylamaktadır.Devam edebiliriz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Devam dedikten sonra bizden hesabımıza eriştiğimiz giriş parolasını istemektedir.Giriyoruz ve devam ediyoruz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Belirtildiği gibi bilinmeyen bir tarayıcıdan giriş yapma denemesi olduğunda Facebook bizden bir güvenlik kodu isteyecektir.Belirtildiği gibi ilk hafta telefonumuza erişemezsek kullandığımız numara veya telefonumuz istenmeyen olaylardan dolayı kullanım dışı olursa veya kaybolursa giriş onaylarını güvenlik kodu kullanmadan kapatabilir telefonumuza erişim sağlandığında tekrar aktif hale getirebiliriz.Kutucuğu işaretliyelim ve giriş onayları kurulumunu tamamlayalım.Artık bilinmeyen tarayıcılardan giriş yapıldığında güvenlik kodu istenecektir ve telefonumuza bu kod gönderilecektir.Bu işlemler ile kodmatik kısmınıda aktif etmiş oluyoruz.
  • Kodmatiği akıllı telefonlardaki Facebook uygulamasında bulabiliriz.Telefonumuzdan kodmatiğe tıkladığımızda 30 saniyede bir bize güvenlik kodu üretmektedir.Bir ekran görüntüsü ile örnek verelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Bir sonraki kısımda uygulama şifrelerini inceleyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Herhangi bir uygulama şifremiz yoksa uygulama şifreleri oluştur’a tıklıyoruz.Ve aşağıdaki gibi bir ekranla karşılaşıyoruz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Önergeler zaten açık bir şekilde ekranda belirtilmektedir.Uygulama Şifreleri Oluştur ile şifremizi oluşturmaya başlayalım.

Ekran görüntüsü_2016-07-24_01-14-38

  • Önergeler zaten açık bir şekilde ekranda belirtilmektedir.Uygulama Şifreleri Oluştur ile şifremizi oluşturmaya başlayalım.

Ekran görüntüsü_2016-07-24_01-14-38

  • Bizden şifre belirlememiz gereken uygulama adını istemektedir.Örneğin Skype uygulaması için bir şifre oluşturalım.

Ekran görüntüsü_2016-07-24_01-14-38

  • Şifre oluştur dedikten sonra aşağıdaki gibi bir ekranla karşılaşmaktayız.Bu kısımda Facebook ,uygulamada her seferinde giriş onayları almak yerine belirlediğimiz uygulama ile Facebook’a erişmek istediğimizde o uygulamaya özgü şifre oluşturur ve her seferinde şifre oluşturmaya gerek kalmaz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Skype uygulaması için Facebook şifremiz oluşturuldu.Bitir diyerek uygulamalar için şifre oluşturma işlemimizi tamamlayabiliriz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Şimdide Ortak anahtar kısmını inceleyelim.GPG yazımızdanda bu şifreler hakkında bilgi alabilirsiniz.Bu alanda belli algoritmalar ile kriptolanmış bir ortak anahtar ile Facebooktan gelen e-postaları şifreleyebiliriz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Dilerseniz pgp&gpg kriptolama uygulamalarından oluşturduğunuz ortak anahtarı veya Facebook’un ortak anahtarını “here” linkinden indirip kullanabilirsiniz.”here” linkinden indirdiğiniz .asc uzantılı dosyayı bir metin editörde açtıktan sonra içindeki texti kopyalayıp belirtilen alana girebilirsiniz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Değişiklikleri kaydet diyerek devam edelim.E-posta hesabımız ele geçirilip ordan Facebook hesabımıza erişilmek istenilirse e-postalarımız kriptolanmış halde gelmesi içicn boş kutucuğuda işaretli hale getirelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • “PGP public key will be unusable too soon” uyarısını aldık.Bu uyarıda oluşturduğumuz anahtarın geçersiz olduğunu,süresinin dolduğunu  görmekteyiz.Ve burdan öğrendiğimiz bilgi kaydedilen anahtarların kullanım süresinin 30 gün olduğudur.Yani kriptolama işlemi için bir anahtar belirlediğimizde bunun geçerlilik süresi 30 gündür.
  • Pgp anahtar üretmek için aşağıdaki linki kullanabilirsiniz.
https://pgpkeygen.com/
  • Buradan ürettiğimiz Public Key’i kopyalayıp deneyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Değişiklikleri kaydet dedikten sonra bizden hesap parolamızı girmemizi istemektedir.Girelim ve devam edelim.
  • Ve Facebooktan aldığımız e-postaları kriptoladık.İşlemi tamamladık.Aşağıdaki ekran görüntüsü ile teyit edelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Pgp ile kriptolama işlemimizide yaptık.Ve tabiki şunu belitmek gerekirse Public keyimizi kimseyle paylaşmıyoruz.
  • Güvenilir kişiler kısmı ile devam edelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Burada ise belirtildiği gibi hesabımıza erişemediğimiz durumlarda belirlediğimiz arkadaşlarımızdan onay alarak hesaba tekrar erişmeyi sağlamaktadır.

Ekran görüntüsü_2016-07-24_01-14-38

  • Hesabımıza erişemediğimiz durumlarda belirlediğimiz kişilerden kod almaktayız.Bu kodları girerek hesap sahibinin kendimiz olduğunu belirtmiş oluruz.Ve hesabımıza tekrar erişimi sağlamış oluruz.Burada dikkat edilmesi gereken husus seçtiğimiz kişilerin yakınımız ve güvendiğimiz kişiler olması önemlidir.

Ekran görüntüsü_2016-07-24_01-14-38

  • Buradan sayısını ve kim olacağını belirlediğimiz güvenli arkadaşlarımızı ekleyebiliriz.En az 3 kişi belirtmemiz gerekmektedir.
  • Güvenli kişilerimizide seçtikten sonra uygulamalar ve tarayıcılar kısmına göz atalım.

Ekran görüntüsü_2016-07-24_01-14-38

  • Bu kısımda gördüğünüz gibi hangi tarihlerde hangi tarayıcı ve sistemlerden hesabımıza giriş yapılmış görebiliriz.Herhangi uygunsuz şüpheli bir durumu ise buradan takip edebiliriz.Ayrıca bunu detaylandırmak istersek giriş yaptığın yer kısmından daha ayrıntılı olarak inceleyebiliriz.Görelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Görüldüğü gibi giriş bilgileri detaylı olarak verilmektedir.Bunları düzenli şekilde kontrol edip uygunsuz veya şüpheli bir giriş varmı kontrol edebilirsiniz.
  • Diğer bir kısımda ise profil resmi ile giriş yap seçeneğini inceleyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Burada Facebook uygulamasını Android 5 işletim sistemli bir cihazda kullanmakta olduğumuzu görmekteyiz.Bu kısımı cihazımızda inceleyelim.

Ekran görüntüsü_2016-07-24_01-14-38     2     3

  • Mobil cihazımızdan Facebook uygulamasına giriş yaptık ve profil resmiyle giriş kısmına geldik.Burada geçiş kodu ekle kısmından bir 4 haneli geçiş kodu oluşturuyoruz.Uygulamada hesabımızdan çıkıp tekrar giriş yapalım ve giriş olaylarını gösterelim.

Ekran görüntüsü_2016-07-24_01-14-38     2

  • Burada oluşturduğumuz geçiş kodunu girip devam edelim.

Ekran görüntüsü_2016-07-24_01-14-38     2

  • Giriş onaylarınıda geçtiğimiz kısımlarda açmıştık.Telefonumuz sms ile gelen kodu girip hesabımıza giriş yapabilmekteyiz.
  • Şimdide hesap varisi kısmını inceleyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Gerekli yönergeler açık bir biçimde belirtilmektedir.Hesap sahibi vefat ettiği durumlarda hesaba erişim sağlayacak kişiyi buradan ekleyebiliriz.Dilersek de hesabımızın kalıcı olarak silinmesini seçebiliriz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Güvenlik kısmında son olarak hesabı dondur seçeneği ile dilersek belirli bir süre dilersek bir diğer giriş yapılana kadar hesabımızı dondurabiliriz.
  • Bir de Facebook hesap bilgilerimizi kullanan uygulamaları görelim ve bunları nasıl kaldıracağımızı inceleyelim.Facebook ayarlar kısmından Uygulamalar bölümüne giriyoruz.

Ekran görüntüsü_2016-07-24_01-14-38

  • Burda kullanmış olduğumuz uygulamaları görmekteyiz.Bu uygulamalara Facebook hesabımız kullanılarak giriş yapmaktayız.Herhangi birini kaldırmak istediğimizde uygulamanın üstüne geliyoruz ve sağında beliren çarpı işareti ile kaldırıyoruz.Örneğin aşağıdaki gibi;

Ekran görüntüsü_2016-07-24_01-14-38

2

  • Kaldır dediğimiz anda Facebook hesap bilgilerini kullanarak giriş yaptığımız uygulamamızı kaldırmış bulunmaktayız.Dilersek ayarları düzenle seçeneği ile uygulamanın nelere eriştiğini,hangi bilgileri kullandığını görüp düzenleyebiliriz.
  • Facebook hesabımızdaki güvenlik kısımlarını inceledik uyguladık.Bunlar hesap güvenliğimizi arttırmada Facebook’un bize sağlamış olduğu imkanlardır.Bunların haricinde son kullanıcı olarak bizlerin de dikkat etmesi gereken başka önemli noktalarda vardır.
  • Örneğin phishing(Yemleme-oltalama) saldırılarına dikkat etmemiz gerekmektedir.Saldırganlar değişik yollar ile bizimle iletişime geçmeye çalışabilir.Bunlar Messenger yazışmaları.e-posta gibi platformlar olabilir.Güvenimizi kazandıktan sonra veya dikkatsizliğimizden yararlanarak bize fake(sahte) Facebook linkleri yollayabilirler.Bu linkler Facebook giriş sayfasından farksızdır.Ve hesabımıza giriş yaptığımızda farklı bir sayfa karşımıza çıkmaz.Orjinal Facebook sayfasına yönlendiriliriz.Fakat e-posta ve hesabımızın parolası saldırganın eline geçmiş olur.Burada dikkat etmemiz gereken püf nokta hesabımıza giriş yaparken url kısmına bir göz atmak olacaktır.Başta https:// kısmını görürsek güvenli giriş yapabiliriz.Bu farkı aşağıdaki görüntülerle örnekliyelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Gördüğünüz gibi url kısmında https://www.facebook.com görememekteyiz.Saldırganlar benzer uzantılı adresler belirleyebilir. Dikkatsizliğimizi kullanmaya çalışan saldırganlara fırsat vermemeliyiz.Güvenli olan görüntüyü aşağıda görelim.

Ekran görüntüsü_2016-07-24_01-14-38

  • Bir diğer konu ise akıllı telefonlardan uygulama üzerinden hesabımıza erişirken nelere dikkat etmemiz gerektiğidir.Uygulamamızı mutlaka işletim sistemimizin marketinden yüklemeliyiz.İOS için App Store,Android için Google play market üzerinden Facebook uygulamasını yükleyebiliriz.Ve güncellemeleri sürekli takip etmeliyiz.Facebook güncellemelerle güvenlik açıklarını zayıf noktalarını gidermeye çalışmaktadır.Eski sürüm bir Facebook uygulamasında güvenlik açığı var ve siz eski sürümü kullanıyorsanız saldırganlar için bir hedef noktası haline gelebilirsiniz.Bilinmeyen kaynaklardan yüklenen uygulamalarda ise arka kapı bulunabilir ve zararlı yazılım yüklenebilir bu yüzden işletim sistemlerinin marketlerini takip etmemiz daha doğru olacaktır.
  • Diğer bir husus ise paylaşımlardır.Güvenilmeyen,kaynağı belli olmayan,şüpheli paylaşımlar ilginizi çekecek şekilde karşınıza çıkabilir.Fakat bunlara dikkat edip tıklamamaya özen göstermeliyiz.
  • Diğer bir konu ise hesabımıza başka tanımadığımız yerlerden erişmek durumunda kalabiliriz.Örneğin internet kafeler,misafirlikler vs.Bu alanlarda hesabımıza erişmek istersek dikkatli olmalıyız çünkü hesabımıza erişmek istediğimiz sistemlerde keylogger tarzı yazılımlar bulunabilir ve parolamızı elde edebilirler.Böyle bir durumda sanal klavye kullanabiliriz veya güvenmiyorsak oradan giriş yapmayabiliriz.
  • Chrome ve benzeri tarayıcılardaki gizli mod özelliğinde cookie veya çerez saklanmaz.Geçmiş kaydı tutulmaz.Ve saldırganlar nerelerde gezdiğinizi nelere ilginiz olduğunu öğrenmekte zorluk çekebilir.Facebook hesabımıza bu modda erişmekte bir güvenlik tedbiri olabilir.
  • Bu yazımızda çeşitli güvenlik tedbirlerini ve Facebook’un bize sunduğu güvenlik adımlarını incelemeye çalıştık.Her geçen gün kopamaz hale geldiğimiz sosyal medya platformlarını gerekilen miktarda ihtiyaç duyuldukça kullanmaya dikkat etmeliyiz.Mahremiyetimizi,özelimizi bu platformlarda fazla derecede açık edersek bunu kullanmaya çalışanlar olabilir.Bu yüzden daha dikkatli olmaya çalışalım sanal dünyada değil,gerçek yaşadığımız dünyada,toplumda sosyalleşmeye çalışalım…

TR | Facebook Hesap Güvenliği Murat TORAMAN

]]>
https://canyoupwn.me/tr-facebook-hesap-guvenligi/feed/ 1
TR | How to use GPG https://canyoupwn.me/tr-how-to-use-gpg/ https://canyoupwn.me/tr-how-to-use-gpg/#respond Tue, 12 Jul 2016 07:35:52 +0000 https://canyoupwn.me/?p=1811 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

the gnu privacy guard GnuPG veya GPG olarak bilinen GPL lisanslı şifreleme ve imzalama yazılımıdır.Özgür Yazılım Vakfının(Free Software Foundation) GNU projesinde yer alarak geliştirilmektedir.Bu projede yer alan yazılım çoğu Linux dağıtımında ön yüklü olarak gelmektedir. TrueCrypt yazımızda belirttiğimiz gibi güvenlik,gizlilik gün geçtikçe önemini arttırmakta ve bu konulara olan talep her geçen gün biraz daha önemli hale […]

TR | How to use GPG Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

a

the gnu privacy guard

GnuPG veya GPG olarak bilinen GPL lisanslı şifreleme ve imzalama yazılımıdır.Özgür Yazılım Vakfının(Free Software Foundation) GNU projesinde yer alarak geliştirilmektedir.Bu projede yer alan yazılım çoğu Linux dağıtımında ön yüklü olarak gelmektedir. TrueCrypt yazımızda belirttiğimiz gibi güvenlik,gizlilik gün geçtikçe önemini arttırmakta ve bu konulara olan talep her geçen gün biraz daha önemli hale gelmektedir. Verilerin saklanmasında,önemli verilerimizin transferinde gizliliği sağlamak amacıyla kullanılan GnuPG kullanışlı ve güvenilir yazılımlar arasında yerini almıştır. Kullanım alanları genellikle text dökümanları,e-postalar,dosya ve klasörler,disk bölümleridir.Bunları şifrelemek veya imzalamak için kullanılmaktadır. GnuPG’den bahsederken pgp ve Phil Zimmermann’a değinmeden geçemeyiz.Pgp(Pretty Good Privacy-Oldukça iyi mahremiyet) çok popüler olan ve dünyada yaygın şekilde kullanılan e-posta kriptolama yazılımıdır.1991 yılında Phil Zimmermann tarafından geliştirilen yazılım büyük bir başarı sağlamıştır. Bu başarı Phil Zimmermann’a 3 yıl boyunca fbi soruşturması ve nsa takibi gibi sıkıntıları da beraberinde getirmiştir.Zimmermann’ın aslında yaptığı sıradışı bir şey yoktur.Zimmermann önde gelen şirketlerin ve askeri amaçla kullanılan kriptografi teknolojilerini bireysel kullanıcıların hizmetine sunmuştur. Pgp ve Zimmermann konularına da şöyle bir değindikten sonra artık GnuPG kullanımına yavaş yavaş geçelim.

Varsayılan olarak komut satırında kullanıma sahip olan GnuPG çoğu GNU/Linux dağıtımlarında kurulu olarak gelmektedir.GPG ayrıca MAC OS X ve Microsoft Windows işletim sistemleri içinde derlenebilir.Her ne kadar komut satırında kullanım varsayılan olsada grafiksel arayüz ile kullanım için bir çok yardımcı yazılım geliştirilmiştir.Bu yazılımların birkaçını ve GnuPG hakkında daha çok bilgiyi aşağıdaki linkten inceleyebilirsiniz.
https://tr.wikipedia.org/wiki/GNU_Privacy_Guard
Ayrıca indirme,kurulum,kullanım gibi soru işaretlerinizde GPG nin kendi dökümanı olan Türkçe çeviri yapılmış kaynaklarını da şu adresten bulabilirsiniz:
https://www.gnupg.org/howtos/tr/GPGMinikNasil.html
İlk olarak çalışma mantığından bahsedelim.
GnuPG genel anahtar kriptografisini kullanmaktadır.Peki nedir bu genel anahtar kriptografisi?
Genel anahtar kriptografisi kullanılan bir sistemde kullanıcı bir anahtar çiftine sahiptir.Yani açmak gerekirse sistem bize bir özel(gizli tutulması gereken) anahtar ve birde genel anahtar sunar.Private Key(özel anahtar) ve Public Key(Genel anahtar)’e sahip oluruz. Public Key güvendiğimiz ve haberleşeceğimiz kişilerle paylaşılabilir.Private Key paylaşılmaz ve güvenlik açısından açığa çıkarılmaz.Anahtar oluşumu sırasında kullanıcının root yetkisine sahip olması tercih edilir.
GnuPG’nin kullandığı kriptolama algoritmalarına bir göz atalım:
-Blok Şifreleme(simetrik şifreleme algoritmaları):CAST5,Camellia,Üçlü Des,AES,Blowfish,Twofish.
-Asimetrik-anahtar şifrelemeleri:ElGamal ve RSA.
-Kriptografik sağlamalar:RIPEMD-160,MD5,SHA-1,SHA-2 ve Tiger.
-Dijital imzalar:Dijital imza algoritması ve RSA.
Bu algoritmaları birde ekran çıktısını göstererek doğrulayalım.

  • “gpg –version” komutu ile hem gpg yazılımımızın versiyonunu hemde kullandığı algoritmaları görebiliriz.

a

 

  • Bu algoritmalarıda gördükten sonra anahtar oluşturmaya başlayalım.
    “gpg –gen-key” komutu ile anahtarımızı oluşturmaya başlayabiliriz.Bu komutu girdiğimizde bizden hangi algoritma ile anahtar oluşturacağımızı sormaktadır.

a

 

  • Burdan anahtar tipimizi varsayılan 1 olarak seçip devam edelim.Bizden anahtar boyutunu istemektedir.Onada varsayılan olarak 2048 diyerek devam edelim.

a

 

  • Daha sonra karşımıza gelecek seçenekte iste oluşturacağımız anahtarın geçerlilik süresini belirlememizi istemektedir.0 yaparsak geçerliliğini hiç yitirmeyecek olan anahtar üretmiş oluruz. Diğer seçenekler zaten gün,ay,yıl olarak belirtilmiştir.0 diyerek devam ediyoruz ve ardından onay ekranından “y” ile onaylayarak devam ediyoruz.

a

 

  • Sonraki aşamada bizden ismimizi istemektedir.Girelim ve devam edelim.Daha sonra email adresimizi istemektedir onuda girelim.Bir sonraki aşamada ise bizden açıklama istemektedir.Daha sonradan hatırlayabileceğimiz ve anlayabileceğimiz bir açıklama girilmesi tavsiye edilir.Son aşamada değiştirmek istediğimiz alan olursa değiştirebiliriz.Her şey tamamsa (O)KAY seçeneği ile anahtar oluşumunu tamamlamaktayız.Son aşamada ise bizden passphrase oluşturmamızı istemektedir.Bu passphrase’i asla unutmayalım ve kaybetmeyelim verilerimizi decrypt ederken lazım olacaktır.Ayrıca passphrase’imizin uzun olması,harf veya karakter içermesi,kolay olmaması tavsiye edilir.Deneme olarak ‘canyoupwnme1’ vererek devam ediyoruz.Anahtar oluşturulmaya başlanmıştır.Ekran çıktılarına bir göz atalım.

a

 

  • Burda gördüğümüz gibi sürekli geçerli olacak anahtar onay aşamasından sonra bizden isim istemektedir(Real name kısmı).Daha sonra bizden email adresi istemektedir onuda girerek devam ettik.Daha sonra açıklama kısmımızıda yukarıda bahsettiğimiz şekilde doldurduk.Ve (O)kay ile anahtarımızı oluşturmaya başladık.
    Burda dikkat edilmesi gereken nokta ekran görüntüsündeki açıklamada belirttiği gibi anahtar oluşturma işlemi sırasında faremizi rasgele hareket ettirmeliyiz,tarayıcımızda gezebiliriz,boş bir ekranda klavyeden random girişler yapabiliriz.Peki bu bize neyi sağlar?Böyle bir uygulamayı TrueCrypt uygulamasında da anlatmıştık.Bu hareketler ile oluşturmak istediğimiz anahtara güçlü hashler sağlarız.Rasgele sayı üretiminde programa kaynak sağlar ve sistemin kararlı çalışmasında etkilidir.Gerekli işlemleri(hareketleri) yaparken ki ilerleyişimizde karşımıza şöyle bir ekran çıktısı gelmektedir.

 

a

 

  • Görüldüğü gibi ilk başta ihtiyacımız olan 208 byte hareketlerle 85 byte ihtayaca kadar düşürülmüştür.Bu aşamada belirttiğimiz aktiviteleri yapmaya aşağıdaki ekran çıktısını görene kadar devam ediyoruz.

a

  • Bu ekran çıktısını gördüğümüzde anahtar çiftimiz başarıyla oluşturulmuştur.
    Oluşturduğumuz anahtar çiftlerinin bilgilerini “gpg –list-key” komutu ile gözden geçirelim.

a

 

  • Oluşturduğumuz anahtar çiftinden public key tarihi ve açıklaması ile birlikte görmekteyiz.Şimdide gizli anahtarlarımızı “gpg –list-secret-keys” komutu ile görelim.

a

 

  • Şimdide sistemimizdeki anahtarı dışarıya aktaralım.
    “gpg –armor –output publickeyimiz.txt –export ‘canyoupwnme’ ” komutu ile public keyimizi çıktı olarak txt dosyasında oluşturduk.“gpg –output gizli_anahtar.gpg –armor –export-secret-key canyoupwnme” komutu ile de private keyimizi gpg türünde dosya olarak oluşturduk.Txt ve gpg dosya uzantılarını belirlememiz bizim elimizdedir bu yüzden 2 farklı örnekle göstermiş olduk.Şimdi oluşturduğumuz çıktılara bir göz atalım.a

 

  • Şimdide oluşturduğumuz anahtarları dosya kriptolamada kullanalım ve kriptoladığımız dosyayı decrypt edelim.
    “gpg –encrypt –armor -r canyoupwnme deneme.txt” komutu ile metin dosyamızı kriptoladık.

a

 

  • Bize “deneme.txt.asc” asc uzantılı kriptolanmış bir dosya olşturdu.Artık “deneme.txt” dosyamızı silebiliriz.Verilerimiz kriptolanmış asc uzantılı dosyamızda mevcut.
    Şimdi kriptolanmış dosyamızı decrypt edelim.Kullanacağımız komut çok basit.”gpg deneme.txt.asc” komutu ile decrypt etmeye başlarken bizden anahtarlama işlemi sırasında oluşturduğumuz önemli olarak belirttiğimiz passphrasemizi sormaktadır.”canyoupwnme1” olarak oluşturmuştuk giriyoruz ve dosyamızı decrypt ediyoruz.Sırasıyla ekran görüntülerine göz atalım.

a

 

  • Passphraseimizi girdikten sonra deneme.txt dosyamız decrypt edilecektir.

a

 

  • Görüldüğü üzere deneme.txt dosyamızı tekrar elde ettik. Yazımızda gpg anahtar oluşturma,anahtarları dışarıya aktarma,dosya kriptolama ve decrypt etme gibi örnekleri anlattık.

TR | How to use GPG Murat TORAMAN

]]>
https://canyoupwn.me/tr-how-to-use-gpg/feed/ 0
TR | Truecrypt https://canyoupwn.me/tr-how-to-install-and-use-truecrypt/ https://canyoupwn.me/tr-how-to-install-and-use-truecrypt/#respond Mon, 23 May 2016 23:28:59 +0000 https://canyoupwn.me/?p=2455 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

TrueCrypt Tanım:Açık kaynak kodlu olarak geliştirilen ücretsiz bir kriptolama yazılımıdır. Amaç:Tarihte ilk zamanlardan itibaren bilgi insan hayatında en önemli yerini almıştır.İnsanoğlu yaşamını devam ettirmek ve kolay bir hale getirmek için sürekli düşünerek,sorgulayarak bilgi elde etmeye çalışmıştr.Zamanla elde edilen bu bilgiler geliştirilerek günümüzde kullanılan teknolojilerin ortaya çıkmasına sebep olmuştur. Çağımızda ise bilgi güvenliği büyük bir önem […]

TR | Truecrypt Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

1

TrueCrypt

Tanım:Açık kaynak kodlu olarak geliştirilen ücretsiz bir kriptolama yazılımıdır.

Amaç:Tarihte ilk zamanlardan itibaren bilgi insan hayatında en önemli yerini almıştır.İnsanoğlu yaşamını devam ettirmek ve kolay bir hale getirmek için sürekli düşünerek,sorgulayarak bilgi elde etmeye çalışmıştr.Zamanla elde edilen bu bilgiler geliştirilerek günümüzde kullanılan teknolojilerin ortaya çıkmasına sebep olmuştur.
Çağımızda ise bilgi güvenliği büyük bir önem kazanmıştır.Bilginin kötüye kullanılmasını önlemek amacıyla bu alanda yeni teknoloji arayışlarına girilmiştir.Bilgilerin depolanması,bunların iletilmesi gibi alanlarda güvenlik artık önemli bir gereksinim haline gelmiştir.Bu alanlardan bilgilerin depolanması konusunda karşımıza birçok yazılım çıkmaktadır.Bunlardan biri ise TrueCrypt yazılımıdır.TrueCrypt  verilerinizi saklamak,kriptolamak için geliştirilmiş bir yazılımdır.Verilerinizi depoladığınız depolama cihazınızın tamamını ya da belirttiğiniz bir bölümünü çeşitli algoritmalar(mantık,yöntemler) kullanarak şifreli bir hale dönüştürebilmektedir.

Tarihçe:TrueCrypt 1.0 versiyonu ile 2004 yılı Şubat ayında piyasaya sürülmüştür.Piyasaya sürüldükten sonra zaman içerisinde geliştirilmeye devam edilmiştir.Ve en son versiyon olarak 7.2 versiyonu bilinmektedir.

A)Versiyon Çıkış Tarihleri Ve Bazı Önemli Değişiklikler:

-Versiyon 1.0 2 Şubat 2004’te yayımlandı.Windows 98,ME,2000 ve XP sistemleri desteklediği öne sürüldü.
-Versiyon 1.0a 3 Şubat 2004’te Windows 98 ve ME sistemlerden desteğini çekti.
-Versiyon 2.0 7 Haziran 2004 AES şifreleme algoritması eklendi.
-Versiyon 2.1 21 Haziran 2004 RİPEMD-160 hash algoritması eklendi,NTFS birimleri oluşturma yeteneği eklendi,bir birim boyutu limiti 2048 GB ‘a kadar geliştirildi.
-Versiyon 2.1a 1 Ekim 2004 IDEA şifreleme algoritması kaldırıldı,Sourgeforge.net resmi TrueCrypt alan adı sahibi oldu fakat Mayıs 2005’te tekrar truecrypt.org sitesine taşındı,Sourgeforce web sitesi buraya yönlendirmeye başladı.
-Versiyon 3.0 10 Aralık 2004 Serpent ve Twofish algoritmaları eklendi.
-Versiyon 3.1 22 Ocak 2005 çeşitli iyileştirmeler ve hata düzeltmeleri yapıldı.
-Versiyon 4.0 1 Kasım 2005 Önemli sayılabilecek bir olay olan Linux x86-x64 sistemlerine destek getirildi,Whirlpool hash algoritması eklendi,ve dil paketleri desteği getirildi.
-Versiyon 4.1 25 Kasım 2005 On-the-fly depolama şifrelemesi için CBC modunda daha güvenli olan LRW modu eklendi.(LRW:Liskov-Rivest-Wagner)
-Versiyon 4.2 17 Nisan 2006 Linux ve Windows sistemler için çeşitli geliştirmeler yapıldı.
-Versiyon 4.3 19 Mart 2007 Windows Vista desteği getirildi.
-Versiyon 5.0 5 Şubat 2008 Mac OS X desteği getirildi,Linux ve Windows sistemler için çeşitli geliştirmeler ve düzenlemeler yayınlandı.
-Versiyon 5.1 10 Mart 2008 Windows sistemlerde hazırda bekleme desteği eklendi ve sistem bölümlerini şifreleme yeteneği eklendi,Mac OS X ve Linux sistemlerde yeni bölümler için komut satırı ayarları eklendi,AES şifreleme performansı geliştirildi.
-Versiyon 6.0 4 Temmuz 2008 Deniable şifreleme desteği getirildi,Çoklu işlemci sistemleri ve çok çekirdekli sistemler için geliştirmeler yapıldı,Mac OS X ve Linux sistemlerde gizli birimleri oluşturma ve şifreleme desteği getirildi.
-Versiyon 6.0a 8 Temmuz 2008 Uygun olmayan yonga setleri yüklü olan sistemlerde sistem bölümü/sürücüsü şifrelemek istersek hatalarla karşılaşılıyordu ve bunun tespiti yapıldı,Diğer bazı hatalar onarıldı.
-Versiyon 6.1 31 Ekim 2008 Windows Vista için geliştirmeler yapıldı,Windows 2008 desteği eklendi,Önyükleyici özelleştirilebilir hale getirildi,Linux ve  Mac OS X sistemlere şifreli Windows sürücülerini çıkartma desteği eklendi.
Versiyon 6.1a 1 Aralık 2008 Bazı hata düzeltmeleri ve iyileştirmeler yapıldı,Güvenlik geliştirmeleri eklendi.
Versiyon 6.2 11 Mayıs 2009 Windows sistemlerde geliştirmeler yapıldı.
Versiyon 6.2a 15 Haziran 2009 Bazı iyileştirmeler ve hata onarımları sağlandı.
Versiyon 6.3 21 Ekim 2009 Windows 7 ve Mac OS X 10.6 SnowLeopard desteği getirildi.
Versiyon 6.3a 23 Kasım 2009 Belirtilmeyen küçük bazlı iyileştirmeler ve hata düzeltmeleri yapıldı.
Versiyon 7.0 19 Temmuz 2010 AES kısmı hızlandırıldı.
Versiyon 7.1 1 Eylül 2011 Mac OS X 10.7 Lion 64-bit ve 32-bit sistemler ile tam uyumluluk sağlandı,İyileştirmeler ve hata onarımları sağlandı.
Versiyon 7.1a 7 Şubat 2012 Windows,Mac OS X,Linux sistemler için iyileştirmeler ve hata düzeltmeleri yapıldı.
Versiyon 7.2 28 Mayıs 2014 Program özellikleri sadeleştirildi ve kısırlaştırıldı.Ve tüm işletim sistemlerinden destek çekildi.Program geliştirmeleri durduruldu.

B)Sonlandırılma Senaryoları:
Kurumsal ve bireysel olarak popüler bir şekilde kullanım alanı olan TrueCrypt yazılımının ömrünün sonlanmasıda bir o kadar popüler ve kafa karıştırıcı olmuştur.
Son versiyonlarındaki güvenlik açıkları sorunlarını güncellemelerle çözen geliştirici ekibi 2014 Mayıs ayında geliştirmeyi ve güncellemeleri durduklarını ilan etmiştir.Ayrıca Google Project Zero mühendislerinden James Forshow twitter üzerinden açıkladığı bildiride iki farklı güvenlik açığı bulduğunu bildirmiştir.
Microsoft XP’ye desteğini durdurmasının ardından 2014 Mayıs ayında TrueCrypt sitesinde bir bildirim yayınlayarak desteğini sonlandırdığını duyurmuştur.
Bu konu hakkında çeşitli spekülatif senaryolar üretilmeye başlanmıştır.Çok popüler olan şifreleme yazılımı yaptığı güvenlik testlerini başarıyla geçtiğini duyurmasından sonra olay yaratan bir açıklamayla desteği sonlandırması gerçekten de akıllarda soru işareti bıraktı.
Amerika Birleşik Devleti’nin kriptoloji konusunda uzman olan istihbarat teşkilatı NSA istihbarat toplama noktasında birçok yazılım ve donanıma müdahele ettiği bilinmektedir.TrueCrypt’in bu açıklamasından sonra NSA’e backdoor sağladığı düşünceleri konuşulmaya başlanmıştır.
Açık kaynak kodlu bir yazılım olan TrueCrypt yazılımcıların ve analistlerin testlerine zaten dahil olmaktaydı.Kaynak kodları incelendiğinde backdoor bulunmadığı belirtilmiştir.Fakat yazılımların açık kaynak kodlu olması herhangi bir backdoor bulundurmayacağını garanti edemez.Açıklanan bildiride TrueCrypt artık yazılımın güvenli olmadığını ve kullanıcıların Bitlocker yazılımını kullanması gerektiğini önermektedir.
Herhangi bir güvenlik konusunda Microsoft’un devletlerle işbirliği yaptığı bilinmektedir.Bu açıklamadan sonra bir grup analistin fikri de TrueCrypt’in NSA’e backdoor sağlamadığı için baskılarla karşılaştığını ve sonlandırılmaya yönlendirildikleri fikri ortaya atılmıştır.Ayrıca işin ticari yönüde görmezden gelinmemelidir.Ücretli olan kapalı kaynaklı yazılımlar tercih edilmesi içinde bir baskı oluşturulmuş olabilir.
Bu senaryolara rağmen TrueCrypt sonlanma hikayesi net olarak bilinmemektedir.
Edward Snowden’den Cory Doctorow’a kadar alanın pek çok ünlü isminin de gözdesi olan TrueCrypt böylece 2014’ün Mayıs ayında ömrünü tamamlamıştır.

Şimdi TrueCrypt yazılımının başlıca özelliklerini belirttikten sonra kurulum ve kullanım aşamasına geçelim.

TrueCrypt Başlıca Özellikler:

-Tasarımda kullanılan programlama dilleri:C,C++,Assembly’dir.
-Yazılımın kullandığı kriptolama algoritmaları şunlardır;

  • AES
  • SERPENT
  • TRIPLE DES
  • TWOFISH
  • AES-TWOFISH
  • AES-TWOFISH-SERPENT
  • SERPENT-AES
  • SERPENT-TWOFISH-AES
  • TWOFISH-SERPENT

-On-the-fly kriptolama yöntemini kullanmaktadır.Yani kriptolama otomatik,gerçek zamanlı ve hızlıdır.Kriptolama sonrasında kriptolanan sürücü veya container hemen kullanılabilir.Kriptolanmış containerda veri transferinde bir aksaklık yaşanmaz yani işlemler hızlı bir şekilde gerçekleştirilebilir.
-Yazılım kriptolanmış bir sanal disk oluşturur ve onu gerçek fiziksel bir diskmiş gibi sisteme entegre edebilir.
-Flash disk ya da hard disk gibi bütün bir bölümü ya da depolama aygıtını kriptolayabilir.
-Bazı işlemciler “Hardware-Accelerated”(Donanım Hızlandırma) AES kriptografisini desteklemektedir.Özellikle modern işlemcilerin desteklediği bu özellik ile normalden 4 veya 8 kat hızlı kriptolama işlemi yapılabilmektedir.
-Kullandığı AES,SERPENT,TWOFISH kriptolama algoritmalarının 2’li ve 3’lü kombinasyonları ile kriptolama yapabilmekte ve bu sayede güvenliği arttırmaktadır.
-Header ve footer bilgilerini içerisinde barındırmaz.Bu yüzden kriptolanan containerın hangi algoritma ile kriptolandığı bilinmemektedir.Ayrıca oluşturulan container TrueCrypt dosyası olup olmadığı dahi bilinemeyebilir.
-TrueCrypt kendi anahtarlarını ram de saklar.Sistem enerjisi kesildiğinde DRAM birkaç saniyeliğine de olsa veri içeriklerini koruyacaktır.
-Performans olarak Paralizasyon ve Pipeling özellikleri devreye girer ve kullanımı kolaylaştırma çalışmaları yapar.(Paralizasyon:Çok çekirdekli işlemci sistemlerinde iş yükünü tüm çekirdeklere eşit şekilde dağıtarak performansı arttırmaya yönelik girişimleri uygular.Pipeling:Kriptolanmış sürücüden veri okunmaya başlandığı andan itibaren verinin ramdeki bulunduğu adrese zıplar.Siz bu adresteki verileri okurken bir sonraki adrese gidilir ve veriler analiz edilmeye başlanır.Yani siz verileri okurken pipeling sonraki adresteki verileri sizin için hazırlamaya başlar.Bir nevi program counter gibi çalışmaktadır.Böylece hız açısından performans arttırmaya yönelik girişimler uygulanmış olur.)
-Bir diğer özellik ise hidden volume özelliğidir.Bu kısımda Standart volume yanında hidden volume oluşturulur.Bu 2 alanın parolaları ayrıdır.Standart volume kısmında deşifre edebileceğiniz verileri depolayabilirsiniz.Acil ve olağan dışı durumlarda parolayı deşifre etmeniz gerektiğinde standart volume parolasını vererek güvenlik atlatma-aldatma yöntemini kullanabilirsiniz.Bu şekilde hidden volume kısmındaki veriler deşifre olmamış olur.
-Yazılımın kullandığı hash algoritmaları;

  • RIPEMD-160
  • SHA-512
  • WHIRLPOOL

-Tüm algoritmalarda 256-bit kriptolama vardır.
-Ayrıca Windows sistemlerde işletim sistemide kriptolanabilme özelliğine sahiptir.Sistem sürücüsünü kriptolayarak sisteminizi izinsiz kullanımlara karşı güvenli kılabilirsiniz.Bu seçenekte belirlediğiniz parolayı sistemi boot ederken kullanıcıya sormaktadır.
-Flexnet Publisher ve Safecast üçüncü parti yazılımları TrueCrypt bootloader(önyükleyici) kullanan Windows sürücü/bölümlerine zarar verebilmektedir.Ve uyum sorunu yaşanabilir.Bu da Windows sistemlerde TrueCrypt önyükleyicisinin çalışmasına engel olabilir ve sisteme erişim sağlanamayabilir.

TrueCrypt’in bazı önemli özelliklerinden bahsettikten sonra kurulum ve kullanım aşamasına geçebiliriz.

Kurulum Aşaması:
-İlk olarak kurulum dosyasını indirebileceğimiz kaynaklar şunlardır;
Adres 1: https://www.grc.com/misc/truecrypt/truecrypt.htm
Adres 2: https://github.com/AuditProject/truecrypt-verified-mirror/tree/master/Linux
Adres 3: https://www.truecrypt71a.com/downloads/
-Bu adreslerden sisteminize uyumlu olan kurulum dosyasını indirip kurulum yapabilirsiniz.
-Bizim inceleme yapacağımız işletim sistemi Kali 2.0 64-bit’tir.
-Verdiğimiz adreslerden kurulum dosyasını indiriyoruz ve eğer tar şeklinde arşivlenmişse arşivden çıkarıyoruz.

.truecrypt-7.1a-setup-x64 dosyasını indirdik ve Desktop dizinine taşıdık.

1.Adım
-Terminal ekranından kurulum dosyasını çıkardığımız dizine gidiyoruz ve kurulumu başlatacak komutu giriyoruz.

./truecrypt-7.1a-setup-x64

1

Bu şekilde kurulumu başlatıyoruz.

 

2.Adım

-Kurulum başladıktan sonra karşımıza bir xmessage ekranı gelmektedir.Bu ekrandan “Install TrueCrypt”i seçelim.

1

 

3.Adım

-Daha sonra karşımıza Lisans sözleşmesi onay ekranı gelmektedir.Accept seçeneği ile onaylarak bir sonraki aşamaya geçelim.

1

 

4.Adım

-Karşımıza gelen ekranda TrueCrypt’i kaldırmak istersek çalıştıracağımız dosyayı göstermektedir.Bu dosyayı /usr/bin/ dizini içinde bulabiliriz.Burdan OK seçerek devam ediyoruz.

1

 

5.Adım

-Bu adımda kurulum tamamlanmaktadır.”Enter”a basmamızı istemekte ve kurulumu sonlandırmamızı istemektedir.Enter’a basıyoruz ve kurulumu tamamlıyoruz.

1

-5 Adımda kurulumu tamamladık.Şimdi programımızı çalıştıralım ve kullanıma geçelim.

 

 

Kullanım Aşaması:
1.Adım

-İlk olarak programı terminal ekranından çalıştıralım.Terminal ekranında “truecrypt” yazıp enter’a basarak programı çalıştırabiliriz.

1

 

2.Adım

-Program çalışmaya başlamıştır.Karşımıza programın arayüz ekranı gelmektedir.

1

 

3.Adım

-“Create Volume” seçip yeni bir container oluşturalım.Bu seçeneğe tıkladıktan sonra karşımıza şu ekran gelmektedir.

1

-Burada bize 2 seçenek sunulmaktadır.

-Create an encrypted file container:Yeni bir container oluşturarak bu alanda kriptolama işlemi yapabilmekteyiz.Çoğunlukla tercih edilen seçenektir.Containerın boyutunu ilerde ayarlayacağız.Burada oluşturduğumuz containerı ilerideki adımlarda göstereceğimiz şekilde ana menüden ekleyerek sistemimize entegre edeceğiz.
-Create a volume within a partition/drive:Bu seçenekte ise herhangi bir bölümü veya sürücüyü örneğin flash belleğimizi kriptolayabiliriz.İstersek gizli bir container oluşturabiliriz.
-Biz 1.seçeneği tercih edip next diyerek devam ediyoruz.

 

4.Adım

-Bu kısımda bize yeniden 2 seçenek sunulmaktadır.

1

-Standart TrueCrypt volume:Bu seçenekte standart bir container oluşturup kriptolama işlemi yapılmaktadır.
-Hidden TrueCrypt volume:Bu seçenekte ise özelliklerde değindiğimiz gizli container kriptolaması yapılmaktadır.Acil ve olağan dışı durumlarda bu container’ı seçebiliriz.
-1.seçeneği tercih ederek next diyoruz ve devam ediyoruz.

 

5.Adım

-Bu kısımda bizden container dosyasının oluşturulacağı yolu belirtmemizi istemektedir.

1

-Biz /root/Desktop yoluna “deneme” isimli container dosyası oluşturuyoruz.Siz istediğiniz dizine oluşturabilirsiniz.Bunları belirttikten sonra save’e tıklıyoruz.Ve karşımıza şu ekran gelmektedir.

1

-Burdan next diyerek devam ediyoruz.

 

6.Adım

-Bu kısımda hangi kriptolama algoritmasını ve hash algoritmasını kullanmak istediğimiz sorulmaktadır.Ayrıca seçtiğimiz algoritmayı test edebiliriz.Buna ek olarak Benchmark seçeneği ile sistemimizi sınayabilir hangi performansı alabildiğimizi görebiliriz.

1

-SHA-512 hash algoritması daha güvenli bir algoritma olduğu için biz onu seçiyoruz.Encryption Algorithm’de ise AES algoritmasını seçiyoruz.Bu kısımdaistediğiniz algoritma tercihlerinizi seçebilirsiniz.Next diyerek devam ediyoruz.

1

 

7.Adım

-Bu kısımda oluşturmak istediğimiz container boyutunu belirtiyoruz.İstediğimiz büyüklükte olabilir.

1

 

8.Adım
-Bu kısımda oluşturacağımız container’a parola atamaktayız.Program 64 karaktere kadar olan parolaları kabul etmektedir.20 karakterden az olan parolalarda program uyarı vermektedir ve tavsiye etmemektedir.Biz deneme olduğu için parolayı “12345” olarak girmekteyiz ve next diyerek devam ediyoruz.Burada ayrıca daha önceden oluşturduğunuz key file’ı(anahtar dosyasını) da kullanabilirsiniz.Parolamız kısa olduğu için uyarı vermektedir yes diyerek devam ediyoruz.

1

1

 

9.Adım
-Bu kısımda ise oluşturacağımız containerın dosya yapısını seçmemiz istenmektedir.Linux Ext4 diyerek devam ediyoruz.

1

 

10.Adım
-Bu kısımda ise bize 2 seçenek sunulmaktadır.İlk seçenek oluşturduğumuz container diğer işletim sistemlerinde de çıkartılabilir olmasıdır.İkinci seçeneğimiz ise sadece Linux sistemlerde entegre edilebilir olmasıdır.İkinci seçeneği tercih edip devam ediyoruz.

1

 

11.Adım
-Bu kısımda artık containerımızı oluşturma aşamasına gelmekteyiz.
-Important kısmındaki önemli açıklamada şunu belirtmektedir;
-Önemli:Bu pencere içinde mouse’u olabildiğince çok ve rastgele şekilde hareket ettiriniz.Böylece rastgele havuz içinde daha karmaşık hash üretebilirsiniz.Bu işlem kriptolama anahtarlarının kriptografik gücünü önemli ölçüde arttırmaktadır.

1-Yeteri kadar mouse’u hareket ettirdikten sonra format seçeneği ile container dosyamızı oluşturmaya başlayabiliriz.

1

-Tamamlanma aşamasını görmekteyiz.Program kriptolama işlemini gerçekleştirmektedir.

1

-İşlem tamamlandığında başarı ile tamamlandı bildirisi gelmektedir.Ok diyerek geçiyoruz ve boyutunu belirlediğimiz,mount ederken istenilen parolayı atadığımız container dosyamız belirttiğimiz dizinde oluşmaktadır.

 

12.Adım
-Programın ana menüsüne dönüyoruz ve oluşturduğumuz container dosyasını kullanmaya başlıyoruz.Ana menüden Select File seçeneği ile oluşturduğumuz dosyayı seçiyoruz.

1

1

 

13.Adım
-Dosyamızı seçtikten sonra istediğimiz bir slotu seçiyoruz ve dosyamız artık mount edilmeye hazır hale gelmektedir.Mount seçeneği ile oluşturduğumuz container dosyamızı sisteme entegre ediyoruz.Bizden belirlediğimiz parolayı girmemiz isteniyor parolayı girip ok diyoruz.

1

 

14.Adım
-Ve oluşturduğumuz container kullanıma hazırdır.Artık istediğimiz dosyaları bu container içine depolayabiliriz ve dilediğimiz gibi kullanabiliriz.

1

-Kullanımı sonlandırdıktan sonra Dismount All seçeneği ile sisteme entegre ettiğimiz containerı devre dışı bırakabiliriz ve istediğimiz zaman mount ederek kullanabiliriz.

 

Kaldırma Aşaması:
-Bu kısımda programı nasıl kaldıracağımızı gösteriyoruz.
-Aşağıdaki görüntüdeki komutlar ile programı kolay bir şekilde kaldırabiliriz.

1

1

 

1

 

Bu yazımızda TrueCrypt programını ayrıntılı olarak incelemeye çalıştık.Elbette geliştiriciler desteğini program üzerinden çektikten sonra TrueCrypt’e olan güven yerini yeni kriptolama araçları arayışlarına bıraktı.Ve bu noktada adeta TrueCrypt’in küllerinden doğan yeni bir yazılım üst sıralara gelme noktasında önemli bir adım attı.Bu program VeraCrypt!Bu program gerek TrueCrypt ile uyumlu olarak çalışması,gerek kriptolama performansı ile yeni bir gözde kriptolama programı olma yolunda ilerlemektedir.Temeli TrueCypt programına dayanan VeraCrypt IDRIX firması tarafından TrueCrypt kaynak kodları kullanılıp geliştirilerek oluşturulmuştur.TrueCrypt programının geliştirmeleri durdurmasından sonra üretilen program,IDRIX tarafından geliştirmelere devam edeceği görülüyor.TrueCrypt ile aynı özelliklere sahip olan bu yazılıma NSA tarafından müdahele edilecekmi o da ayrı bir konu.Sonuç olarak hazin bir TrueCrypt sonlanış hikayesinden sonra parlayan VeraCrypt yazılımı kullanıcılara bir süre daha yardım edecek gibi gözüküyor…

TR | Truecrypt Murat TORAMAN

]]>
https://canyoupwn.me/tr-how-to-install-and-use-truecrypt/feed/ 0