Tor all traffic windows

Tallow

Tallow: Transparent Tor for Windows

Tallow is a transparent Tor firewall and proxying solution for Windows. In a nutshell, when you run Tallow:

  • All traffic from your PC is transparently diverted through the Tor anonymity network. Programs do not need to be configured to use Tor.
  • All non-Tor related traffic such as UDP is blocked. This includes DNS-traffic to help mitigate leaks.

Tallow is similar to running Tor as a transparent proxy under Linux or MacOSX.

Tallow has several advantages. Firstly, all non-Tor traffic is blocked and prevented from leaving your PC. This stops certain kinds of leaks, such as the DNS leak problem. Secondly, Tallow is transparent. This means that your applications and programs will not be aware that traffic is been diverted via Tor. You can therefore use your preferred web browser, or any other program that connects via the Internet, with zero configuration. But beware! Unlike the TorBrowserBundle, Tallow does not make any attempt to anonymize content sent though the Tor network. This may include cookies or other information that can identify you. For this reason Tallow is not intended to be a complete strong anonymity solution by itself. See the warnings below.

Some uses of Tallow include:

  • Tor-ifying applications/programs that were never designed to use Tor. Since Tallow is transparent, the application will not be aware that traffic has been diverted via the Tor network.
  • Filter Circumvention. If you just want to circumvent Internet filtering, and do not care so much about strong anonymity, then Tallow may be appropriate.
  • Better-than-nothing-Tor. Even though Tallow by itself is not a strong anonymity solution, some Tor may still be better than no Tor at all.

To use Tallow: (1) first download and install Tallow from the links below, (2) start Tallow by double-clicking on the Tallow desktop icon, (3) the Tallow UI will appear, as shown below:

Press the big Tor button to start diverting traffic via the Tor network. Press the Tor button again to stop Tor diversion and return the Internet connection to normal. Note that the Internet may be briefly interrupted every time you switch between states. The (advanced) config options are:

  • Force web-only: blocks all non-web (HTTP port 80, HTTPS port 443) traffic; and
  • Force SOCKS4a: blocks direct connections to IP addresses via Tor.

Tallow is open source software released under the terms of the GNU General Public License Version 3.

➢ Hacking (Advanced)

  • Run tallow.exe from a console to see debugging output.
  • Edit hosts.deny to control what domains are blocked via Tor.
  • Edit traffic.deny to control what traffic types are blocked via Tor.
  • Edit torrc to configure Tor.
  • Replace tor.exe with a different or custom version.

Warnings

Tallow is produced independently from the Tor anonymity software and carries no guarantee from The Tor Project about quality, suitability or anything else.

Tallow is not a complete strong anonymity solution.

Tallow makes no attempt to anonymize the content sent through the Tor network. This content may de-anonymize you. For example, logging into GMail via Tor will de-anonymize you, since you are the only person who knows the password to your account!

Tallow may contain bugs. Please send feedback or bug reports to Basil.

➢ Download

The following pre-built binary package is available for Tallow:

  • TallowBundle-2.0-install.exe [Windows 7, Windows 8, Windows 10 installer]
  • TallowBundle-2.0-files.zip [Windows 7, Windows 8, Windows 10 files (no installer)]

This bundle package includes a copy of WinDivert (LGPLv3), Tor (BSD license) Tallow (GPLv3). After installation, simply double-click on the Tallow icon on your desktop.

➢ Repository

The Tallow (former codename TorWall) source repository is hosted on GitHub:

  • https://github.com/basil00/TorWall

Tor all traffic windows

Tallow — Transparent Tor for Windows

Tallow is a small program that redirects all outbound traffic from a Windows machine via the Tor anonymity network. Any traffic that cannot be handled by Tor, e.g. UDP, is blocked. Tallow also intercepts and handles DNS requests preventing potential leaks.

Tallow has several applications, including:

  • «Tor-ifying» applications there were never designed to use Tor
  • Filter circumvention — if you wish to bypass a local filter and are not so concerned about anonymity
  • Better-than-nothing-Tor — Some Tor may be better than no Tor.

Note that, by itself, Tallow is not designed to be a complete strong anonymity solution. See the warnings below.

Using the Tallow GUI, simply press the big «Tor» button to start redirecting traffic via the Tor network. Press the button again to stop Tor redirection. Note that your Internet connection may be temporarily interrupted each time you toggle the button.

To test if Tor redirection is working, please visit the following site: https://check.torproject.org.

Tallow uses the following configuration to connect to the Internet:

Here (a.b.c.d) represents the local address, and (x.y.z.w) represents a remote server.

Tallow uses WinDivert to intercept all traffic to/from your PC. Tallow handles two main traffic types: DNS traffic and TCP streams.

Читайте также:  Эмулятор сега дримкаст для пк windows 10

DNS queries are intercepted and handled by Tallow itself. Instead of finding the real IP address of a domain, Tallow generates a pseudo-random «fake» domain (in the range 44.0.0.0/24) and uses this address in the query response. The fake-IP is also associated with the domain and recorded in a table for later reference. The alternative would be to look up the real IP via the Tor (which supports DNS). However, since Tallow uses SOCKS4a the real IP is not necessary. Handling DNS requests locally is significantly faster.

TCP connections are also intercepted. Tallow «reflects» outbound TCP connects into inbound SOCKS4a connects to the Tor program. If the connection is to a fake-IP, Tallow looks up the corresponding domain and uses this for the SOCKS4a connection. Otherwise the connection is blocked (by default) or a SOCKS4 direct connection via Tor is used. Connecting TCP to SOCKS4(a) is possible with a bit of magic (see redirect.c).

All other traffic is simply blocked. This includes all inbound (non-Tor) traffic and outbound traffic that is not TCP nor DNS. In addition, Tallow blocks all domains listed in the hosts.deny file. This includes domains such as Windows update, Windows phone home, and some common ad servers, to help prevent Tor bandwidth wastage. It is possible to edit and customize your hosts.deny file as you see fit.

Tallow was derived from the TorWall prototype (where «tallow» is an anagram of «torwall» minus the ‘r’).

Tallow works slightly differently, and aims to redirect all traffic rather than just HTTP port 80. Also, unlike the prototype, Tallow does not use Privoxy nor does it alter the content of any TCP streams in any way (see warnings below).

To build Tallow you need the MinGW cross-compiler for Linux.

You also need to download and place the following external dependencies and place them in the contrib/ directory:

Then simply run the build.sh script.

  • More comprehensive hosts.deny: By default Windows will «phone home» on a regular basis for various reasons. Tallow attempts to block most of this traffic by default via the hosts.deny file. However, it is unclear how comprehensive the current blacklist really is. Suggestions for new entries are welcome.

Currently Tallow makes no attempt to anonymize the content of traffic sent through the Tor network. This information may be used to de-anonymize you. See this link for more information. Tallow should not be relied on for strong anonymity unless you know what you are doing.

Как работает Tor

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

Но как Tor работает «под капотом»? В этой статье мы с вами нырнем в структуру и протоколы, используемые в сети, чтобы близко ознакомиться с работой Tor.

Краткая история Tor

Концепция луковичной маршрутизации (позже поясним это название) впервые была предложена в 1995 году. Сначала эти исследования финансировались министерством военно-морских исследований, а затем в 1997 году к проекту подключилась DARPA. С тех пор Tor Project финансировали разные спонсоры, а не так давно проект победил в кампании по сбору пожертвований на reddit.

Код современной версии ПО Tor был открыт в октябре 2003 года, и это было уже 3-е поколение ПО для луковичной маршрутизации. Идея его в том, что мы оборачиваем трафик в зашифрованные слои (как у луковицы), чтобы защитить данные и анонимность отправителя и получателя.

Основы Tor

С историей разобрались – приступим к принципам работы. На самом высоком уровне Tor работает, перекидывая соединение вашего компьютера с целевыми (например, google.com) через несколько компьютеров-посредников, или ретрансляторов (relay).


Путь пакета: охранный узел, промежуточный узел, выходной узел, пункт назначения

Сейчас (февраль 2015 года) в сети Tor передачей трафика занимаются около 6000 маршрутизаторов. Они расположены по всему миру и работают благодаря добровольцам, которые соглашаются отдать немного трафика для благого дела. Важно, что у большинства узлов нет никакого специального железа или дополнительного ПО – все они работают при помощи ПО Tor, настроенного на работу в качестве узла.

Скорость и анонимность сети Tor зависит от количества узлов – чем больше, тем лучше! И это понятно, поскольку трафик одного узла ограничен. Чем больше у вас выбор узлов, тем сложнее отследить пользователя.

Типы узлов

По умолчанию, Tor передаёт трафик через 3 узла. У каждого из них своя роль (разберём их подробно позже).


Клиент, охранный узел, промежуточный узел, выходной узел, пункт назначения

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

Обычно безопасный метод запуска сторожевого или промежуточного узла — виртуальный сервер (DigitalOcean, EC2) – в этом случае операторы сервера увидят только зашифрованный трафик.

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

Читайте также:  Что делать если автоматическое восстановление не удалось восстановить компьютер windows

Встретите оператора выходного узла – скажите ему спасибо. Он того заслуживает.

Причём здесь лук?

Разобравшись в маршруте соединений, идущих через узлы, зададимся вопросом – а как мы можем им доверять? Можно ли быть уверенным в том, что они не взломают соединение и не извлекут все данные из него? Если кратко – а нам и не нужно им доверять!

Сеть Tor разработана так, чтобы к узлам можно было относиться с минимальным доверием. Это достигается посредством шифрования.

Так что там насчёт луковиц? Давайте разберём работу шифрования в процессе установки соединения клиента через сеть Tor.

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

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

Замечание: выходные узлы могут увидеть исходные данные, поскольку им надо отправлять их в пункт назначения. Поэтому они могут извлекать из трафика ценную информацию, передаваемую открытым текстом по HTTP и FTP!

Узлы и мосты: проблема с узлами

После запуска Tor-клиента ему нужно получить списки всех входных, промежуточных и выходных узлов. И это список не является тайной – позже я расскажу, как он распространяется (можете сами поискать в документации по слову “concensus”). Публичность списка необходима, но в ней таится проблема.

Чтобы понять её, давайте прикинемся атакующим и спросим себя: что бы сделало Авторитарное Правительство (АП)? Размышляя таким образом, мы сможем понять, почему Tor устроен именно так.

Так что бы сделало АП? Цензура – дело серьёзное, а Tor позволяет её обходить, поэтому АП захотело бы блокировать пользователям доступ к Tor. Для этого есть два способа:

  • блокировать пользователей, выходящих из Tor;
  • блокировать пользователей, входящих в Tor.

Первое – возможно, и это свободный выбор владельца маршрутизатора или веб-сайта. Ему всего лишь нужно скачать список выходных узлов Tor, и блокировать весь трафик с них. Это будет плохо, но Tor ничего с этим не может сделать.

Второй вариант серьёзно хуже. Блокировка выходящих из Tor пользователей может предотвратить посещение определённого сервиса, а блокировка всех входящих не даст им ходить ни на какие сайты – Tor станет бесполезным для тех пользователей, кто уже страдает от цензуры, в результате чего они и обратились к этому сервису. И если бы в Tor были только узлы, это было бы возможным, так как АП может скачать список сторожевых узлов и заблокировать трафик к ним.

Хорошо, что разработчики Tor подумали об этом и придумали хитрое решение проблемы. Познакомьтесь с мостами.

Мосты

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

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

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

Может ли кто-то обнаружить все мосты

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

Я подробно опишу два пункта из этого списка, 2-й и 6-й, поскольку именно этими способами удалось получить доступ к мостам. В 6-м пункте исследователи в поисках мостов Tor просканировали всё пространство IPv4 посредством сканера портов ZMap, и нашли от 79% до 86% всех мостов.

2-й пункт подразумевает запуск промежуточного узла Tor, который может отслеживать приходящие к нему запросы. К промежуточному узлу обращаются только сторожевые узлы и мосты – и если обратившегося узла нет в публичном списке узлов, то очевидно, что этот узел – мост. Это серьёзный вызов Tor, или любой другой сети. Так как пользователям нельзя доверять, необходимо делать сеть анонимной и закрытой, насколько это возможно, поэтому сеть именно так и сделана.

Консенсус

Рассмотрим, как функционирует сеть на более низком уровне. Как она организована и как узнать, какие узлы в сети активны. Мы уже упоминали, что в сети существует список узлов и список мостов. Поговорим о том, кто составляет эти списки.

В каждом Tor-клиенте содержится фиксированная информация о 10 мощных узлах, поддерживаемых доверенными добровольцами. У них особая задача – отслеживать состояние всей сети. Они называются directory authorities (DA, управляющие списками).

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

Почему 10? Обычно не стоит делать комитет из чётного количества членов, чтобы при голосовании не случилось ничьей. Суть в том, что 9 DA занимаются списками узлов, а один DA (Tonga) – списком мостов


Список DA

Читайте также:  Windows how to turn off password

Достижение консенсуса

Так каким же образом DA поддерживают работоспособность сети?

Статус всех узлов содержится в обновляемом документе под названием «консенсус». DA поддерживают его и ежечасно обновляют путём голосования. Вот как это происходит:

  • каждый DA создаёт список известных узлов;
  • затем подсчитывает все остальные данные – флаги узла, веса трафика и т.п.;
  • отправляет данные как «голосование за статус» всем остальным;
  • получает голоса всех остальных;
  • комбинирует и подписывает все параметры всех голосов;
  • отправляет подписанные данные остальным;
  • большинство DA должны согласовать данные и подтвердить наличие консенсуса;
  • консенсус публикуется каждым DA.

Публикация консенсуса происходит по HTTP, чтобы каждый мог скачать его последний вариант. Можете проверить сами, скачав консенсус через Tor или через гейт tor26.

И что же он означает?

Анатомия консенсуса

Просто прочитав спецификацию, в этом документе разобраться сложновато. Мне нравится визуальное отображение, чтобы понять, как устроена структура. Для этого я сделал постер в стиле corkami. И вот (кликабельное) графическое представление этого документа.

Что случится, если узел пустится во все тяжкие

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

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

Дело снифферов

Выходные узлы Tor — почти эталонный пример «человека посередине» (man-in-the-middle, MitM). Это значит, что любые нешифрованные протоколы связи (FTP, HTTP, SMTP) могут им отслеживаться. А это – логины и пароли, куки, закачиваемые и скачиваемые файлы.

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

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

Но допустим, оператор выходного узла решит навредить сети по-крупному. Прослушивание – занятие дураков. Давайте будем модифицировать трафик!

Выжимаем максимум

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

Посмотрим, какими способами его можно менять.

SSL MiTM & sslstrip

SSL портит всю малину, когда мы пытаемся подгадить пользователям. К счастью для атакующих, у многих сайтов есть проблемы с его реализацией, позволяющие нам заставить пользователя идти по нешифрованным соединениям. Примеры – переадресация с HTTP на HTTPS, включения HTTP-содержимого на HTTPS-сайтах, и т.п.

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

Подсадим браузеры на BeEF

Разглядев подробности трафика, можно приступать к вредительству. Например, можно использовать фреймворк BeEF, чтобы получать контроль над браузерами. Затем можно задействовать функцию из Metasploit «browser autopwn», в результате чего хост будет скомпрометирован, а мы получим возможность выполнять на нём команды. Приехали.

Бинарники с чёрным ходом

Допустим, через наш узел качают бинарники – ПО или обновления к нему. Иногда пользователь даже может не подозревать о том, что обновления скачиваются. Нам нужно всего лишь добавлять к ним чёрный ход посредством инструментов вроде The Backdoor Factory. Тогда после выполнения программы хост окажется скомпрометированным. Снова приехали.

Как поймать Уолтера Уайта

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

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

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

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

Exitmap была создана в 2013 году в рамках программы «испорченные луковицы». Авторы нашли 65 выходных узлов, меняющих трафик. Получается, что хотя это и не катастрофа (на момент работы всего существовало порядка 1000 выходных узлов), но проблема достаточно серьёзная для того, чтобы отслеживать нарушения. Поэтому exitmap по сей день работает и поддерживается.

В другом примере исследователь просто сделал поддельную страницу с логином, и залогинивался туда через каждый выходной узел. Затем просматривались HTTP-логи сервера на пример попыток логина. Многие узлы пытались проникнуть сайт с использованными автором логином и паролем.

Эта проблема свойственна не только Tor

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

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

Оцените статью