Wat ProxyChains ofängt a wat et a rou lässt
ProxyChains haakt Bibliothéiksofriff am Programm, dat et start. Iwwerpréift d'TCP-Deckung mat maps, strace an enger Ufro, an hält op ze uergen, datt DNS oder UDP nokommen.
ProxyChains-NG baut keen Tunnel. Et lued virun eng Bibliothéik, déi d'Netzwierk-libc-Opriffer bannent deem eenzege Programm ersetzt, dat et start, also ass d'Grenz en Opriff an engem Prozess, net eng Streck fir dat ganzt Apparat. Deeën Ënnerscheed decidéiert, wat en erfollegräichen Test tatsächlech beweist. En funktionéierende curl duerch d'Kette bestätegt en eenzegen ofgefaangenen Opriff, net datt d'Nimmopwerklärung, UDP oder all Kandprozess dee selwechte Wee gaangen ass. D'Uleedung ënnen iwwerpréift d'Deckung an dräi Schrëtt an zielt dann op, wat den Haken net erreeche kann.
Wéi d'Viruluede bis zu enger Verbindung kënnt
Beim Start setzt de Starter libproxychains an LD_PRELOAD a fiert duerno d'Zilprogramm aus. D'Bibliothéik léist déi richteg libc-Symboler op a ersetzt se duerch hir eege Versioune vu Funktiounen wéi connect an getaddrinfo. Opriffer, déi duerch déi Symboler ginn, ginn op de SOCKS- oder HTTP-Proxy aus der Konfiguratiounsdatei ëmgeschriwwen. Opriffer, déi en anere Wee huelen, begéinen den Haken ni, an dofir gëllt d'Garantie pro Opriff an net pro Maschinn.
Et huelen nëmmen dynamesch gelinkte Programmer deel, a setuid-Binären ënner sécherer Ausféierung ignoréieren d'Viruluede komplett. D'Kanner ierwen d'Ëmfeld, awer nëmmen esou laang wéi de Starter et op der Plaz hält.
Bestätegt, datt d'Bibliothéik an deem Prozess gelueden ass
Start d'Ufro an ënnersicht de liewege Prozess amplaz vun der Shell, déi en gestart huet. D'Datei maps weist all gedeelten Objet, deen am Moment an de Prozess gemappt ass.
proxychains4 -q curl -sS --max-time 8 https://example.com/ -o /dev/null &
pgrep -a curl
grep libproxychains /proc/$(pgrep -n curl)/mapsEng Iwwerenee bestätegt, datt déi agehaakte Bibliothéik do ass, wat noutwendeg awer net genuch ass. En eidelt Resultat heescht meeschtens, datt Dir en anere Prozess ënnersicht hutt, zum Beispill e Browser, deen d'URL un eng Instanz weidergech huet, déi virum Starter gestart gouf. Iwwerpréift mat ldd, ob de Binär dynamesch gelinkt ass, ier Dir soss eppes nogeet, well eng statesch Kompiléierung d'Viruluede guer net luede kann. Liest duerno d'Proxy-Lëscht an der Konfiguratioun, déi de Starter tatsächlech benotzt huet, well en ale Pad oder en zouene Port ergëtt en Haken dee funktionéiert ouni eng Kette déi funktionéiert.
Verfollegt d'Verbindungen, déi de Prozess verloossen
D'Präsenz vun der Bibliothéik beweist net, datt all Opriff ëmgeschriwwe gouf, dofir verfollegt d'Systemopriffer. Féiert eng Ufro ënner dem Verfolger aus a liest, wou d'Sockets tatsächlech higaange sinn.
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 -uD'Spuer soll just Verbindungen zu Ärem Proxy-Endpunkt weisen, mam Port deen dem Andrag an der Konfiguratiounsdatei entsprécht. Wann d'Ziladressen vun der Zilsäit direkt an der Spuer erschéngen, heescht dat, datt deen Opriff den Haken ëmgaangen huet, an dat ass just dee Befund, deen Dir gesicht hutt. Vergläicht d'Portnummeren mat der Proxy-Lëscht amplaz dem Dateinumm ze vertrauen, well eng Reschtkonfiguratioun aus engem anere Projet eng heefeg Quell vu rouegem direkten Zougang ass. Haalt d'Spuer fir den Akzeptanzprotokoll; se dauert Sekonnen a kläert Diskussiounen iwwer d'Deckung.
Entscheet, wat den Haken net decke kann
D'proxychains-ng-Projet limitéiert d'Ëmleedung op TCP a warnt, datt Skripten, Hannergrondprozesser a geluede Moduler sech anescht wéi d'Haaptprogramm behuele kënnen. UDP an ICMP leien ausserhalb vum Mechanismus, dofir brauch alles wat sech drop verléisst säin eegene ënnerstëtzten Wee. DNS follegt der Astellung proxy_dns an dem eegene Verhalen vum Resolver vun der Applikatioun, wat heescht, datt eng erfollegräich HTTPS-Ufro Iech näischt iwwer d'Nimmopwerklärung seet. Haalt d'Zertifikatsvalidéierung och do wou se higehéiert: en neeser iwwer e Proxy z'erreechen ass kee Grond fir Identitéitspréiwen auszeschalten.
Wann ee direkten Zréckfall onméiglech musse sinn, benotzt eng Duerchsetzungsgrenz déi den Trafic selwer kontrolléiert, wéi en Netzwierk-Namensraum, Firewallregelen oder eng VPN, a haalt se getrennt vum Bibliothéikshaken. Den Haken ass en Kompatibilitéitsinstrument fir e genannte Programm, net e kill switch. Notéiert d'Programm, de genauen Uerder, de Proxyport deen an der Spuer ze gesinn ass an ob DNS aus der Distanz opgeléist gouf; déi véier Fakten sinn den Ënnerscheed tëscht engem verifiéierte Beräich an engem Beräich vun Hoffnung.