sudo proxychains a proxychains sudo: dlaczego kolejność ma znaczenie
Zrozum, dlaczego proxychains sudo może utracić bibliotekę przechwytującą, a sudo proxychains uruchamia nakładkę w kontekście wykonania celu.
Te polecenia nie mają tej samej granicy wykonania:
proxychains4 sudo command
sudo proxychains4 command
Proxychains-ng powoduje wstępne załadowanie biblioteki do programu docelowego. W systemie Linux uruchomienie programu z bitem set-user-ID, takiego jak sudo, uruchamia reguły bezpieczeństwa loadera, które usuwają odpowiednie zmienne ładowania bibliotek, zanim sudo zdąży je zachować.
W związku z tym „zachowanie większej części środowiska” nie jest niezawodnym sposobem umieszczenia sudo wewnątrz nakładki. Podręcznik sudoers wprost opisuje, że zmienne takie jak LD_* są usuwane, zanim sudo się rozpocznie.
Jeśli polecenie naprawdę wymaga konta docelowego, uruchom nakładkę w tym upoważnionym kontekście. Następnie sprawdź, którą konfigurację odczytuje: sudo może zmienić HOME, PATH oraz odpowiedni plik użytkownika. Działające wywołanie bez uprawnień nie dowodzi, że root wybrał tę samą listę proxy.
Preferuj natywny interfejs proxy programu, jeśli taki oferuje. Pozwala to uniknąć zależności od przechwytywania w przypadku żądania, które program już potrafi kierować.
Miej też na uwadze ograniczenia zasięgu proxychains. Komunikat startowy dowodzi jedynie, że nakładka wystartowała; nie dowodzi, że surowe pakiety, nieobsługiwane wywołania lub osobno uruchomiony istniejący proces aplikacji użyły jego biblioteki. Potwierdź operację sieciową, którą zamierzałeś przekierować przez proxy, zamiast traktować uprawnienia roota jako dowód, że każda operacja została przechwycona.