ProxyChains-NG makket gjin tunnel. It foarladen in bibleteek dy't netwurkrelatearre libc-oproppen ferfangt binnen it iene programma dat it start, dus de grins is in oprop yn in proses, net in rûte foar it hiele apparaat. Dat ûnderskied beslút wat in slagge test eins bewissiget. In wurkjende curl troch de keatling befêstiget ien heakke oprop, net dat nammerin, UDP of elk bernproses deselde wei folge hat. De hantlieding hjirûnder kontrolearret de dekking yn trije stappen en listet dan op wat de heak net berikke kin.

Hoe't it foarladen in ferbining berikt

By it starten set de starter libproxychains yn LD_PRELOAD en fiert dan it doelprogramma út. De bibleteek lost de echte libc-symboalen op en ferfangt se troch har eigen ferzjes fan funksjes lykas connect en getaddrinfo. Oproppen dy't troch dy symboalen geane, wurde oerskreaun nei de SOCKS- of HTTP-proxy út it konfiguraasjebestân. Oproppen dy't in oare rûte nimme, treffe de heak nea, en dêrom jildt de garânsje per oprop en net per masine.

Allinnich dynamysk keppele programma's dogge mei, en setuid-binêren ûnder feilige útfiering negearje it foarladen hielendal. Bern ervje it omjouwing, mar allinnich salang't de starter it op syn plak hâldt.

Befêstigje dat de bibleteek yn dat proses laden is

Start it fersyk en ûndersykje it libbene proses ynstee fan de shell dy't it starte. It bestân maps toant elk dield objekt dat op dit stuit yn it proses mapt is.

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

In oerienkomst befêstiget dat de heakke bibleteek oanwêzich is, wat nedich mar net genôch is. In leech resultaat betsjut meast dat jo in oar proses ûndersocht hawwe, bygelyks in browser dy't de URL joech oan in eksimplaar dat foar de starter begûn. Kontrolearje mei ldd oft it binêre dynamysk keppele is foardat jo eat oars efternei geane, want in statyske build kin it foarladen hielendal net lade. Lês dêrnei de proxylist yn 'e konfiguraasje dy't de starter wier brûkte, want in ferâldere paad of in sletten poarte jout in wurkjende heak sûnder in wurkjende keatling.

Folgje de ferbiningen dy't it proses ferlitte

De oanwêzigens fan 'e bibleteek bewissiget net dat elke oprop oerskreaun is, folgje dêrom de systeemoproppen. Rin ien fersyk ûnder de tracer en lês wêr't de sockets wier hinne giene.

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

It spoar soe allinnich ferbiningen nei jo proxy-einpunt sjen litte, mei de poarte dy't oerienkomt mei de ynfier yn it konfiguraasjebestân. As de bestimmingsadressen fan 'e doelside direkt yn it spoar ferskine, hat dy oprop de heak omgien, en dat is krekt de fynst dêr't jo nei sochten. Fergelykje de poartenûmers mei de proxylist ynstee fan it bestânsnamme te fertrouwen, want in oerbliuwende konfiguraasje fan in oar projekt is in gewoane boarne fan stil direkte tagong. Bewarje it spoar foar it akseptearre rekord; it duorret sekonden en besljochtet diskusjes oer dekking.

Beslis wat de heak net dekke kin

It proxychains-ng-projekt beheint omlieding ta TCP en warskôget dat skripts, eftergrûnprosessen en laden modules oars as it haadprogramma gedrage kinne. UDP en ICMP steane bûten it meganisme, dus alles wat dêrop fertrout hat syn eigen stipe paad nedich. DNS folget de ynstelling proxy_dns en it eigen gedrach fan 'e resolvers fan 'e applikaasje, wat betsjut dat ien slagge HTTPS-fersyk jo neat oer nammerin fertelt. Hâld sertifikaatfalidaasje ek op syn plak: in server berikke fia in proxy is gjin reden om identiteitskontrôles út te skeakeljen.

As direkte weromfal ûnmooglik wêze moat, brûk dan in hanthaveningsgrins dy't it ferkear sels bestjoert, lykas in netwurknammeromte, firewallregels of in VPN, en hâld dy los fan 'e bibleteekheak. De heak is in kompatibiliteitsoal foar in neamd programma, net in kill switch. Registrearje it programma, it krekte kommando, de proxy-poarte sjoen yn it spoar en oft DNS op ôfstân oplost waard; dy fjouwer feiten binne it ferskil tusken in ferifiearre omfang en in hoopfolle.

Relatearre artikelen