ProxyChains-NG skep nie ’n tonnel nie. Dit voorlaai ’n biblioteek wat netwerkverwante libc-oproepe binne die een program wat dit begin, vervang, so die grens is ’n oproep in ’n proses, nie ’n toestelwye roete nie. Hierdie onderskeid bepaal wat ’n suksesvolle toets werklik bewys. ’n Werkende curl deur die ketting bevestig een gehaakte oproep, nie dat naamresolusie, UDP of elke kindproses dieselfde pad gevolg het nie. Die runbook hieronder verifieer dekking in drie stappe en lys dan wat die haak nie kan bereik nie.

Hoe die voorlaai ’n verbinding bereik

By die begin plaas die lanseerder libproxychains in LD_PRELOAD en voer dan die teikenprogram uit. Die biblioteek los die werklike libc-simbole op en vervang dit met sy eie weergawes van funksies soos connect en getaddrinfo. Oproepe wat deur daardie simbole gaan, word herskryf na die SOCKS- of HTTP-proxy uit die konfigurasielêer. Oproepe wat ’n ander roete neem, ontmoet nooit die haak nie, en daarom is die waarborg per oproep en nie per masjien nie.

Slegs dinamies gekoppelde programme neem deel, en setuid-lêerprogramme onder veilige uitvoering ignoreer die voorlaai heeltemal. Kinders erf die omgewing, maar net solank die lanseerder dit in plek hou.

Bevestig dat die biblioteek in daardie proses gelaai is

Begin die versoek en ondersoek die lewende proses eerder as die dop wat dit begin het. Die maps-lêer wys elke gedeelde objek wat tans in die proses gekarteer is.

proxychains4 -q curl -sS --max-time 8 https://example.com/ -o /dev/null &
pgrep -a curl
grep libproxychains /proc/$(pgrep -n curl)/maps

’n Passing bevestig dat die gehaakte biblioteek teenwoordig is, wat nodig maar nie voldoende is nie. ’n Leë resultaat beteken gewoonlik dat jy ’n ander proses ondersoek het, byvoorbeeld ’n blaaier wat die URL aan ’n instansie oorhandig het wat voor die lanseerder begin is. Kontroleer met ldd of die program dinamies gekoppel is voordat jy enigiets anders najaag, want ’n statiese bou kan die voorlaai glad nie laai nie. Lees dan die proxylys in die konfigurasie wat die lanseerder werklik gebruik het, want ’n verouderde pad of ’n geslote poort lewer ’n werkende haak sonder ’n werkende ketting.

Volg die verbindings wat die proses verlaat

Die teenwoordigheid van die biblioteek bewys nie dat elke oproep herskryf is nie, volg dus die stelseloproepe. Voer een versoek onder die naspoorder uit en lees waar die sokkette werklik heen gegaan het.

strace -f -e trace=connect -o /tmp/pc.trace proxychains4 -q curl -sS https://example.com/ -o /dev/null
grep -o "sin_port=htons([0-9]*)" /tmp/pc.trace | sort -u

Die naspoor moet slegs verbindings na jou proxy-eindpunt wys, met die poort wat by die inskrywing in die konfigurasielêer pas. Bestemmingadresse vir die teikenterrein wat direk in die naspoor verskyn, beteken dat daardie oproep die haak omseil het, en dit is juis die bevinding waarna jy gesoek het. Vergelyk die poortnommers met die proxylys in plaas van om die lêernaam te vertrou, want ’n oorblywende konfigurasie van ’n ander projek is ’n algemene bron van stil direkte toegang. Hou die naspoor vir die aanvaardingsrekord; dit neem sekondes en besleg argumente oor dekking.

Bepaal wat die haak nie kan dek nie

Die proxychains-ng-projek beperk herleiding tot TCP en waarsku dat skrifte, agtergrondprosesse en gelaai modules anders as die hoofprogram kan optree. UDP en ICMP val buite die meganisme, so enigiets wat daarop staatmaak, benodig sy eie ondersteunde pad. DNS volg die proxy_dns-instelling en die toepassing se eie oplosser-gedrag, wat beteken dat een suksesvolle HTTPS-versoek jou niks oor naamresolusie sê nie. Hou sertifikaatvalidering ook waar dit hoort: om ’n bediener deur ’n proxy te bereik, is nie ’n rede om identiteitskontroles af te skakel nie.

As direkte terugval onmoontlik moet wees, gebruik ’n afdwingingsgrens wat die verkeer self beheer, soos ’n netwerknaamruimte, vuurmuurreëls of ’n VPN, en hou dit apart van die biblioteekhaak. Die haak is ’n versoenbaarheidshulpmiddel vir ’n genoemde program, nie ’n doodskakelaar nie. Teken die program, die presiese opdrag, die proxypoort wat in die naspoor gesien is en of DNS op afstand opgelos is aan; daardie vier feite is die verskil tussen ’n geverifieerde omvang en ’n hoopvolle een.

Verwante artikels