프리픽스를 제거해도 proxychains는 남아 있습니다
LD_PRELOAD 상속으로 예기치 않게 로드된 프록시 래퍼를 추적하고, 향후 프로세스 실행과 이미 로드된 라이브러리를 구분합니다.
명령에서 proxychains를 제거하고 다시 실행해도 래퍼의 시작 메시지가 계속 보입니다. 애플리케이션 설정을 찾기 전에 실행 환경을 먼저 확인하십시오.
리눅스에서 LD_PRELOAD는 동적 링커에게 지정된 공유 객체를 일반 라이브러리보다 먼저 로드하도록 요청합니다. 프록시 래퍼는 이 메커니즘으로 지원되는 네트워크 호출을 가로챌 수 있습니다. 누군가 셸에서 이 변수를 내보냈다면, 이후에 실행되는 자식 프로그램은 명령줄에 래퍼 프리픽스가 없어도 이를 상속받을 수 있습니다.
그 셸에서 첫 번째 읽기 전용 점검은 다음과 같습니다.
printf '%s\n' "$LD_PRELOAD"
프록시 래퍼 라이브러리를 찾되, 변수에 의도적으로 로드한 다른 라이브러리도 나열될 수 있다는 가능성을 남겨 두십시오. 모든 항목을 무작정 지우면 다른 도구가 깨질 수 있습니다.
실행기를 바꾼 다음 프로그램을 다시 실행하십시오
영향을 받은 프로그램을 실행하는 환경에서 우발적인 프록시 사전 로드를 제거하십시오. 시작 파일이나 실행기가 이를 내보낸다면 그 출처도 고치십시오. Bash 실행에서는 시작 파일 순서를 따르십시오. 깨끗한 셸의 새 자식은 변수를 아직 들고 있는 오래된 터미널이나 IDE의 자식과 다른 경우입니다.
환경 변수를 해제해도 이미 그 변수와 함께 시작된 프로세스에서 라이브러리가 내려가지는 않습니다. 따라서 실행 중인 애플리케이션은 수정된 실행 경로로 다시 시작할 때까지 래퍼를 유지할 수 있습니다.
변수가 없다면 /etc/ld.so.preload 같은 다른 설정된 사전 로드 원본과 실제 실행기를 점검하십시오. 이 메커니즘에는 한계가 있습니다. 정적 실행 파일, 직접 시스템 호출, 안전 실행 제한은 다르게 동작할 수 있습니다. sudo에서는 래퍼 순서가 중요합니다. 상속된 사전 로드는 예기치 않은 가로채기를 설명하지만, 모든 종류의 네트워크 트래픽이 프록시를 쓴다는 증거는 아닙니다.