vegeta_ssj@saiyajinz:~/posty/obfs4proxy/$

obfs4proxy

6 minut czytania opublikowano: 26.08.2021

własny, prywatny mostek Tor
Jak ktoś korzysta z Tora to zapewne słyszał, że ISP może dostarczyć 
informacje jakie adresy IP łączyły się z siecią Tor. Na ratunek idą 
kolorowe VPN'y czy inne gówno-usługi oferujące prywatność które mają 
pomóc ukryć to co robimy w sieci czy fakt korzystania z sieci Tor. 

Pamiętaj: VPN to nie jest cudowne lekarstwo na zło, twój ruch owszem- jest 
szyfrowany do serwera VPN, ale z serwera VPN wychodzi normalnie 
do świata. Łatwo sobie wyobrazić, że to ciekawe narzędzie, by zebrać 
informacje o tych którzy teoretycznie mają coś do ukrycia. Ogólnie jebać. 
Ja nie używam, nie wierzę w no logs i inne prywatności ;p Jeżeli byłbym 
cenzorem to stawiałbym usługi, vpny i wszystko co może pomóc dosiegnąć 
jemiaszków i sądzę, że szeroko rozumiane komercyjne narzędzia 
"anonimiujące" są pod ścisłą kontrolą.

Tor Project sugeruje korzystanie z tzw. mostków za pośrednictwem których
połączysz się z siecią Tor. Mostki mogą pracować z pluginem obfuskującym
(zaciemniającym) nasz ruch. Ja korzystam z obfs4proxy. Są też rozwiązania
typu domain fronting, ale je wolę do malware i o nich innym razem.

packages.debian.org/buster/obfs4proxy

Mostki Tora możesz znaleźć na stronie Tor Project. Cytuję:

Because bridge addresses are not public, you will need to request them 
yourself.
   
   ·Visit https://bridges.torproject.org/ and follow the instructions, or
   ·Email bridges@torproject.org from a Gmail, or Riseup email address
   ·Use Moat to fetch bridges from within Tor Browser.

Hm... adres motka który ma ukryć połączenie z adresem Torowym nie jest
publiczny, ale można kliknąć i go dostać. Nie wiem ile jest mostków, ale
coś co może dostać każdy na klika jest chyba jednak publiczne. Myślę, że
jest możliwość aby odpowiednio zdeterminowana służba (nie, nie chodzi mi o 
policjantów z cebulki xDDD) będzie robiła requesty i prowadziła względnie 
aktualną listę niepublicznych mostków. Dodatkowo dużo z tych mostków 
jest oflagowane w Shodanie jako serwery Tor. 

Umiem sobie też wyobrazić, że służby mogłyby samodzielnie stawiać mosty i 
świetnie   teczkować kto się łączy. Serio. Prywatność nie istnieje a Tor w 
mojej ocenie jest na tyle dobry, że ktoś musi mu się przyglądać. Nie wiem 
jak, ale wiem, że tak.

Wkońcu są tacy ISP jak Marcus Koch którzy posiadają wiele exit nodów a 
mostki od niego często się pokazują na bridges.torproject.org

185.220.101.***** -> wygląda znajomo? :) Dla smutnych Panów też mogą
takie być. Co za problem przegrepować informacje uzyskane od operatora
dla konkretnej puli adresowej? 

www.shodan.io/search?query=isp%3A%22CIA+TRIAD+SECURITY+LLC%22

W ogóle: CIA TRIAD SECURITY, kurde jak to brzmi złowieszczo... Marcus...
zmień tę nazwę. W każdym razie to często od niego dostajesz wyjście z Tora 
do klarnetu lub mostek do wejścia.

O! Masz ci mostek:

shodan.io/host/185.220.101.194

Mogę sobię gdybać kiedy służby wyciagają ataki korelacyjne i jak to 
robią, ale przyznam szczerze, że opcja z niepublicznymi mostkami ze
strony Tor Project śmierdzi z deka kabanem.

Co robić? 

Postawić swój prywatny mostek w jakimś kulturalnym kraju równolegle z 
nierzucającym się w oczy blogiem ;d. Potrzebujesz serwera VPS i 3 minuty. 
Ja standardowo lecę na Debianie 10.
   
Zainstaluj niezbędne pakiety:

vegeta_ssj@saiyajinz:~$ apt install -y tor tor-geoipdb obfs4proxy

Zatrzymaj Tora:

vegeta_ssj@saiyajinz:~$ service tor stop

Zrób kopię zapasową konfiguracji na wypadek jakby coś się wywróciło:

vegeta_ssj@saiyajinz:~$ cp /etc/tor/torrc /etc/tor/torrc.backup  

Dodaj następujące linijki do konfiguracji Tora:

RunAsDaemon 0
ORPort $OR_PORT
ExtORPort auto
ExitPolicy reject *:*
BridgeRelay 1
PublishServerDescriptor 0
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:$LISTENING_PORT

Gdzie $OR_PORT to port nasłuchujący połączeń od klienty oraz innych
przekaźników a $LISTENING_PORT to port mostka z którym się połączysz
na wjazd.

Możesz zrobić tak: 

ORPort 52198
ServerTransportListenAddr obfs4 0.0.0.0:3128

Port 3128 jest spoko, bo to domyślny port proxy :) Fajnie jak ORP*
nie gada przez 9001, bo to typowy port dla Tora a w sieci widoczne jest
probowanie tego portu czego skutkiem jest właśnie oflagowanie serwera jako
Torowego. Dokumentacja Tora zaleca by ExtORPort służący do lokalnej
komunikacji pomiędzy pluginem obfs4 a Torem był definiowany automatycznie. 
Ext od extended nie external.

ORPort raczej nie pownien być udostępniony jako port którego może używać 
inna usługa jako domyślny, ponieważ te porty są najczęściej skanowane przez
boty i może zdarzyć się tak, że usługa zostanie rozpoznana jak niżej:

seclists.org/nmap-dev/2015/q1/39

$LISTENING_PORT może być za firewallem w którym wpiszesz na białą listę swój
adres czy w przypadku dynamicznego przydzielanego IP zakres z puli Twojego 
ISP.

$OR_PORT musi być dostępny z sieci.

PublishServerDescriptor 0 to bardzo ważna instrukcja. To ona decyduje, 
że Tor nie opublikuje deskryptorów a mostek pozostanie prywatny. Chcesz
walczyć o wolność słowa i pomagać uciemiężonym? Zmień 0 na 1 :)

Niektórzy mistrzowie kamuflarzu używają portów 80 lub 443. Wtedy obfs4
musi mieć prawo do korzystania z portów niższych niż 1024. Chcesz? Możesz,
ale pamiętaj o cap_net_bind_service.

Trudno nie będzie:

sudo setcap cap_net_bind_service=+ep /usr/bin/obfs4proxy

Ale ja byłbym ostrożny z takimi zabawami. Preferuję domyślne nastawy. 
Na ten moment bardziej ufam developerem Debiana niż sobie ;)

Wystartuj Tora jako serwis:

sudo service tor start

Jak korzystałeś już z mostków to zapewne byłeś proszony o podanie adresu
mostka w odpowiednim formacie, np:

obfs4 174.128.247.177:443 1FFA4FB830435BC15FD7EC8D4DA59E7DE047C524 
cert=7h0xI5/XhF+iF1S4506pNwaD7PZkU4JdBk6oNHRk9gfB76ZKdW5zJbGFfzUkvj+qAJY
pCA iat-mode=0

Musisz przygotować swój wpis w oparciu o odcisk serwera i linijkę 
konfiguracyjną.

Odcisk znajdziesz tu (ja jeszcze ładnie sforamtowałem :D)

vegeta_ssj@saiyajinz:~$ cat /var/lib/tor/fingerprint | cut -d ' ' -f 2-

1FFA4FB830435BC15FD7EC8D4DA59E7DE047C524

Tu znajdziesz linijkę konfiguracyjną:

vegeta_ssj@saiyajinz:~$ cat/var/lib/tor/pt_state/obfs4_bridgeline.txt

# obfs4 torrc client bridge line
#
# This file is an automatically generated bridge line based on
# the current obfs4proxy configuration.  EDITING IT WILL HAVE
# NO EFFECT.
#
# Before distributing this Bridge, edit the placeholder fields
# to contain the actual values:
#    - The public IP address of your obfs4 bridge.
#          - The TCP/IP port of your obfs4 bridge.
#   - The bridge's fingerprint.

Bridge obfs4 (IP ADDRESS):(PORT) (FINGERPRINT) cert=7h0x** iat-mode=0

Jeżeli chcesz użyc mostka do połączenia się z siecią Tor z użyciem
przeglądarki użyj opcji "provide bridge" i wklej cały wpis:

obfs4 174.128.247.177:443 1FFA4FB830435BC15FD7EC8D4DA59E7DE047C524 
cert=7h0xI5/XhF+iF1S4506pNwaD7PZkU4JdBk6oNHRk9gfB76ZKdW5zJbGFfzUkvj+qAJY
pCA iat-mode=0

Jeżeli chcesz manualnie dodać wpis do pliku konfiguracyjnego torrc
otwórz plik konfiguracyjny:

vegeta_ssj@saiyajinz:~$ nano /etc/tor/torrc

I dodaj na końcu:

UseBridges 1
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed
Bridge obfs4 174.128.247.177:443 1FFA4FB830435BC15FD7EC8D4DA59E7DE047C524 
cert=7h0xI5/XhF+iF1S4506pNwaD7PZkU4JdBk6oNHRk9gfB76ZKdW5zJbGFfzUkvj+qAJY
pCA iat-mode=0

Powinno działać :)

Pamiętaj!!! 

Nie wchodź do clearnetu z Tora bez https. Zawsze wpisuj ręcznie 
https://**** do nazwy strony z która chcesz się połączyć. Szpiegujące 
lub złośliwe węzły wyjściowe to fakt. Pierwszy request do serwera po http 
nawet jak odpowie 301 i przerzuci Cię na :443 po https to ten pierwszy 
request umożliwa wstrzyknięcie się do twojej transmisji. Niech weźmie 
kamień i się nim jebnie kto nie wpisuje w przeglądarce kgp.gov.pl zamiast 
https://kgp.gov.pl

Jak logujesz się gdziekolwiek w clearnecie po http bez s z użyciem
Tora to węzeł wyjściowy widzi całą transmisję. W tym wypadku credki
którymi się logujesz.

Połączenie z ukrytą usługą .onion szyfrowane jest end-to-end.

Provider usługi VPS widzi, że serwer (mostek) łączy się z Torem. 

Pozdro #yolo