Tor: от азов до продвинутого уровня (ч. 10): Рецепты и подсказки по использованию Tor


Оглавление

1. Знакомство с Tor

2. Tor в Windows: установка службы, создание скрытого сервиса, использование браузерами и для пентеста

3. Как сделать свой прокси с Tor’ом в Windows

4. Подсказки по использованию браузера и службы Tor

5. Как перенаправить весь трафик через сеть Tor в Linux

6. Как получить красивое доменное имя для скрытого сервиса Tor

7. Анонимные сканирования с Nmap, sqlmap и WPScan через Tor

8. Служба Tor в Linux

9. Опции тонкой настройки Tor

10. Рецепты и подсказки по использованию Tor

10.1 Где скачать Tor без браузера для Windows

10.2 Как установить службу Tor без браузера в Windows

10.3 Настройка файлов GeoIPFile и GeoIPv6File для Tor в Windows

10.4 Как исключить из цепочек Tor определённые страны

10.5 Как сделать так, чтобы при выходе через Tor был IP адрес определённой страны

10.6 Настройка логов Tor в Windows

10.7 Настройка выполнения DNS запросов через Tor в Windows

10.8 Можно ли использовать Tor как прокси на удалённом компьютере

10.9 Защита от идентификации по профилю трафика

10.10 Настройка смены IP адресов в Tor


10.11 Подключение к сайтам через одну и ту же выходную ноду Tor

10.12 Как подключиться к Tor через OpenVPN

11. Настройка скрытого сервиса Tor в Debian (Kali Linux, Linux Mint, Ubuntu)


Для глубокого знакомства с возможностями настройки Tor рекомендуется раздел «Опции тонкой настройки Tor», в котором объяснено много важнейших опций. В этой статье собраны быстрые рецепты практической настройки Tor.

Где скачать Tor без браузера для Windows

На официальном сайте на странице скачивания отсутствует Tor без браузера. Чтобы его найти, нужно кликнуть на ссылку «Скачать исходный код Tor» и уже там после Tor Source (исходный код Tor, который перед использованием нужно компилировать) будет «Windows Expert Bundle» — это и есть файлы для запуска службы Tor без веб-браузера.

Как установить службу Tor без браузера в Windows

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

Настройка файлов GeoIPFile и GeoIPv6File для Tor в Windows

Файлы для определения расположения по IP адресу (геолокация) поставляются в комплекте Tor. У этих файлов имена geoip и geoip6. В Linux эти файлы имеют следующие пути:

  • /usr/share/tor/geoip
  • /usr/share/tor/geoip6

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

В скаченном архиве эти файлы размещены в папке Data\Tor. Распакуйте два файла geoip и geoip6 в папку C:\Tor\, где уже установлен Tor.

Теперь создайте (если вы этого ещё не сделали) или откройте файл C:\Tor\torrc и добавьте в него следующие строки:.

GeoIPFile "C:/Tor/geoip"
GeoIPv6File "C:/Tor/geoip6"

Если всё нормально, то должны появиться примерно следующие строки:

Nov 09 16:54:39.000 [notice] Parsing GEOIP IPv4 file C:/Tor/geoip.
Nov 09 16:54:39.000 [notice] Parsing GEOIP IPv6 file C:/Tor/geoip6.

Как исключить из цепочек Tor определённые страны

Чтобы работала эта настройка, у вас должны быть настроены значения GeoIPFile и GeoIPv6File. Как это сделать в Windows показано чуть выше. В Linux всё настроено автоматически сразу после установки.

Если вы не хотите, чтобы ваши запросы не проходили через узлы сети Tor из определённых стран, то откройте конфигурационный файл Tor:


  • В Windows это C:\Tor\torrc
  • В Linux это /etc/tor/torrc

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

Пример исключения узлов Tor из стран РФ, Беларусь, Украина и Казахстан:

ExcludeNodes {ru}, {by}, {ua}, {kz}

Также дополнительно добавьте настройки:

StrictNodes 1
GeoIPExcludeUnknown 1

Подробности об этих настройках смотрите по ссылкам:

Чтобы изменения вступили в силу, нужно перезапустить службу Tor.

Как сделать так, чтобы при выходе через Tor был IP адрес определённой страны

Если вы хотите, чтобы при выходе в Интернет через Tor у вас всегда был IP адрес конкретной страны, то используйте опцию ExitNodes, после которой в фигурных скобках укажите двухбуквенный код выбранной страны. Пример настройки, при которой IP адрес при использовании Tor всегда будет из Японии:

ExitNodes {jp}

Чтобы работала эта настройка, у вас должны быть настроены значения GeoIPFile и GeoIPv6File.

Чтобы изменения вступили в силу, нужно перезапустить службу Tor.

Можно указать сразу несколько стран, и IP адреса будут выбираться для любой из этого списка. Пример настройки, которая устанавливает использование только выходные узлы Tor из европейских стран (Германия, Франция, Финляндия, Нидерланды, Новая Зеландия, Норвегия, Швейцария, Швеция, Дания, Эстония):

ExitNodes {de}, {fr}, {fi}, {nl}, {nz}, {no}, {ch}, {se}, {dk}, {ee}

Опция ExcludeNodes переопределяет эту опцию: любой узел, указанный одновременно в ExitNodes и ExcludeNodes, рассматривается как исключённый.

Настройка логов Tor в Windows

Чтобы журнал работы службы Tor сохранялся в файл, добавьте в конфигурационный файл Tor следующую директиву:

Log info file C:/Tor/tor.log

и перезапустите службу Tor.


Для изменения уровня подробности журналов Tor, вместо info можно указать: debug, info, notice, warn и err. Варианты перечислены от самого подробного вывода информации к наименее подробному.

Все сообщения будут записаны в файл C:/Tor/tor.log (можно изменить путь до файла).

Настройка выполнения DNS запросов через Tor в Windows

В конфигурационный файл Tor добавьте директиву:


DNSPort 53

Затем в системных настройках в качестве IP адреса DNS сервера нужно указать 127.0.0.1.

После этого все DNS запросы будут передаваться через анонимную сеть Tor.

Можно ли использовать Tor как прокси на удалённом компьютере

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

Если вам хочется организовать свой такой же прокси на сервере, то вы можете это сделать с помощью Tor. Используя директиву SocksPort можно сделать так, что служба Tor будет прослушивать для подключений внешний IP адрес (по умолчанию она прослушивает только localhost).

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

Защита от идентификации по профилю трафика

Можно предположить довольно специфические условия, когда соглядатай имеет доступ к вашему трафику (например, это может быть провайдер Интернет-услуг). Ваш трафик Tor зашифрован, и единственное, что ему остаётся, это наблюдать за активностью вашего трафика. Например, в 18.01 было отправлено немного исходящего трафика и получен ответ. Затем до 18.07 был только незначительный фоновый трафик. Затем до 18.16 активная отправка и получение данных. На самом деле, профиль трафика составляется не по минутам, а по секундам и долям секунд, но принцип, надеюсь, должен быть понятен. Если этот же соглядатай имеет доступ к профилю трафика узла, к которому подключался этот пользователь, то эти профили можно сопоставить и подтвердить, что именно этот пользователь подключался к этому узлу.

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

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

Для принудительного включения этой функции добавьте следующие директиву:

ConnectionPadding 1

Настройка смены IP адресов в Tor

По умолчанию маршрут Tor трафика меняется каждые 30 секунд. Если вы хотите, чтобы этот маршрут менялся чаще или реже, то используйте опцию NewCircuitPeriod после которой укажите число секунд, через которое должен обновляться маршрут и ваш IP адрес:

NewCircuitPeriod ЧИСЛО

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

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

С помощью TrackHostExits будет включено следующее поведение: для большинства сайтов Tor будет работать в обычном режиме — подключаться часто меняя IP адреса. Но для указанных после TrackHostExits сайтов Tor будет запоминать IP адрес выходной ноды, через которую было сделано соединение, и будет пытаться использовать эту же самую выходную ноду Tor для подключения к этим сайтам.

Имена хостов и домены должны быть перечислены через запятую:

TrackHostExits ХОСТ,.ДОМЕН,...

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

Как подключиться к Tor через OpenVPN

Подключение к Tor через VPN на практике обычно применяется не столько для повышения анонимности (хотя и такое применение имеет место), сколько для обода блокировки сети Tor. В некоторых странах на государственном уровне блокируется сеть Tor поэтому для подключения браузера Tor или службы Tor необходимо использовать мосты — промежуточные узлы сети Tor. Вместо мостов можно подключаться к сети Tor через VPN.

На самом деле подключение к Tor через VPN даже проще, чем использование мостов.

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

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

Например, Tor Browser замирает на надписи:

Connecting to a Tor relay
Tor Browser routes your traffic over the Tor Network, run by thousands of volunteers around the world.

Ещё один вариант ошибки:

Loading relay information

При попытке использовать службу Tor, запустив её командой

sudo systemctl start tor

проверка статуса

systemctl status tor

покажет, что начальная загрузка остановилась на 5%, то есть на этапе подключения к ретранслятору:

Jan 08 11:21:40 HackWare systemd[1]: Started Anonymizing overlay network for TCP.
Jan 08 11:21:41 HackWare Tor[25392]: Bootstrapped 5% (conn): Connecting to a relay

Для того, чтобы выполнить подключение к сети Tor через VPN, начните с того, что подключитесь к VPN серверу, например, используя OpenVPN.

Сразу после этого можно пользоваться службой Tor как обычно — дополнительная настройка не требуется.

Браузер Tor успешно подключается к сети Tor и открывает сайты.

Служба tor успешно устанавливает соединение с сетью Tor.


Рекомендуется Вам:

7 комментариев to Tor: от азов до продвинутого уровня (ч. 10): Рецепты и подсказки по использованию Tor

  1. TryToProgramming:

    Добрый день! 
    А вы знаете как можно включить логирование кукизов в TOR EXPERT BUNDLE?
    Пытаюсь написать парсер одного onion сайта. Там первая страница по URLу — капча с кодом, а вторая (после капчи) ввод логина и пароля с новой капчей, и для перехода между этими вкладками используются кукизы, хочу передавать в POST запросе кукизы, но они не отображаются в GET запросе(

    • Alexey:

      Приветствую! Как в вашем сознании пересекаются Tor Expert Bundle и кукиз сайтов?! Это примерно как спросить, как включить запись кукиз на уровне проводов… Что-то такое.

      С кукиз должна работать программа, которая получает данные из сети Tor, например, в случае парсера это может быть cURL, PHP скрипт, скрипт на Python и так далее.

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

      Для работы парсера с сетью Tor нужно данные локальной службы Tor (номер порта и «localhost» в качестве IP) указать как прокси для выхода в сеть.

      Для нормальной работы с .onion сайтами нужно использовать DNS сервера сети Tor.

      • TryToProgramming:

        Прошу прощения за глупый вопрос, я только учусь…
        Мне казалось, что в Tor Expert Bundle можно прописать некую команду, которая включит логирование кук, так как мой скрипт на Python спокойно получает информацию о кукизах с http/https сайтов, но вот с .onion ни в какую 🙁 К сети Tor я подключаюсь с помощью локальных данных, сама html страницы парсится прекрасно. 
        Подскажите, пожалуйста, как мне нужно использовать DNS сервера для работы с Tor? Или возможно я могу где-то об этом прочитать? 
        Так же спасибо большое за ваш ответ, не ожидал его получить 🙂

        • Alexey:

          Оказалось всё ещё проще: нужно использовать протокол socks5h чтобы включить использование удалённых DNS для преобразование имён хостов в IP, если локальное преобразование DNS не удалось.

          Вот пример кода, он показывает страницу .onion сайта (адрес http://hacking5xcj4mtc63mfjqbshn3c5oa2ns7xgpiyrg2fenl2jd4lgooad.onion) ну и ещё должен бы показывать кукиз, но этот сайт не отправляет их. И ещё там что-то намудрено с кодировкой, но суть должна быть понятна.

          import requests
          import json
          
          proxies = {
          	'http': 'socks5h://127.0.0.1:9050',
          	'https': 'socks5h://127.0.0.1:9050'
          }
          
          session = requests.Session()
          
          data = session.get("http://hacking5xcj4mtc63mfjqbshn3c5oa2ns7xgpiyrg2fenl2jd4lgooad.onion",proxies=proxies).text
          
          print(data)
          
          print(session.cookies)

           

          • TryToProgramming:

            У меня похожий код, но session.cookies.get_dict() возвращает мне пустой словарь, а session.cookies показывает, что это некие cookie-jar, там куки — это просто строка из рандомного набора символов, мне кажется, что они зашифрованы, поэтому и не получается их вытащить

            • Alexey:

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

              А вот пример работы кода, который приведён выше — кукиз на месте:

              Строка

              print(session.cookies)

              Выводит:

              < RequestsCookieJar[< Cookie HackWare-cookie=For%20testing%20purpose%20only for hacking5xcj4mtc63mfjqbshn3c5oa2ns7xgpiyrg2fenl2jd4lgooad.onion/ >] >

              То есть формат:

              < RequestsCookieJar[< Cookie NAME=VALUE for SITE.onion/ >] >

              Если print(session.cookies) поменять на

              print(session.cookies.get_dict())

              то формат будет таким:

              {'HackWare-cookie': 'For%20testing%20purpose%20only'}

              В принципе, сайты могут шифровать кукиз. Точнее, в любом случае будут присылаться кукиз в формате «ИМЯ=ЗНАЧЕНИЕ». Но ЗНАЧЕНИЕ может быть зашифровано так, что только сайт будет знать, что с этим делать. Но вообще-то пользователю не нужно об этом задумываться — какие кукиз прислали, такие браузер и отправляет. Вряд ли вы найдёте в этих кукиз значение капчи или что-то полезное (конечно, если автор капчи не совсем тупой).

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

  2. TryToProgramming:

    Идея была в том, что я скачиваю капчу и ввожу ее в терминал, а затем отправляю ее на сервер, а для отправки на сервер нужны кукизы 🙁
    Прикладывал скрин, но он почему-то тут не отобразился
    Куки шифруются, но у меня просто пустой словарь без значений, я думаю, что это особенность сайта, попробую побороть! 
    Спасибо большое вам за помощь !:)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *