Утилиты Traceroute и Tracert | REG.RU

Что такое трассировка. для чего нужна трассировка узлов

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

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

Arp сканирование и спуфинг в windows

ARP — это протокол в локальной сети, который позволяет устройствам узнавать IP адреса друг друга.


Если запустить ARP снифинг, то вы сможете увидеть, какие устройства присутствуют в локальной сети и какие у них IP и MAC адреса:

habu.arp.sniff

С помощью модуля habu.arp.poison можно выполнять атаку ARP спуфинг, которая является первым этапом атаки человек-посередине.

Capinfos

В комплекте с Wireshark поставляется удобный инструмент командной строки

capinfos

. Эта утилита генерирует статистику пакетного дампа, с временем начала/окончания записи и другими подробностями. С опцией

-T

она выдаёт текст с табуляцией — он подходит для импорта в электронные таблицы или анализа в консоли.

test@ubuntu:~$ capinfos test.pcap
File name: test.pcap
File type: Wireshark/tcpdump/... - pcap
File encapsulation: Ethernet
File timestamp precision: microseconds (6)
Packet size limit: file hdr: 262144 bytes
Number of packets: 341 k
File size: 449 MB
Data size: 444 MB
Capture duration: 3673.413779 seconds
First packet time: 2022-12-01 11:26:53.521929
Last packet time: 2022-12-01 12:28:06.935708
Data byte rate: 120 kBps
Data bit rate: 967 kbps
Average packet size: 1300.72 bytes
Average packet rate: 93 packets/s
SHA256: 989388128d676c329ccdbdec4ed221ab8ecffad81910a16f473ec2c2f54c5d6e
RIPEMD160: 0742b6bbc79735e57904008d6064cce7eb95abc9
SHA1: d725b389bea044d6520470c8dab0de1598b01d89
Strict time order: True
Number of interfaces in file: 1

Cmd windows – ищем и проверяем

Необходимо выполнить следующие действия, независимо от вашей версии ПО:

  1. Пуск — Все программы — Стандартные — Командная строка;
  2. В окне поиска — вводите тоже самое;
  3. Открываете панель управления — выполнить — и вводим команду cmd.

Любой из этих способов откроет черное окно, которое выглядит так:

После того, как вы узнали свой IP (достаточно в строке ввести ipconfig), также вам доступна команда PING.Делаем всё, как на скриншотах.

После введенной IPCONFIG – не обязательно заглавными — вы получаете свой IP-адрес в графе IPv4. Его можно скопировать для удобства или запомнить, что более трудно. Многие просто переписывают на листок.

Командная строка всегда выдает по 4 пакета. Мы видим, что каждый пакет передает информацию в 32 бита за 3 миллисекунды каждый.Все указано на скриншоте ниже.

Вы можете самостоятельно изменить количество отправляемых пакетов, если перед «PING» добавите «-N». Тогда ваша команда будет выглядеть так: ping -n (число пакетов) IP-адрес

Также вы можете изменить количество бит, и тогда ваша команда будет выглядеть так: ping -l (количество байт) 22.11.33.444 (к примеру)

В отличие от Windows, на Linux ручная проверка айпи не прекращается до тех пор, пока вы сами не остановите этот процесс. В Виндовс такую операцию сделать также можно с помощью команды добавочной команды «-T», и выглядит это так: ping -t какой-нибудь IP (к примеру) 

Останавливается проверка с помощью нажатия Ctrl C. Вы узнали ваш IP-адрес. Теперь вам доступна информация о скорости соединения вашего компьютера с общей сетью. 

Default

Метод по умолчанию — используется если не указан другой, либо можно указать явно опцией -M default. Это традиционный, древний метод трассировки маршрута.

Пакетами зондирования являются udp датаграммы с так называемым “unlikely” (маловероятным) портом назначения. Первым “unlikely” портом зондирования является 33434 затем для каждого следующего зонда он увеличивается на единицу. Поскольку ожидается, что порт не используется, то хост назначения обычно возвращает конечный ответ “icmp unreach port”. Номер порта можно поменять (об этом ниже).

Данный метод могут выполнять непривилегированные пользователи.

Mtr и mtr-gtk (консольная и графическая версия)

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

Пример запуска:

mtr suip.biz


Пример вывода:

Данная программа поддерживает несколько методов трассировки.

Также она поддерживает разные форматы вывода для сохранения результатов, например, опция -C, –csv для сохранения результатов в формате CSV (обратите внимание, что на самом в качестве разделителя используется не запятая, а точка с запятой), а также опция -j, –json для сохранения в формате вывода JSON.

С помощью опции -n, –no-dns можно отключить преобразование IP в имена хостов.


Опцией -b, –show-ips можно включить отображение и имён хостов, и IP адресов.

Опцией -y n, –ipinfo n можно настроить вывод дополнительной информации о каждом IP хопа. В качестве n нужно указать цифру, которая означает:

 0 Показывать номер автономной системы (AS) (эквивалент -z) 1 Показывать префикс IP 2 Показать код страны на основе AS 3 Показать RIR (ripencc, arin, ...) 4 Показать дату выделения IP префикса

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

Опция -z, –aslookup отображает номер Автономной Системы (AS) для каждого хопа.


Опция -f NUM используется для установки номера первого TTL. По умолчанию равно 1.

Опция -m указывать максимальное число хопов (максимальное значение time-to-live) которое будет обрабатываться при трассировке. По умолчанию равно 30.

Опция -U ЧИСЛО устанавливает максимум незнакомых хостов. По умолчанию равно 5. Видимо, после достижения этого значения дальнейшая трассировка будет остановлена.

Tracepath

Программа tracepath схожа с traceroute, но использует только одну технику трассировки: UDP, для которой можно указать свой порт. Из-за выбранной техники, программа не требует повышенных привилегий.


Пример запуска:

tracepath suip.biz

Пример вывода:

 1?: [LOCALHOST] pmtu 1500 1: _gateway 1.247ms 1: _gateway 1.031ms 2: 10.20.48.1 9.097ms 3: 10.246.245.241 14.034ms 4: 10.185.252.194 14.379ms 5: 10.185.252.29 11.530ms asymm 4 6: 58-97-121-237.static.asianet.co.th 13.849ms asymm 5 7: 171-102-247-184.static.asianet.co.th 15.737ms asymm 6 8: 171-102-250-1.static.asianet.co.th 64.185ms asymm 7 9: 171-102-254-232.static.asianet.co.th 14.962ms asymm 8
10: 171-102-250-156.static.asianet.co.th 13.509ms asymm 9
11: 122.155.226.89 18.793ms
12: 61.19.9.66 58.829ms
13: no reply
14: 87.226.181.87 399.972ms asymm 23
15: 81.177.108.86 263.969ms asymm 14
16: j37-ae9-3001.marosnet.net 307.140ms
17: suip.biz 304.644ms reached Resume: pmtu 1500 hops 17 back 17

В первой колонке рядом с номера узла может стоять знак вопроса — он означает, что в присланном ответе отсутствует номер TTL и программа пытается его предположить.

Вместо звёздочек, если IP не узнан, пишется no reply.

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

У tracepath не очень много опций:

Использовать только IPv4


Использовать только IPv6

Не печатать имя хоста, а печатать цифровое значение IP.

Печатать и имя хоста и IP адрес в цифровом виде.


Установить начальную длину пакета вместо 65535 для tracepath или 128000 для tracepath6.

Установить максимальное число хопов (или максимум TTL) — то есть количество максимально «простукиваемых» узлов. По умолчанию 30.

Установить начальный порт назначения.

Tshark для командной строки


Если вы ещё не баловались с

tshark

, взгляните на наше

. Эту программу часто игнорируют, хотя она отлично подходит для захвата сессий на удалённой системе. В отличие от

tcpdump

, она позволяет на лету захватывать и просматривать сессии прикладного уровня: декодеры протоколов Wireshark также доступны для tshark.

Udplite


Использует для зондов датаграммы udplite (с постоянным портом назначения, по умолчанию 53). Для активации этого метода укажите опцию -M udplite или -UL.

Этот метод не требует повышенных прав.

Опции:

coverage=ЧИСЛО


Устанавливает покрытие отправки udplite на ЧИСЛО.

Whois в windows

WHOIS — это протокол запросов и ответов для получения информации из базы данных. Чаще всего WHOIS используется для получения регистрационных данных о владельцах доменных имён, IP-адресов и автономных систем.

В Linux программой whois можно пользоваться прямо из командной строки. Но в Windows такая утилита отсутствует.


С помощью команд вида:

habu.whois.domain ДОМЕН
habu.whois.ip IP_АДРЕС

Вы можете получить записи WHOIS, соответственно, для домена и IP адреса.

Например:

habu.whois.domain kali.tools

Анализ pcap-файлов

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

  1. Захват пакетов с помощью tcpdump (обычно — с помощью команды наподобие sudo tcpdump port 443 -w output.pcap).
  2. Копирование pcap-файла на рабочий ноутбук (scp host:~/output.pcap .).
  3. Открытие pcap-файла с помощью Wireshark (wireshark output.pcap).


Как видите, всё очень просто. Однако, после того, как pcap-файл открыт в программе, у вас может возникнуть закономерный вопрос о том, что со всем этим делать. Поговорим об этом.

Анализ tcp-соединений

Часто, когда я анализирую в Wireshark некую ситуацию, мне нужно проверить какое-то конкретное TCP-соединение, с которым, по какой-то причине, что-то не так. Благодаря Wireshark можно проанализировать весь жизненный цикл отдельного TCP-соединения и выяснить причины неправильного поведения системы.

Сделать это можно, щёлкнув правой кнопкой мыши по интересующему вас пакету и выбрав в контекстном меню команду Conversation filter > TCP.

Начало анализа TCP-соединения

После этого Wireshark покажет другие пакеты из того же TCP-соединения, к которому принадлежит тот пакет, по которому вы щёлкнули. На рисунке ниже можно видеть пример успешного SSL-соединения — тут присутствуют пакеты client hello, service hello, certificate, server key exchange, которые используются для установления SSL-соединений.

Анализ TCP-соединения

Рассматриваемую здесь методику анализа TCP-пакетов мне пришлось использовать в день написания этой статьи, на работе. Некоторые соединения сбрасывались, и я заметила, что после отправки пакета client hello клиент отправлял пакет FIN ACK, который завершал TLS-соединение.

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

В командной строке узнаем ip адрес для трассировки

Если по доменному имени трассировка не проходит, сделаем это по IP адресу. Узнаем его через команду «ping». Этот запрос показывает время, которое нужно пакету, чтобы дойти до сервера и вернуться обратно. Цифры в квадратных скобках, которые идут после домена в строке «Обмен пакетами с…», это и есть искомый IP. На скриншоте: 88.214.230.21.

:/>  Команда eventvwr msc

CMS хостинг — подберите тарифный план, подходящий для системы управления Вашим сайтом!

Виды трассировки

Имеется несколько видов трассировки. В основном они различаются отправляемым пакетом — это может быть пакет транспортного протокола TCP или UDP, либо протокола межсетевых управляющих сообщений ICMP, либо сырой IP пакет.

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


Это можно проиллюстрировать на следующих двух примерах трассировки до одного и того же хоста:

Использование wireshark для изучения сетевых протоколов

В этом материале встречаются некоторые термины, которые можно отнести к чему-то вроде жаргона сетевых специалистов. Например — кадр (frame), TCP-порт (TCP port), DNS-ответ (DNS response), IP-адрес источника (source IP address), пакет

client hello

SSL-соединения (SSL client hello). Одной из причин их использования является тот факт, что Wireshark, определённо, не пытается оградить пользователя от тонкостей внутреннего устройства сетевых технологий. Новичка такое положение дел может, поначалу, заставить задуматься о том, что Wireshark — это программа не для него, а лишь для опытных сетевых специалистов.

У такой ориентированности Wireshark на низкоуровневые сетевые механизмы, однако, есть серьёзный плюс. Дело в том, что работая с этой программой, можно узнать что-то новое о сетевых протоколах. Например, я не особенно много знаю о внутренних механизмах протокола TLS/SSL.

Однако, анализируя трафик в Wireshark, я обратила внимание на то, что первые два пакета SSL-соединения — это client hello и server hello. В результате протокол, который, если не вникать в детали его работы, кажется чем-то таинственным и недоступным для понимания, начинает обретать более понятную форму, превращается в нечто такое, что можно понять и проанализировать.

Как запускать программы python в windows

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

Для запуска откройте командную строку и запустите команду вида:

python СКРИПТ.py


Пример простой программы hello_world.py:

x = 1
if x == 1: # Намеренно вставленные 4 пробела print("x равняется 1.")
print("Goodbye, World!")

Запуск:

python hello_world.py

Как найти субдомены сайта в windows

Субдомены — это домены третьего и последующих уровней. Например, для сайта suip.biz субдоменами являются www.suip.biz, test.suip.biz, en.suip.biz и т.д.

Есть разные способы поиска субдоменов — как брутфорс, так и с использованием различных сервисов, накопивших статистику. Одним из самых быстрых и эффективных способов является анализ логов Certificate Transparency. Поиск субдоменов выполняется быстро, но требуется некоторое время для их проверки (имеют ли они IP адреса).

Для поиска субдоменов запустите команду вида:

habu.crtsh ДОМЕН

Как найти устройства с перенаправлением трафика

Следующая команда на первый взгляд может показаться малополезной — в качестве аргумента они принимает диапазон сети и показывает IP адрес роутера. Например:

habu.gateway.find 192.168.1.0/24


Пример вывода:

192.168.1.1 14:9d:09:d0:04:7e Huawei Technologies Co.,Ltd

Но на самом деле всё немного сложнее: программа не просто ищет роутер, а проверяет все устройства в локальной сети на возможность перенаправления трафика.

К примеру, на другом компьютере, который работает на Linux, я включаю перенаправления трафика:

sudo sysctl -w net.ipv4.ip_forward=1

И вновь запускаю сканирование на компьютере с Windows:

habu.gateway.find 192.168.1.0/24


Теперь я получаю сразу два результата:

192.168.1.4 c0:b6:f9:da:af:3e Intel Corporate
192.168.1.1 14:9d:09:d0:04:7e Huawei Technologies Co.,Ltd

Включение перенаправления трафика может являться началом атаки человек-посередине. То есть при обнаружении с такой функцией другого устройства, помимо роутера, следует отнестись к нему внимательнее.

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

Как начать изучать python

Материалов по изучению этого языка программирования много, могу порекомендовать один из них. Некоторое время назад мне попалась и запомнилась книга «Python для сетевых инженеров» – хорошо и доходчиво написано, в том числе для начинающих.

Как показать к какой автономной системе принадлежит узел при трассировке


Каждый IP адрес привязан к Автономной системе (AS). С помощью опции -A вы можете включить запрос номера AS для каждого узла по пути трассировки, например:

sudo traceroute -A -n suip.biz

Пример вывода:

 1 192.168.1.1 [AS198949] 1.102 ms 1.708 ms 2.720 ms 2 10.20.48.1 [*] 7.121 ms 7.168 ms 11.242 ms 3 10.246.245.241 [*] 15.368 ms 15.812 ms 15.788 ms 4 10.185.252.29 [*] 16.243 ms 16.213 ms 16.181 ms 5 58.97.121.237 [AS38082/AS7470] 16.802 ms 16.776 ms 16.976 ms 6 171.102.247.244 [AS38082/AS7470] 17.405 ms 171.102.247.114 [AS38082/AS7470] 16.320 ms 171.102.247.74 [AS38082/AS7470] 21.324 ms 7 171.102.250.1 [AS38082/AS7470] 20.946 ms 20.521 ms 21.542 ms 8 171.102.254.232 [AS38082/AS7470] 21.896 ms 22.789 ms 23.755 ms 9 171.102.250.156 [AS38082/AS7470] 23.431 ms 23.036 ms 24.393 ms
10 122.155.224.197 [as4651] 26.448 ms 122.155.226.85 [as4651] 25.531 ms 122.155.226.89 [as4651] 26.770 ms
11 61.19.9.66 [AS4651/AS3549] 76.868 ms 77.298 ms 56.532 ms
12 * * *
13 87.226.181.87 [AS12389] 306.596 ms 306.452 ms 87.226.183.87 [AS12389] 306.332 ms
14 81.177.108.86 [AS12389] 307.373 ms 307.322 ms 307.328 ms
15 94.142.138.40 [AS48666] 307.290 ms 307.268 ms 307.211 ms
16 185.117.153.79 [AS48666] 307.185 ms 307.181 ms 306.512 ms

Как можно видеть, автономная система не определена для локальных IP 10.*.*.* – что вполне логично, так как эти адреса никому не назначены. Что касается адреса 192.168.1.1 и автономной единицы AS198949, то это какая-то ошибка.

Как можно увидеть из вывода предыдущей команды, первые четыре узла имеют локальный IP адреса. Узлы с 5 по 9 принадлежат одной автономной системе AS38082/AS7470. Предпоследние два узла принадлежат одной автономной системе AS12389 и последние два узла также принадлежат одной автономной системе AS48666 — интернет-провайдеру, на котором размещён сайт suip.biz.

Как пользоваться pip в windows


Для установки выполните команду вида:

pip install ПАКЕТ

В качестве примера попробуем установить программу hashID — это инструмент, написанный на Python 3, который поддерживает идентификацию более 220 уникальных типов хешей используя регулярные выражения.

pip install hashID

Пример запуска hashID в Windows после установки:

Как проверить правильность номера банковской карты. восстановление отсутствующих цифр в номере карты

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


Наиболее распространённые применения для подсчёта контрольной цифры:

  • Номера всех банковских карт
  • Номера некоторых дисконтных карт
  • Коды социального страхования
  • IMEI-коды.
  • Расчёт контрольного знака единого 8-значного номера железнодорожного вагона на РЖД.
  • Расчёт ICCID (англ. integrated circuit card identifier) — уникальный серийный номер SIM-карты.

Благодаря этой контрольной цифре можно определить, является ли номер правильным.

К примеру, номер карты 4276100014796930, это правильный номер или нет?


Для проверки нужно запустить habu.crack.luhn следующим образом:

habu.crack.luhn 4276100014796930

Если ничего не будет выведено, значит номер неправильный.

Проверим теперь номер карты 4276100013796930:

habu.crack.luhn 4276100013796930

Программа в ответ показала нам этот номер, значит такой номер карты является валидным.


Рассмотрим пример, когда неизвестны одна или несколько цифр в номере карты. В этом случае запишем вместо отсутствующих номеров символ x, например:

habu.crack.luhn 4276-1000-13xx-6930

В этом случае будут выведены все варианты возможных (правильных) номеров:

Как просканировать порты в windows

Одной из лучших программ для сканирования портов является Nmap — она поддерживает несколько методов сканирования и в ней много дополнительных функций. Вы можете использовать её, но если вам нужно просто проверить, открыт ли определённый порт, то для этого воспользуйтесь утилитой habu.tcpscan.

Для сканирования портов запустите команду вида:

habu.tcpscan -p ПОРТ1,ПОРТ2 ДОМЕН_ИЛИ_IP


В качестве портов можно указать один порт, несколько портов через запятую или диапазон портов через дефис, например:

habu.tcpscan -p 80,8000-8100 suip.biz

Дополнительно могут пригодиться опции:

 -f TEXT Флаги для использования (по умолчанию: S) -s TEXT Время между зондами (по умолчанию: отправляет все пакеты вместе) -t ЧИСЛО Таймаут для каждого зонда (по умолчанию: 2 секунды) -a Показать все ответы (по умолчанию: только содержащие флаг SYN) -v Подробный вывод

Как сделать трассировку маршрута до сервера, сайта в oc windows

Запускаем командную строку через меню «Пуск – Все программы – Стандартные». Или нажимаем сочетание клавиш «Win R», появляется окно системной утилиты «Запуск программы», вводим: «cmd» и нажимаем «ок».

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

Звездочки не всегда означают проблему — на сервере может стоять файрволл, который блокирует «лишние» пакеты, а «реальные» пропускает и в браузере страница корректно открывается.

Как скопировать результаты пинга и трассировки из командной строки?

Даже если трассировка по домену прошла успешно, стоит «пропинговать» сервер, чтобы увидеть, не теряются ли пакеты. Да и техподдержка может попросить статистику обмена данных вместе с отчетом о трассировке.

Вводим: tracert и IP адрес, нажимаем «ввод» и получаем отчет. Если данные нужны не лично вам, а для тех. поддержки, выделяем мышкой нужные строки и нажимаем «enter». Информация попадает в буфер обмена. Создаем текстовый файл и вставляем комбинацией клавиш Ctrl V. Сохраняем и отправляем в техподдержку.

iPipe – надёжный хостинг-провайдер с опытом работы более 15 лет.

Мы предлагаем:

Как узнать домен по ip в windows

Говоря про утилиту habu.cert.names я уже упомянул, что по IP не всегда легко определить работающие на сервере сайты без использования внешних сервисов. Утилита habu.cert.names использует хитрый приём, извлекая доменное имя из сертификата.

habu.dns.lookup.reverse IP_АДРЕС


Например:

habu.dns.lookup.reverse 157.245.118.66

Как узнать свой ip и ipv6 в windows

Чтобы узнать свой внеший IP адрес в Windows больше не нужно заходить на сторонние сервисы, просто выполните команду:

habu.ip

Если вы хотите узнать свой внешний IPv6, то выполните следующую команду:

habu.ip -6

Чтобы посмотреть свои локальные IP адреса запустите такую команду:

habu.ip.internal

Как ускорить трассировку. как отключить обратное преобразование ip в имена хостов при трассировке

Чуть выше описаны принципы работы трассировки — отправка пакетов с постоянно увеличивающимся сроком жизни. На самом деле — все пакеты (с TTL 1, с TTL 2, с TTL 3 и т. д.) можно отправить одновременно. И именно так это и происходит — по умолчанию отправляются 16 пакетов за раз (количество можно изменить опцией -N). Это делается для ускорения трассировки.

:/>  Исправлено: Аудио сервисы не отвечают Windows 10 -

Поэтому в действительности трассировка выполняется очень быстро. Те 1-2 секунды, которые как нам кажется определяются узлы сети, на самом деле тратятся на получение имён хостов для IP. С помощью опции -n это можно отключить.

Используя программу time можно замерить время выполнения программы с опцией -n и без неё:

Как установить pip в windows

PIP — это менеджер пакетов, с помощью которого можно искать, устанавливать, обновлять и удалять пакеты Python. В качестве пакетов могут быть как библиотеки, которые являются зависимостями для других программ, так и полноценные программы. Причём PIP правильно обрабатывает зависимости — если для работы программы требуется другие пакеты Python, то PIP их также установит.

В Linux некоторые пакеты Python упакованы в качестве пакетов дистрибутива и распространяются через стандартные репозитории — но таких пакетов меньше, чем доступно в pip. Поэтому в Linux программа pip также используется. Что касается Windows, то здесь pip является самым удобным способом установить нужный пакет.

При установке среды Python описанным выше способом, менеджер пакетов pip также должен установиться. Вы можете проверить это:

pip --help

Обновите важные компоненты:

python -m pip install --upgrade pip
pip install --upgrade setuptools

Как установить python в windows


Для Python 3.x также много активно поддерживаемых веток:

Последней стабильной версией на момент написания является Python 3.8.x.

Помните, что Python не будет работать на Windows XP или более ранних.

Кстати, ведь Python есть и в магазине приложений Windows,

где у него одна звезда (из пяти) и один отзыв (что ничего не работает):


Поэтому мы выполним установку с помощью официального установщика — это совсем просто.

Как установить habu в windows

В предыдущей статье я показал, как установить Python на Windows. Я упомянул, что благодаря Python можно запускать программы и скрипты работу с которыми я показываю в Kali Linux или в другом дистрибутиве Linux. В этой статье я продемонстрирую, как можно использовать Python на Windows, запуская утилиты, с помощью которых можно узнать о других устройствах в локальной сети, выполнить начальный сбор информации о веб-приложениях и найти пользователей на популярных сайтах и даже выполнить некоторые простые атаки.

Всё это мы будем делать на примере Habu — набора разнообразных инструментов.

Программы Habu написаны на Python, поэтому могут работать как на Linux, так и на Windows. Причём особый интерес эти утилиты представляют именно для пользователей Windows, поскольку на этой операционной системе для них отсутствуют альтернативы. По этой причине я буду показывать работу этих программ именно в Windows.

Начать нужно с установки Python и PIP на Windows. Затем выполните команду:

pip install habu validators matplotlib tldextract prompt-toolkit

Как можно увидеть, было установлено много зависимостей.

Для работы некоторых функций (например, для трассировки) нужна установленная программа Winpcap или Npcap. Подробности об этих программах и для чего они нужны, вы можете прочитать в начале статьи «Взлом Wi-Fi без пользователей в Windows (с использованием Wireshark и Npcap для захвата PMKID)».

Вы можете установить отдельно Npcap или более старый вариант Winpcap, но ещё одним вариантом является установка Wireshark в Windows, которая поставляется с Npcap. Если вас интересуют вопросы исследования сети, тестирования на проникновение, то вам пригодится программа Wireshark, установите её.

Для обновления Habu и всех зависимостей, просто выполните команду установки ещё раз — если будут найдены новые версии пакетов, то они будут обновлены:

pip install habu validators matplotlib tldextract prompt-toolkit

Как использовать traceroute по icmp

И UDP и ICMP-протоколы используются командой Traceroute. UDP используется по умолчанию. Чтобы воспользоваться ICMP, добавьте в команду ключ -I:

traceroute -I domain.name

Для чего это нужно? Оборудование может быть настроено на то, чтобы не отвечать на подобные запросы. Если вы увидите в выводе символы * * *, это может значить, что маршрутизатор отклонил пакет и не отправил ответ.

В этом случае попробуйте воспользоваться ключом -I:

Ключ -I требует root-привилегий. Если команда не выполняется, добавьте в начало sudo:

sudo traceroute -I domain.name

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

Кодирование и декодирование в base64 в windows

Кодировка Base64 позволяет представить любые данные — текст или бинарные файлы в виде последовательности печатных символов. То есть в результате бинарные данные, которые невозможно напечатать или включить в документ или email из-за наличия специальных символов, можно передать в виде обычной печатной строки.

Base64 применяется довольно широко — например, довольно часто файлы, прикреплённые к email, закодированы именно таким способом и включены в пересылаемое сообщение в качестве строки, перед и после которой стоят специальные метки. Почтовые программы при получении таких писем видят метки, декодируют файл и показывают вам его в нормальном виде.


С помощью утилиты habu.b64 вы сможете кодировать в строки и файлы в Base64, а также декодировать строки и файлы из Base64.

Для кодирования строк используйте конструкцию вида:

Настройка окружения

Внешний вид консоли по умолчанию всячески настраивается. Можно добавлять или удалять столбцы, добавляя даже такие простые вещи как столбец времени UTC, что сразу повышает информативность логов, если анализировать историю пакетов.

Столбцы настраиваются в меню Edit | Preferences | Appearance | Columns. Там же изменяется общий шаблон, шрифт и цвета.

На видео — полезные советы по настройке окружения, в том числе выявление неполадок по порядковым номерам последовательности TCP.

Образец pcap

Когда только начинаете работу с Wireshark, хочется посмотреть на какие-нибудь интересные дампы с пакетами. Их можно найти на странице

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

Операция xor со строками в windows

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

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

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

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

Например, следующая команда зашифрует строку my secret string паролем mypassword и сохранит в файл crypted.bin.

Подключение модуля python к веб-серверу apache в windows

Источник «Как настроить веб-сервер Apache на запуск Python в Windows».

Python может работать как модуль Apache, в этом случае скрипты Python будут выполнятся как, например, выполняются PHP скрипты. Причём оба интерпретатора могут работать одновременно.

Поиск пакетов


Wireshark поддерживает мощный язык запросов. Это значительно упрощает поиск конкретных пакетов в списках. Обычно я, при работе с программой, использую очень простые запросы. Вот несколько примеров:

Язык запросов Wireshark обладает гораздо большими возможностями, нежели язык запросов

tcpdump

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

tcpdump

(скажем, нечто вроде всех пакетов с 443-го порта), а затем тщательно изучаю их с использованием Wireshark.

Поиск субдоменов в windows


Опять возвращаемся к субдоменам и виртуальным хостам. Модуль habu.fqdn.finder использует сразу множество техники для сбора информации о периметре:

1. Проверяет журналы Certificate Transparency

2. Подключается к указанным портам, получает SSL сертификаты и получает из них FQDN

3. Пробует DNS Zone Transfer


Для работы этого модуля также требуется API ключ Shodan.

Вы можете запустить программу без опций, но тогда она будет долго работать ничего не показывая — может показаться, что она зависла. Для вывода текущих выполняемых задач используйте опцию -v. Другие опции:

-t ЧИСЛО Время для ожидания каждого подключения
-v Подробный вывод
--debug Вывод отладочных сообщений
--connect / --no-connect Получить FQDN из SSL сертификатов
--brute / --no-brute Запустить DNS брут-форс доменов
--links / --no-links Извлечь FQDN из ссылок веб-сайта
--xfr / --no-xfr Пробовать выполнить DNS zone transfer в отношении доменов
--ctlog / --no-ctlog Пробовать получить FQDN из журналов Certificate Transparency
--json Напечатать вывод в формате JSON

Принципы работы трассировки

Пересылаемые сетевые пакеты состоят из двух областей: заголовки и данные. В заголовках находится разная информация, например, IP адреса пункта отправки и пункта назначения, порты отправки и назначения, тип пакета, контрольная сумма пакета и прочее. Среди полей заголовка, у IP протокола есть такое поле как time to live (TTL) — время жизни пакета.

Это счётчик с числом, которое уменьшается на единицу каждый раз, когда пакет проходит новый узел. Этот счётчик сделан для того, чтобы проблемный пакет (например, при ошибке, повлекшей закольцованный маршрут) не путешествовал по сети бесконечно. То есть любой пакет пройдя определённое количество узлов в конце-концов достигнет точки назначения или будет отброшен одним из узлов сети, когда закончится «время жизни».

Когда счётчик TTL становится равным нулю, очередной шлюз просто не пересылает этот пакет дальше. Но при этом шлюз на тот IP адрес, откуда пришёл пакет с истёкшим временем жизни, отправляет по протоколу ICMP ответ TIME_EXCEEDED (время жизни кончилось).

Так вот, суть трассировки в том, что отправляется один пакет с временем жизни (TTL) установленным на единицу — первый шлюз уменьшает значение на единицу, смотрит, что счётчик стал равен нулю, никуда не отправляет этот пакет, зато нам отправляет ответ, что пакет «умер».

Мы и так знаем, что пакет умер — из этого ответа нас интересует только IP адрес шлюза, где с пакетом случилось это несчастье. Затем отправляется пакет со счётчиком установленным на 2 — пакет проходит первый шлюз (его IP мы уже знаем), но несчастье (счётчик достигает нуля) с ним случается уже на втором шлюзе — мы получаем ICMP ответ с IP этого шлюза. Затем отправляется следующий пакет и т. д., пока не будут определены все узлы до нужного нам сетевого хоста.

:/>  Выскакивает командная строка cmd.exe и исчезает - как убрать

Проверка по всем антивирусом в windows


С помощью сервиса Virustotal можно проверить один файл сразу множеством антивирусов. Вы можете делать такую проверку прямо в командной строке Windows, используя утилиту habu.virustotal.

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

Для использования habu.virustotal нужно получить API ключ Virustotal — это бесплатный ключ, его достаточно получить один раз и после этого можно пользоваться без ограничений.

Проверка работы антивируса

Модуль habu.eicar делает очень простую вещь — выводит строку, которую если сохранить в файл, антивирусы начнут считать этот файл вирусом.

EICAR (или EICAR-Test-File — от European Institute for Computer Antivirus Research) — стандартный файл, применяемый для проверки, работает ли антивирус. По сути вирусом не является; будучи запущенным как COM-файл DOS, всего лишь выводит текстовое сообщение и возвращает управление DOS.

Разумеется, EICAR не проверяет, насколько оперативно разработчики реагируют на вирусы и насколько качественно излечиваются заражённые файлы — для этого нужен «зоопарк» свежих вирусов. Его задача другая: продемонстрировать работоспособность антивирусной системы и указать, какие объекты проверяются антивирусом, а какие — нет. Например:

  • Есть подозрение, что компьютер заражён. Действует резидентный монитор, или вирус сумел его отключить?
  • Обычный почтовый червь наподобие VBS.LoveLetter должен для заражения пройти несколько стадий: прийти на почтовый сервер по протоколу SMTP; загрузиться на компьютер по протоколу POP3; записаться в базу почтового клиента; по команде пользователя распаковаться во временный файл и запуститься. На какой стадии он будет замечен?
  • Существует много способов «протащить» вредоносную программу мимо «глаз» антивируса: закодировать в Base64, вложить в OLE-объект Microsoft Word, в RAR, JPEG, сжать упаковщиком наподобие UPX. Что из этого антивирус распакует?
  • Кроме того, антивирусы бывают не только локальные, но и сетевые — проверяющие сетевой трафик; при ошибке конфигурирования они будут либо загружать сервер излишней работой, либо, наоборот, пропускать вредоносные файлы.
  • Просто чтобы увидеть реакцию антивируса: так, в старых версиях антивируса Касперского при обнаружении вируса был громкий свиной визг.

Для того, чтобы проверить, какова будет реакция антивируса, конечно, можно применить и «живой» вирус — но это «как поджигание урны для проверки пожарной сигнализации». Для этого и был предложен стандартизированный файл, не несущий вредоносной нагрузки.

Пример использования:

habu.eicar > virus.exe

Проверяем трассу tracert

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

Трасса часто помогает обнаружить проблему в серверной части. Большинство опытных специалистов при каждом изменении кода СУБД ежеминутно проверяют трассировку для определения проблемы и скорости прохождения данных. 

Функция tracert – показывает полный сетевой маршрут до указанного места. Выглядит это так (в качестве примера был взял wikipedia.org): 

Как мы видим, команда «tracert» – помогает нам увидеть количество промежуточных маршрутизаторов, а также конечное время, которое нам приходится выжидать.

Программа для показа сайтов на одном ip в windows

На одном сервере могут быть сразу несколько веб-сайтов. Чтобы найти сайты на одном сервере, то есть имеющие один IP адрес, используйте команду вида:

habu.vhosts ДОМЕН

Например, чтобы найти сайты, которые работают на том же сервере, что и сайт suip.biz нужно выполнить команду:

habu.vhosts suip.biz

Для того, чтобы программа не использовала кэш, добавьте опцию -c:

habu.vhosts suip.biz -c


Как видно по скриншоту, программа определяет IP адрес введённого домена и затем с помощью поисковика Bing находит сайты с таким же IP адресом.

Программы для трассировки

Имеется много разных утилит для трассировки, некоторые из них поддерживают различные методы трассировки. Примеры таких программ:

  • traceroute
  • tracepath
  • mtr и mtr-gtk (соответственно, консольная и графическая версия)
  • lft
  • tcptraceroute

Ещё определять узлы маршрута пакета можно с помощью Nmap (несколькими способами) и даже с помощью ping!

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

Просмотр сведений о продолжительности tcp-соединений


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

Если выбрать в главном меню программы пункт Statistics, а в нём — команду Conversations, Wireshark предоставит нам замечательный набор статистических сведений.

Статистические сведения

В частности здесь, в колонке Duration, можно увидеть длительность TCP-соединений, выявить самые длительные из них и внимательно их изучить. Это весьма полезная возможность.

Просмотр содержимого пакетов


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

client hello

из предыдущего примера. Это — первый пакет SSL-соединения, клиент с его помощью как бы говорит: «Привет! Вот он я!».

Wireshark даёт сетевому администратору два невероятно полезных инструмента для исследования содержимого пакетов. Первый — это режим просмотра, в котором можно раскрывать заголовки, имеющиеся у пакета (например — Ethernet-заголовок, IP-заголовок, TCP-заголовок) и просматривать их содержимое.

Анализ заголовков пакета

Работа с географической базой geoip

Если Wireshark скомпилирован с поддержкой GeoIP и у вас есть бесплатные базы Maxmind, то программа может определять местоположение компьютеров по их IP-адресам. Проверьте в

About | Wireshark

, что программа скомпилирована с той версией, какая у вас в наличии. Если GeoIP присутствует в списке, то проверьте наличие на диске баз GeoLite City, Country и ASNum. Укажите расположение баз в меню

Edit | Preferences | Name Resolution

Проверьте систему на дампе трафика, выбрав опцию Statistics | Endpoints | IPv4. В колонках справа должна появиться информация о местоположении и ASN для IP-адреса.

Другая функция GeoIP — фильтрация трафика по местоположению с помощью фильтра ip.geoip. Например, так можно исключить трафик из конкретной ASN. Нижеуказанная команда исключает пакеты от сетевого блока ASN 63949 (Linode).

ip and not ip.geoip.asnum == 63949

Конечно, тот же фильтр можно применить

. Удалите шум и оставьте только действительно интересный трафик.

Расшифровка сессий ssl/tls


Один из способов расшифровки сессий SSL/TLS — использовать закрытый ключ с сервера, к которому подключен клиент.

Конечно, у вас не всегда есть доступ к приватному ключу. Но есть другой вариант простого просмотра трафика SSL/TLS на локальной системе. Если Firefox или Chrome загружаются с помощью специальной переменной среды, то симметричные ключи отдельных сеансов SSL/TLS записаны в файл, который Wireshark может прочитать. С помощью этих ключей Wireshark покажет полностью расшифрованную сессию!

Резолвинг dns в wireshark

По умолчанию Wireshark не резолвит сетевые адреса в консоли. Это можно изменить в настройках.

Edit | Preferences | Name Resolution | Enable Network Name Resolution

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

Создайте тестовую страницу python

В папке для ваших сайтов (у меня это C:Serverdatahtdocs) создайте файл test.py и скопируйте в него:

#!C:PythonPython38python.exe
print ("Content-type: text/htmlnn")
print
print ("<html><head>")
print ("")
print ("</head><body>")
print ("Hello.")
print ("</body></html>")

Обратите внимание на самую верхнюю строку, то есть на C:PythonPython38python.exe — вам нужно заменить её на своё значение, указав путь до файла python.exe. Если у вас версия 3.9, то этой папкой может быть C:PythonPython39python.exe, то есть название папки может различаться в зависимости от установленной версии и путь до папки также может различаться в зависимости от того, какой вы выбрали при установке.

Составление правил для файрвола

Вот быстрый способ создания правил из командной строки, чтобы не искать в интернете конкретный синтаксис. Выберите подходящее правило — и перейдите в

Tools | Firewall ACL Rules

. Поддерживаются различные файрволы, такие как Cisco IOS,

ipfilteripfwiptablespf

и даже файрвол Windows через

netsh

Трассировка ipv6


С помощью опций -4 и -6 можно явно указать желаемый протокол.

Например:

Трассировка сети в nmap

В Nmap для трассировки есть опция –traceroute, пример трассировки до сайта suip.biz:

sudo nmap --traceroute suip.biz


Если вы не хотите сканировать порты, а хотите просто выполнить трассировку, то добавьте опцию -sn:

sudo nmap --traceroute -sn suip.biz

Кстати, это значительно сократить время до вывода результатов.

Бывает, что выводимые при трассировке программой nmap данные не являются полными. В этом случае попробуйте дополнительно добавить опцию -PE:

sudo nmap --traceroute -sn -PE suip.biz

Источник.

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

  • всего 9 слотов
  • некоторые устройства игнорируют эту опцию
  • некоторые устройства вообще не пропускают пакеты с установленной этой опцией

Тем не менее иногда это работает, пример команды:

sudo nmap -sn --ip-options "R" -n --packet-trace suip.biz

Пример вывода:

Шифрование fernet в windows


Создайте свой ключ Fernet командой:

habu.fernet.genkey

Пример вывода:

oThsmgmxlGslnelGXMPPcFrpk4Jyf4rSGNdAO8mABrc=

Теперь сохраните его в конфигурации:

habu.config.set FERNET_KEY oThsmgmxlGslnelGXMPPcFrpk4Jyf4rSGNdAO8mABrc=

Для проверки выполните:

habu.config.show


Для шифрования используйте конструкцию:

Заключение

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

Самой богатой по функционалу для трассировки сети является программа traceroute. Другие программы также или содержат интересные опции или могут использоваться в качестве альтернатив, если ничего другое не доступно или если запуск traceroute прав суперпользователя.

Связанные статьи:

Итоги

Wireshark имеет огромнейшие возможности. Здесь мы рассказали лишь о некоторых из них. Однако, те приёмы работы, которые здесь рассмотрены, по словам автора материала, используются примерно в 95% ситуаций, когда возникает необходимость в Wireshark. Поэтому мы надеемся, что даже то немногое, о чём вы сегодня узнали, вам пригодится.

Уважаемые читатели! Пользуетесь ли вы Wireshark?