Whatis.Ru

Информация о компьютерах доступным языком
Назад на сайт

Вы не зашли.


#26 07-08-2014 01:11:17

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Защита своего периметра!
      (..или от чего, и как защищаться в сети)


Теперь, когда мы знаем "чем дышит сеть", разберёмся; где самые узкие и уязвимые места в сети, как злоумышленникам удаётся проскользнуть через брандмауры, как они собирают информацию о жертве и т.д.

Оформим мы тему, в виде метод/решение, вопрос/ответ..
Если вдруг Вас посетит мысль опробовать описанные примеры, то рекомендую сначала ознакомиться с УК-РФ. За все действия Вы несёте ответственность сами (в т.ч. и уголовную). Чтоб не потирать покрасневшие от вчерашней трёпки уши, советую установить виртуальную машину, какой-нибудь анонимайзер, или на худой конец выходить в сеть через прокси, дабы скрыть свой реальный IP.

Немаловажным фактором является и то, что пытаясь несанкционированно пошариться по сети, Вы можете нарваться на большие неприятности, выдав себя ещё на стадии сканирования. Не суйте нос, куда не нужно! Если-же Ваше желание не преодолимо, то можете начать со сканирования своего провайдера. Если найдёте открытые узлы, то просто сообщите безштановому юзеру, чтоб напялил штаны и застегнул ширинку. Удаляя файлы, утаскивая инфу и т.п, Вы только доказываете свою несостоятельность. Как можно воевать с безоружным?!

    ; отправка сообщения через ком.строку
    msg 'IP-жертвы' %time% Ваш компьютер виден всем! Доброжелатель.

Кстати, чтоб самому не получить такого сообщения, зайдите в свойства своего подключения и уберите галочки с "Ответчик обнаружения топологии уровня сети", и "Служба доступа к файлам и принтерам сетей Microsoft". Брандмауер - никто не отменял.

А как/там дела обстоят с Вашими портами? Необходимо закрыть все неиспользуемые. Ниже перечислены основные порты, кем/чем используются, и какую ценность они представляют для хакеров:

21  - FTP. Может использоваться если открыт анонимный доступ;
23  - Telnet. Вход в систему с удалённого компьютера;
25  - Протокол отправки почты. Имеет хакерские команды EXPN и VRFY;
53  - DNS. Может использоваться для DNS Spoofing, т.е подмены объекта ДНС;
79  - Finger. Можно получить список всех пользователей, залогинённых в системе;
80  - WWW сервер. Показывает версию/название браузера, проверка на SGI-скрипты;
110 - POP. Протокол просмотра почты. Если не пользуетесь OutlookExpress - закрыть срочно!;
111 - RPC. Может использоваться при ответе на 'rpcinfo/grep/tcp' и тд;
119 - NNTP. Протокол чтения/отправки сообщений в новостные группы;
139 - NETBIOS. Протокол для работы с локальной сетью. Сканирование расшаренных ресурсов;
443 - HTTPS,SSL. Тоже самое что и HTTP, но использует безопасный протокол;
513 - rLogin. Если у хоста есть запись в файле .rlogin, то вы коннектитесь на удалённый хост без использования логина и пароля.

Со списком всех/имеющихся портов (0-65301) можно ознакомится в файле pList.txt, прикреплённого в скрепке.

Чтоб проверить/открыть/закрыть определённый порт, нужно сперва подключить виндовый (или сторонний) брандмауэр, т.к. порты контролирует именно он. Теперь, запускаем консоль маздая и вводим 'netsh/?'. Эта утилита (как матрёшка) имеет в своём теле 15 дочерних программ, у каждой из которых есть мощная справка, что сильно облегчает жизнь. Нам нужны параметры firewall, поэтому вводим:

C:\>netsh firewall set /?

Задает конфигурацию порта брандмауэра. 
Применимы следующие команды:

set portopening                                                                     
      [ protocol = ] TCP|UDP|ALL                                         
      [ port = ] 1-65535                                                 
      [ [ name = ] имя                                                   
        [ mode = ] ENABLE|DISABLE                                         
        [ scope = ] ALL|SUBNET|CUSTOM                                     
        [ addresses = ] адреса                                           
        [ profile = ] CURRENT|DOMAIN|STANDARD|ALL                         
        [ interface = ] имя ]       
         
Примеры:                                                               
      set portopening TCP 80 MyWebPort                                             
      set portopening UDP 500 IKE ENABLE ALL                                       
      set portopening protocol = TCP port = 80 name = MyWebPort                     
      set portopening protocol = UDP port = 500 name = IKE mode = ENABLE scope = ALL
                               
Параметры:                                                             
      mode - Режим порта                                     
        ENABLE  - Пропускать через брандмауэр (по умолчанию).               
        DISABLE - Не пропускать через брандмауэр.

; пример закрытия порта 139 (netbios).
; ..если команда выполнена успешно, в ответ получим 'Ok'

    netsh firewall set portopening 139 disable

Поскольку утилита 'netsh' является сетевой оболочкой, лучшим вариантом её использования будет настройка базовых параметров вашей сети: "netsh interface .."

Большинство шпионских программ, обычно оседает в сокетах (winsock), т.е. в интерфейсе между имеющимися приложениями и сетью Интернет. Шпионские программы предпочитают размещаться там так, чтобы было удобно следить за юзером. Некоторые антивирусы способны находить и удалять такие программы, но со временем они могут полностью разрушить стек TCP/IP. И хотя это эффективный способ защиты от постороннего вмешательства, он равноценен разрушению ради спасения. К счастью, здесь опять может помочь Netsh. Достаточно просто забить:

    netsh winsock reset
    netsh ip reset

После перезагрузки, вы получите девственный стек протокола.
Помимо 'netsh', винда имеет достаточное кол-во консольных утилит, чтоб выжить в мутном потоке интернет-трафика. Некоторые из них доступны по команде 'net help':

C:\>net help
Можно использовать следующие имена команд:

   NET ACCOUNTS             NET HELP              NET SHARE
   NET COMPUTER             NET HELPMSG           NET START
   NET CONFIG               NET LOCALGROUP        NET STATISTICS
   NET CONFIG SERVER        NET NAME              NET STOP
   NET CONFIG WORKSTATION   NET PAUSE             NET TIME
   NET CONTINUE             NET PRINT             NET USE
   NET FILE                 NET SEND              NET USER
   NET GROUP                NET SESSION           NET VIEW

   NET HELP SERVICES - эта команда выводит список служб, которые
                       можно запустить.
   NET HELP SYNTAX   - эта команда выводит объяснения синтаксических
                       правил, используемых при описании команд в Справке.

   NET HELP имя_команды | MORE - просмотр справки по одному экрану за раз.


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#27 07-08-2014 21:25:05

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Winsock, как подушка между браузером и стеком

Сокеты, являются стандартным API-интерфейсом, позволяющим двум/сетевым приложениям взаимодействовать друг-с-другом или внутри узла, или по сети. Winsock - это не протокол, а средство программирования сетевых приложений. В структуре стека-TCP/IP сокет занимает самый верхний уровень, хотя и не входит в стек:

    +<------ процессы WIN ------>|
    |                            |

    | ftp | telnet | http | и т.д|
         \     |       |      /
    +-----+----+-------+-----+---+
    |           winsock          |  <- место обитания вирусов
    +----------------------------+
    +<------- порты узла ------->+
    |   1  | ..... | ..... | 1+N |
    +------+-------+-------+-----+
             |           |
      +------+--+     +--+-----+
      |   TCP   |     |   UDP  |  <-- конец стека протокола
      +---+-----+     +----+---+
           \              /
        +--+------------+---+  +-----+
        |        IP         +--| ARP |
        +---------+---------+  +-----+
                  |
         +--------+--------+
         | сетевой адаптер |   <-- нижний уровень
         |    MAC-адрес    |
         +--------+--------+
                  |                 Ethernet
      -->---------0------------->---------------

С точки зрения сокета, ему всё равно, где находится нужный процесс - на локальной машине или на другом конце света/тьмы. В общем случае, сокет представляет собой комбинацию IP-адреса и порта (например: 192.168.0.1:25), а также набор функций для установки соединения, и обмена данными:

C:\>netstat -an
Активные подключения

  Имя    Локальный адрес        Внешний адрес          Состояние
  =====  ===================    ===================    ===========
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    127.0.0.1:1025         0.0.0.0:0              LISTENING
  UDP    0.0.0.0:445            *:*  ; порт открыт
  UDP    0.0.0.0:500            *:*
  UDP    0.0.0.0:4500           *:*
  UDP    127.0.0.1:123          *:*
  UDP    127.0.0.1:1900         *:*

Обычные сокеты позволяют воздействовать с заголовками пакетов только путем вызова соответствующих API-функций. Мы можем задавать целевой адрес и порт назначения, устанавливать некоторые флаги типа TTL/TOS (время жизни/тип сервиса). Остальные поля заполняет ОС.

Другое дело сырые сокеты (raw sockets), которые широко используются как в хакерских, так и в легальных программах. Сырые сокеты выгодно отличаются тем, что позволяют собирать TCP/IP пакеты вручную, контролируя каждый бит заголовка, отправляя в сеть нестандартные пакеты, к приёму которых ОС физически не готова. Хакер может завесить узел, забросить зловредный shell-код, обойти брандмауэр, просканировать порты, отправить пакет от чужого имени, ..да много/чего можно придумать!

Во времена рассвета 9x, хакеры во всю ставили Linux/BSD только затем, чтобы получить полноценный доступ к сырым сокетам. Linux превращал хакеров в богов, контролирующих обширные сетевые территории и скрывающихся за поддельными IP-адресами. И хотя основные ошибки в TCP/IP стеке за последнее десятилетие были исправлены, внедрение новомодного IPv6 (вкупе с полностью переписанным сетевым стеком в Висте), вызвало всплеск интереса к атакам старого типа.

Полноценная поддержка сырых сокетов в W2K вызвала настоящий фурор! Программисты перенесли многие хакерские программы (типа nmap) в Windows и необходимость ставить никсы отпала. По сети прокатилась волна атак. Сырые сокеты использовали не только хакеры, но и черви, ..в результате чего в XP функциональность сырых сокетов была существенно урезана.

Отсутствие поддержки сырых сокетов никак не увеличивает защищенность Windows, хоть и не позволяет использовать её в качестве плацдарма для атак на другие системы. Но ведь на дворе не 95 год! Воздвигнуть Linux/BSD на виртуальной машине сегодня может даже начинающий хакер, да и способы обхода ограничений сырых сокетов тоже имеются.


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#28 07-08-2014 21:26:46

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Захват трафика локальных сетей

В Ethernet-сетях, построенных по топологии общей шины, каждый испускаемый пакет доставляется всем участникам сети. Сетевая карта на аппаратном уровне анализирует заголовки пакетов и сверяет свой Ethernet-адрес (также называемый MAC-адресом) с адресом, прописанном в Ethernet-заголовке пакета, передавая на IP-уровень только 'свои' пакеты.

MAC-адрес - это уникальный идентификатор, прошиваемый производителем каждой единице активного оборудования, но администратор может и изменить его на уровне драйвера. Большинство сетевых протоколов используют одно из двух пространств MAC-адресов: MAC-48 и EUI-64. Для преобразования MAC-адресов в адреса сетевого уровня и обратно применяется специальный протокол ARP.

Адреса MAC-48 наиболее распространены. Они кодируются 48-ю битами, что позволяет задать уникальный адрес 281.474.976.710.656 устройствам. Согласно подсчётам IEEE, этого запаса адресов должно хватить, по меньшей мере, до 2100 года. Идентификаторы EUI-64 состоят из 64 бит и используются в FireWire и IPv6.

Для того, чтобы узнать MAC-адрес сетевого устройства, достаточно ввести команду 'ipconfig /all':

C:\>ipconfig/all

Настройка протокола IP для Windows

        Имя компьютера  . . . . . . . : RUMIT
        Основной DNS-суффикс  . . . . :
        Тип узла. . . . . . . . . . . : неизвестный
        IP-маршрутизация включена . . : нет
        WINS-прокси включен . . . . . : нет

Подключение по локальной сети 3 - Ethernet адаптер:

        Состояние сети  . . . . . . . : сеть отключена
        Физический адрес  . . . . . . : 00-1E-10-XX-XX-XX

Хабом (hub, концентратор) называют многопортовой повторитель. Получив данные на один из портов, хаб перенаправляет их на остальные порты. В коаксиальных сетях хаб не является обязательным компонентом и при подключении методом общей шины можно обойтись и без него:

         E           C           A
         |           |           |
    -----0-----0-----0-----0-----0---------
               |           |         Ethernet
               D           B

В сетях на витой паре, построенных по топологии 'звезда', хаб присутствует изначально:

         +-------------+
         |     HUB     |
         +-+--+--+--+--+
           |  |  |  |    +-----+
      C    |  |  |  +----| HUB |   
      0----+  |  |       +-----+
            B |  |    A     
            0-+  +----0----------------
                            Ethernet

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

Для перехвата трафика, необходимо перевести свою сетевую карту в 'неразборчивый' (promiscuous) режим, в котором на IP-уровень передаются все принятые пакеты. Неразборчивый режим поддерживает подавляющее большинство стандартных карт, провоцируя любопытных пользователей на проникновение в интимную жизнь остальных участников сети. К сожалению, виндовые средства не позволяют изменять режимы адаптера, и для этого придётся скачать специальный драйвер сетевой карты 'WinPCap'.

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

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

Обнаружение пассивного перехвата

Перевод интерфейса в неразборчивый режим не проходит бесследно и легко обнаруживается утилитой 'ipconfig', отображающей его статус. В другом случае, администратор посылает пакет на несуществующий MAC-адрес. Узел, заинтересовавшийся этим пакетом, и будет узлом атакующего. Естественно, если атакующий вырубит DNS в настройках сетевого соединения или оградит себя локальным брандмауэром, администратор останется наедине со своей задницей.

Как вариант, администратор может послать на несуществующий MAC-адрес пакет, с действительным IP-адресом и портом отвечающей службы, например 'ping'. Работая в неразборчивом режиме, сетевая карта передаст такой пакет на IP-уровень и тот будет благополучно обработан системой, автоматически генерирующей эхо-ответ. Администратор делает узлу атакующего ping и засекает среднее время отклика. Затем направляет шторм пакетов на несуществующие MAC-адреса, после чего повторяет ping вновь. Изменение времени отклика полностью демаскирует факт перехвата.

Чтобы не угодить в ловушку, атакующий должен отключить ICMP и закрыть все TCP-порты, что можно сделать с помощью того-же брандмаузера.

Разумеется, существуют и др.способы обнаружения перехвата трафика, однако и перечисленных вполне достаточно, чтобы убедиться в его небезопасности. Например, администратор пускает по сети подложный пароль, якобы принадлежащий root'у, а сам залегает в засаду и ждет, какой зверь на это клюнет, после чего направляет по соответствующему адресу бригаду каратистов быстрого реагирования.

Активный перехват или ARP-spoofing

Отправляя пакет на заданный IP адрес, мы, очевидно, должны доставить его какому-то узлу. Но какому? Ведь сетевая карта оперирует исключительно физическими MAC-адресами, а про IP ничего не знает! Следовательно, нам необходима таблица соответствия MAC и IP адресов. Построением такой таблицы занимается ОС, и делает это она при помощи протокола ARP.

Если МАС-адрес получателя неизвестен, в сеть отправляется широковещательный запрос типа "обладатель данного IP, сообщите свой MAC". Получив ответ, узел заносит его в локальную ARP-таблицу. Никакой авторизации для обновления ARP-таблицы не требуется.

Для захвата чужого IP, атакующему достаточно послать подложный ARP-запрос, который может быть как целенаправленным, так и широковещательным. Допустим, атакующий хочет перехватить трафик между узлами A и B. Он посылает узлу A подложный ARP-ответ, содержащий IP-адрес узла B, и ..свой MAC-адрес; а узлу B - ARP-ответ с IP-адресом узла A, и ..своим MAC-адресом. Оба узла обновляют свои ARP-таблицы и все отправляемые ими пакеты попадают на узел злоумышленника. Если послать подложный ARP-пакет маршрутизатору, атакующий сможет перехватывать и пакеты, приходящие извне данного сегмента сети. Атака такого типа называется MiM (Man in Middle - мужик в середине):

              ARP-атака
          +->--------->---+
          |               |
    +-----+-+       +-----+-+
    | Hack  +-<-----|   A   |
    |       |       |       |
    +-+-+-+-+       +---+---+
      | | |             |             Ethernet
    --|-0-|-------------0-----------0------------
      |   |                         |
      |   |    ARP-атака        +---+---+
      |   +->------------>------+   B   |
      +-<--------<--------------+       |
                                +-------+

Кстати, о штормах. Если маршрутизатор не успевает маршрутизировать поступающие пакеты, он автоматически переключается в широковещательный режим, становясь обычным хабом. Загрузив маршрутизатор работой по самые помидоры (или дождавшись пиковой загрузки сети), атакующий может преспокойно снимать трафик и в пассивном режиме.

Обнаружение активного перехвата

Активная природа ARP-атаки демаскирует злоумышленника, и сетевые анализаторы типа 'arpwatch' легко обнаруживают перехват. Они грабят все пролетающие по сети пакеты (т.е. работают, как сниффер), вытаскивают ARP-ответы и складывают их в базу данных, запоминая - какому MAC-адресу какой IP принадлежит. При обнаружении несоответствия, администратору отправляется e-mail, к моменту получения которого нарушитель обычно успевает скрыться со всем награбленным трафиком.

Как правило, ОС самостоятельно обнаруживают факт захвата своего IP-адреса посторонним узлом, но только в том случае, если злоумышленник использовал широковещательную рассылку. К тому-же, ось не отправляет ARP-ответ, отбирая похищенный IP-назад, а просто отделывается многоэтажным предупреждением, смысл которого до юзера всё/равно не дойдет.

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

Для работы с ARP-таблицами есть одноимённая/виндовая утилита 'arp':

    C:\>arp
    Отображение и изменение таблиц преобразования IP-адресов

      ARP -a : Отображает текущие ARP-записи.
      ARP -s : Добавляет узел
      ARP -d : Удаляет узел

    Пример:
      > arp -s 157.55.85.212   00-aa-00-62-c6-09  ... Добавляет статическую запись.
      > arp -a                                    ... Выводит ARP-таблицу.


Клонирование МАС-адреса

Физический адрес сетевой карты обычно прошит в ПЗУ, и по cтандарту никакой MAC не может использоваться дважды. Тем не менее, всякое ПЗУ можно пере/программировать. К тому же, некоторые карты позволяют изменять свой MAC вполне легальными средствами, например, всё той-же 'ipconfig'. Наконец, заголовок Ethernet-пакета формируется программными, а не аппаратными средствами, поэтому нечестный драйвер может запросто прописать чужой MAC. Клонирование MAC-адреса позволяет перехватывать трафик даже без присвоения чужого IP и без перевода карты в неразборчивый режим.

Факт клонирования легко обнаружить с помощью протокола RARP (Reverse ARP), позволяющему определить, какой IP соответствует данному MAC'у. Каждому MAC'у должен соответствовать только один IP, в противном случае здесь чёто не так. Естественно, если атакующий не только клонирует MAC, но и захватит IP, этот прием не сработает.

Стэлс-сниффинг

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

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

Админам, советуют скачать 'ArpMonitor'. Это программа для слежения за ARP-запросами/ответами. В основном используется для мониторинга сети и выявления людей с лишними яйцами.


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#29 08-08-2014 01:23:08

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Введение в брандмауэры

Брандмауэр - это щит вашего узла! Он пропускает только тот трафик, который разрешён админом и блокирует всё остальное.

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

Большинство брандмауэров этого типа работает на IP-уровне, поэтому атакующий может легко их обмануть. На домашних машинах такие брандмауэры ещё имеют смысл, но при наличии даже плохонького маршрутизатора они лишь удорожают систему, ничего не давая взамен, т.к. те-же правила фильтрации можно задать и на маршрутизаторе.

Программные прокси, представляют собой обычные прокси-сервера, прослушивающие заданные порты (например: 25, 110, 80). В отличии от фильтров, передающих IP-пакеты "как есть", прокси самостоятельно собирают TCP-пакеты, выкусывают из них пользовательские данные, наклеивают на них новый заголовок и вновь разбирают полученный пакет на IP, при необходимости осуществляя трансляцию адресов.

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

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

Брандмауэры обоих типов включают в себя кастрированную версию 'системы определения вторжений' (сокращенно IDS), анализирующую характер сетевых запросов и выявляющую потенциально опасные действия; обращение к несуществующим портам (характерно для сканирования), пакеты с TTL равным единице (характерно для трассировки) и т.д. Всё это существенно затрудняет атаку и хакеру приходится действовать очень осторожно, поскольку любой неверный шаг тут-же выдаст его с головой.

Пакетные фильтры позволяют закрывать все входящие/исходящие TCP-порты, полностью или частично блокировать некоторые протоколы, препятствовать установке соединений с IP-адресами и т.д.

Правильно сконфигурированная сеть должна состоять, по меньшей мере, из двух зон:
  1. внутренней/корпоративной сети, ограждённой брандмауэром и населённой рабочими станциями;
  2. демилитаризованной зоны (DMZ), для доступа в Интернет.

Брандмаузер, настроенный с жёсткими правилами, должен:
  1. закрывать все порты, кроме сетевых служб (HTTP, FTP, SMTP и т.п);

  2. пакеты, приходящие на заданный порт, отправлять только тем узлам, на которых установлены соответствующие службы (например: WWW-сервер расположен на узле А, а FTP-сервер на узле B, то пакет, направленный на 80 порт узла B должен блокироваться брандмауэром);

  3. блокировать входящие соединения из внешней сети, направленные в корпоративную сеть;

  4. блокировать исходящие соединения из DMZ-зоны, направленные во внутреннюю сеть (исключая FTP- и DNS-сервера, которым исходящие соединения необходимы);

  5. блокировать входящие соединения из DMZ-зоны, направленные во внутреннюю сеть. Если этого не сделать, то атакующий, захвативший управление одним из публичных серверов, беспрепятственно проникнет и в корпоративную сеть;

  6. блокировать входящие соединения в DMZ-зону из внешней сети по служебным протоколам, часто использующимся для атаки (например: ICMP, правда это создаёт проблемы с ping'ом);

  7. блокировать входящие/исходящие соединения с портами, и IP-адресами внешней сети;

Фактически, роль брандмауэра сводится к ограждению корпоративной сети от любопытствующих идиотов, блуждающих по просторам Интернет. Тем не менее, прочность этого ограждения только кажущаяся.

Брандмауэр может и сам является объектом атаки, ведь он (как и всякая сложная программа), не обходится без дыр и уязвимостей. Дыры в брандмауэрах обнаруживаются практически каждый год и далеко не сразу затыкаются. Забавно, но плохой брандмауэр не только не увеличивает, но даже ухудшает защищенность системы. В первую очередь это относится к персональным брандмауэрам, популярность которых в последнее время необычайно высока.

Обнаружение и идентификация брандмауэра

Залогом успешной атаки является своевременное обнаружение и идентификация брандмауэра. Большинство брандмауэров отбрасывают пакеты с истечением TTL (Time To Live - время жизни), блокируя тем/самым трассировку маршрута, чем и разоблачают себя. Аналогичным образом поступают и некоторые маршрутизаторы, однако, как уже говорилось выше, между маршрутизатором и пакетным фильтром нет принципиальной разницы.

Отслеживание маршрута обычно осуществляется утилитой 'tracert', входящей в состав Windows. Выбрав узел, заведомо защищенный брандмауэром (например, www.ucoz.net), попробуем отследить к нему маршрут:

    C:\>tracert tgsa.narod.ru

    Трассировка маршрута к tgsa.narod.ru [193.109.247.222]
    с максимальным числом прыжков 30:

      1     *        *        *     Превышен интервал ожидания для запроса.
      2    88 ms    99 ms    69 ms  37.110.208.242
      3    75 ms   399 ms    88 ms  195.69.188.217
      4     *       99 ms    89 ms  195.69.191.61
      5    86 ms    98 ms    86 ms  195.69.191.9
      6    88 ms    79 ms    79 ms  195.69.191.1
      7    99 ms    99 ms    68 ms  195.69.190.129
      8   137 ms   118 ms   129 ms  78.25.77.229
      9   258 ms   140 ms   137 ms  10.222.177.49
     10   504 ms   179 ms   168 ms  10.222.177.2
     11   156 ms   139 ms   159 ms  megafon-gw.rt1.msk.cloud-ix.net [89.188.100.209]
     12   469 ms   168 ms   159 ms  217.65.1.234
     13   146 ms   158 ms   139 ms  dev.ucoz.net [193.109.247.222]

    Трассировка завершена.

Смотрим, трассировка умирает в самом начале, что указывает либо на брандмауэр, либо на маршрутизатор. Может быть.. Но для уверенного ответа нам требуется дополнительная информация. Узел 193.109.247.222 принадлежит сети класса С, и если эта сеть защищена брандмауэром, большинство её узлов не должны откликаться на ping, что в данном случае и происходит.

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

Утилита 'nmap' (популярный сканер портов) позволяет обнаруживать некоторые из брандмауэров, устанавливая статуc порта во "firewalled":

Starting Nmap 6.46 (http://nmap.org) at 2014-08-08 00:48 Западная Азия (лето)
Nmap scan report for tgsa.narod.ru (193.109.247.222)
Host is up (0.14s latency).

rDNS record for 193.109.247.222: dev.ucoz.net
Not shown: 96 filtered ports

PORT    STATE  SERVICE    VERSION
21/tcp  open   ftp        Pure-FTPd
22/tcp  open   ssh        OpenSSH 6.0p1 Debian 2 (protocol 2.0)
25/tcp  open   smtp       Cisco PIX sanitized smtpd
80/tcp  open   tcpwrapped

Device type: WAP
Running (JUST GUESSING): Linksys embedded (91%)
Aggressive OS guesses  : Linksys BEFW11S4 WAP (91%)
OS CPE: cpe:/h:linksys:befw11s4
No exact OS matches for host (test conditions non-ideal).

Service Info
OS     : Linux;
Device : firewall;
CPE    : cpe:/o:linux:linux_kernel

OS and Service detection performed.
Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.89 seconds

Большинство брандмауэров поддерживают удаленное управление через Интернет, открывая один или несколько TCP-портов, уникальных для каждого брандмауэра. Так например, Check Point Firewall открывает 256, 257 и 258 порты, а Microsoft Proxy - 1080. Некоторые брандмауэры явным образом сообщают свое имя и версию программного продукта при подключении к ним по netcat (или telnet), в особенности этим грешат Proxy-сервера.

Последовательно опрашивая все узлы, расположенные впереди исследуемого хоста, на предмет прослушивания характерных для брандмауэров портов, мы в большинстве случаев сможет не только выявить их присутствие, но и определить IP-адрес! Разумеется, эти порты могут быть закрыты как на самом брандмауэре (правда, не все брандмауэры это позволяют), так и на предшествующем ему маршрутизаторе (но тогда брандмауэром будет нельзя управлять через Интернет).

Сканирование через брандмауэр

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

Утилита Firewalk представляет собой классический трассер, посылающий TCP или UDP пакеты с таким расчетом, чтобы на узле, следующим непосредственно за брандмауэром, их TTL обращался в ноль, благодаря чему firewalk уверенно работает даже там, где штатные средства уже не справляются.

Будем исходить из того, что с каждым отправляемым IP-пакетом, система увеличивает его ID на единицу. С другой стороны, всякий хост, получивший посторонний пакет, не относящийся к установленным TCP-соединениям, должен реагировать на него посылкой RST. Для реализации атаки нам понадобится удалённый узел, не обрабатывающий в данный момент никакого постороннего трафика и генерирующий предсказуемую последовательность ID. В хакерских кулуарах такой узел называется немым (dump).

Обнаружить немой хост очень просто - достаточно лишь отправить ему серию IP-пакетов и проанализировать ID, возвращённый в заголовках. Запомним (запишем на бумажку) ID последнего пакета. Затем, выбрав жертву отправим ей SYN-пакет, указав в обратном адресе IP немного узла. Атакуемый узел, думая, что немой хост хочет установить с ним TCP-соединение, ответит: SYN/ACK. Немой хост, словив посторонний SYN/ACK, возвратит RST, увеличивая свой счетчик ID на единицу. Отправив немому хосту ещё один IP-пакет, хакер, проверив возвращённый ID, сможет узнать - посылал-ли немой хост жертве RST-пакет или нет. Если посылал, значит, атакуемый хост активен и подтверждает установку TCP-соединения на заданный порт.

При желании, хакер может просканировать все интересующие его порты, не рискуя оказаться замеченным, ведь вычислить его IP практически невозможно - сканирование осуществляется "руками" немого узла и с точки зрения атакуемого выглядит как обычное SYN-сканирование.

Предположим, что немой хост расположен внутри DMZ, а жертва находится внутри корпоративной сети. Тогда, отправив немому хосту SYN-пакет от имени жертвы, мы сможем проникнуть через брандмауэр, поскольку он будет думать, что с ним устанавливает соединение внутренний хост, а соединения этого типа в 99,9% случаях разрешены (если их запретить, пользователи корпоративной сети не смогут работать с собственными публичными серверами).

Утилита 'hping' как-раз и реализует сценарий сканирования данного типа, что делает её основным орудием злоумышленника для исследования корпоративных сетей, ограждённых брандмауэром.

Поиск дыр в брандмауэре

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

Послав сильно фрагментированный TCP-пакет, размазывающий TCP-заголовок по нескольким IP-пакетам, хакер скроет от брандмауэра порядковый номер, и он не сможет определить принадлежность TCP-пакета к соответствующей ему TCP-сессии. Если только на брандмауэре не активирована опция "резать фрагментированные пакеты", успех хакерской операции гарантирован.

Блокирование фрагментированных пакетов создает множество проблем и препятствует нормальной работе сети. Теоретически, возможно блокировать лишь пакеты с фрагментированным TCP-заголовком, однако далеко не всякий брандмауэр поддерживает столь гибкую политику настройки. Атаки данного типа, кстати говоря, называемые 'Tiny Fragment Attack', обладают чрезвычайно мощной проникающей способностью и потому являются излюбленным приемом всех хакеров.

Побег из-за брандмауэра

Пользователи внутренней сети, огражденной недемократичным брандмауэром, серьёзно ограничены в своих возможностях. Могут быть запрещены некоторые протоколы и закрыты необходимые вам порты. В клинических случаях администраторы ведут списки 'чёрных' IP-адресов, блокируя доступ к сайтам нецелесообразной тематики.

Поскольку брандмауэры рассчитаны на защиту извне, а не изнутри, вырваться из их застенков очень просто, ..достаточно лишь воспользоваться любым подходящим Proxy-сервером, находящимся во внешней сети и ещё не занесённым в чёрный список. В частности, популярный клиент ICQ позволяет обмениваться сообщениями не напрямую, а через сервер. Существуют тысячи серверов, поддерживающих работу ICQ. Одни существуют в боле/менее неизменном виде уже несколько лет, другие динамически то появляются, то исчезают. И если долгожителей ещё реально занести в стоп-лист, то уследить за серверами-однодневками администратор просто не в состоянии.

Также вы можете воспользоваться протоколом SSH (Secure Shell), изначально спроектированным для работы через брандмауэр и поддерживающим шифрование трафика (на тот случай, если брандмауэр вздумает искать в нём запрещённые слова: типа sex, hack и т.д). SSH-протокол может работать по любому доступному порту (например 80), и тогда с точки зрения брандмауэра всё будет выглядеть как легальная работа с WEB-сервером.

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

Важные замечания:
* брандмауэры подвержены большому количеству DoS атак, которым они в принципе неспособны противостоять;
* брандмауэр это - маршрутизатор, проски-север и система обнаружения вторжений в одном флаконе;
* брандмауэры не защищают от атак, а лишь ограждают локальную сеть забором, через который легко перелезть;
* различные брандмауэры по разному реагируют на нестандартные TCP-пакеты, позволяя идентифицировать себя;
* брандмаузеры, открывающие 53 порт (служба DNS) позволяют хакеру просканировать всю внутреннею сеть;
* некоторые брандмауэры подвержены несанкционированному просмотру файлов через порт 8010, и запросы типа: www.host.com::8010/c:/
* cлужба DCOM нуждается в широком диапазоне открытых портов, что существенно снижает степень защищенности системы, обессмысливая брандмауэр.


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#30 08-08-2014 19:08:24

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Программы и службы TCP/IP

В состав NT входит немалое кол-во встроенных утилит для администрирования сетей. Обычно, начинающие пользователи рыскают по Интернету в поиске той/или/иной утилиты, и даже не подозревают, что она находится у них под носом, ..точнее в папке маздая. Ниже, приведён список имеющихся программ винды для работы с TCP/IP, и их назначение:

• Arp       : Работа с ARP-таблицами для всех интерфейсов;
• Finger    : Сведения о юзере удаленного компьютера;
• Ftp       : Позволяет передавать файлы с компьютера на компьютер;
• Hostname  : Отображение имени узла;
• Ipconfig  : Отображение/установка всех параметров сети TCP/IP;
• Lpq       : Состояние очереди печати на сетевом принтере;
• Lpr       : Отправка файла для подготовки к печати;
• Nbtstat   : Отображение статистики протокола NetBIOS;
• Netstat   : Отображение подключений TCP, портов, статистики Ethernet, таблицы-ARP;
• Nslookup  : Диагностика инфраструктуры DNS;
• Ping      : Эхо-запрос, для устранения неполадок TCP/IP;
• Rcp       : Копирует файлы между компьютерами;
• Rexec     : Запускает команды на удаленных узлах;
• Route     : Изменяет записи в локальной таблице IP-маршрутизации;
• Tracert   : Определяет путь до заданной точки назначения.

Для вывода справки по любой из команд, введите '/?' после команды.
Для просмотра запущенных служб TCP\IP, введите 'Net Start'.

Верхом на трафике

Давайте ответим на вопрос: как маршрутизаторы тасуют пакеты данных по узлам?
Процесс маршрутизации начинается с определения IP-адреса отправителя, который может быть постоянным или динамическим. Каждый пакет содержит такой/32-битный адрес отправителя, и точно такой-же адрес получателя. Если отправляющий узел определяет, что адрес доставки не локальный, пакет направляется маршрутизатору.

Этот маршрутизатор, определяет внутри пакета IP-адрес получателя и проверяет по своей таблице, не расположена-ли станция получателя в локальной сети, которая называется IP-подсетью. Если-же выясняется, что IP-адрес получателя локальный, то маршрутизатор начинает искать в таблице-ARP МАС-адрес, соответстующий IP-адресу получателя.

При обнаружении нужного MAC-адреса, маршрутизатор помещает его в заголовок пакета (удаляя собственный MAC-адрес, который больше не нужен) и направляет пакет по месту назначения. Если MAC-адрес получателя не найден в ARP-кэше, маршрутизатор посылает ARP-запрос в подсеть, соответствующую IP-адресу получателя.

Получив запрос, узел с этим IP-адресом передаёт маршрутизатору ответ на запрос, содержащий свой MAC-адрес. Затем, маршрутизатор обновляет свою ARP-таблицу, устанавливает новый MAC-адрес в заголовке пакета и отправляет его получателю. Если пакет не предназначен для локальной подсети, маршрутизатор направляет его на маршрутизатор следующего сегмента сети.

Процесс построения/обновления таблиц маршрутизации - практически непрерывен. Он осуществляется средствами, использующими интеллектуальные протоколы обнаружения, например RIP или OSPF. В таблице каждого маршрутизатора указан оптимальный маршрут до адреса назначения или до маршрутизатора следующего сегмента (если адрес не принадлежит локальной подсети).

Последовательно просматривая собственные таблицы маршрутизации, соответствующие устройства передают пакет "по этапу", запрашивая, при необходимости, MAC-адрес конечной станции. Этот процесс продолжается до тех пор, пока пакет не доберётся до пункта назначения.

Однако, при пересылке пакета через множество сетевых сегментов, существует опасность образования "петель". Неправильно сконфигурированный маршрутизатор постоянно возвращает пакет тому маршрутизатору, через который данный пакет уже проходил. Во избежание этого, в IP предусмотрена TTL-функция (time-to-live), позволяющая задать предел времени путешествия пакета по сети. Значение TTL устанавливается заранее и уменьшается на единицу при каждом прохождении любого сегмента. Если величина TTL становится равной нулю, пакет удаляется, а маршрутизатор отсылает отправителю сообщение ICMP.

    C:\>ping 127.0.0.1

    Обмен пакетами с 127.0.0.1 по 32 байт:

    Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
    Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
    Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
    Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128

    Статистика Ping для 127.0.0.1:
        Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
    Приблизительное время приема-передачи в мс:
        Минимальное = 0 мсек, Максимальное = 0 мсек, Среднее = 0 мсек

В примере видно, что TTL=128.
..а это значит, что наш пакет отправится в мир иной только тогда, когда его растерзают 128 бульдогов/маршрутизаторов. Будем надеется, что дело до этого не дойдёт, и наш пакет благополучно достигнет адресата.


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#31 12-08-2014 00:12:32

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Потомки Джеймса Бонда, ..или шпионы в сети

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

  * подтвердить открытие письма жертвой;
  * установить точное время открытия письма;
  * определить IP-адрес жертвы;
  * определить наличие Proxy-сервера у жертвы;
  * определить наличие кэширующего Proxy-сервера у провайдера жертвы;
  * определить используемое программное обеспечение, с точностью до версии;
  * определить наличие спам-фильтров и антивирусов;
  * выявить анонимайзеры, контентные фильтры и др.локальные утилиты.

Схема работает так..
Внедряем в HTML-письмо ссылку на картинку, расположенную на подконтрольном хакеру Web-сервере, и отправляем письмо жертве. В момент просмотра письма, почтовый клиент обращается к хакерскому Web-серверу, передавая в заголовке запроса огромное кол-во интимных деталей. Обращаю внимание читателя на то, что во всех/описанных случаях, ответа получателя на хакерское письмо не требуется! В полне достаточно, просто открыть его для чтения. Чуть позже мы (по)практикуемся, а пока разберёмся, как это работает?!

Обнаружение спам-фильтров

Начнём со спам-фильтров, обрабатывающих графику. Очевидно, чтобы отделить спам, фильтр должен загрузить картинку, следуя по указанной ссылке. Если фильтр установлен непосредственно на почтовом сервере жертвы, хакерский Web-сервер поймает GET-запрос сразу-же после отправки письма, даже если жертва спит мёртвым/сном и не заботится о проверке почты.

Обнаружение антивирусов

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

Поскольку длина заголовка большинства графических файлов варьируется в очень широких пределах, размер запрашиваемого блока у всех антивирусов различен, что позволяет отличить, например: NOD от KAV. Это-же относится к системам обнаружения вторжений и многим брандмауэрам, скрещённых с антивирусами. Мода пихать в один продукт кучу функционала, хакерам только на руку.

Обнаружение Proxy

Кэширующие Proxy-сервера распознаются вообще элементарно. Если мы отправили письмо по нескольким адресам, принадлежащим одной фирме, а картинка с хакерского сервера оказалась загружена лишь однажды, то либо остальные письма не были открыты, либо картинка была скэширована.

Двойные агенты

Кстати, далеко не все сотрудники компании проверяют почту со своего/рабочего места. Многие из них используют 3G-модемы или другие/альтернативные каналы выхода в Сеть, что позволяет хакеру без труда выяснить, топологию локальной сети.

Впрочем, на практике обычно достаточно найти хотя-бы одно/слабое звено - сотрудника, проверяющего корпоративный ящик со своего/домашнего компьютера. Зная его IP и версию ОС, хакер запросто забросит туда зловредную программу, заражающую сменные носители (flash), в конечном счёте проникающие на рабочую станцию, подключенную к корпоративной локальной сети.


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#32 12-08-2014 00:13:29

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Устанавливаем домашний сервер

Сервер для хакера - дом родной! Чтобы рыскать по сети в поисках информации об очередной жертве, необходимо иметь свой сервер, т.к. именно он будет обрабатывать все GET-запросы. Вариантов с установкой, конечно-же, много и каждый описывает установку по-своему, но мы поступим чуть/иначе.., и создадим виртуальный сервак.

Исходя из того, что мы не собираемся клепать паги и выкладывать их на свой сервер на всеобщее обозрение, нам сойдёт и простенький "Small HTTP", лишь-бы вёл логи и обрабатывал запросы. Качаем сервак отсюда: www.smallsrv.com (149kb)

Для работы сервера, целесообразно выделять отдельный диск, но нам вполне хватит и возможностей виртуального диска. Виртуальный диск имеет своё/отдельное имя в системе (например, диск Z), и в качестве своего/корневого каталога использует обычный каталог на основном диске.
Короче, создаём на диске С: папку "server", и вводим в ком.строке:

    subst Z: C:\server

..где "Z:" - это имя виртуального диска, а "C:\server" - папка на физическом диске, которая и будет корневым каталогом виртуального диска Z. После этой операции, в проводнике должен появиться диск Z:\. Обратите внимание, что виртуальный диск пропадает после ребута, и команду "subst" нужно выполнить заново. Чтобы постоянно не париться, сервак наш мы будем запускать бат-файлом, в который и пропишите строки выше. Готово? Тогда едим дальше...

Запускаем скачанный установщик "Small HTTP" (shttp3.exe), соглашаемся с условием договора, даём добро на создании ярлыка в StartUP-меню, и выбираем путь установки Z:
По окончании копирования файлов, запускаем наш сервер и видим окно лога без меню, и без вообще/каких/либо элементов управления. Чё за ботва?! Не пугайтесь.., все настройки спрятаны в системном меню [Alt+Пробел], в котором появился раздел "Server".

Чтоб протестить сервак, запускаем бродилку (у меня Опера), и в строке адреса вводим: 127.0.0.1

HTTP Root dir=Z:\shttps\www def=index.* port=80 Number of connections=16

!->12/08 00:42:00 [127.0.0.1:1391>80] (t1 1)
GET / HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.11
Host: 127.0.0.1
Accept: text/html, appl/xml;q=0.9, appl/xhtml+xml, image/png,jpeg,gif, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
!->12/08 00:42:00 [127.0.0.1:1391>80] (t1 2) >HTTP  in:349 out:3491  Time:94
****************************************************

!->12/08 00:42:00 [127.0.0.1:1392>80] (t1 3)
GET /favicon.ico HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.11
Host: 127.0.0.1
Accept: text/html, appl/xml;q=0.9, appl/xhtml+xml, image/png,jpeg,gif, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1/
Connection: Keep-Alive
!->12/08 00:42:00 [127.0.0.1:1392>80] (t1 4) >\favicon.ico(Undefined/default)
Error. File not found.
!->12/08 00:42:00 [127.0.0.1:1392>80] (t1 5) >HTTP  in:388 out:1993  Time:62
*************************************************

Как видим, наш сервер поймал два GET-запроса, где помимо прочего имеется информация о времени, IP-запросившего, задействованных портах, версии нашего браузера и т.п.
Неплохо для начала.. Ловить запросы уже есть кому. Осталось привязать наш сервер к домену, написать жучок, и подбросить его жертве..


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#33 14-08-2014 22:20:28

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Как привязать домен к домашнему серверу

..самый простой и естественный вариант (если DNS нужен для локального доступа), то достаточно отредактировать один текстовый файл. Для Windows этот файл лежит по пути: C:\WINDOWS\System32\drivers\etc\hosts.

Открываем его в текстовом редакторе и добавляем в конец строку:
127.0.0.1 MySite.ru, ..где "MySite.ru" - имя вашего сайта. Теперь можно будет обратиться к нашему серваку по имени, ..но только с локального компьютера. Если веб/сервер настроен на каком-то другом компьютере (и вы знаете его IP-адрес), то нужно 127.0.0.1 заменить на IP этого сервера. Сам-же адрес 127.0.0.1 всегда указывает на локальный компьютер.

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

На удивление оказывается, что многие незнают о существовании зон, свободных для регистрации. Более того, многие платят за регистрацию доменов в этой зоне бабло, средняя цена которых доходит до 15$ за то, что можно сделать самому на халяву. Домены из списка ниже, можно зарегистрировать абсолютно бесплатно:

    *.com.ru, *.net.ru, *.org.ru, *.pp.ru, *.msk.ru, *.spb.ru

Достаточно пройти по этому адресу: http://www.ripn.net:8080/nic/dns/web-forms.html
..и (!)оставить о себе всю подноготную, в виде whois-информации. Конечно-же, если вашей фамилии нет в списках поиска ФБР, то этот вариант вполне приемлем, но где гарантия, что этот список не (по)полнится вашими инициалами завтра. А что, если тупо прописать наш/текущий IP в жучке, и просто дождаться, чтоб к нам постучали по этому адресу? Пробуем...

От идеи до модели, ..или лабораторная работа №1

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

Берём Outlook, создаём новое письмо в HTML-формате и вставляем гиперссылку (именно гиперссылку, а не картинку). Сохраняем его на диск, через меню Файл/Сохранить как.., и получаем текстовый *.eml, который можно править в текстовом редакторе:

    ;// Outlook-жучок. Все адреса не действительны.
    From        : "Dragon" <dragon@mail.ru>
    To          : "x_user@mail.ru"
    Subject     : ping
    Date        : Thu, 14 Aug 2014 22:48:26 +0500
    MIME-Version: 1.0
    Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_0006_01CFB7F8.BFB50E00"

    X-Priority  : 3
    X-MSMail-Priority: Normal
    X-Unsent    : 1
    X-MimeOLE   : Produced By Microsoft MimeOLE V6.00.2900.5579
    This is a multi-part message in MIME format.

    ---=_NextPart_000_0006_01CFB7F8.BFB50E00
    Content-Type: text/plain;
       charset="koi8-r"
    Content-Transfer-Encoding: quoted-printable
    123

    ---=_NextPart_000_0006_01CFB7F8.BFB50E00
    Content-Type: text/html;
       charset="koi8-r"
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=3DContent-Type content=3D"text/html; charset=3Dkoi8-r">
    <META content=3D"MSHTML 6.00.6000.20861" name=3DGENERATOR>
    <STYLE></STYLE>
    </HEAD>
    <BODY bgColor=3D#ffffff>
    <DIV><FONT face=3DArial size=3D2>
    <A=20href=3D"http://127.0.0.1/temp/love.jpg">123</A></FONT></DIV>
    </BODY></HTML>

    ---=_NextPart_000_0006_01CFB7F8.BFB50E00--

Находим строку <A=20href=3D"http://127.0.0.1/temp/love.jpg">123</A>, и делаем из неё ссылку на картинку: <IMG SRC=3D"http://127.0.0.1/temp/love.jpg">

Некоторые хакеры выставляют размеры картинки в 0 пикселей, чтобы она не мозолила глаза, но это слишком подозрительно. Лучше вставить своё лого, или что/ещё. Вот, в принципе, и весь жучок..

Осталось забросить на наш сервер картинку, которая будет играть роль приманки.
Зайдя в папку с установленным "SmallHTTP" видим там директорию "WWW" - это родительская папка сервера. Её имя не отображается в окне браузера, зато отображается её содержимое. Создаём в этой папке, вложенную папку "Temp", куда и кидаем приманку "love.jpg".

Кстати, обратите внимание, что почтовые службы mail/gmail.com не осуществляют проверку внешних картинок ни при отправке, ни при приёме письма. А ещё говорят, что они защищают нас от спама! Выходит, что вся защита сводится к ведению чёрных списков IP-адресов, и спамерам достаточно сменить IP-шник, как спам свободно пройдет сквозь фильтры почтовиков.


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#34 14-08-2014 22:26:38

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Запазухой у хакера

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

IP-Tools - это куча утилит для работы с TCP/IP: http://www.ks-soft.net
Программа незаменима для всех, кто живёт в Интернет. Если Вы администратор сети, то для Вас будет полезной ещё одна программа: "HostMonitor", которую можно скачать там-же.

IP-Tools включает в себя 15 утилит:

Local Info   :  инфа о системе (проц/память/WinSock и т.д.);
Connections  :  инфа о портах машины, на которых висят соединения;
NetBIOS Info :  получение NetBIOS'овской инфы о локальном/удалённом узле;
NB Scanner   :  cканер расшареных узлов (круто);
Name Scanner :  cканирование хоть всего интернета за раз;
Port Scanner :  cканирование TCP-портов хоть всего интернета;
Ping Scanner :  ping по диапазону адресов/списку адресов;
Trace        :  маршрут, по которому бегают ваши IP-пакетики до заданного узла; 
WhoIs        :  регистрационная информации о доменах; 
Finger       :  инфа о пользователях заданного хоста;
LookUp       :  определяет IP хоста по имени или наоборот;
GetTime      :  получение/синхронизация времени с серверами точного времени;
Telnet       :  telnet-клиент;
IP-Monitor   :  графики входящих/исходящих пакетов для TCP/UDP/ICMP;
Host Monitor :  статус хостов (умеет вести log, запускать внешние программы).


Характеристики:
* Программа позволяет одновременное выполнение нескольких/всех утилит.
* Все сканеры могут работать как с отдельным хостом, так и по диапазону IP адресов.
* Всю информацию Вы можете записать в текстовые файлы.
* Простой/понятный интерфейс и гибкость настроек.
* После регистрации Вы сможете использовать все/будущие версии IP-Tools.

Награды:
* Awarded 5/5 Stars on The File Transit
* ZDNet Software Library
* "ListSOFT Cool" by ListSoft 
* "User's Choice" by ListSoft 
* "ListSOFT Recommends" by ListSoft 
* SoftList says: BEST ! 
* "Simply the Best" by STB 
* Paul's Picks Shareware Winner 
* Rated 5 stars at WebAttack


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#35 20-08-2014 01:09:05

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

Коммерческий взлом,

Хакерствовать, получая приход в виде очередной пачки денег, намного интереснее, чем писать шаровары или протирать штаны в конторе. Хакеры относятся к тем немногочисленным счастливчикам, на которых это правило не распространяется, но как найти себя среди этих терний? Вот на это мы и потратим следующие пол-часа..

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

* имейте дело только с зарубежными клиентами, в УК которых нет статей о хакерстве (Кабул, Иран, Непал, Ливан, Южно/африканский блок). Даже если спецслужбы классифицируют ваши деяния как преступления, то сам/чёрт не разберёт, законы какой страны пострадали, да и бюрократической волокиты тут немеряно. Даже если действовать под своим/реальным именем, риск залететь всё-равно нулевой;

* сотрудничайте только с крупными компаниями, а не с отдельными индивидуумами. Фирме по-любому придётся отмазываться, а единственный способ отмазать себя - это оправдать хакера;

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

Анализ коммерческого/программного обеспечения на предмет поиска украденных фрагментов кода - весьма популярная тема, и суммы там фигурируют с тремя нулями сзади и двумя цифрами спереди. С юридической точки зрения, законы ряда стран запрещают дизассемблировать код. По российским законам дизассемблирование возможно и без получения разрешения, поэтому западные компании очень часто нанимают русских хакеров, чтобы поковыряться в коде конкурентов.

Отдельное место в хакерской практике занимают тесты на проникновение и поиск уязвимостей. Хакеров этой группы называют пен-тестерами, ..именно на них мы и остановимся. С одной стороны, это самый легальный вид хакерской деятельности из всех возможных, с другой-же.. здесь оплачиваются только найденные дыры, которых может и не быть вообще, а время на поиск убито. Короче, дыры - это для азартных игроков. Если посмотреть на мир глазами оптимиста - дыры есть практически везде и очень многие из них находятся буквально за считанные минуты, особенно если методика поиска уже отработана и вы имеете реальный/боевой опыт.

Работает это так: берётся любая/корпоративная сеть, с руководством которой создаётся договор, что если вы проникаете незамеченным в их сеть, они отваливают вам за это бабло, взамен на указание дыры, через которую вы туда проникли. На какие только ухишрения не идут пен-тестеры, для достижения цели - это просто познавательная фантастика. Вот некоторые их них..

Матрица в тебе

Арабы в таких случаях говорят: хочешь пробраться к сановнику - сдружись с привратником. За неимением привратника сойдет и системный администратор, с которым завязывается невинная переписка, по адресу обратной связи с компанией. Администратор (как и положено) неразговорчив и мрачен, ..и дело совсем не в неразделенной любви, а регулярно падающей NT. Как известно, в последних Service Pack'ах ужесточён контроль за ошибками, и освобождение уже освобождённой памяти стало вызывать выпадения в BSOD.

И ведь для нашего-же с вами блага! Мелкософт посчитал, что лучше остановить систему, чем позволить драйверу химичить с памятью. Вся проблема в том, что NT блокирует любое обращение к своей памяти с прикладного уровня, вызывая исключения в виде BSOD. Хорошо, ..о себе надо беспокоиться, но а что-же делать юзеру? Зачем было забирать в свою память драйвера USB, звука, принтера и всей остальной ботвы?! Оставь себе чипсет, менеджер памяти, диски и видео, остальные пусть запускаются с прикладного уровня, и если они сглючат, то пусть глючат в своём адресном пространстве (как это делается по F8 при загрузке).

Но вернёмся к горе-админу, голубые экраны которого продолжаются, компания терпит убытки и тут ..на сцене появляетесь вы! Решение - очевидно. Дизассемблировать ядро, найти то место, где производится проверка освобождения уже освобождённой памяти (а найти его очень просто, по перекрёстным ссылкам к функции KeBugChekEx, вызываемой с соответствующим STOP-кодом) и слегка пропатчить ядро, предварительно отключив защиту от записи, путём сброса бита "WriteProtect" в регистр "CR0". Просто предложим несчастному администратору переслать по почте его NTOSKRNL.EXE, и буквально через несколько минут вышлем "исправленный" вариант:

Disassembly of File: ntoskrnl.exe
Code Offset = 00000580, Code Size = 00072580
Data Offset = 00075B00, Data Size = 00016E00

+++++++++++++++++++ IMPORTED FUNCTIONS ++++++++++++++++++
Number of Imported Modules =  3 (decimal)

   Import Module 001: BOOTVID.dll
   Import Module 002: HAL.dll
   Import Module 003: KDCOM.dll

+++++++++++++++++++ EXPORTED FUNCTIONS ++++++++++++++++++
Number of Exported Functions = 1487 (decimal) ; всего 1487 функций

Addr:0045C7EB Ord:  518 (0206h) Name: KeBugCheckEx ; 518-ая отвечает за BSOD

++++++++++++++++++ ASSEMBLY CODE LISTING ++++++++++++++++
//************ Start of Code in Object .text **************
Program Entry Point = 005D7BAC (ntoskrnl.exe File Offset:001D7BAC)

; участок кода для правки
Exported fn(): KeBugCheckEx - Ord:0206h

:0045C7EB 8BFF                    mov  edi, edi
:0045C7ED 55                      push ebp
:0045C7EE 8BEC                    mov  ebp, esp
:0045C7F0 6A00                    push 00000000
:0045C7F2 FF7518                  push [ebp+18]
:0045C7F5 FF7514                  push [ebp+14]
:0045C7F8 FF7510                  push [ebp+10]
:0045C7FB FF750C                  push [ebp+0C]
:0045C7FE FF7508                  push [ebp+08]
:0045C801 E89CF4FFFF              call 0045BCA2
:0045C806 5D                      pop  ebp
:0045C807 C21400                  ret  0014

Функция "KeBugCheckEx" принимает четыре аргумента, важнейшим из которых является BugCheckCode, определяющий причину сбоя. Дизассемблирование ядра ХР показывает, что "KeBugCheckEx" вызывается из 387 мест, с различными параметрами. Вот одно из них:

* Referenced by Jump at Address:  | :0044478E(C)
|
:004447EB 807D0C00                cmp byte ptr [ebp+0C], 00
:004447EF 750B                    jne 004447FC
:004447F1 50                      push eax
:004447F2 50                      push eax
:004447F3 50                      push eax
:004447F4 50                      push eax
:004447F5 6A22                    push 00000022
* Reference To: ntoskrnl.KeBugCheckEx
                                  |
:004447F7 E8EF7F0100              call 0045C7EB

Из этого следует, чтоб BSOD в ХР может иметь ~390 кодов ошибок.
После этого, можно смело рапортовать об успешно/выполненой работе начальству и пополнить свои карманы хрустами, т.к. помимо закороченной функции BSOD, в ядро можно поместить чёрт/знает чего..


Опасные обновления

Или ещё одно ..настоящее испытание. Клиент, заказавший пен-тестинг, использует (в качестве внешних узлов) сервера на базе различных версий никсов/BSD, настроенных на максимальный уровень безопасности. Узлы, имеющие доступ во внешний мир, выделены в отдельную подсеть, отгороженную брандмауэрами и прочими защитными комплексами.

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

Хакеру предлогается проникнуть внутрь сети, физически отключенной от всех узлов, контактирующих с внешним миром. Отключенной - в прямом смысле этого слова, что указывает на высочайший уровень безопасности, обусловленный высоким уровнем секретности обрабатываемых данных.

Рассуждая логически - допустим, один из узлов внутренней сети имеет модем. Или беспроводной адаптер. Или... но, увы, даже если это и так.. модем наверняка подключен к внутренней АТС, не имеющей выхода во внешний мир. Беспроводной адаптер? Чтож, вполне вероятно. Кстати сказать, стек протоколов для "Голубого зуба" до сих пор сырой как вода и дыр там.. Без всяких паролей и других штучек, посылкой специальным/образом снаряжённых пакетов можно вызывать переполнение буфера и получить наивысший уровень привилегий. Остальное - уже дело техники.

Ситуация казалась безнадежной.. Определив по IP-адресам внешних узлов название компании Интернет-провайдера, услугами которого пользовался заказчик атаки, хакер зашёл на его головной сайт, поблуждав по которому наткнулся на сервер обновлений для Linux и BSD-систем. Подобные сервера предоставляют достаточно многие провайдеры. Действительно, какой смысл всем клиентам качать обновления напрямую с далеких зарубежных серверов, когда провайдер, скачав их всего один раз, может перевести клиентов на локальный трафик (значительно более дешевый, да и скорость повыше будет).

Возникло сумасшедшее предположение - а что, если администратор засекреченной организации качает обновления не напрямую, а берет их непосредственно с сервера провайдера? Наскоро заключив договор на пен-тестинг с провайдером (на условиях очень выгодных для провайдера), хакер легко взломал его, получив доступ к серверу обновлений. Дальше все пошло как по маслу. Администратор засекреченной организации действительно качал обновления не напрямую и утянул "подложное" обновление вместе с остальными. После чего, следуя служебной инструкции, записал его на DVD, вытащил сменный носитель из лотка привода и держа его в руках, вошёл в святую/святых - внутрь особо охраняемой сети, физически отрезанной от всего внешнего мира.

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

Теперь администратор качает все обновления напрямую, что, конечно, затрудняет атаку, но отнюдь не делает её невозможной, особенно в случае использования операционных систем с открытым кодом. Задумывались-ли вы, сколько людей имеют доступ к коду? Сколько хакеров могут посылать заплатки, обновления и насколько тщательно они проверяются перед вкладыванием на официальный сервер обновлений?!

Мы живем в небезопасном мире и ключевое слово здесь "живем" - в смысле "существуем" вопреки всем угрозам. Иначе и не может быть. Компьютеры неидеальны, защитные механизмы несовершенны, невзламываемые системы существуют только на бумаге, однако при всей шаткости коммуникационных систем цивилизация не только не загибается, но даже еще растет, процветает и развивается. Да, взломы случаются. Их можно затруднить, но полностью предотвратить угрозу атаки невозможно в принципе!


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен

#36 23-08-2014 01:04:39

Rumit
Мастер
Откуда: Из матки
Зарегистрирован: 18-01-2008
Сообщений: 993
Вебсайт

Re: .: Вирусы под наркозом :.

По-просьбе Raziel, начнём тему беспроводных подключений. Сперва ознакомимся с Bluetooth, а там и освоим Wi-Fi..
Часто, Bluetooth обзывают "голубым зубом" (blue teeth), что выглядит довольно странно, если не сказать - подозрительно. По идее, это не голубой зуб, а "простая связь". Blue - на жаргоне означает легкий/простой, а tooth - сцепка/зацепление. Соединив вместе, получаем: "Легкая сцепка", "Простая Связь".

Устройства Bluetooth работают в диапазоне частот от 2400 до 2483,5 МГц (т.е. ~2,4 ГГц). На этой-же частоте работают спутниковое ТВ, микроволновые печи, радиотелефоны и многие другие устройства, агрессивно конфликтующие между собой.

Для решения конфликтных проблем, Bluetooth (далее ВT) использует спец/алгоритм перестройки частоты.
Весь частотный диапазон (83,5 МГц) нарезается на 79 каналов с шириной в ~1 МГц. Каждые 625 мкс происходит смена канала (канал выбирается случайному образом). Каждая/такая порция вещания образует time-slot (слот). Передаваемые данные разбиваются на пакеты по 2745 бит, каждый из которых размазывается по нескольким слотам (макс 5 слотов):

                    * Один блок данных *
    |<------ время (52 миллисек), размер (1.7k) ----->|
                                                    
    +---------+---------+---------+---------+---------+
    |         |         |         |         | пакет 5 | 
    +---------+---------+---------+---------+---------+   
    |         |         | пакет 3 |         |         |
    +---------+---------+---------+---------+---------+
    |         | пакет 2 |         |         |         | <--- канал (1 из 79-ти)
    +---------+---------+---------+---------+---------+
    |         |         |         | пакет 4 |         |
    +---------+---------+---------+---------+---------+
    | пакет 1 |         |    +    |         |         |
    +---------+---------+----+----+---------+---------+
                             |
                             +---<-- слот (размер 2745 бит, ширина 1,06 МГц)

Устройства взаимодействуют по схеме master-slave (мастер/раб). Один мастер может иметь до семи рабов, мастер вещает в чётных слотах, а рабы - в нечётных. Поддерживаются 2 типа связи: асинхронный (ACL) и синхронный (SCO). Синхронный режим используется для передачи речи, ..асинхронный - для обмена данными.

Пропускная способность канала в асинхронном режиме составляет 1 Мбит/с, при этом заголовки и служебная инфа съедают 20% трафика, оставляя нам ~820 Кбит/с. Ведомое и ведущее устройство могут иметь только один канал (link) асинхронной связи, организованный по схеме точка-точка (point-to-point), или работающий в широковещательном режиме (broadcast), причем без разрешения хозяина, раб не может переходить на асинхронный тип передачи.

В синхронном режиме связи, мастер может поддерживать до трёх каналов с одним/двумя/тремя ведомыми устройствами, с пропускной способностью каждого канала в 64 Кбит/с. Вещание ведётся в слотах, назначаемых мастером. Слоты, не используемые в синхронном режиме, могут использоваться в асинхронном.

    Схема протокола передачи
    |              |              |
    M <------------+------<-------|
    |              |              M
    S2------>------+------------->|
    |              |              |
    M <-----<------|              |
    |              M              |
    S1------>----->|              |
    |              |              |
    +              +              +
    Мастер        Slave1         Slave2

Предельная мощность передатчика должна составлять 10 мВт, что обеспечивает устойчивую работу в радиусе до 25-ти метров. Но для охоты/снифинга устойств BT, этого явно будет маловато и необходимо увеличить радиус действия устройства хотя-бы до сотни метров. Реализовать это на практики довольно просто. Разбираем адаптер, находим медную дорожку, изогнутую сексуальной буквой "П", и припаеваем к ней провод от внешней антенны на 2.4 ГГц, позаимствованной у WLAN-устройств.

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


Авторизация и аутентификация

Bluetooth поддерживает три режима секретности:
* Security Mode 1 (nonsecure - открытый);
* Security Mode 2 (Service-level enforced security - секретность уровня сервиса);
* Security Mode 3 (Link-level enforced security - секретность уровня канала).

_в mode 1 - вся защита выключена. Не используется ни аутентификация, ни шифрование, ..а само ВТ-устройство работает в широковещательном режиме (promiscuous, неразборчивый), что делает возможным построение снифферов из доступных компонентов.

_в mode 2 - сразу-же после установки соединения, начинается процесс аутентификации, осуществляемый по L2CAP-протоколу, взаимодействующим с протоколами верхних уровней. Это позволяет создать режим "только чтение".

_в mode 3 - аутентификация происходит перед установкой соединения на канальном уровне, за счёт чего все/левые устройства будут отшиты ещё на этапе подключения, что обеспечивает макс.уровень безопасности и комфорта.

Фундаментом безопасности является схема генерации ключей.
Ключи генерируются на основе PIN-кодов, длинна которых варьируется в пределах от 1 до 16 байт, и хранимых в энергоНЕзависимой памяти. Большинство мобильных устройств используют 32-битный (4х-значный) PIN, по умолчанию выставленный в 0000 или 1234.

Далее, на основе PIN-кода генерируется 128-битный (16-значный) Link Key, вычисляемый по E2-алгоритму. В свою очередь, на основе Link Key'я генерируется 128-битный Encryption Key, вычисляемый по алгоритму E3. Link Key используется для аутентификации, а Encryption Key - для шифрования трафика.

Аутентификация осуществляется по классической схеме запрос/ответ:

* запросивший, посылает ответчику свой/48-битный аппаратный адрес (BD_ADDR), в каком-то смысле MAC-адрес;

* ответчик, отвечает передачей 128-битной привязкой (challenge). Эта привязка генерируется модулем _RNG (random number generator) случайным образом, и обозначается как AU_RAND;

* на основе BD_ADDR, Link Key и challenge, запросивший генерирует секретый шифр (SRES), тоже делает и ответчик;

* полученный шифр, запросивший передает ответчику;

* ответчик сравнивает свой _SRES с откликом запросившего и, если они совпадают, устанавливает соединение.

                     Процесс аутентификации

    +-------+               AU_RAND
    |  RNG  +------+----------------------+                    BD_ADDR
    +-------+      |  +-------------------|--+--------------<<----------<<--
                   |  |                   |  |
    Link Key  +----+--+-+            +----+--+-+   Link Key
    --------->|   ВТ-1  |            |   ВТ-2  |<------------
              +-+-----+-+            +-+-----+-+
          АСО   |     |  SRES          |     |    АСО
       <--------+     +-------+    +---+     +---------->
                        +-----+----+-+       
                        |     =???   +----+
                        +--+---------+    |
                           |            +-+---+  на борт
              от борта   +-+--+         | Yes +---------->
           <-------------| No |         +-----+
                         +----+

Таким образом, в открытом виде PIN-код не передается и поэтому не может быть перехвачен. Однако, он может быть подобран. Мы можем перехватить BD_ADDR, AU_RAND и SRES, после чего нам остаётся подобрать такой Link Key, который-бы при данных BD_ADDR и AU_RAND давал-бы идентичный SRES. Даже если используется 128-битный PIN, полный перебор на Pentium-4 занимает всего/несколько часов, а 4-символный PIN взламывается практически мгновенно!

Методы атаки

Три наиболее/распространённых типа атаки на Bluetooth - это Bluetracking, Bluesnarfing, и Bluebugging. Атаки типа Bluetracking основаны на том, что адрес устройства BD_ADDR передается в сеть в незашифрованном виде и может быть легко перехвачен и декодирован. Хакер может легко определить само устройство: производитель/модель/происхождение. Группа хакеров, рассредоточенных по городу и вооруженных антеннами типа Randome, без труда отслеживает перемещение жертвы со всеми вытекающими последствиями.

Серия нашумевших атак типа Bluesnarfing всё/ещё овеяна ореолом загадочности. Под изумлённые взгляды окружающих, хакеры вытягивают с сотовых телефонов записные книжки, содержимое адресной книги, архив SMS-сообщений и другую приватную информацию. Черт возьми, как?! Хакеры улыбаются, но не отвечают. Во многих мобильных устройствах служба обмена объектами (Object Exchange - OBEX) работает в non-secure режиме, не требуя никакой аутентификации! Этим грешат сотовые телефоны:

* Nokia     : модели 6310, 6310i, 8910 и 8910i;
* Ericsson  : модели T68, T68i, R520m, T610 и Z1010;
* Motorola  : V80, V5xx, V6xx и E398.
* Siemens   : всегда работает в защищённом режиме!!!

Атаки типа Bluebugging (также называемые Blue Bug) представляют собой разновидность Bluesnarfing-атак, но теперь вместо обмена объектов происходит засылка AT-команд, по всё тому же OBEX-протоколу. AT-команды - это обыкновенные коммуникационные команды, знакомые любому модемщику. С их помощью можно отправлять SMS-сообщения, совершать голосовые звонки за счёт жертвы и выходить в Интернет по WAP/GPRS протоколам. И всё это безо всякой аутентификации! Короче, Blue Bug - это серьёзно.

Наконец, даже полностью защищенные телефоны типа того-же Siemens'а могут быть взломаны лобовым перебором. Как уже отмечалось, 4-значный PIN вскрывается за несколько секунд и даже если в будущих моделях производители увеличат длину PIN-кода до 16-байт, это не остановит взломщиков, а только сильно усложнит жизнь пользователей. Такой PIN запомнит далеко не каждый, а это значит, что повсеместно будут использоваться словарные коды, существенно упрощающие их перебор.

Всего-же, существует более 20 типов атак, которые было-бы слишком утомительно описывать здесь. Тот, кто хочет узнать больше, может обратиться к замечательной книге "Wireless Network Security" и другим подобным документам.

Чем ломать

Хачить Bluetooth лучше всего под Линухом, открытая архитектура которого позволяет использовать уже готовые компоненты и содержит кучу полезных утилит, которые можно использовать для сканирования или Bluesnarfing атаки. Например, hciconfig, запущенную с ключом "-ifconfig", или hcitool cо следующими ключами:
* Scan - просканировать периметр и распечатать список обнаруженных Bluetooth-устройств;
* Name - возвратить имя удаленного устройства;
* Cmd - управление локальным Bluetooth по HCI-интерфейсу;
* Cc - создать подключение.

    # hciconfig -a
    hci0:    Type: USB
            B0 Adress: 00:02:58:A1:44:C2 ACL MTU: 384:8 SCO MTU: 64:08
            UP RUNNING PSCAN ISCAN
            RX bytes: 9765 acl:321 sco:0 events:425 errors:0
            TX bytes: 8518 acl:222 sco:0 commands:75 errors:0
            Features: 0xff 0xff 0x3b 0xfe 0xff 0x9b  0x0f 0x21
            Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV1 HV1
            Link policy: RSWITCH HOLD SNIFF PARK
            Link mode: SLAVE ACCEPT
            Name: 'Casira BC3-MM'
            Class: 0x1e0100
            Service Classes: Networking, Rendering, Capturing, Object Transfer
            Device class: Computer, Uncategorized
            HCI Ver: 1.2 (0x2) HCI Rev: 0x529 LMP Ver: 1.2 (0x2) LMP Subver: 0x529
            Manufacturer: Cambridge Silicon Radio (10)
            
    # hcitool scan
    Scanning ...
            00:04:BE:55:03:FD     AVM BlueFRITZ AP-D5L
            00:01:EC:50:45:81     HBH-10
            00:04:76:63:72:4D     Aficio AP600N
            00:A0:57:A0:22:0F     ELSA Vianect Blue ISDN
            00:E0:B3:04:6D:36     Nokia 6210
            00:80:37:06:78:92     Ericsson T39m


Болтовня ничего не стоит. Покажите мне код.. (Linus Torvalds)

http://ne-kurim.ru/ncounter/134735-4.png

Неактивен


Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Рейтинг@Mail.ru