HYDRA İLE PAROLA KIRMAK

HYDRA NEDİR?

Hydra, kaba kuvvet (brute-force) kullanarak online olarak parola kırmaya yarayan bir araçtır.

Hydra’nın resmi Kali web sayfasında (https://en.kali.tools/?p=220) ise “Birçok farklı hizmeti destekleyen çok hızlı bir ağ oturum açma aracıdır” şeklinde tanımlanmaktadır.

Hydra aracı bir liste (wordlist) kullanılarak ve kaba kuvvet yani deneme yöntemiyle kimlik doğrulama sistemlerini atlatmak için kullanılabilecektir.

Örneğin; SSH, Web uygulama formu, FTP veya SNMP gibi belirli bir serviste manuel olarak parola tahmin etmeye çalışmak yerine hazır bir parola listesi kullanılarak Hydra aracından faydalanılabilir ve böylece doğru parolayı tahmin etme süresi çok kısalacaktır.

Hydra aşağıdaki protokollerde kaba kuvvet saldırısı gerçekleştirebilmektedir:

Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP,  HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 ve v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC ve XMPP.

Belirli bir protokol için opsiyonlarına bakmak üzere yukarıda linki verilmiş olan Kali Hydra resmi sayfasından faydalanılabilir.

Bu aracın kullanımı öğrenilirken aynı zamanda güçlü parola kullanımının önemi de ortaya çıkmaktadır. Eğer hazır parola listeleri içerisinde yer alan, sık kullanılan bir parola kullanıyorsanız ya da 8 karakterden uzun bir parolanız yoksa, Hydra benzeri araçların bu parolayı kırma süresi çok kısalmaktadır. Ayrıca “varsayılan” yani kullanılan servis ile birlikte gelen parolalar da hazır listeler içerisinde yer aldığından aynı riski yaratmaktadır.

HYDRA NASIL KURULUR?

Eğer Kali Linux kullanıyorsanız, Hydra aracı sistemde yüklü olarak gelir.

Eğer sisteminizde yoksa https://github.com/vanhauser-thc/thc-hydra linkinden indirilebilir.

HYDRA NASIL KULLANILIR?

Hydra ile birlikte kullanılacak olan opsiyonlar saldırmak istediğimiz protokole göre değişiklik gösterir.

Örneğin, eğer bir FTP servisine karşı kaba kuvvet saldırısı düzenlemek istiyorsak ve kullanıcı adının “kullanıcıadı” olduğunu biliyorsak, kullanmak istediğimiz parola listesi de bizim sistemimizde “parola_listesi.txt” şeklinde kayıtlıysa bu durumda aşağıdaki şekilde bir komut kullanılır:

hydra -l kullanıcıadı -P parola_listesi.txt ftp://SALDIRI_YAPILACAK_IP

Eğer bir SSH servisine karşı parola tahmin saldırısını kaba kuvvet yöntemiyle gerçekleştireceksek bu durumda komutu aşağıdaki şekilde yazabiliriz:

hydra -l kullanıcıadı -P parola_listesi.txt SALDIRI_YAPILACAK_IP -t 4 ssh

Yukarıdaki komutlarda örnek olarak verilen parola_listesi.txt dosyasına giden tam dizin yolunu (path) unutmamak gereklidir. Örneğin home/Desktop/ parola_listesi.txt vb.

Kali Linux içerisinde kelime listeleri de hazır olarak bulunabilmekte ve genellikle /usr/share/wordlists dizini altında yer almaktadır ancak internette çok sayıda farklı parola listesine de erişim sağlanabilmektedir.

Hydra aracının kullanımı için diğer pek çok araçta olduğu gibi bir “help” dokümanı mevcuttur ve bu dokümana hydra -h komutu ile erişilebilir:

Hydra’yı web formlarına kaba kuvvet saldırısı düzenlemek için de kullanabiliriz.

Bu saldırıların düzenlenebilmesi için ne tip bir istemde (GET veya POST)bulunulduğunun bilinmesi gerekir. Bu adımda, istem tipini tespit edebilmek için tarayıcının “Web Geliştirici” menüsünde yer alan “Web Geliştirici Araçları” tıklanarak ya da sayfa üzerinde fareye sağ tıklayıp “Erişilebilirlik Özelliklerini Denetle” seçilerek (Firefox için) açılan menü kullanılabilir:

Yukarıdaki resimde görülebileceği üzere Ağ sekmesi altında yöntem kısmı aradığımız bilgiyi vermektedir.

Bu bilgiye erişmek için bir diğer yöntem ise sayfanın kaynak kodunı görüntülemek olabilir.

Aşağıda POST istemi kullanılan bir giriş formunda kullanılabilecek Hydra komut örneği görülmektedir:

hydra -l <kullanıcı_adı> -P <kelime_listesi> <IP_ADRESİ> http-post-form "/:username=^USER^&password=^PASS^:F=incorrect" -V

Yukarıdaki komutta yer alan -l flag tekil kullanıcı adını, -P flag saldırı için kullanılacak olan parolaların yer aldığı kelime listesini tanımlamak için kullanılır. http-post-form ile form yöntemi (POST) belirtilir. :username kullanıcı adı girilen form alanını, password ise yine formda yer alan ve parola girişi yapılan alanı gösterir. F=incorrect ile sayfada bu kelime görülürse hata olduğunun anlaşılacağı belirtilir. -V flag ise verbose yani ekranda ayrıntılı çıktı almak için yazılır.

HYDRA ÖRNEK ÇÖZÜM

Örnek olarak TryHackMe’nin Hydra odasını çözelim. Bu odaya aşağıdaki linkten ulaşılabilir:

https://tryhackme.com/room/hydra

Odayı çözmek için verilen makinayı deploy ettiğimizde saldırı düzenlenecek IP adresi tanımlanır.

Bu örnekte tanımlanan IP adresi: 10.10.49.122‘dir.

Tarayıcıdan IP adresini ziyaret ettiğimizde karşımıza çıkan sayfa aşağıdaki gibidir:

Sorulan soru “Use Hydra to bruteforce molly’s web password. What is flag 1?” şeklinde olduğundan kullanıcı adının “molly” olduğu varsayılabilir.

Sayfa kaynak kodunu görüntülediğimizde kullanılan methodun post olduğu görülmektedir:

Bu durumda aşağıdaki komutu kullanarak parola tahmini için kaba kuvvet saldırısı gerçekleştirilebilir:

hydra -l molly -P /usr/share/wordlists/rockyou.txt <IP_ADRESİ> http-post-form "/:username=^USER^&password=^PASS^:F=incorrect" -V

Hydra aracı çalıştırıldıktan bir süre sonra molly kullanıcısına ait parola karşımıza çıkmaktadır:

Kullanıcı adı ve parola ile tarayıcıdan giriş yapıldığında karşımıza istenen ilk flag çıkar.

Bu örnekteki ikinci görev ise “molly” kullanıcısının ssh parolasına ulaşmamız. Bunun için de aşağıdaki komutu kullanacağız:

hydra -l molly -P rockyou.txt 10.10.49.122 -t 4 ssh

Yukarıdaki komutla da ssh parolasını elde etmek ve ardından ssh bağlantısını sağlayarak talep edilen 2. flag’i almak mümkün olmaktadır:

Başa dön