## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-TRIMSTRAY-MULTITOR
# multitor
#### Создание нескольких экземпляров TOR с балансировкой нагрузки.
  
Описание • Введение • Использование • Параметры • Требования • Docker • Прочее • Лицензия • Wiki

## Описание
Обеспечивает единую конечную точку для клиентов. Поддерживает **HAProxy** , протокол **socks** и **http-proxy** серверы: **polipo** , **privoxy** и **hpts**.
Кроме того, можно **просматривать** ранее запущенные процессы **TOR** и создавать **новую идентичность** для всех или выбранных процессов.
> `multitor` был полностью переписан на основе:
>
> * проекта **Multi-TOR** , написанного _Jan Seidl_ : Multi-TOR
> * исходного источника (проект _Sebastian Wain_): Distributed Scraping With Multiple TOR Circuits
>
## Введение
`multitor` был создан с целью как можно более быстрого запуска множества процессов **TOR**. Я мог использовать множество экземпляров для своих повседневных программ (веб-браузеры, мессенджеры и другие). Кроме того, я искал инструмент, который повысил бы анонимность при проведении тестов на проникновение и проверке безопасности инфраструктуры.
Прежде чем использовать `multitor`, необходимо помнить:
* **TOR** уже пытается генерировать несколько потоков для вас. С этой точки зрения это уже балансировка нагрузки (и делает это гораздо умнее, чем **HAproxy**)
* основная цель — маскировка источника отправки запросов через несколько потоков. Не так просто определить, откуда приходит атакующий. Если вы использовали http/https серверы, например прокси-серверы, вы поймёте, о чём речь, но...
* использование нескольких экземпляров **TOR** может увеличить вероятность использования скомпрометированной цепочки
* `multitor` даёт некоторое улучшение пропускной способности просто из-за другого способа подключения к сети **TOR**
* в конфигурации `multitor` в основном **HAProxy** проверяет локальный сокет (syn, syn/ack) — не все узлы **TOR** (также существующие узлы). Если возникает проблема с сокетом, он пытается отправить трафик другим доступным без проверки дальнейшего — это не гарантирует доставку данных
* сеть **TOR** — это отдельный организм, на который `multitor` не влияет. Если один из узлов повреждён и данные по какой-то причине не могут покинуть выходной узел, скорее всего будет возвращена ошибка подключения или, в лучшем случае, данные будут переданы через другой локальный сокет
* **HAProxy** балансирует сетевой трафик между локальными процессами **TOR** или **http-proxy** , а не между узлами внутри сети **TOR**
> **TOR** — это отличный проект безопасности и превосходный элемент в стратегии многоуровневой защиты, но (к сожалению) это не плащ-невидимка. При использовании **TOR** всегда помните об ssl (например, https) везде, где это возможно.
Обратите также внимание на **Ограничения**.
## Использование
> ❗ Для более детального понимания `multitor`, его параметров, функций и того, как всё это работает, обратитесь к **Руководству**.
Всё просто:
root@kitploit:~
# Clone this repository
git clone https://github.com/trimstray/multitor
# Go into the repository
cd multitor
# Install
./setup.sh install
# Run the app
multitor --init 2 --user debian-tor --socks-port 9000 --control-port 9900 --proxy privoxy --haproxy
> * symlink to `bin/multitor` is placed in `/usr/local/bin`
> * man page is placed in `/usr/local/man/man8`
>
## Параметры
Предоставляет следующие опции:
root@kitploit:~
Usage:
multitor <option|long-option>
Examples:
multitor --init 2 --user debian-tor --socks-port 9000 --control-port 9900
multitor --init 10 --user debian-tor --socks-port 9000 --control-port 9900 --proxy socks
multitor --show-id --socks-port 9000
Options:
--help show this message
--debug displays information on the screen (debug mode)
--verbose displays more information about TOR processes
-i, --init <num> init new tor processes
-k, --kill kill all multitor processes
-s, --show-id show specific tor process id
-n, --new-id regenerate tor circuit
-u, --user <string> set the user (only with -i|--init)
--socks-port <port_num|all> set socks port number
--control-port <port_num> set control port number
--proxy <proxy_type> set socks or http (polipo, privoxy, hpts) proxy server
--haproxy set HAProxy as a frontend for http proxies (only with --proxy)
## Требования
`multitor` использует внешние утилиты, которые необходимо установить перед запуском:
* tor
* netcat
* haproxy
* polipo
* privoxy
* http-proxy-to-socks
Этот инструмент работает с:
* **GNU/Linux** (тестировалось на Debian и CentOS)
* **Bash** (тестировалось на 4.4.19)
Также потребуется **root-доступ**.
## Docker
Смотрите этот проект: **docker-multitor**
## Прочее
### Важно
Если вы используете этот инструмент в других скриптах, где вывод сохраняется куда-либо, а не на экран, помните, что вы не сможете использовать сгенерированный пароль. Я исправлю это в следующей версии. Если вы не используете функцию регенерации отдельной или всех цепочек **TOR** с паролем, вы можете безопасно перезапустить `multitor`, который сделает это за вас.
### Ограничения
* каждый процесс **TOR** , **http-proxy** и **HAProxy** требует определённого объёма памяти. Если количество процессов **TOR** слишком велико, самый старый будет автоматически убит системой
* **Polipo** больше не поддерживается, но всё ещё является очень хорошим и лёгким прокси. По моему мнению, лучшим решением для http-proxy является **Privoxy**
* Я думаю, эта тема будет полезна вам перед использованием `multitor` — How to run multiple Tor processes at once with different exit IPs?
### Участие в разработке
Смотрите **это**.
### Архитектура проекта
Смотрите **это**.
## Лицензия
GPLv3 : http://www.gnu.org/licenses/
**Бесплатное программное обеспечение, Да!**