В этой статье я не буду затрагивать загрузку и установку whonix gateway, а также рекомендации к гостевой системе и факторы, обеспечивающие анонимность и конфиденциальность. Все это очень подробно описано в документации на сайте whonix.org.
Допустим, вы ознакомились с документацией, и у нас есть импортированный в virtualBox Whonix-gateway, создадим новую машину для установки на нее Kali Linux:
Создаем новую Виртуальную Машину
- Name: Вводим имя машины (например: Kali-master). Type: Linux. Version: Debian (64 bit)
- Выделяем размер памяти (4096) MB
- Create a virtual hard drive now
- VDI
- Dynamically allocated
- 20-25 Гб должно хватить
Изменяем настройки Виртуальной Машины
- Выбираем нашу машину (Kali-whonix) -> Settings -> System -> Motherboard -> Hardware Clock in UTC
- System -> Motherboard -> Pointing Device -> PS/2 Mouse (необходимо для отключения usb-контроллера)
- System -> Processor -> Enable PAE/NX если доступно
- Network -> Adapter 1 -> attached to Internal Network (Важно!!!)
- Network -> Adapter 1 -> Name (Internal Network) (Важно!!!): Whonix
- USB -> Отключить “Enable USB controller”
Запускаем машину и устанавливаем Kali Linux
- Выбираем в качестве установочного диска образ с Kali
- В меню загрузки выбираем Istall mode
- Language: English
- Country: United States
- Keymap to use: American English
- Whonix-Gateway у нас пока выключен, поэтому выбираем Do not configure the network at this time
- Hostname: host
- Задаем пароль root
- Timezone: Eastern (потом установим в UTC)
- Partition disk — разбиваем диск по умолчанию
- Use network mirror — No
- Устанавливаем grub и перезапускаем машину
Усиливаем безопасность
Ставим время в UTC
root@host:~# ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime
root@host:~# echo UTC0 > /etc/localtime
Отключаем Tcp timestamps
root@host:~# echo “net.ipv4.tcp_timestamps = 0” > /etc/sysctl.d/tcp_timestamps.conf
Настраиваем сеть
Удаляем network-manager
root@host:~# apt-get remove network-manager
root@host:~# vim /etc/network/interfaces
и добавляем строки:
auto eth0 iface eth0 inet static address 10.152.152.12 netmask 255.255.192.0 gateway 10.152.152.10
указываем dns:
root@host:~# echo nameserver 10.152.152.10 > /etc/resolv.conf
Исправляем sources.list
root@host:~# vim /etc/apt/sources.list
добавляем: (можно свериться с docs.kali.org)
deb http://http.kali.org/kali kali main non-free contrib deb http://security.kali.org/kali-security kali/updates main contrib non-free
Включаем Whonix — Gateway и обновляем систему
root@host:~# apt-get update && apt-get dist-upgrade
root@host:~# reboot
Tor-browser
Устанавливаем Tor — browser с сайта torproject.org
Чтобы Tor запускался от пользователя root находим секцию в файле start-tor-browser и закомментируем ее:
root@host:~/Desktop# vim ./tor-browser_en-US/Browser/start-tor-browser
#if [ "`id -u`" -eq 0 ]; then # complain "The Tor Browser Bundle should not be run as root. Exiting." # exit 1 #fi
меняем владельца:
root@host:~/Desktop# chown -R root:root ./tor-browser_en-US/
Сейчас у нас tor-browser выходит через прозрачный прокси на whonix-gateway — следовательно у нас сценарий Tor over Tor, что не есть хорошо. Чтобы этого избежать установим rinetd, который у нас будет перенаправлять порты, к которым обращается tor с локальной машины на whonix — gateway.
root@host:~# apt-get install rinetd
root@host:~# vim /etc/rinetd.conf
и добавляем туда следующие строки ( взяты из whonix-workstation):
## SocksPorts ## Tor's default port 127.0.0.1 9050 10.152.152.10 9050 ## Tor Browser Bundle's default port 127.0.0.1 9150 10.152.152.10 9150 ## TorChat's default port 127.0.0.1 11109 10.152.152.10 9119 ## Tor Messenger's default port 127.0.0.1 9152 10.152.152.10 9152 ## ControlPorts ## Control Port Filter Proxy is running on Gateway's Port 9052 ## Tor's default port 127.0.0.1 9051 10.152.152.10 9052 ## Tor Browser Bundle's default port 127.0.0.1 9151 10.152.152.10 9052 ## Tor Messenger's default port 127.0.0.1 9153 10.152.152.10 9052
Также добавляем переменные окружения:
root@host:~# vim ~/.profile
добавляем:
export TOR_SKIP_LAUNCH=1 export TOR_SKIP_CONTROLPORTTEST=1 export TOR_NO_DISPLAY_NETWORK_SETTINGS=1 export TOR_CONTROL_HOST="127.0.0.1" export TOR_CONTROL_PORT="9151" export TOR_CONTROL_PASSWD='"password"'
И запускаем tor браузер. Теперь ip адрес выходной ноды можно найти в списке тор-цепочек на whonix-gateway, запустив arm — мы избежали tor over tor.
Изоляция потоков (Stream Isolation)
Как и в whonix будем использовать uwt — враппер, написанный на bash, который запускает torsocks с указанием ip адреса и порта.
устанавливаем torsocks:
root@host:~# apt-get install torsocks
Берем uwt тут:
https://github.com/Whonix/uwt/blob/master/usr/bin/uwt
и копируем в /usr/bin/ не забывая разрешить исполнение и запускаем:
root@host:~# uwt
Usage: uwt [-h] [-v] -i ip -p port <command> [<options>...]
Example: uwt -i 127.0.0.1 -p 9050 wget https://check.torproject.org
sudo uwt -i 10.152.152.10 -p 9104 /usr/bin/apt-get --yes dist-upgrade
Открываем torrc в Whonix — gateway и видим, что некоторые порты зарезервированы за приложениями. Но также есть и свободные порты — эти порты бывают четырех типов:
user@host:~$ less /usr/share/tor/tor-service-defaults-torrc
- Without IsolateDestAddr and without IsolateDestPort: SocksPort 10.152.152.10:9153 to 9159
root@host:~# uwt -i 10.152.152.10 -p 9154 curl -s http://yandex.ru/internet https://yandex.ru/internet https://www.dnsleaktest.com | grep "strong>IP\|Hello"
<strong>IP-адрес</strong>: 162.244.25.249
<strong>IP-адрес</strong>: 162.244.25.249
<p class="hello">Hello 162.244.25.249</p>
- With IsolateDestAddr, but without IsolateDestPort: SocksPort 10.152.152.10:9160 to 9169
root@host:~# uwt -i 10.152.152.10 -p 9161 curl -s http://yandex.ru/internet https://yandex.ru/internet https://www.dnsleaktest.com | grep "strong>IP\|Hello"
<strong>IP-адрес</strong>: 95.128.43.164
<strong>IP-адрес</strong>: 95.128.43.164
<p class="hello">Hello 209.159.138.19</p>
- Without IsolateDestAddr, but with IsolateDestPort: SocksPort: 10.152.152.10:9170 to 9179
root@host:~# uwt -i 10.152.152.10 -p 9171 curl -s http://yandex.ru/internet https://yandex.ru/internet https://www.dnsleaktest.com | grep "strong>IP\|Hello"
<strong>IP-адрес</strong>: 37.187.129.166
<strong>IP-адрес</strong>: 209.159.138.19
<p class="hello">Hello 209.159.138.19</p>
- With IsolateDestAddr and with IsolateDestPort: SocksPort: 10.152.152.10:9180 to 9189
root@host:~# uwt -i 10.152.152.10 -p 9181 curl -s http://yandex.ru/internet https://yandex.ru/internet https://www.dnsleaktest.com | grep "strong>IP\|Hello"
<strong>IP-адрес</strong>: 37.187.129.166
<strong>IP-адрес</strong>: 89.31.57.5
<p class="hello">Hello 109.163.234.7</p>
Опция IsolateDestAddr будет строить отдельную тор-цепочку для каждого различного хоста в запросе, а IsolateDestPort для различных портов, например если мы обращаемся по http и https, как видно выше.
Стоит помнить, что этими опциями не нужно злоупотреблять, во избежании увеличении нагрузки на сеть тор. Поэтому в большинстве случаев достаточно диапазона 9153 — 9159
Чтобы уменьшить длину команды, вводимой в терминале, можно воспользоваться alias
root@host:~# alias apt-get='uwt -i 10.152.152.10 -p 9104 apt-get'
Отключаем Transparent proxy
Для усиления безопасности можно отказаться от transparent proxy на whonix — gateway для этого открываем /etc/whonix_firewall.d/30_default
находим:
WORKSTATION_TRANSPARENT_TCP=1 WORKSTATION_TRANSPARENT_DNS=1
и меняем на:
WORKSTATION_TRANSPARENT_TCP=0 WORKSTATION_TRANSPARENT_DNS=0
На этом построение анонимной системы для пентеста можно считать завершенным. Виртуальная машина Kali — master готова, нужно лишь периодически обновлять ее.
Для выполнения задач создаем копию или клон этой kali-master машины средствами virtualbox и работаем непосредственно внутри этой машины.
Спасибо! Узнал много нового)
Благодарю, полезная статья)
Спасибо за полезную статью.
Насколько она актуальна по отношению к Kali 2.0 ? У меня на этапе «Включаем Whonix – Gateway и обновляем систему» машина с Kali не видит сеть вообще. Хотя, если я правильно понимаю, на этом этапе все приложения и сервисы ходят прозрачно через Tor ?
Ну а что поменялось??? С новым Kali 2.0 все прекрасно работает!!!
Берем uwt тут: https://github.com/Whonix/uwt/blob/master/usr/bin/uwt и копируем в /usr/bin/ не забывая разрешить исполнение и запускаем:
Как сделать?)Помогите пожалуйста,зелен еще.
Что копируем? Куда и как вставляем? Как разрешить исполнение? Берем uwt тут: https://github.com/Whonix/uwt/blob/master/usr/bin/uwt и копируем в /usr/bin/ не забывая разрешить исполнение и запускаем:
Здравствуйте. О существовании Whonix узнал только дня три как от товарища, поэтому смело можете определять меня чайником. Сами понимаете, вопросы появились, а на Вашем ресурсе решил их задать, так как здесь собираются профессионалы своего дела. Сами вопросы можно распределить по двум группам. Первая — правильно ли я понимаю что: 1) сама Whonix — только для виртуальной системы, поэтому я не смогу ее использовать локально на своем ROSA-Linux? 2) одна часть Whonix (гетэвэй) — «настроечная» (только для тонкой настройки системы), а вторая (воркстейшн) — «рабочая» (непосредственно для использования)? 3) KALI (относительно этого поста) заменяет «рабочую половину» Whonix, то есть воркстейшн попросту не нужна? Вторая — как и почему: 4) «копируем в /usr/bin/ не забывая разрешить исполнение» — скопировать с указанной страницы код, сохранить его как uwt.sh, поместить в папку… а как разрешить исполнение — добавить в автозапуск? 5) зачем нужно клонировать систему, а не пользоваться настроенной? 6) правильно ли я понимаю, что для работы должны быть одновременно запущенны обе половинки (сразу две виртуальные машины) Whonix — и гетэвэй и воркстейшн (KALI в данном случае)? Не судите слишком строго — на самом деле интересно и хочется понять. Спасибо.
Предлагаю ознакомиться с этим видео, должно стать понятней. youtu.be/7ClKIwpvtXk
спасибо большое! …одно так и не понял (или невнимательно смотрел) — нужно одновременно обе виртуальные машины запускать?
Еще раз, здравствуйте. Если предыдущий вопрос (про необходимость одновременного запуска одной или двух виртуальных машин) отпал автоматически «по ходу пьесы», то вот другой появился: после удаления нетворк-менеджера Сеть пропала совсем (и воникс-гетэвэй запустил), пришлось восстанавливать этот самый менеджер с параметром —fix-missing… Что не так, почему не получилось подцепиться к Сети? Спасибо.