- Как весь трафик в kali linux пропускать через tor
- Tor + Proxychains.
- Tor + Privoxy.
- Хороший способ пропустить Kali linux весь трафик через tor.
- Почему может не работать TOR.
- Заворачиваем весь трафик ОС в Tor
- Компонент №1: Tor
- Компонент №2: Iptables
- Компонент №3: python + Desktop Evironment UI
- Компонент №4: systemd
Как весь трафик в kali linux пропускать через tor
Сегодня вспомним вопрос об анонимности, в широко известном дистрибутиве Kali linux. Хотя данный пункт трудно назвать анонимностью, и нельзя использовать для серьёзных дел. В общем задача следующая — пропустить в kali linux весь трафик через tor . Тестируя свой сайт, либо сайт заказчика, может даже вы незаконно ищите уязвимости теми же WPScan, Joomscan, Uniscan и тд., либо используя брутфорс, часто не обойтись без прокси сетей, потому что защита на сайтах может банить ваш IP.
Поэтому переключения между бесплатными IP тора хороший бесплатный метод тестов (если у вас нет денег на качественный прокси). Может конечно у вас и другие цели, но это не важно. Итак, есть собственно 2 способа настройки, оба и рассмотрим.
Tor + Proxychains.
Довольно известный метод, но решено упомянуть. Этот же способ упоминается автором в курсе который я выложил Курс этичного хакинга с нуля до профи. Данный способ пропускает лишь выборочный трафик, той программы которую мы активируем в консоли.
Во первых нам нужно установить сам ТОР прописав команды в консоли. apt-get install tor Далее настраиваем Proxychains который установлен по умолчанию в Кали. Прописываем в самом конце открывшегося файла следующие строчки.
socks4 127.0.0.1 9050 socks5 127.0.0.1 9050 Так же в начале документа необходимо активировать одну из опций. Необходимо одну из опций активировать, убрав впереди комментарий #.
- dynamic_chain — соединение осуществляется через определённые цепочки прокси.
- strict_chain — трафик проходит постепенно через всю цепь прокси, и если один из прокси окажется нерабочим, может не работать всё соединение.
- random_chain — каждый раз происходит подключение через разные цепочки прокси.
Теперь если всё настроено правильно вводим в консоли команды
Proxychains «необходимая программа или скрипт который нужно запустить через тор»
Например: Proxychains firefox ( браузер должен открыться используя сети тор, обязательно проверяем).
Всё должно работать. Если тор не запускается читайте в конце статьи возможную причину.
Tor + Privoxy.
Хороший способ пропустить Kali linux весь трафик через tor.
Скрипт privoxy позволяет пропустить уже весь трафик через тор сети либо же ваши прокси, но по умолчанию он не установлен.
Сначала устанавливаем TOR если он у вас не установлен, командами в консоли.
Далее необходимо установить Privoxy прописав в консоль.
В самом конце документа прописываем следующие 3 строчки.
Теперь необходимо настроить менеджер подключений.
Заходим в Настройки — Сеть — Сетевая прокси служба.
Вбиваем в Http и Https — localhost порт — 8118
В узел Socks — localhost порт — 9050 .
На этом настройки завершены.
Убедитесь что вид используемых прокси установлен вручную.
Осталось запустить сервисы следующими командами.
Далее заходим например в браузер и заходим на сайт проверки IP чтобы убедиться что всё работает. Если всё хорошо, все скрипты в Kali linux будут подключаться через тор.
Почему может не работать TOR.
Долгое время я бился над проблемой что ТОР не работал на виртуальной машине.
Проблема оказалась в неправильно настроенном времени, поэтому если возникают трудности в запуске проверьте правильно ли у вас настроено время и часовой пояс.
Видео по теме.
О данных способах ( и ещё многое другое связанное с Kali linux ) я узнал благодаря каналу — d1gg3r us. Много рассмотрено по работе со скриптами (пусть канал и без озвучки и описания на не русском). И это не реклама, а личная рекомендация.
А на этом я с вами прощаюсь. До новых встреч. Берегите себя и свои компьютеры.
Заворачиваем весь трафик ОС в Tor
Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHub
В последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных уровнях с целью построения «модели» пользователя, которая позже против него же и может быть использована (или могла бы). Поэтому не удивительно, что все большее количество активных пользователей Интернета становятся уверены в необходимости механизмов проксирования и анонимизации. В связи с этим появляется все больше новых VPN-клиентов, но, как показывает практика, далеко не всем из них по-настоящему можно доверять: то не все работает из коробки, то анонимизируется только HTTP-трафик, то качество реализации хромает, а то и вовсе разработчики грешат сливанием данных о своих пользователях.
В этой статье мы попробуем собрать из ряда программных компонентов собственный инструмент с UI, который бы позволил полностью анонимизировать трафик локальной системы и не допустить утечек по «прослушиваемым» каналам ни на одном из этапов работы.
Главной нашей целью будет «сборка» надежной утилиты из готовых инструментов. Очевидно, что идея создания с нуля качественного инструмента за разумный срок чревата ошибками, а поэтому бытрее и надежнее будет выбрать готовые компоненты, а затем правильно их связать!
Что должен уметь инструмент?
- Перенаправлять весь трафик целевой системы на промежуточные узлы (желательно несколько) для надежной маскировки источника
- Отслеживать возможные нарушения анонимности, исправлять их и сообщать о них с помощью UI уведомлений
Выбранные компоненты для создания инструмента:
Перемешав все компоненты в оболочке под названием «Linux» мы определенно сможем получить что-то стоящее, что поможет достигнуть итоговой цели.
Компонент №1: Tor
Именно вокруг этого компонента будет построена вся остальная инфраструктура инструмента. Tor предоставляет механизм, который находится в составе любого VPN-клиента — механизм заворачивания трафика через промежуточные анонимные для внешнего наблюдателя узлы (в стандартной конфигурации таких узла 3).
По умолчанию клиент Tor из стандартных пакетных репозиториев после установки начинает слушать порт 9050, принимающий любого клиента, «умеющего» socks. Проблема заключается в том, что помимо socks-трафика в нашей системе может быть куча другого трафика от приложений, не работающих по этому протоколу. В связи с этим прежде всего в пределах локальной системы придется прорубить окно в сеть Tor для любого нового сетевого соединения. Делается это достаточно просто с помощью поднятия transparent proxy в конфигурации torrc:
Отдельного внимания заслуживает UDP трафик. Дело в том, что в основе принципа луковой маршрутизации лежит концепция «соединения» (stream), существующего, как известно, только в TCP. Отправив через Tor UDP-пакет, целевая система не сможет получить на него ответ, так как ответный пакет не найдет обратной дороги. Но несмотря на эту особенность, у нас остается возможность анонимизировать DNS запросы, которые, как известно осуществляются по UDP, а заодно и включить .onion резолв:
На этом доступ в Tor открыт в пределах loopback’а.
Компонент №2: Iptables
Так как наша задача заключается в сокрытии истинного источника трафика от внешнего наблюдателя в пределах всей системы, а окно в Tor уже открыто, осталось только завернуть весь трафик в это окно. Поможет нам в этом системный файрвол, находящийся в комплекте с ядром Linux:
На данном этапе мы получаем рабочую утилиту, надежно маскирующую весь исходящий трафик, однако это только половина работы.
Компонент №3: python + Desktop Evironment UI
Каждый раз производить ручную конфигурацию из консоли (даже если это будет запуск bash-скрипта) будет достаточно утомительно, поэтому самое время приступить к написанию небольшой утилиты, помогающей нам конкретно в следующем:
- Автоматическая установка конфигурации
- Смена своего identity в пределах Tor в любой момент
- Отслеживание целостности правил iptables и их перезапись при нарушении
- Отслеживание текущего identity (IP)
- Уведомление о двух предыдущих пунктах с помощью уведомлений графическогой оболочки
При первом запуске утилита самостоятельно скачает все необходимые компоненты, а при последующих запусках будет конфигурировать Tor в связке с iptables, как описано выше.
При желании смены своего внешнего IP адреса, будет происходить взаимодействие со служебным портом Tor — 9051, открытым в самом начале для автоматизации смены IP:
Отслеживание целостности можно реализовать достаточно банально (делаем же на коленке) с помощью периодического чтения структуры правил iptables и проверки их SHA256-суммы:
Также при обнаружении несостыковок с ожидаемой контрольной суммой можно сохранить дамп правил iptables в /tmp/broken-rules-%d-%m-%Y_%I-%M-%S.log для дальнейших разбирательств. Если окажется, что то будет инициирована перезапись таблицы правил iptables.
Наблюдение за текущим IP будет происходить с помощью постоянного обращения на какой-нибудь внешний ресурс, предоставляющий IP-клиента — например, ident.me .
Ну, и напоследок задействуем DE UI для сообщения о проблемах с правилами либо о смене IP. Каждое графическое окружение в каком-то роде уникально, особенно когда речь идет об использовании UI из процесса-демона, но все же на большинстве Linux’ов такой bash-код, вызываемый из Python будет успешно показывать уведомления:
Объединив все это в 200-строчном Python скрипте, получаем то, чего добивались. Вот, например, как будет выглядеть уведомление о том, что наш identity обновился:
А вот так будет выглядеть уведомление о том, что была нарушена целостность правил Iptables с указанием выгруженного дампа, содержащего нарушение:
Компонент №4: systemd
Ну и напоследок нам определенно хотелось бы произвести единоразовую настройку и не думать в дальнейшем о своей безопасности, а потому на помощь приходят автозапуск и сервисы. В Linux есть несколько стандартных подсистем управления демонами: systemd, sysV, init. В нашем случае выбор пал на systemd из-за гибкости его настройки.
Предположим, что написанный в предыдущем шаге python-скрипт называется «toroxy» и лежит в /usr/bin/ , тогда его автозапуск и последующий мониторинг с определенной гибкостью управления демоном будет таким:
Почти все готово для «промышленной» эксплуатации. Последний штрих, который хотелось бы внести в инструмент для дополнительной надежности — это автоматическая инициализация правил iptables при запуске системы (как известно, правила iptables при перезагрузке сбрасываются) с помощью iptables-persistent: