0trace
0trace — это сетевой инструмент для активной трассировки (traceroute), который помогает обнаружить маршруты до удалённых узлов, минуя ограничения межсетевых экранов (firewalls) и систем защиты сетевых границ. Он сочетает методы пассивной и активной трассировки для обхода ограничений, которые блокируют стандартные ICMP-запросы (используемые обычными утилитами traceroute).
Основные особенности 0trace:
- Сочетание пассивной и активной трассировки: 0trace использует технику пассивного наблюдения, чтобы начать трассировку на основе уже установленного TCP-соединения, тем самым обходя правила межсетевого экрана, которые могут блокировать прямые ICMP или UDP-запросы. Сначала устанавливается соединение с целевым хостом, после чего запускается активная трассировка.
- Обход блокировок межсетевых экранов: Инструмент обходит большинство простых правил межсетевых экранов, которые ограничивают входящие ICMP-запросы, что позволяет определить маршруты, даже если стандартные инструменты трассировки (например,
traceroute
илиmtr
) не могут справиться с задачей. - Использование существующих TCP-соединений: Работает на основе уже открытых TCP-соединений, что затрудняет обнаружение и блокировку этого трафика для межсетевых экранов.
Пример использования 0trace:
Для примера представим, что у вас уже установлено соединение с неким сервером через TCP-порт (например, веб-сайт по HTTP на порту 80). Используя это соединение, вы можете запустить 0trace и попытаться узнать маршрут до этого сервера, даже если он находится за защитным экраном.
Шаги по использованию 0trace:
Установка: Если 0trace не установлен, его можно скачать с различных ресурсов или найти в пакетах для таких дистрибутивов как Kali Linux. Команда для использования:
0trace -i eth0 <целевой IP> <целевой порт>
- Где:
eth0
— это сетевой интерфейс, через который будет идти соединение. Его можно заменить на другой (например,wlan0
, если вы используете Wi-Fi).<целевой IP>
— это IP-адрес целевого хоста.<целевой порт>
— порт, на который будет выполняться TCP-соединение (например, 80 для HTTP или 443 для HTTPS).- Пример запуска: Для трассировки до веб-сервера с IP-адресом 192.168.1.1 на порту 80: ```bash 0trace -i eth0 192.168.1.1 80
После запуска 0trace будет использовать уже существующее TCP-соединение (если доступно) и начнет отслеживать маршруты.
### Пример вывода:
```bash
Starting 0trace: tcp-based traceroute
Using eth0
1: 10.0.0.1 (10.0.0.1) 0.139ms
2: 192.168.1.1 (192.168.1.1) 1.002ms
...
N: <final hop> <time>
Каждая строка представляет собой узел маршрута, через который проходит соединение, начиная с локального маршрутизатора и заканчивая целевым хостом.
Особенности и ограничения:
- Зависимость от существующего TCP-соединения: 0trace не создаёт соединения сам, а использует уже установленные TCP-сессии. Если соединение отсутствует или его блокируют, трассировка не удастся.
- Неполная маршрутизация: Иногда межсетевые экраны могут блокировать некоторые ответы, что приводит к неполному выводу маршрутов.
- Маскировка трафика: Поскольку 0trace использует существующие соединения, его трафик выглядит как обычный TCP, что затрудняет его обнаружение и фильтрацию со стороны межсетевых экранов.
0trace полезен для сетевых администраторов, исследователей безопасности и тех, кто пытается выяснить структуру сети в условиях блокировок или ограничений.