Tor и RPi

ghost

penetration testing
Grey Team
12.05.2016
819
1 307
#1
Вдохновившись своей темой решил написать продолжение. Домашний компьютер/ноутбук не может быть всегда включен. А RPi может. Поэтому...
Реализовываем создание своего onion-сайта в сети TOR на Raspberry Pi, чтобы он всегда был доступен.

Нам понадобится RPi, адаптер питания 5V 2A DC, карта памяти min 4Gb, USB-адаптер (лучше ALFA или TP-Link), Для первого подключения клавиатура, HDMI кабель и зомбоящик.

Будем использовать Raspbian Jessie Lite образ скачиваем отсюда или отсюда.
Сверили контрольные суммы:
sha1sum

3a34e7b05e1e6e9042294b29065144748625bea8

Распаковываем архив, подключаем карту памяти и записываем образ:

dd if=2016-09-23-raspbian-jessie-lite.img.img of=/dev/mmcblk0

Первый запуск. Вставим карту памяти в RPi, подключим клавиатуру и USB-адаптер. Соединим по HDMI шнуру с зомбоящиком. Подключаем адаптер питания. Пойдет первая загрузка. Образ Raspbian небольшой, автоматом расширится все дисковое пространство карты памяти. Когда выскочит на экран ввода логина/пароля, введите pi/raspberry. Дальше будет ОЧЕНЬ много команд!

Сменим пароль пользователя pi

passwd
Перейдем в суперпользователя root
sudo -i
и так же сменим пароль
passwd
желательно не такой же, как у пользователя pi. Добавим пользователя pi к sudo
usermod -g sudo pi
редактируем
visudo
находим строки

# User privilege specification
root ALL=(ALL:ALL) ALL
добавляем ниже

# Allow members of group sudo to execute any command
pi ALL=(ALL:ALL) ALL
меняем
nano /etc/hosts
и
nano /etc/motd
на что то другое вместо raspberry. Так же заменим MOTD – Message of the Day banner
nano /etc/motd
Создать вашу собственную картинку ASCII можно здесь, затем вставить ее в MOTD.
Поправим SSH, так как будем подключаться по нему
nano /etc/ssh/sshd_config
Для защиты от брутфорса запретим подключаться через root и сменим порт с 22 на другой
PermitRootLogin no

Port 2282
Настраиваем SSH для постоянной работы
update-rc.d -f ssh remove
update-rc.d -f ssh defaults
cd /etc/ssh/
mkdir original_keys
mv ssh_host_* original_keys/
dpkg-reconfigure openssh-server
Подключаться будем по wi-fi.
Приводим
nano /etc/wpa_supplicant/wpa_supplicant.conf
к виду
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB

network={
ssid="точка доступа"
psk="пароль"
key_mgmt=WPA-PSK
}
Добавим автовход без ввода логина/пароля
sudo -i
mkdir -pv /etc/systemd/system/getty@tty1.service.d
nano /etc/systemd/system/getty@tty1.service.d/autologin.conf
в autologin.conf вводим и сохраняем
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux
перезагружаем RPi
reboot
зайдя под пользователем pi автоматически проверим, появилось ли автоматическое интернет-подключение
ping google.com
и узнаем свой IP-адрес
hostname -I
клавиатуру и HDMI можно отключить. Будем соединяться по SSH
ssh pi@ip_address -p 2282
если не хотите каждый раз вводить пароль, то можно сделать аутентификации по ключам.
генерируем пару ключей на локальной машине
ssh-keygen
устанавливаем открытый ключ на удаленном сервере
ssh-copy-id -i ~/.ssh/id_rsa.pub pi@ip_adress -p 2282
добавляем секретный ключ в агент аутентификации на локальной машине
ssh-add
пора обновить систему
apt-get update

apt-get upgrade
если хотим сгенерировать красивый адрес для сайта, то нам понадобится СТАРАЯ версия 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. Полученный вывод сохраните в текстовый файл и пока сохраните на внешний носитель
установим необходимые пакеты
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:8123
и в самом низу добавим это
ExcludeNodes {ru}, {ua}, {be}
устранит подключения Tor к *** нодам. Сохраним и выйдем
в /var/lib/tor/hidden_service есть два файла hostname и private_key
в первом имя вашего onion сайта, а во втором - уникальный приватный ключ.
у вас должен остаться полученный вывод в текстовом файле. Вот из него то и подставьте значения в эти два файла. Для примера в 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 = 8123
$HTTP["remoteip"] !~ "127.0.0.1" {
url.access-deny = ( "" )
}
server.dir-listing = "disable"
современные веб-технологии предусматривают широкое использование "движков", для поддержки которых требуются PHP и MySQL, поэтому самое время добавить их к нашему серверу. Сначала установим PHP
apt-get install php5-cgi
затем в /etc/php/cgi/php.ini найдем и раскомментируем следующую строку
cgi.fix_pathinfo = 1
теперь включим поддержку PHP в lighttpd
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php
следующим шагом установим сервер баз данных MySQL и модуль PHP для работы с ним (Можете пропустить, если сайт будет без БД)
apt-get install mysql-server mysql-client php5-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 я рассказывать не буду. Это отдельная тема
в /var/www/ создаем папку onion (не забудьте установить права)
chown www-data:www-data /var/www/onion
chmod 775 /var/www/onion
usermod -a -G www-data pi
dаш сайт разместим в ней. Создадаем проверочную 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>
cоздадаем 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
и добавим в автозагрузку
update-rc.d tor enable
update-rc.d lighttpd enable
update-rc.d mysql enable
в tor-браузере переходим на ВАШ сгенерированный onion адрес, например penistfobso4wxhr.onion и видим результат!
желательно добавить в /root/***/tor-browser_en-US/Browser/TorBrowser/Data/Tor/torrc в самый низ строку ExcludeNodes {ru}, {ua}, {be}
теперь, чтобы запустить сайт, достаточно воткнуть вилку в розетку и чтобы wi-fi был доступен
P. S. От себя замечу, что можно использовать тяжелые движки для сайта, но я бы порекомендовал opensource, можно найти в интернете на том же github
flatpress - блог без БД
lechat - чат с БД
fluxbb - форум с БД
 

ghost

penetration testing
Grey Team
12.05.2016
819
1 307
#4
Добавлю к теме, что если нет возможности подключаться по wi-fi, то можно реализовать соединение через USB-свисток. Ищем по поисковым запросам "sakis3g Raspberry Pi". Там и перепрошить модем под любые сим карты можно и автозагрузку и автоподключение настроить...
 
Последнее редактирование:
Симпатии: Понравилось kot-gor

ghost

penetration testing
Grey Team
12.05.2016
819
1 307
#6
А разве большой брат не видит, что у вас на линии onion? ;)
Для него настрой цепочку VPN-Tor. А для защиты от тайминг-атак используй Random Traffic Generator (С github исчез. Выложу копию сюда, может пригодится кому). Пусть забьет канал информационным мусором...
 

Вложения

  • 4.8 КБ Просмотры: 26
Последнее редактирование:

DSCH

Member
07.12.2016
16
1
19
#7
Для него настрой цепочку VPN-Tor. А для защиты от тайминг-атак используй Random Traffic Generator (С github исчез. Выложу копию сюда, может пригодится кому). Пусть забьет канал информационным мусором...
Сможеш с Картинки оформит тему или лучшее снять видео буду благадорень !
 

ghost

penetration testing
Grey Team
12.05.2016
819
1 307
#8
Сможеш с Картинки оформит тему или лучшее снять видео буду благадорень !
Думаю нет. Тут и так все разжевано.

P.S.

Иногда бывает что в доме отключают свет и после его включения Paspberry Pi запускается, но Tor и службы lighttpd и mysql не запускаются вместе с ним. Чтобы это исправить:
Код:
sudo nano /etc/crontab
И в конец файла добавьте эту строчку:
Код:
@reboot pi service tor start && service lighttpd start && service mysql start
Выключите электроэнергию и проверьте что после включения Tor и службы lighttpd и mysql на Paspberry Pi сами запустятся.
 
Примечание.
Запустите
Код:
netstat -tulpan
и убедитесь что никаких левых сервисов не запущено (светят наружу ненужные ntpd, avahi-daemon, dhcpcd - всё лишнее удаляем через apt purge имя_пакета)
Для того чтобы RPi автоматически принимал критические обновления безопасности, поставьте следующие пакеты:
Код:
apt-get install unattended-upgrades apt-listchanges

dpkg-reconfigure -plow unattended-upgrades
 
Чтобы получить FTP доступ к файлам и папкам на RPi установим пакет:
Код:
sudo apt-get install pure-ftpd -y
Для доступа по SSH используем FTP-клиент, например Filezilla.
Код:
Хост: sftp://pi@ip
Имя пользователя: pi
Пароль: пароль
Порт: порт (нестандартный, в нашем случае например 2282)
 

ghost

penetration testing
Grey Team
12.05.2016
819
1 307
#10
Не сознательно. Статья получилась большая и часть текста в виде ссылок "съело".
Вот
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться
на образы Raspbian Jessie Lite.
 
Не забываем про добавление в корень сайта robots.txt с содержимым
Код:
User-agent: *

Disallow: /
чтобы запретить выхухолю вынюхивать сами знаете что кому...