Yazıda kullanılan SickOs: 1.2 sanal makinesi Vulnhub sitesinden indirilebilir.
https://www.vulnhub.com/entry/sickos-12,144/
Not: Sanal makine kullanmak yerine aşağıdaki betikle de bir web hizmeti başlatılabilir.
https://gist.githubusercontent.com/codification/1393204/raw/3fd4a48d072ec8f7f453d146814cb6e7fc6a129f/server.py
PUT metodu ile sunuculara veri (genellikle de dosya) atılmak için kullanılır. POST gibi metodlardan farklı olarak gönderilen bu veri (katar veya dosya) ile hedef sunucuya dosya gönderilir. Gönderilen dosya ile aynı isimde bir dosya varsa da üzerine yazar, yoksa belirtilen isimde ve içerikteki dosya oluşturulur. PUT metodu sunucuda genel olarak açık olabileceği gibi belirli bir dizinde de açık olabilir. SickOSv2 sanal makinesinde çalışan web uygulamasının “/test/” dizininde dizin geziniminin (Directory Traversal) açık olduğu görülmektedir. Bu durum, “/test/” dizinine atılan dosyaların çağırılması için kullanılabilir.
nmap -Pn -n -p80 -sV –script http-enum –script-args http-enum.displayall 172.20.50.134 –script-args path=test
HTTP PUT metodunun tespiti için temel yöntemler aşağıdaki gibidir.
1) Telnet Aracı
Telnet aracı kullanılarak OPTIONS metodu çağırılarak desteklenen metodların listesi elde edilebilir.
telnet 172.20.50.134 80
OPTIONS /test/ HTTP/1.1
Mevcut uygulamada HTTP/1.1 için sonuç elde edilemediği, HTTP/1.0 için metod listesinin elde edilebildiği görülmektedir.
telnet 172.20.50.134 80
OPTIONS /test/ HTTP/1.0
2) Nmap Aracı
Nmap aracının http-methods betiği ile (varsayılan olarak) kök dizininde veya belirtilen dizininde desteklenen metodlar listelenebilir.
nmap -Pn -n -sV -p80 172.20.50.134 –script http-methods –script-args url-path=’/test/’
3) Curl Aracı
Curl aracı kullanılarak OPTIONS metodu çağırılarak desteklenen metodların listesi elde edilebilir.
curl -i -X OPTIONS -v http://172.20.50.134/test
4) Diğerleri
Mevcut sanal makinede çalışmamış olsa da Nikto aracı ile de PUT ve benzeri metodların listesi elde edilebilirdi.
nikto -h http://172.20.50.134/test
Nessus uygulamasına ait aşağıdaki eklentiler ile de PUT ve benzeri metodların listesi elde edilebilir.
- 10498: Web Server HTTP Dangerous Method Detection
- 43111: HTTP Methods Allowed (per directory)
Netsparker uygulaması (veya diğer web uygulama tarayıcıları) ile de PUT ve benzeri metodların listesi elde edilebilir.
Bu sanal makinede WebDav etkindir. Ancak yapılandırma dosyasındaki ayarlar sebebi ile Davtest aracı ile tespit gerçekleştirilememektedir. Bu ayar etkin olmasa idi Davtest aracı ile de PUT ve benzeri metodların listesi elde edilebilirdi.
davtest -url http://172.20.50.134/test/
Kaynaklar:
http://www.hackingarticles.in/5-ways-to-exploiting-put-vulnerability/
https://www.arashparsa.com/2016/04/27/sickos1.2-walkthrough
https://volta-sec.blogspot.com.tr/2016/10/vulnhub-sickos-12.html
http://ramstersec.blogspot.com.tr/2016/04/sickos12-walkthrough_29.html