Кто пингует мой компьютер?

16.05.2017 2 Автор GodKnowses

В статье рассматривается вопрос о том, как узнать были ли попытки или конкретно кто пингует мой компьютер на предмет вероятного взлома? Как узнать, ведётся ли сейчас работа против вас, и где спрятался враг? Нарочито обойдёмся без мастодонта WireShark – благо задача оказалась вполне без него реализуема.

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

Лаборатория опыта “кто пингует мой компьютер?”

  • Кали Линукс Rolling – хозяйская ОС (IP – 192.168.0.100)
  • Windows 7 (не ниже) – гостевая ОС из VirtualBox (её IP – 192.168.0.101)

Дальнейшие действия разбиваем на этапы:

Введение или что за пинг такой? Кто знает – абзацы мимо.

С чего начинается взлом системы? Огромная часть хакерских атак происходит от специалистов по тестированию на проникновение в систему. А первейшим из этапов по тестированию является именно обнаружение удалённых и потенциально уязвимых систем. А как хакер узнает, что вы сейчас находитесь в сети? Если трояна в системе нет, и злоумышленнику ничто об урожае не сообщает (это совсем другой тип атак), он проводит часто даже слепое сетевое тестирование на “живучесть” систем, находящихся в локальной или глобальной сети. Этот процесс называется пингованием. Простое пингование со стороны злоумышленника применяется нечасто, однако, думаю, именно начинающие пентестеры оценят указанные способы защиты: они позволят увидеть не только простые пинги.

СПРАВКА

Пинг – она же ping – она же Packet InterNet Groper –  древняя сетевая утилита, разработанная с первоначальной целью определения наличия ошибок в сетевом соединении между компьютерами. В том или ином виде присутствует практически во всех операционных системах, а также входит в состав специальных сетевых утилит, таких например, как Nmap. У геймеров приобрела нарицательное значение о чистоте соединения с игровым сервером. Отсюда и глагол пинговать – проверять удалённую систему на присутствие в сети.

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

Кто пингует мой компьютер? Что есть в Windows?

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

  • консольную утилиту netsh
  • скачанную и установленную по раразрядности вашей Windows версию Message Analyzer (она, в свою очередь, потребует присутствия обязательного Microsoft Framework 4.5 – но без этой вроде как никакую программу-то и не установишь)
  • Параметры папок в Панели инструментов должны быть настроены на отображение Скрытых папок и файлов

Пока настраиваем жертвенную Windows, сразу пингуем её из Кали:

А в открытой от имени админа консоли команд Windows тем временем забиваем:

netsh trace

В этом виде вы получите справку на русском:

Дополнительные функции нас пока не интересуют. По каждой же из команд можно получить дополнительную справку, из которой мы и узнаём, что нужная нам команда на захват пакетов выглядит просто:

netsh trace start capture=yes

ОДНАКО. Сразу один совет. Утилита сейчас начнёт хватать всё подряд, что, конечно, не помешает дальнейшему анализу. Но сам файл, который мы будем изучать, разрастётся донельзя (а лимит, как вы помните, 250 Мб). Так что сразу предлагаю указать netsh следить за конкретным соединением. Его легко увидеть прямо сейчас, набрав команду:

netsh trace show interfaces






У меня два адаптера, но активирован только второй по списку. Его GUID я и укажу в консоли:

netsh trace start capture=yes Ethernet.Type=IPv4 IPv4.Address=192.168.0.101 CaptureInterface={B8178BE4-C2CB-49E9-8470-80757CCF0718}

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

netsh trace stop

и обратимся к записанному по пути, указанному в консоли. Путь из проводника Windows придётся проложить через скрытые папки, так что предварительно заставьте Windows отображать их через Параметры папок в Панели управления. Вот и содержимое папки:

Теперь запустим Message Analyzer и откроем файл NetTrace.etl с его помощью:

Ждём обработки. Смотрим и ищем следы эхо-запросов (это протокол ICMP традиционной команды ping):

Для упорядочения данных по имени модуля щёлкните по соответствующему окну (протоколы станут по алфавиту). А вот и ping пробы с “неизвестного” адреса. Опустимся чуть ниже мышкой в часть окна Details 1 и щёлкнем по иконке “руки на листе бумаги”:

А вот и подробности. Компьютер с IP адресом 192.168.0.100 пингует мой компьютер на предмет присутствия в сети, а мой – IP 192.168.0.101 – ему любезно отвечает. Повторюсь, это иллюстрация простого пинга.

Кто пингует мой компьютер: смотрим из Линукс

Чем Линукс хороша – почти все необходимые утилиты устанавливать нет необходимости: всё уже есть. Как и упоминаемая tcpdump. Она представляет собой системный сниффер и анализатор сетевых пакетов. И команда проверки пинга в вашем терминале будет выглядеть так:

tcpdump -i eth1 icmp and icmp[icmptype]=icmp-echo -n

где вместо eth1 вам нужно подставить значение своего сетевого интерфейса (у меня указанный). Его легко выцепить из команды ifconfig терминала. Проводим очередной опыт. Теперь пингуем наоборот: из Windows пингуем Кали Линукс:

В терминале Кали приводим нашу команду и в режиме он-лайн перехватываем эхо-запрос ICMP:





Кстати, добавлен аргумент -n, и теринал будет показывать именно IP адрес, а не DNS имя: обойдёмся без реверса доменных имён. Тот же ответ будет получен при использовании tcpdump с такими флагами:

tcpdump ip proto \\icmp

Добавим символ перехода >и данные о эхо-запросах в терминале отображаться не будут, а запишутся прямиком указанный вами файл. Например:

tcpdump ip proto \\icmp>пинги.txt

В конце посмотрим, что получилось:

Вот и пинг-пробы в нашу сторону. У меня пока всё. Успехов.