Как создать свой onion-сайт в сети TOR с помощью Kali Linux

ghost

penetration testing
Grey Team
12.05.2016
976
1 699
#1
Создадим свой onion-сайт в сети TOR, расположенный на вашей Kali Linux, а не каком нибудь хостинге. Только доступен он будет, когда вы его запустите. Если хотим сгенерировать красивый адрес для сайта, то переходим к первому пункту, а если нет, то сразу ко второму.
1. Нам понадобится СТАРАЯ версия Kali Linux! Я использовал 1.0.6
На новых не заработало. Можно найти в архивах. Нарезаем на болванку/делаем live-usb. Прогружаемся в систему. Подключаемся к сети. Далее в ход пойдет Shallot.
Shallot позволяет создавать настроенные адреса .onion для скрытых сервисов Tor. Часть адреса может быть произвольной. Установка:
Загрузим Shallot с github

wget
Для просмотра контента необходимо: Войти или зарегистрироваться


Распакуем

unzip master.zip

Перейдем в директорию

cd Shallot-master

Далее

./configure

make

И запускаем для примера

Код:
./shallot ^penis
------------------------------------------------------------------
Found matching domain after 30493976 tries: penistfobso4wxhr.onion
------------------------------------------------------------------
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQC+dO6h1GjQD0Hqn2LLBX0kIA9px/CtxV5yxMCjbk773igLvXDu
v7N9Kr1FYB+yKuSWL/aCZttLqiqUA4L3cxI5Dgtk3bRKkmZre9qfH9xU9v+RSr5P
BQmtp0AMi2wLiZxGggkoqcdIhKC4WWoD1xks0H//f7D+G+rdh4IMOHj7kQIEAPC0
RQKBgAwEVw9kxxu/SIugn3dDXJ2tq8V/uGNMBm02MnhckgvIS6S9wfB60mjy3FG/
SUPCWE/f5pUx8fNb3aPnIg2C5FlSE8hAfzdVBIP5F3S2KacSeCL+DPgCpcM8Tkfh
s5AaqHe5Z+cb2pLE/1VXQpnnSQhLuSQFresIMCxnaBjOizzJAkEA4laycqQo2Guu
eGkppcdNDRnlI4+bCslp2C4ZOuv8/DaLsQ/UE+RMrhdmJi48bcGBafcQlfewdyvL
FpF6cpzjtQJBANdqdFilmRwCi1Ij4Q3dBubjjo5+WzxeZ0A6M6g5HDPFZBuHoXtI
LNbSz5ilriQQ8fhKZi1HpwVWhNNLyIB3me0CQCdn1d98SwNP+gIfyvYT5ufxoBfH
ElngrkQr4rYhsbCmSorxfen9gxI1hQVy4DsbTfttzSwJmOZ5P/CBG+HPFjUCQQCB
gWh+P0wOCUDfkRDXdVd1Tb/7nbPbk8r+VlVgnz7fMNPYzjVkq2DTsRvk8uWTdMwQ
bTDrrSiO0Wv5zxmMocT9AkEAkLfNSgZafRVmipGo9Fn78ZqedvZAqfYkwXgoIfrB
MEq+FK1D3nyY9QDukbe6uR7k8gTfqTtqiHwIQ5JX7u6v7w==
-----END RSA PRIVATE KEY-----
Замените "член" именем, которое хотите. Стоит помнить, что чем больше символов вы введете, тем тольше времени уйдет на генерацию. Оптимально не более 6. Полученный вывод сохраните в текстовый файл и пока сохраните на внешний носитель.

2. Лучше всего, если ваша Kali будет на зашифрованном диске.Об этом подробно написано на форуме.
Плюсы очевидны. Ладно. Вы в системе. В терминале вводим по порядку:

apt-get install tor
apt-get install lighttpd


далее стартуем tor и lighttpd:

service tor start
service lighttpd start


чтобы они создали конфигурации. В /etc/tor/torrc раскомментируем и приведем к такому виду строки:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080


и в самом низу добавим это:

ExcludeNodes {ru}, {ua}, {be}

Устранит подключения вашего Tor к *** нодам. Сохраним и выйдем.

В /var/lib/tor/hidden_service есть два файла hostname и private_key
В первом имя вашего onion сайта, а во втором - уникальный приватный ключ. Если вы выполняли пункт 1, то у вас должен остаться полученный вывод в текстовом файле. Вот из него то и подставьте значения в эти два файла. Если перешли сразу ко второму пункту, то оставьте так. Для примера в hostname впишите penistfobso4wxhr.onion а в private_key:

Код:
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQC+dO6h1GjQD0Hqn2LLBX0kIA9px/CtxV5yxMCjbk773igLvXDu
v7N9Kr1FYB+yKuSWL/aCZttLqiqUA4L3cxI5Dgtk3bRKkmZre9qfH9xU9v+RSr5P
BQmtp0AMi2wLiZxGggkoqcdIhKC4WWoD1xks0H//f7D+G+rdh4IMOHj7kQIEAPC0
RQKBgAwEVw9kxxu/SIugn3dDXJ2tq8V/uGNMBm02MnhckgvIS6S9wfB60mjy3FG/
SUPCWE/f5pUx8fNb3aPnIg2C5FlSE8hAfzdVBIP5F3S2KacSeCL+DPgCpcM8Tkfh
s5AaqHe5Z+cb2pLE/1VXQpnnSQhLuSQFresIMCxnaBjOizzJAkEA4laycqQo2Guu
eGkppcdNDRnlI4+bCslp2C4ZOuv8/DaLsQ/UE+RMrhdmJi48bcGBafcQlfewdyvL
FpF6cpzjtQJBANdqdFilmRwCi1Ij4Q3dBubjjo5+WzxeZ0A6M6g5HDPFZBuHoXtI
LNbSz5ilriQQ8fhKZi1HpwVWhNNLyIB3me0CQCdn1d98SwNP+gIfyvYT5ufxoBfH
ElngrkQr4rYhsbCmSorxfen9gxI1hQVy4DsbTfttzSwJmOZ5P/CBG+HPFjUCQQCB
gWh+P0wOCUDfkRDXdVd1Tb/7nbPbk8r+VlVgnz7fMNPYzjVkq2DTsRvk8uWTdMwQ
bTDrrSiO0Wv5zxmMocT9AkEAkLfNSgZafRVmipGo9Fn78ZqedvZAqfYkwXgoIfrB
MEq+FK1D3nyY9QDukbe6uR7k8gTfqTtqiHwIQ5JX7u6v7w==
-----END RSA PRIVATE KEY-----
В /etc/lighttpd/lighttpd.conf изменим значения:

server.document-root = "/var/www/onion"
server.error-handler-404 = "/404.php"
server.tag = "Ваше значение"
server.port = 8080
$HTTP["remoteip"] !~ "127.0.0.1" {
url.access-deny = ( "" )
}
server.dir-listing = "disable"


3. Современные веб-технологии предусматривают широкое использование "движков", для поддержки которых требуются PHP и MySQL, поэтому самое время добавить их к нашему серверу. Сначала установим PHP:

apt-get install php7.0-cgi

Затем в /etc/php/7.0/cgi/php.ini найдем и раскомментируем следующую строку:

cgi.fix_pathinfo = 1

Теперь включим поддержку PHP в lighttpd:

lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php


4. Следующим шагом установим сервер баз данных MySQL и модуль PHP для работы с ним (Можете пропустить, если сайт будет без БД):

apt-get install mysql-server php7.0-mysql

По умолчанию MySQL сервер использует кодировку latin1, в то время как большинство современных движков работают в UTF-8. Поэтому откроем /etc/mysql/my.cnf и добавим в секции [client] и [mysqld] следующие строки:

[client]
default-character-set=utf8

[mysqld]
character_set_server=utf8
collation_server=utf8_unicode_ci


Об управлении БД в mysql я рассказывать не буду. Это отдельная тема, которую нет смысла тут упоминать.

5. В /var/www/ создаем папку onion (не забудьте установить права 777). Ваш сайт разместим в ней. Создадаем проверочную HTML страницу и сохраняем ее под именем index.html :

Код:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Тестовая страница</title>
</head>
<body>
<h2>Site Local </h2>
<h3> Тестовая страница.</h3>
<p> Веб-сервер работает и настроен правильно. </p>
</body>
Создадаем PHP страницу ошибки и сохраняем ее под именем 404.php :

Код:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>404</title>
</head>
<body>
<h2>Site Local </h2>
<h3> Ошибка 404.</h3>
<p> Страница не найдена. </p>
</body>
Перезапустим службы:

service tor restart
service lighttpd restart
service mysql restart


6. В tor-браузере переходим на ВАШ сгенерированный onion адрес, например penistfobso4wxhr.onion и видим результат!
Желательно добавить в /root/***/tor-browser_en-US/Browser/TorBrowser/Data/Tor/torrc в самый низ строку ExcludeNodes {ru}, {ua}, {be}
Теперь, чтобы запустить сайт, достаточно вводить в терминале:

service tor start
service lighttpd start
service mysql start


Установим tor-arm - удобную утилиту для управления и контроля трафика Tor :

apt-get install arm

Запускается просто. В терминале ввести arm и следить за трафиком.

P. S. От себя замечу, что можно использовать тяжелые движки для сайта, но я бы порекомендовал opensource:

flatpress - блог без БД

lechat - чат с БД

fluxbb - форум с БД

Можно найти в интернете в открытом виде на том же
Для просмотра контента необходимо: Войти или зарегистрироваться


Все это можно реализовать на Raspberry Pi, тогда сайт будет всегда доступен.

Спасибо за внимание.
 

Вложения

Последнее редактирование:

ghost

penetration testing
Grey Team
12.05.2016
976
1 699
#4
С помощью Shallot теперь есть! :) Да и Apache ведь для других дел в Kali нужнее. Лучше Lighttpd использовать...

И кстати. Совсем забыл. Если вам нужно разрешить скачивать с вашего сайта файлы, то нужно:

1. В /var/www/onion создаем какую нибудь папку, к примеру downloads и в нее ложим необходимые файлы.

2. Изменяем права на чтение и скачивание на папку /var/www/onion/downloads и все вложенные в нее файлы.
(Щелкаем правой кнопкой мыши на ней и выбираем свойства/права. А далее:
Владелец - debian-tor, доступ - создание и удаление файлов
Группа - debian-tor, доступ - доступ к файлам
Остальные - доступ к файлам
Изменить права на вложенные файлы
После добавления новых файлов каждый раз повторяем операцию. Но можно все проделать проще и через терминал.)

3. В /etc/lighttpd/lighttpd.conf изменим значение:

server.dir-listing = "disable"

на

server.dir-listing = "enable"

PROFIT!
 
Последнее редактирование модератором:

ghost

penetration testing
Grey Team
12.05.2016
976
1 699
#5
Если у вас статические html-файлы с сайтом (идеальный вариант для безопасности) и не очень много ресурсов, то можно просто запустить однострочник на Python, который будет отдавать пользователю контент. А не использовать Lighttpd. Для этого перейдите в каталог с html-файлами и запустите следующую команду:

Код:
$ cd /var/www/site1
$ python -m SimpleHTTPServer 80
Можно параллельно запустить несколько сайтов, поменяв лишь каталог назначения и порт. Например:

Код:
$ cd /var/www/site2
$ python -m SimpleHTTPServer 81
Порт естественно смените на другой, например 8123.

Как отдать файл через Tor?
Если в /var/www/site1 создать папку, например new и положить в нее какой нибудь файл, то посетитель вашего сайта перейдя по адресу вашсайт.onion/new сможет скачать этот файл.

Вопрос для знающих. Как в этом однострочнике сменить дефолтную error404 страницу?
 

ghost

penetration testing
Grey Team
12.05.2016
976
1 699
#7
Очень впечатлило, так как весьма полезно, благодарю ТС за статью!!!
Пожалуйста. Конечно полезно. Даже передать какой то файл если нужно анонимно. Все настраивается за пару минут... Вот только если хотите красивый домен, то прийдется использовать Shallot и подождать. Время генерации .onion адреса на 1.5Ghz процессоре:

символы/время генерации (приблизительно)
  1. быстрее 1 секунды
  2. быстрее 1 секунды
  3. быстрее 1 секунды
  4. 2 секунды
  5. 1 минута
  6. 30 минут
  7. 1 день
  8. 25 дней
  9. 2.5 года
  10. 40 лет
  11. 640 лет
  12. 10 тысяч лет
  13. 160 тысяч лет
  14. 2.6 миллионов лет

Вот только греется по страшному! Как при бруте хорошем... :D
 

ghost

penetration testing
Grey Team
12.05.2016
976
1 699
#8
С выходом PHP7 команды:
Код:
apt-get install php5-cgi

apt-get install php5-mysql
больше неактуальны. Смена 5 на 7 не работает!
Кто найдет решение отпишитесь...
 

acorn

PHP Developer
29.08.2004
585
3
#9
Симпатии: Понравилось ghost

acorn

PHP Developer
29.08.2004
585
3
#11
Спасибо! Все работает. Вопрос можно считать закрытым. Сделал изменения в теме.
Не за что, но в будущем лучше вопрос про php задавать в php разделе - форум большой и "чужие" разделы обычно никто не просматривает :)
 

ghost

penetration testing
Grey Team
12.05.2016
976
1 699
#13
Кстати, кто знает почему в новой Kali отказывается запускаться Shallot? А только в версии 1.0.6
Какие зависимости нужны?
В Blackarch все работает...