Sızma Testi Metodolojisi & Yol Haritası

Merhabalar! Bu yazımda öğretim hayatımdan ve katılmış olduğum eğitimlerden vb. elde ettiğim dokümanlardan derlediğim ve sonrasında gerçekleştirdiğim sızma testleri sırasında öğrendiğim bilgileri de üzerine ekleyerek oluşturmuş olduğum Sızma Testi Metodolojisi ve Yol Haritası dokümanını sizlerle paylaşıyor olacağım.

Gerçekleştirdiğim pentest projeleri sürecinde zaman zaman benimde yol haritası olarak kullandığım bu dokümanın ana başlıkları aşağıdaki gibidir:

  1. Bilgi Toplama
    1. Pasif Bilgi Toplama
    2. Aktif Bilgi Toplama
    3. Siber İstihbarat(CTI) Siteleri
  2. Açıklık Taraması
  3. Ağ Keşfi Taraması
  4. Zafiyet İstismarı
  5. İstismar Sonrası
  6. Hak Yükseltme
    1. Windows Sistemler üzerinde Hak Yükseltme
    2. Linux Sistemler üzerinde Hak Yükseltme
      1. Temel olarak nelere bakılmalı?
      2. Bilgi Toplama
      3. Yapılandırma Eksiklikleri Kontrolü
      4. Açık Metin Parola Kullanımı
      5. Araçlar
    3. Active Directory (Domain) üzerinde Hak Yükseltme
  7. Raporlama

Bu başlıklar içerisinde; Sızma testi sırasında kullanılabilecek olan web siteleri, script & toollar ve farklı teknik bakış açıları gibi bilgiler yer almaktadır.

1. Bilgi Toplama

1.1 Pasif Bilgi Toplama

1.2 Aktif Bilgi Toplama

  • DNS Sorguları
  • Port Taramaları
  • SMB bilgi toplama
  • SMTP bilgi toplama
  • SNMP bilgi toplama
  • Aktif sistemleri tespiti
  • Kullanılan portların tespiti
  • Kullanılan OS bilgisi
  • Kullanılan servis bilgisi
  • Kullanulan uygulamaların tespiti
  • Kullanılan Firewall, WAF vb cihaz bilgisi
  • Brute force ile dizinlerin tespiti
  • DNS istekleri ile subdomainlerin tespiti
  • Zone transferi ile dns kayıtlarının elde edilmesi
  • Ağ haritasının tespiti

1.3 Siber İstihbarat(CTI) Siteleri

2. Zafiyetlerin Tespiti

  • Nmap
  • Msfconsole
    • Auxiliary Modülleri
  • OpenVAS, Nessus, Acunetix vb. ticari yazılımlar
  • Bütün portlar kontrol edilmeli
  • Basit & Varsayılan Parola denemeleri
    • FTP, SSH, Telnet, HTTP, SNMP, SMB, IPMI, SQL (MYSQL, MSSQL), VNC, X11
  • Web Kontrolleri
    • Dirb, Nikto
  • Dosya Paylaşım Kontrolleri
    • FTP, SMB, NFS
  • E-Posta Kontrolleri
    • SMTP, POP3, IMAP
    • Metasploit Modülü (auxiliary/scanner/smtp/smtp_relay)
  • SNMP Bilgi Toplama
    • snmpwalk
    • Metasploit Modülü (auxiliary/scanner/snmp/snmp_enum)
  • SMB Bilgi Toplama
    • Enum4linux (Null session kontrolü)
    • Metasploit Modülü (auxiliary/scanner/smb/*)
  • SMTP Bilgi Toplama
    • EXPN/VRFY
    • Metasploit Modülü (auxiliary/scanner/smtp/smtp_enum)
  • NetBios Bilgi Toplama
    • Metasploit Modülü (auxiliary/scanner/netbios/nbname)
  • Otomatik Araçlar
    • Netsparker
    • IBM App Scan
    • Nexpose
    • Nikto
    • Vega
    • JoomScan
    • Acunetix
    • Metasploit
    • Open VAS
    • SQLMap
    • Nessus
    • Sparta
    • WPScan
  • Manuel Araçlar
    • BurpSuite
    • OWASP ZAP
    • Firefox Add-On
      • Firefox Developer
      • Developer Tools
      • Hacker Tools Bar
      • Cookie Editor
      • Firebug

3. Ağ Keşfi Taramaları

  • Nmap
    • nmap -Pn -sSV -p- -A -iL kapsam.txt -oA nmapSonuc -vvv
    • nmap -Pn -sSV -p- -A -iL 10.0.0.0/24 -oA nmapSonuc -vvv
  • Netdiscover
    • netdiscover -i -r 10.0.0.0/24
  • Masscan
    • masscan 10.0.0.0/24 ‐‐top-ports 100 ––rate 100000
    • masscan 10.0.0.0/24 -p1-65535

4. Zafiyetlerin İstismar Edilmesi

  • Metasploit
    • Exploit Modülleri
  • Exploit-DB
  • Nessus NASL
  • Manuel İstismarlar
  • Antivirüs Atlatma
    • Msfvenom
    • Veil-Evasion
    • Powershell
    • Shellter

5. İstismar Sonrası Yapılabilecekler

6. Hak Yükseltme (Privilege Escalation)

6.1 Windows Sistemler üzerinde Hak Yükseltme

  • Bilgi Toplama
    • systeminfo | findstr /B /C:”OS Name” /C:”OS Version”
    • hostname
    • echo %username%
    • net users
    • netstat -ano
    • schtasks /query /fo LIST /v
    • tasklist /SVC
    • net user
    • ipconfig /all
    • route print
  • Yama Eksiklikleri
  • Yapılandırma Eksiklikleri
    • System32’ye yazma izni
    • Bütün kullanıcı dizinlerine yazma izni
    • Exe Hakları
    • SYSTEM / Administrator olarak koşan servisler
    • Uygulama(servis) yapılandırma eksiklikleri
    • accesschk.exe -ucqv Spooler
    • accesschk.exe -uwcqv “Authenticated Users” *
  • Düz Metin Parola Kullanımı Kontrolleri
    • Dosya
    • Registry
  • Kullanılabilecek Araçlar
    • Meterpreter (getsystem, bypassuac)
    • windows-privesc-check
    • PowerUp
    • wmic_info.bat

6.2 Linux Sistemler üzerinde Hak Yükseltme

6.2.1 Temel olarak nelere bakılmalı?

  • Bilgi Toplama
    • İşletim sistemi sürümleri kontrol edilmeli
    • Kernel sürümü kontrol edilmeli
    • Yüklü paketler, programlar ve servisler kontrol edilmeli. Eski sürümlerden kaynaklı zafiyetler barındırıyor olabilir.
  • Yama eksiklikleri
  • Yapılandırma eksiklikleri
    • /root/ klasörüne yazma izni
    • Bütün kullanıcı dizinlerine yazma izni
    • Çalıştırılabilir dosya hakları
    • root olarak koşan servisler
    • Uygulama (servis) yapılandırma eksiklikleri
  • Basit/varsayılan parola kullanımı
  • Açık metin parola kullanımı

6.2.2 Bilgi Toplama

  • Dağıtım türü nedir, versiyonu nedir?
    • cat /etc/issue
    • cat /etc/*-release
    • cat /etc/lsb-release
    • cat /etc/redhat-release
  • Kernel versiyonu nedir?
    • cat /proc/version
    • uname -a
    • uname -mrs
    • rpm -q kernel
    • dmesg | grep linux
    • ls /boot | grep vmlinuz-
  • Çevresel değişkenlerden öğrenilebilecekler
    • cat /etc/profile
    • cat /etc/bashrc
    • cat ~/.bash_profile
    • cat ~/.bashrc
    • cat ~/.bash_logout
  • Hangi servisler çalışıyor? Hangi servisler hangi kullanıcı ayrıcalıklarına sahip?
    • ps aux
    • ps -ef
    • top
    • cat /etc/services
  • Hangi servisler root kullancısı ile çalışıyor? Hangi versiyona sahipler, şuan çalışıyorlar mı?
    • ls -alh/usr/bin
    • ls -alh/sbin/
    • dpkg -l
    • rpm -qa
    • ls -alh /var/cache/apt/archiveso
    • ls -alh /var/cache/yum/
  • Biz kimiz, sistemde kim oturum açtı, kim ne yapabilir?
    • id
    • who
    • last
    • cat /etc/passwd | cut -d: -f1 #kullanıcıları listele
    • grep -v -E “^#” /etc/passwd/ | awk -F: ‘$3 == 0 { print $1}’ #Süperkullanıcıları listele
    • awk -F: ‘($3 == “0”) {print}’ /etc/passwd #Süperkullanıcıları listele
    • cat /etc/sudoers
    • sudo -l
  • Hangi hassas dosyalar bulunabilir?
    • cat /etc/passwd
    • cat /etc/group
    • cat /etc/shadow
    • ls -alh /var/mail/
    • ls -alh /var/mail/
    • cat /var/apache2/config.inc
    • cat /var/lib/mysql/mysql/user.MYD
    • cat /root/anaconda-ks.cfg
  • Hangi yazılım dilleri kurulu, yüklü?
    • find / -name perl*
    • find / -name python*
    • find / -name gcc*
    • find / -name cc*
  • Nasıl dosya yükleyebilirim?
    • find / -name wget
    • find / -name nc*
    • find / -name netcat*
    • find / -name tftp*
    • find / -name ftp*

6.2.3 Yapılandırma Eksiklikleri Kontrolü

  • /root/ klasörüne yazma izni
  • Bütün kullanıcı dizinlerine yazma izni
  • Çalıştırılabilir dosya hakları
  • root olarak koşan servisler
  • Uygulama(servis) yapılandırma eksiklikleri
  • Hizmet ayarlarından herhangi biri yanlış yapılandırıldı mı? Zafiyetli eklentiler var mı?
    • cat /etc/syslog.conf
    • cat /etc/chttp.conf
    • cat /etc/lighttpd.conf
    • cat /etc/cups/cupsd.conf
    • cat /etc/inetd.conf
    • cat /etc/apache2/apache2.conf
    • cat /etc/httpd/conf/httpd.conf
    • cat /opt/lampp/etc/httpd.conf
    • ls -aRl /etc/ | awk ‘$1 ~ /^.r./
  • Hangi işlerin planlandığı ?
    • crontab -l
    • ls -alh /var/spool/cron
    • ls -al /etc/ | grep cron
    • ls -al /etc/cron-
    • cat /etc/at.allow
    • cat /etc/at.deny
    • cat /etc/cron.allow
    • cat /etc/cron.deny
    • cat /etc/crontab
    • cat /etc/anacrontab
    • cat /var/spool/cron/crontabs/root
  • Kullanıcı ne yapıyor? Açık metin olarak parola var mı?
    • cat ~/.bash_history
    • cat ~/.nano_history
    • cat ~/.atftp_history
    • cat ~/.mysql_history
    • cat ~/.php_history
  • Hangi kullanıcı bilgilerine ulaşılabilir?
    • cat ~/.bashrc
    • cat ~/.profile
    • cat /var/mail/root
    • cat /var/spool/mail/root
  • Private-Key bilgileri bulunabilir mi?
    • cat ~/.ssh/authorized_keys
    • cat ~/.ssh/identify.pub
    • cat ~/.ssh/identify
    • cat ~/.ssh/id_rsa.pub
    • cat ~/.ssh/id_rsa
    • cat ~/.ssh/id_dsa.pub
    • cat ~/.ssh/id_dsa
    • cat /etc/ssh/ssh_config
    • cat /etc/ssh/sshd_config
    • cat /etc/ssh/ssh_host_dsa_key.pub
    • cat /etc/ssh/ssh_host_dsa_key
    • cat /etc/ssh/ssh_host_rsa_key.pub
    • cat /etc/ssh/ssh_host_rsa_key
    • cat /etc/ssh/ssh_host_key.pub
    • cat /etc/ssh/ssh_host_key
  • /etc/ dizinine hangi yapılandırma dosyaları yazılabilir?
    • ls -aRl /etc/ | awk ‘$1 ~ /^.w./’ 2>/dev/null #Herhangi biri
    • ls -aRl /etc/ | awk ‘$1 ~ /^..w/’ 2>/dev/null #Owner(Sahip)
    • ls -aRl /etc/ | awk ‘$1 ~ /^…..w/’ 2>/dev/null #Grup
    • ls -aRl /etc/ | awk ‘$1 ~ /^.w./’ 2>/dev/null #Diğer
    • ls -aRl /etc/ | awk ‘$1 ~ /w.$/’ 2>/dev/null #Herhangi biri
    • find /etc/ -readable -type f 2>/dev/null #Herhangi biri
    • find /etc/ -readable -type f -maxdepth 1 2>/dev/null # Herhangi biri
  • /var/ dizininde neler bulabiliriz ?
    • ls -alh /var/log
    • ls -alh /var/mail
    • ls -alh /var/spool
    • ls -alh /var/spool/lpd
    • ls -alh /var/lib/pgsql
    • ls -alh /var/lib/mysql
    • cat /var/lib/dhcp3/dhclient.leases
  • Web servislerinde gizlenmiş ayar(.config) dosyaları var mı? Veritabanı bilgisine sahip bir ayar(.config) dosyası var mı?
    • ls -alhR /var/www/
    • ls -alhR /srv/www/htdocs/
    • ls -alhR /usr/local/www/apache22/data/
    • ls -alhR /opt/lampp/htdocs/
    • ls -alhR /var/www/html/
  • Nerede yazma ve çalıştırma işlemleri yapılabilir? Birkaç ortak yer (/tmp, /var/tmp, /dev/shm)
    • find / -writable -type d 2>/dev/null #yazabilme işlemleri
    • find / -perm -222 -type d 2>/dev/null #yazabilme işlemleri
    • find / -perm -o w -type d 2>/dev/null #yazabilme işlemleri
    • find / -perm -o x -type d 2>/dev/null #çalıştırabilme işlemleri
    • find / (-perm -o w -perm -o x ) -type d 2>/dev/null #yazabilme ve çalıştırabilme işlemleri

6.2.4 Açık Metin Parola Kullanımı

  • Dosyalar
  • Herhangi bir dosyada düz metin kullanıcı adı veya parola var mı?
    • grep -i user [filename]
    • grep -i pass [filename]
    • grep -C 5 “password” [filename]
    • find . -name “*.php” -print0 | xargs -O grep -i -n “var $password”
  • Scriptlerde, veritabanlarında, config dosyalarında yada loglarda parolalar var mı?
    • cat /var/apache2/config.inc
    • cat /var/lib/mysql/mysql/user.MYD
    • cat /root/anaconda-ks.cfg

6.2.5 Araçlar

  • unix-privesc-check
  • linuxprivchecker.py

6.3 Active Directory (Domain) üzerinde Hak Yükseltme

  • Parola Elde Etme (düz metin veya hash)
    • Mimikatz
      • mimikatz # privilege::debug
      • mimikatz # sekurlsa::logonpasswords
    • run post/windows/gather/hashdump
  • Yüksek Yetkilere Sahip Kullanıcı Hesabı Kullanımı
    • incognito.exe list_tokens -u
  • Düz Metin Parola Kullanımı Kontrolleri
    • Dosya
    • Registry
  • Kullanılabilecek Araçlar
    • Incognito
    • Mimikatz
    • Windows Credentials Editor (WCE)
    • Hashdump

7. Raporlama

  • Zafiyetin tespit edilmesi, zafiyetin istismar edilmesi ve bu süreçlerin tamamı ekran görüntüleri ile birlikte rapora yansıtılmalıdır.
  • Zafiyetlerin tespit edildiği IP adresi ve Port bilgileri belirtilmelidir.
  • Zafiyetin neden kaynaklandığını açıklayan teknik bir doküman ve zafiyetin giderilmesi için çözüm önerisi ve referans bilgilerine raporda yer verilmelidir.

Umarım sizlere de yararı dokunabilecek bir yol haritası olmuştur (:

0x034

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑

%d blogcu bunu beğendi: