Ohun tí ProxyChains ń mú àti ohun tí ó ń fi sílẹ̀
ProxyChains ń di àwọn ìpè ilé ìkàwé mú nínú ètò tí ó ń gbé jáde. Fi maps, strace àti ìbéèrè kan ṣàyẹ̀wò ìbojú TCP, kí o sì jáwọ́ ní ríronú pé DNS tàbí UDP ń tẹ̀lé.
ProxyChains-NG kì í dá ọ̀nà abẹ́lẹ̀. Ó ń kọ́kọ́ gbé ilé ìkàwé kan tí ó ń rọ́pò àwọn ìpè libc tí ó ní í ṣe pẹ̀lú nẹ́tíwọ́kì nínú ètò kan ṣoṣo tí ó ń gbé jáde, nítorí náà ààlà ni ìpè nínú ìlànà kan, kì í ṣe ọ̀nà fún gbogbo ẹ̀rọ. Ìyàtọ̀ yìí ni ó ń pinnu ohun tí àdánwò àṣeyọrí ń fi hàn ní tòótọ́. curl tí ń ṣiṣẹ́ gba ẹ̀wọ̀n náà jẹ́rìí ìpè kan tí a mú, kì í ṣe pé ìyọ́nú orúkọ, UDP tàbí gbogbo ìlànà ọmọ tẹ̀lé ọ̀nà kan náà. Ìtọ́sọ́nà ní ìsàlẹ̀ yìí ń ṣàyẹ̀wò ìbojú ní ìgbésẹ̀ mẹ́ta, lẹ́yìn náà ó ń ṣe àkójọ ohun tí ìkọ̀kọ̀ kò lè dé.
Bí ìkọ́kọ́rọ́ gbígbé ṣe ń dé ìsopọ̀ kan
Nígbà ìbẹ̀rẹ̀, olùgbéjáde ń fi libproxychains sínú LD_PRELOAD lẹ́yìn náà ó ń ṣiṣẹ́ ètò àfojúsùn. Ilé ìkàwé ń yanjú àwọn àmì libc gidi, ó sì ń fi àwọn ẹ̀dà tirẹ̀ rọ́pò àwọn iṣẹ́ bí connect àti getaddrinfo. Àwọn ìpè tí ó gba àwọn àmì wọ̀nyẹn kọjá ni a tún kọ sínú proxy SOCKS tàbí HTTP láti inú fáìlì ìṣètò. Àwọn ìpè tí ó gba ọ̀nà mìíràn kò pàdé ìkọ̀kọ̀ rárá, ìdí nìyẹn tí ìdánilójú fi wà fún ìpè kọ̀ọ̀kan, kì í ṣe fún gbogbo ẹ̀rọ.
Àwọn ètò tí a so pọ̀ lọ́nà dínámíkì nìkan ni ó ń kópa, àwọn fáìlì bínárì setuid lábẹ́ ìṣiṣẹ́ ààbò ń gbàgbé ìkọ́kọ́rọ́ gbígbé pátápátá. Àwọn ọmọ ń jogún àyíká, ṣùgbọ́n níwọ̀n ìgbà tí olùgbéjáde bá ń pa á mọ́ sí ibi rẹ̀.
Ìjẹ́rìí pé ilé ìkàwé ti gbé wọ inú ìlànà yẹn
Bẹ̀rẹ̀ ìbéèrè náà kí o sì yẹ ìlànà alààyè wò dípò ṣẹ́ẹ̀lì tí ó gbé e jáde. Fáìlì maps ń fi gbogbo ohun àjọpín tí ó wà nínú ìlànà ní àkókò yẹn hàn.
proxychains4 -q curl -sS --max-time 8 https://example.com/ -o /dev/null &
pgrep -a curl
grep libproxychains /proc/$(pgrep -n curl)/mapsÌbámu ń jẹ́rìí pé ilé ìkàwé tí a mú wà, èyí jẹ́ pàtàkì ṣùgbọ́n kò tó. Èsì òfo sábà túmọ̀ sí pé o yẹ ìlànà mìíràn wò, fún àpẹẹrẹ aṣàwákiri tí ó fi URL fún ẹ̀dà kan tí ó bẹ̀rẹ̀ ṣáájú olùgbéjáde. Kí o tó lépa ohunkóhun mìíràn, fi ldd ṣàyẹ̀wò bóyá fáìlì bínárì jẹ́ aláso pọ̀ dínámíkì, nítorí kíkọ́ ìdúró kò lè gbé ìkọ́kọ́rọ́ gbígbé rárá. Lẹ́yìn náà ka àkójọ proxy nínú ìṣètò tí olùgbéjáde lò ní tòótọ́, nítorí ọ̀nà àtijọ́ tàbí ibùdókọ̀ tí a ti pa lè mú ìkọ̀kọ̀ tí ń ṣiṣẹ́ wá láìsí ẹ̀wọ̀n tí ń ṣiṣẹ́.
Tẹ̀lé àwọn ìsopọ̀ tí ó ń jáde kúrò nínú ìlànà
Wíwà ilé ìkàwé kò fi hàn pé a tún kọ gbogbo ìpè, nítorí náà tẹ̀lé àwọn ìpè ẹ̀rọ. Ṣiṣẹ́ ìbéèrè kan lábẹ́ olùtẹ̀lé kí o sì ka ibi tí àwọn sókẹ́ẹ̀tì lọ ní tòótọ́.
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Ìtẹ̀lé yẹ kí ó fi àwọn ìsopọ̀ sí ibi ìparí proxy rẹ nìkan hàn, pẹ̀lú ibùdókọ̀ tí ó bá àkọsílẹ̀ inú fáìlì ìṣètò mu. Bí àwọn àdírẹ́sì ibi-ìlọ ti ojú-ìwé àfojúsùn bá farahàn ní tààrà nínú ìtẹ̀lé, ìpè yẹn gba ìkọ̀kọ̀ kọjá, ìwọ̀n àwárí tí o ń wá nìyẹn. Fi àwọn nọ́mbà ibùdókọ̀ wé àkójọ proxy dípò gbígbẹ́kẹ̀lé orúkọ fáìlì, nítorí ìṣètò tí ó kù láti iṣẹ́ mìíràn jẹ́ orísun tí ó wọ́pọ̀ fún àwọn àwọ̀n tààrà tí ó dákẹ́. Tọ́jú ìtẹ̀lé náà fún àkọsílẹ̀ ìtẹ́wọ́gbà; ó ń gba àwọn ṣẹ́kẹ́ǹdì, ó sì ń parí àríyànjiyàn nípa ìbojú.
Pinnu ohun tí ìkọ̀kọ̀ kò lè bo
iṣẹ́ proxychains-ng ń fi àtúnjúwe sí TCP sí ààlà, ó sì ń kìlọ̀ pé àwọn scripts, àwọn ìlànà ẹ̀yìn àti àwọn mọ́dùùlù tí a gbé wọ inú lè hu ìwà yàtọ̀ sí ètò àkọ́kọ́. UDP àti ICMP wà ní òde ẹ̀rọ yìí, nítorí náà ohunkóhun tí ó gbára lé wọn nílò ọ̀nà àtìlẹ́yìn tirẹ̀. DNS ń tẹ̀lé ìṣètò proxy_dns àti ìwà olùyẹ́jú ti ètò náà fúnra rẹ̀, èyí túmọ̀ sí pé ìbéèrè HTTPS kan tí ó ṣàṣeyọrí kò sọ ohunkóhun fún ọ nípa ìyọ́nú orúkọ. Tọ́jú ìjẹ́rìí ìwé-ẹ̀rí ní ibi tí ó yẹ pẹ̀lú: dé ọ̀dọ̀ sáfà gba proxy kì í ṣe ìdí láti pa àwọn àyẹ̀wò ìdánimọ̀.
Bí ìpadà sílẹ̀ tààrà bá gbọ́dọ̀ jẹ́ aláìṣeéṣe, lo ààlà ìmúṣẹ tí ń ṣàkóso ìṣàn náà fúnra rẹ̀, bí ààyè orúkọ nẹ́tíwọ́kì, àwọn ìlànà odi-iná tàbí VPN, kí o sì pa á mọ́ lọ́tọ̀ kúrò nínú ìkọ̀kọ̀ ilé ìkàwé. Ìkọ̀kọ̀ jẹ́ irinṣẹ́ ìbámu fún ètò kan pàtó, kì í ṣe kill switch. Kọ ètò náà, àṣẹ gbáà, ibùdókọ̀ proxy tí a rí nínú ìtẹ̀lé àti bóyá a yanjú DNS lọ́nà jíjìn; àwọn òtítọ́ mẹ́rin wọ̀nyẹn ni ìyàtọ̀ láàrin ìwọ̀n tí a ti ṣàyẹ̀wò àti ìwọ̀n ìrètí.