PDA

Просмотр полной версии : Заканчиваем с фаерволами! (Часть 3)


desTiny
18.05.2008, 23:44
1) Вступление
Итак, после публикации двух статей из этой же серии (ссылки на них даны в конце), остался не раскрытым один-единственный аспект - как же всё-таки тихо и незаметно запустить процесс? В этой небольшой статье я продемонстрирую обнаруженный мной при весьма загадочных обстоятельствах способ запуска процесса. А заодно уж, этот метод можно расширить и до того, чтобы малой кровью скрыть программу из списка процессов. Но это я уже оставлю на совесть читателя - искушенный это сделать сможет, а у меня нет никакого желания делать так, чтобы этим мог восполизоваться каждый.

PS Я могу ошибаться, но, вроде, этот способ основан на баге винды.

2) Идея Запуска Процесса.
Что говорит фаервол при попытке Запуска Процесса? Что программу, дескать, он не знает, и верить ей не хочет. Значит надо влезть в другую программу, которой он доверяет. Но все стандартные способы этого уже давно известны, и давно пресекаются нашими доблестными защитниками.
Ладно, не будем увлекаться пустым трёпом и перейдём к делу.
Мной (не знаю, первый ли я, кто додумался до такого, или нет - не суть важно) была обнаружна интересная вещь - если программа подгружает библиотеку, устанавливающую ловушку (Hook), а затем завершается, то

Библиотека из памяти не выгрыжается
Библиотека запускается в контексте процесса, вызвавшего хук
Каждый раз выполняется код инициализации библиотеки

Исходя из этого, мы можем создать библиотеку, которая бужет выполнять всё нам нужное, добавить в неё хук, а в основной программе только подгружать библиотеку и устанавливать этот Хук, после чего честно заканчивать работу.

3) Реализация
Качаем тут (Delphi, заускается обозреватель на яндекс) (http://redxak.net/antifire/AntiFire3.rar)
(прямой линк - http://redxak.net/antifire/AntiFire3.rar)
на слиле - http://slil.ru/25805088 (20 кб, не так уж и тяжело...)
4) Ссылки
Хитрый обход файрволов. Часть 1. (https://forum.antichat.ru/showthread.php?p=659962)
Хитрый обход файрволов. Часть 2. (https://forum.antichat.ru/thread68398.html)

(c)desTiny aka 73ru5, 2008
Antichat.ru/Redxak.net

Исключительно в ознакомительных целях!

PS Не хотелось, всё-таки спускать в паблик... ну да ладно :)

desTiny
19.05.2008, 14:53
Да, кстати: если у вас в приведённой программе фаер ругается на запуск процесса, то жмите "Блокировать" - с некоторого раза он запустится :)
Это издержки паблик версии :)

0verbreaK
19.05.2008, 15:43
Not Found

The requested URL /404/ was not found on this server.
Apache/2.0.54 (Debian GNU/Linux) PHP/5.2.0-8+etch9~bpo31+1 mod_ssl/2.0.54 OpenSSL/0.9.7e Server at cp.freehostia.com Port 443

Перезалейте исходники

desTiny
19.05.2008, 15:54
[CODE]Перезалейте исходники
Странно - прямой линк без тега [URL] нормально работает, а тот - нет...

http://redxak.net/antifire/AntiFire3.rar

PandoraBox
19.05.2008, 16:32
Перезалей куда нибудь сервер не отвечает...

desTiny
19.05.2008, 16:34
ладно, ладно...
http://slil.ru/25805088
(20 кб - кто не любит слил, не так всё страшно :))

desTiny
20.05.2008, 23:19
Сегодня проверил на win98 - правда без фаера - заработала весьма странно:
Эксплорер открылся, но:
1) Во-первых, один - видимо там отключение хуков работает, можно, наверное, сделать UnHook условным и отрубать не сразу
2) А открылся он потому, что в строке сравнения ...pos('AntiF', s)=0... почему-то s='...ANTIF.EXE';
3) C фаером не проверял - не было возможности... но... надеемся на лучшее ;)

De-visible
21.05.2008, 11:30
Как всегда, было интересно, респект desTiny+++

console done
21.05.2008, 15:48
что щас начнётся :// и опять не вольно задумываешься о замене виндовс на что-то другое.

desTiny
21.05.2008, 18:32
что щас начнётся :// и опять не вольно задумываешься о замене виндовс на что-то другое.
Не уверен, судя по популярности статьи :)
И я тоже надеюсь, что особого распространения способ не получит... Поэтому и писал всё максимально кратко...


PS Так, всё-таки, расскажите же кто-нибудь, это уязвимость винды или так положено?

Hellsp@wn
21.05.2008, 19:19
PS Так, всё-таки, расскажите же кто-нибудь, это уязвимость винды или так положено?

а при чём здесь винда? :) она бедная не виновата.
способ известен давно, но как то аверы особо ему внимания не уделяют, хотя хз почему. но некоторые продукты все таки детектят такие финты :)

desTiny
21.05.2008, 19:24
а при чём здесь винда? :) она бедная не виновата.
способ известен давно, но как то аверы особо ему внимания не уделяют, хотя хз почему. но некоторые продукты все таки детектят такие финты :)
Спасибо :)
А бага - хотя бы в невыгрузке библиотеки после завершения основного кода - если посмотреть, то в коде хука ничего зловредного не делается, всё происходит при инициализации библиотеки, притом почему-то многократной.

А если хуки убрать, то библиотека автоматом выгружается.
Но! Замечу, что в моём коде хук отрубается при первом же срабатывании, а библиотека всё ещё висит.

Hellsp@wn
21.05.2008, 20:24
про выгрузку библ надо смотреть подробнее, должна была выгрузиться :)
а многократная инициализация - это приходящие сообщения от просесса, о создании, остановке потоков и т.д. это всё надо фильтровать, тогда 1 раз будет инициализироваться либа :)

desTiny
21.05.2008, 20:37
про выгрузку библ надо смотреть подробнее, должна была выгрузиться :)
а многократная инициализация - это приходящие сообщения от просесса, о создании, остановке потоков и т.д. это всё надо фильтровать, тогда 1 раз будет инициализироваться либа :)
Вот это как раз вряд ли - она инициализируеися, имхо, по одному разу при загрузке в процессы(почему-то не во все?).
После этого - она становится частью процесса(проверил методом исследования алресов в памяти).

>>>должна была выгрузиться
вот именно! А у меня прграмма раньше завершается, чем библиотека начинает работать=)

Hellsp@wn
21.05.2008, 20:42
во-первых, только в те, у которых есть окна и которые обрабатывают мессаги)) т.к. хук на Wh_getmessage.
во-вторых, Dll_thread_attach и Dll_thread_detach, будут полюбому приходить библе :)

desTiny
21.05.2008, 20:45
во-первых, только в те, у которых есть окна и которые обрабатывают мессаги)) т.к. хук на Wh_getmessage.
во-вторых, Dll_thread_attach и Dll_thread_detach, будут полюбому приходить библе :)
ок :) но это не решает проблем с её выгрузкой...

>>Dll_thread_attach и Dll_thread_detach, будут полюбому приходить библ

тут вообще непонятно, что будет, учитывая, что библиотека подгружена уже мёртвым тредом...