Pentest Cheatsheet

Sunucu Tespiti

 

TCP Servis Tespiti

 

UDP Servis Tespiti

Servislere Yönelik Komutlar

HTTP servisi mevcutsa

HTTP servisleri için:

HTTP(S) servisleri için:

DAV desteğinden emin olmak için:

DAV desteği üzerinden dosya atmak için:

robots.txt dosyasında çok fazla kayıt varsa mevcut dizinleri hızlı biçimde tespit edebilmek için (komutu çalıştırmadan önce robots.txt dosyasını çalıştığınız dizine kaydediniz):

 

SMB (veya Samba) servisi mevcutsa

SMB enumeration için:

Windows SMB servisi üzerindeki açıklıkları bulmak için:

SMB paylaşımlarını görmek için:

Paylaşıma bağlanmak için, password sorulduğunda enter’a basılır.

SMB enumeration’ı için kullanıcı adı ve parolamız varsa:

Null session üzerinden kullanıcı enumeration’ı için:

Samba versiyonunu enumerate etmek için:

 

SNMP servisi mevcutsa

 

 

NFS servisi mevcutsa

Paylaşımları görmek için:

NFS paylaşımı mount etmek için:

 

WordPress uygulaması mevcutsa

 

 

Joomla uygulaması mevcutsa

 

MySQL komut satırı bağlantısı için (parola boş ise veya biliyorsanız):

 

Oracle servisi mevcutsa

Oracle enumeration (öntanımlı parola kullanan kullanıcı var mı?):

 

MSSQL servisi mevcutsa

MSSQL komut satırı bağlantısı için (parola boş ise veya biliyorsanız)

MSSQL “sa” parolasını ele geçirmişsek (ve tabi xp_cmdshell aktifse):
Metasploit’in “auxiliary/admin/mssql/mssql_exec” modülünü kullanarak aşağıdaki komutu (CMD) çalıştırabilir ve Administrator parolasını değiştirebiliriz.

 

SSH servisi mevcutsa

SSH bağlantısı için (parola veya private key’i biliyorsanız):

Parola ile bağlanma

SSH servisine farklı bir port’tan bağlanma

Private key ile bağlanma

 

RDP bağlantısı

RDP ile bağlantı kurmak için (bir kullanıcı adı ve parolamız varsa)

Meterpreter oturumunuz varsa RDP bağlantısı yapabilecek bir kullanıcı tanımlamak için:

 

VNC servisi mevcutsa

VNC sunucusuna bağlanmak için:

 

Web Uygulamalarına Yönelik Komutlar

 

SQL injection açıklıklarına yönelik saldırılar

SQL hatası aldırmak için payload’lar:

Klasik logon aşma veya bilgi sızdırma payload’ları:

MSSQL ve MySQL için

Sadece MySQL için (URL encoding yapılmazsa URL’de gönderilen payload’ları için # işareti yok sayılır browser tarafından)

UNION SQL injection’da kolon sayısını bulma

SQL injection ile bilgi sızdırma

MySQL, MSSQL ve Oracle temel veri yapıları sorguları

MySQL:
Örnek SQL Injection Payloadu:

Kullanıcı adları ve parola hashlerini elde etmek için

Veritabanı isimlerini elde etmek için

Tablo isimlerini elde etmek için

Alan (kolon) isimlerini elde etmek için

MSSQL:
Kullanıcı adları ve parola hashlerini elde etmek için

Veritabanı isimlerini elde etmek için

Tablo isimlerini elde etmek için

Alan (kolon) isimlerini elde etmek için

Oracle:

 

Veritabanı üzerinden komut çalıştırma

MySQL:

MSSQL:

Oracle için doğrudan veritabanı servis erişimi alamazsanız işler kolay değil. Ama uğraşmak isterseniz şu makaleden faydalanabilirsiniz:
http://blog.btrisk.com/2017/03/oracle-veritabani-uzerinden-sistem-ele-gecirme.html

SQL injection da tek alanda birden fazla bilgiyi sızdırmak için:

 

Script kiddie modunda SQL injection yapmak için

GET isteğinde:

POST isteğinde:

 

PHP uygulamalarında SQL injection açıklığı ile shell alma

Basit PHP shell oluşturma:

Basit PHP shell’in kullanımı:

Sık rastlanan HTTP web root dizinleri:

Klasik Linux Apache

LAMPP

XAMPP

WAMP

Basit komut çalıştırma imkanını elde ettikten sonra shell alabilmek için üreteceğiniz bir meterpreter payload’unu hedef sunucuya atabilirsiniz.
(Not: anti-virüs’ten nasıl kaçınırım sorusunun yanıtı bu makalede mevcut değildir. Bu sorunun script kiddie’lere yönelik yanıtları için bakınız: http://blog.btrisk.com/2016/01/msfvenom-ile-antivirus-atlatma-1.html, http://blog.btrisk.com/2016/03/veil-evasion-ile-antivirus-atlatma.html, http://blog.btrisk.com/2016/05/shellter-antivirus-atlatma.html)

HTTP üzerinden hedef sunucu üzerine dosya çekme

HTTP Server’ı başlatma:

Linux için wget ile dosya çekme:

Windows için wget fonksiyonalitesine sahip bir vbscript oluşturmak için:
Şu linkteki komutları her seferinde bir satır olarak çalıştırarak bir vbscript oluşturabilirsiniz:
https://gist.github.com/sckalath/ec7af6a1786e3de6c309
Daha sonra aşağıdaki gibi bir HTTP isteği ile payload’u çekebilirsiniz:

 

RFI / LFI açıklıklarına yönelik saldırılar

Komut satırından basit RFI (data filter desteği varsa):

Komut satırından base64 kodlu RFI (data filter desteği varsa):

RFI ile tek istekte hem injection hem komut çalıştırma:

RFI ile tek istekte hem injection hem komut çalıştırma (base64 ve URL encoding ile):

LFI ile sistem üzerindeki bir dosya içeriğini okuma:

RFI ile Meterpreter session alma:

Önemli: Comment’i kaldırmayı ve sonuna ?> eklemeyi unutmayınız

HTTP Server’ı başlatma:

Multi handler’ı başlatma:

RFI’ın tetiklenmesi

RFI ile Meterpreter session alamazsak, cmd.php yöntemi ile elf payload yükleyebiliriz:

LFI ile kod çalıştırabilmek için Apache log lokasyonları (bu dosyalara basit bir PHP kodu inject etmek için bu kodu içeren bir URL ile sunucuya istekte bulununuz):

XAMPP

WAMP

Debian / Ubuntu

RHEL / Red Hat / CentOS / Fedora

FreeBSD

SMTP açıksa ve bir kullanıcıya mail atabiliyorsak, basit bir PHP kodunu içeren bir mail attıktan sonra bu kullanıcının mail dosyasını include edebiliriz:

Web backdoor uygulama örnekleri
http://michaeldaw.org/projects/web-backdoor-compilation

Shell Bağlantısı Kurma Yöntem ve Araçları

 

Netcat ile basit bind shell verme:

Hedef sunucu üzerinde

Kali’den

Netcat ile basit reverse shell alma:
Kali üzerinde

Hedef sunucu’dan

 

(Linux hedef sunucular için) komut satırı injection (command line injection) açıklığı üzerinden shell alma yöntemleri

Kali üzerinde

Hedef sunucu komut satırında

 

Telnet ile shell alma

Hedef üzerinde

Kali’de

 

Reverse TCP meterpreter bağlantısı için Windows executable payload oluşturma:

 

(Metasploit’ten) handler’ı başlatma:

 

Reverse TCP meterpreter bağlantısı için Linux executable payload oluşturma

(attığınız dosyaya çalıştırma haklarını vermeyi unutmayınız):

(Metasploit’ten) handler’ı başlatma:

 

Reverse TCP meterpreter bağlantısı için PHP payload oluşturma

(PHP payload’un elle düzeltilmesi gerekmektedir. Ayrıca PHP payload ile Meterpreter session’ını aldıktan hemen sonra bir executable payload upload etmekte fayda vardır. Çünkü PHP ve ASP payload’larından geçilen shell’ler stabil çalışmamaktadır):

PHP Meterpreter multi handler’ı başlatma:

 

Reverse TCP meterpreter bağlantısı için ASP payload oluşturma

 

(Metasploit’ten) handler’ı başlatma

 

HTTP Dışındaki Hedef Sistem Üzerine Dosya Çekme Yöntemleri

 

TFTP servisi ile dosya çekme [Windows hedef sunucudan]

Kali üzerinde tftp servisini Metasploit ile başlatma:

Hedef (Windows) sunucu tarafında dosyayı çekmek için

 

FTP servisi ile dosya çekme [Windows hedef sunucudan]

Kali üzerinde ftp servisini Metasploit ile başlatma:

Windows tarafında çalıştıracağımız ftp komutları:

 

Bunun için önce ftp.txt dosyasını oluşturmamız gerekir:

 

Komut satırından Base64 ve Hex kodlama ve decode etme

 

 

Dosya İnceleme

PDF dosya inceleme:

Resim ve diğer binary dosyalar için ilk inceleme komutları:

Steganografi ile gizlenmiş dosyayı çıkarma (şifresini biliyorsanız):

Dosya tipini incelemek için:

 

Hash Kırma

Hash kırma siteleri:
https://www.hashkiller.co.uk/ntlm-decrypter.aspx
https://crackstation.net/

MD5 kırma site örneği:
https://md5db.net/decrypt

Hash tipini öğrenme:

John The Ripper kullanımı (offline parola hash’i kırmak için):

Kali üzerinde rockyou.txt lokasyonu:

fgdump.exe ve PwDump.exe lokasyonu:

Passing the hash yöntemi ile komut satırı erişimi alma:

SAM dosyası ele geçirirseniz dosyayı “Cain & Abel” ile açabilirsiniz.

Online Parola Kırma Örnekleri

SSH

FTP

RDP

Linux’da (genellikle bulunabilecek) world writable dizinler (enumeration script’lerimizi atmak için, dizinlerin varlığından emin olmak ve yazılabilir olduklarını görmek için meterpreter shell’inden “echo aaa > /var/tmp/sil” komutu ile bir dosya oluşturulabilir)

 

Pivoting

Bir meterpreter oturumu kurulduktan sonra

Aşağıdaki komutla hedef sistemin ağ arayüzleri, bu arayüzlerin IP adresleri ve netmask değerleri görülür
meterpreter> ipconfig [örneğimizde hedef sisteme eriştiğimiz arayüzün 192.168.121.15 olduğu ve bu sistem üzerinde bir de 10.1.0.120 IP adresli ve 255.255.255.0 netmask lı bir başka arayüzün olduğu varsayılmıştır]

Aşağıdaki komutla ulaşılmak istenen ağ bölümü için routing konfigürasyonu yapılır (komutların ilki ve sonuncusu yardım amaçlıdır)

Bu komutla tanımlanan route konfigürasyonunun sadece meterpreter oturumu için geçerli olduğunu unutmayınız. Sisteminiz üzerindeki diğer uygulamaların da bu routing imkanını kullanabilmesi için gerekli adımlar aşağıda belirtilmiştir.

Yeni route’umuz eklendikten sonra mevcut meterpreter oturumumuz içinden aşağıdaki komutla hedef sistem üzerinden erişebildiğimiz diğer sunucuların varlığı keşfedilir (komutların ilki yardım amaçlıdır)

Bu noktadan sonra port tarama için iki seçeneğimiz var:
1) Metasploit’in sistem üzerinde çalışan diğer uygulamaların (örneğin nmap’in) kullanabileceği bir proxy çalıştırması ve local sunucu üzerinde çalışacak bu proxy portu üzerinden hedef subnet ve sunuculara bu uygulamalarla erişme
2) Metasploit’in auxiliary/scanner/portscan/tcp modülü ile yeni subnet üzerindeki sunucularda TCP port tarama

Birinci seçenek daha esnek görünüyor, örneğin nmap’in service enumeration özelliğini de kullanabiliriz bir sorun çıkmazsa. Her iki seçenekte de TCP (yani connect) scan seçeneği ile kısıtlıyız, UDP taraması yapamayız bunu unutmayınız. Eğer birinci seçenek işe yaramazsa Metasploit’in port taramasından faydalanabiliriz.

Birinci Yöntem:

Açılan proxy servisi üzerinden hedef ağa ulaşmak için “proxychains” uygulamasını kullanmaya ihtiyacımız bulunmaktadır.
Kali üzerinde bu uygulamanın konfigürasyon dosyasının bulunduğu dosya adı “/etc/proxychains.conf” dur.
“socks4 127.0.0.1 9050” olan öntanımlı satırdaki 9050 port numarasının aşağıdaki gibi 1080 olarak değiştirilmesi gerekmektedir (çünkü Metasploit içinden başlatılan SOCKS proxy’nin port numarası 1080 olarak opsiyonlar içinde belirtilmiştir)

Bu aşamadan sonra proxychains uygulaması ile sistem üzerindeki uygulamaları kullanabiliriz:

İkinci yöntem:
nmap gibi service enumeration yapamayacağınız bu yöntemde metasploit’in port tarama imkanını kullanacağız.

Eğer hedef sistem üzerindeki bir servisle Kali bilgisayarınız üzerinden etkileşime geçmek isterseniz (örneğin bir HTTP servisi tespit ettiyseniz ve bu web sitesine browser’ınızla erişmek istiyorsanız) o zaman meterpreter oturumunuzun port forwarding imkanını kullanabilirsiniz.

Bu adımdan sonra browser’ınızda şu URL’i yazdığınızda hedef HTTP servisine erişirsiniz:

Yukarıda bahsedilen ve diğer meterpreter script’lerinin bulunduğu dizin “/usr/share/metasploit-framework/scripts/meterpreter” dir.
Bu dizini bulmak için “locate scripts | grep meterpreter” komutunu çalıştırabilirsiniz.

Diğer

Meterpreter oturumumuz bağlantı kurulduktan bir süre sonra düşüyorsa aşağıdaki exploit opsiyonunundan faydalanabilirsiniz:

Msfvenom yardım komutları:

Aldığınız shell’i daha kullanışlı bir hale getirmek için (örneğin localde mysql bağlantısı kurduğunuzda komut satırı etkileşiminizin sıkıntısız olabilmesi için):

 

Pentest Cheatsheet
Etiketlendi:         

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.