этот метод описан в книге "Windows для профессионалов" вот примерно его методика.
ANSI:
// Получаем истенный адрес LoadLibraryA v Kernel32.dll
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)
GetProcAddress(GetModuleHandle(TEXT("Karnel32")), "LoadLibraryA");
// Создаем поток в удаленном процессе, которий загруяет наш DLL
HANDLE hThread = CreateRemoteThread(hProccessRemote, NULL, 0, pfnThreadRtn, "C:\\MyLib.dll", 0, NULL);
Конечно в том виде что я здесь написал это угробит любой удаленный процесс, так как Адресс LoadLibraryА или LoadLibraryW будет не правельний нам надо получить этот адрес относительно удаленного процесса а не нашего, но это тоже решимо, посмотрите пример в книге.
Кстате угробить удаленнэй процесс тоже часто нужная штука, например Antivirus или Personal Firewall.
Таким образом мы можем внедрить свой DLL в тот же Antivirus и в тот же Personal Firewall. что даст нам вот что - Antivirus ни когда не поставит сам себя на карантин, а Personal Firewall почти всегда пропускает свой процесс на соединение без правила
Я чайник, у меня такой вопрос - почему трояны вешаются на свои какие то порты 27894 допустим. Лучше ж было бы если они вешались на допустим 110, ведь этот порт всегда открыт в файрволе?
Универсальный back door21.10.03 22:23 Автор: whiletrue <Роман> Статус: Elderman
Может, конечно, это и не новость, но меня тут нечаянно осенило.
Заранее сори, если говорю прописные истины.
0. Имеем сетку (которую хотим поразить) в которой в инет ходят с Виндовых машин,
ОС роутера и наличие прокси и файрволов - значения не имеет.
1. Троян как-то запускается на машине, имеющей доступ в инет,
через какую-нибудь дыру в браузере или другими способами.
2. Все что делает этот троян, так это просто как-то висит в памяти
(за основу можно взять какой-нибудь bo2k) и посылает http-запросы через
указанные промежутки по указанному адресу.
3. Http-запросы - на наличие "обновления", т.е. выложенного exe-шника, если есть новый
exe-шник то его скачиваем и запускаем.
4. Оператор этого трояна просто каждый раз пишет новый exe-шник, взависимости от
того, что он хочет сделать... и выкладывает его на указанный адрес.
Возможности неограничены ничем!
Если все делать аккуратно, то таким back door можно пользоваться очень долго!
Вопрос: Нафига тогда нужны файрволы? Http-то, будет всегда открыт, пусть даже через прокси...
Ой, sem4a ниже об этом писал22.10.03 10:04 Автор: whiletrue <Роман> Статус: Elderman Отредактировано 22.10.03 10:04 Количество правок: 1
> Вопрос: Нафига тогда нужны файрволы? Http-то, будет всегда > открыт, пусть даже через прокси... Во-вторых файрволы ведут логи. На самом деле не нужно так мудрить. Если это локальный (персонал) файрвол, то с ним можно делать все что угодно, в том числе и включить в конфиг тот же bo2k на родном порту. Но это будет заметно, хотя средний пользователь не так часто лазит в сетап. Можно также пропатчить exe-шник или работать ниже фильтр-дривера файрвола и вообще много чего можно сделать.
Операционка - вот лучший троян !!! ;-))))22.10.03 21:45 Автор: Ilich Статус: Незарегистрированный пользователь
Я согласчен, что файрвол может не допустить доступ левого приложения к 80-ому порту, поэтому надо сделать так, чтобы запрос нашего приложения воспринимался как запрос броузера. Предлагаю сделать следующее. Для начала надо написать трояна, который будет постоянно сидеть в памяти. Идея с постоянно обновляющимся экзешником мне понравилась, хотя есть в ней некоторый минус - некоторыве эукзешники могут весить довольно много, и поэтому их загрузка может тормозить нормальную работу пользователя. Значит надо сделать так, что инет не тормазися, а это, по-моему, можно сделать только используя текстовые файлы, т.е. сам троян меняться не будет, так как он будет использоваться в качестве интерпритатора команд, которые будут закачаиваться ввиде командных файлов из сети. Теперь осталась последняя проблема - как сделать так, чтобы фрайвол пропустил наш трафик. Я хочу попробовать написать примочку в IE, которая будет закачивать файлы из сети. Получатся следующий алгоритм действий:
1. Сажаем троян на компе у юзера.
2. Троян вешает на IE протрояненую прошивку, которая будет чскачивать командные файлы для трояна из сети.
3. Каждый раз, когда жертва заходит в Интернет, троянский модуль для Ищака проверяет, нет ли новых командных файлов. Если такие имеются, то он их закачивает и передает интерпретатору команд для последующего выподлнения.
В итоге и троян будет работать, и фрайвол будет трафик пропускать. А вообще у меня только что возникла мысля о совмещении интерпретатора комманд и проги для закачки скриптов в одном модуле для IE. А вообще в качестве интерпретатора команд можно использовать хоть функцию system() в C++ => будет использоваться командный интерпретатор операционной системы. Блин, с такими размышлениями можно прийти к мысли, что ОПЕРАЦИОЛННАЯ СИСТЕМА - САМЫЙ ГЛАВНЫЙ И ОПАСНЫЙ ТРОЯН НА НАШИХ КОМПАХ !!!! ;-)))
"Зачем нам кузнец?" (с)23.10.03 09:11 Автор: whiletrue <Роман> Статус: Elderman Отредактировано 23.10.03 09:17 Количество правок: 2
> некоторыве эукзешники могут > весить довольно много, и поэтому их загрузка может > тормозить нормальную работу пользователя. Значит надо > сделать так, что инет не тормазися, а это, по-моему, можно > сделать только используя текстовые файлы, т.е. сам троян > меняться не будет, так как он будет использоваться в > качестве интерпритатора команд, которые будут закачаиваться > ввиде командных файлов из сети.
Не надо интерпретаторов! Это тоже место и время будет занимать. Во-первых скачивать можно кусками, во-вторых чтобы это не было екзешником в явном виде - можно его как-то закодировать (хоть в base64) и вкладывать его в реальную[ые] страничку[и] между <font color=white></font> и располагать на narod.ru (или что-то в этом роде)... Плюс начинать что-то прокачивать, только если юзер тоже че-то качает...
Когда идешь на какую-то страничку, то ведь постоянно цепляешь еще и рекламу... ну зацепишь еще (нечаянно) и страничку на народе... как это отследишь?
Сама прокачивающая прога и не должна меняться - ее задача только скачать и запустить.
> Теперь осталась последняя > проблема - как сделать так, чтобы фрайвол пропустил наш > трафик. Я хочу попробовать написать примочку в IE, которая > будет закачивать файлы из сети.
Пропатчить ИЕ - это идеально! Как напишешь дай знать, плз.
> Пропатчить ИЕ - это идеально! Как напишешь дай знать, плз. Вобщем все что вы тут писали - МС уже давно реализовали Ж). Надо ломать windowsupdate.microsoft.com и...
Тады уж не ломать, а подменять DNS-флудом27.10.03 11:24 Автор: Zef <Alloo Zef> Статус: Elderman
теоретически так можно без лишних телодвижений зашпионить сразу все компы локалки сидящей за натом. хотя думаю в мс не такие лохи и какие нить меры приняли, цифровую подпись например
ЗЫ это все в порядке теоретических рассуждений Ж)
Все плохо26.10.03 01:26 Автор: sem4a Статус: Незарегистрированный пользователь
Во первых Personal Firewalls проверяют изменился ли файл которий пытается подсоединится к 80 порту, и есле вы меняете IEXPLORER.EXE firewall среагитует.
Чтоб остатся не заметним давно уйе используют DLL injection (книга Windows programming Jeff Richter)
Ты имеешь ввиду BHO?27.10.03 09:43 Автор: whiletrue <Роман> Статус: Elderman
А чем плохи BHO в этом приложении? Объясните, плз.28.10.03 10:57 Автор: whiletrue <Роман> Статус: Elderman Отредактировано 28.10.03 10:58 Количество правок: 1
Ставишь WH_GETMESSAGE хук на всех. Шлешь мессагу нужному окну, твоя длл туда грузится, в DLLMain проверяешь в нужном ли ты процессе затем делаешь LoadLibrary на самого себя и радуешься жизни...
Есть и более гибкий метод...27.10.03 17:42 Автор: sem4a Статус: Незарегистрированный пользователь
этот метод описан в книге "Windows для профессионалов" вот примерно его методика.
ANSI:
// Получаем истенный адрес LoadLibraryA v Kernel32.dll
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)
GetProcAddress(GetModuleHandle(TEXT("Karnel32")), "LoadLibraryA");
// Создаем поток в удаленном процессе, которий загруяет наш DLL
HANDLE hThread = CreateRemoteThread(hProccessRemote, NULL, 0, pfnThreadRtn, "C:\\MyLib.dll", 0, NULL);
Конечно в том виде что я здесь написал это угробит любой удаленный процесс, так как Адресс LoadLibraryА или LoadLibraryW будет не правельний нам надо получить этот адрес относительно удаленного процесса а не нашего, но это тоже решимо, посмотрите пример в книге.
Кстате угробить удаленнэй процесс тоже часто нужная штука, например Antivirus или Personal Firewall.
Таким образом мы можем внедрить свой DLL в тот же Antivirus и в тот же Personal Firewall. что даст нам вот что - Antivirus ни когда не поставит сам себя на карантин, а Personal Firewall почти всегда пропускает свой процесс на соединение без правила
А в чем гибкость то?27.10.03 19:04 Автор: Killer{R} <Dmitry> Статус: Elderman Отредактировано 27.10.03 19:08 Количество правок: 2
Недостатки:
1)Под 9х не работает
2)Надо немного посношаться
Недостктки хука: имхо только один - не работает если чужой процесс не создает очереди сообщений. Разве такие бывают? А так имхо очень удобно - сама винда загружает нашу дллку и остается тока загрузить ее еще раз чтобы после выхода нашего инициализирующего процесса длл не выгружалась из захученного процесса. Далее после LoadLibrary сразу же снимаем свой хук, создаем свой поток и работаем в чужом процессе как в своем. Кроме того использование ReadProcessMemory и извраты с адресами потенциально может распознаваться всякими эвристиками как троянский прием - не так часто она юзается. Хуки же общеиспользуемая вещь.
> еще одно решение просто открыть невидемое окошко например > IE и посылат запрос через него пользуясь IWebBrowser > Interface'ом Которая именно этим и занималась (отправляла на сайт инфу и получала, минуя файрвол). Но на нее я так понимаю все успешно забили до тех пор, пока не бабахнет. Короче все развивается по обычному для виндов сценарию :-)