Anonymat avec TOR et Proxychains sous Kali
17 Sep 2016Bonjour à tous,
Après m’être demandé comment lancer toutes mes commandes derrière un proxy SOCKS pour masquer mon ip (certaines commandes ne proposent pas d’option pour rediriger vers un proxy SOCKS), vous pouvez vous en sortir grâce au réseau TOR et un outil appelé Proxychains.
Installez tor et proxychains:
apt-get install tor
apt-get install proxychains
Tor écoute par défaut sur le port 9050. Editer le fichier /etc/tor/torrc et décommentez la ligne SOCKSPort 9050
Lancer ensuite TOR as a service: service tor start
Vous pouvez vérifier que TOR écoute en lançant la commande netstat -tulpn
, vous devriez voir:
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN -
Maintenant comment linker nos commandes sur TOR?
Proxychains va prendre en paramètre notre commande et linker le processus vers le(s) proxy(ies) de votre choix.
ProxyChains is a UNIX program, that hooks network-related libc functions in dynamically linked programs via a preloaded DLL and redirects the connections through SOCKS4a/5 or HTTP proxies.
Utilisation:
ProxyChains-3.1 (http://proxychains.sf.net)
usage:
proxychains <prog> [args]
Proxychains demande de modifier sa configuration: gedit /etc/proxychains.conf
Voici ma configuration:
# proxychains.conf VER 3.1
#
# HTTP, SOCKS4, SOCKS5 tunneling proxifier with DNS.
#
# The option below identifies how the ProxyList is treated.
# only one option should be uncommented at time,
# otherwise the last appearing option will be accepted
#
dynamic_chain
#
# Dynamic - Each connection will be done via chained proxies
# all proxies chained in the order as they appear in the list
# at least one proxy must be online to play in chain
# (dead proxies are skipped)
# otherwise EINTR is returned to the app
#
#strict_chain
#
# Strict - Each connection will be done via chained proxies
# all proxies chained in the order as they appear in the list
# all proxies must be online to play in chain
# otherwise EINTR is returned to the app
#
#random_chain
#
# Random - Each connection will be done via random proxy
# (or proxy chain, see chain_len) from the list.
# this option is good to test your IDS :)
# Make sense only if random_chain
#chain_len = 2
# Quiet mode (no output from library)
quiet_mode
# Proxy DNS requests - no leak for DNS data
proxy_dns
# Some timeouts in milliseconds
tcp_read_time_out 15000
tcp_connect_time_out 8000
# ProxyList format
# type host port [user pass]
# (values separated by 'tab' or 'blank')
#
#
# Examples:
#
# socks5 192.168.67.78 1080 lamer secret
# http 192.168.89.3 8080 justu hidden
# socks4 192.168.1.49 1080
# http 192.168.39.93 8080
#
#
# proxy types: http, socks4, socks5
# ( auth types supported: "basic"-http "user/pass"-socks )
#
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5 127.0.0.1 9050
dynamic_chain: pertinent surtout si vous chainez plusieurs proxies, les proxies down ne seront simplement pas pris en compte.
quiet_mode: sortie non verbeuse.
proxy_dns: demandera au proxy d’effectuer les résolutions DNS (SOCKS4a et SOCKS5).
tcp_read_time_out 15000, tcp_connect_time_out 8000: socket timeout.
socks5 127.0.0.1 9050: ici nous utilisons le réseau TOR.
J’ai eu perso une erreur du type:
ERROR: ld.so: object 'libproxychains.so.3' from LD_PRELOAD cannot be preloaded: ignored.
La librairie partagée libproxychains.so.3 n’a pas été trouvée. La variable d’environnement LD_PRELOAD n’est donc pas correctement initialisée (variable qui permet d’effectuer le hook des appels aux sockets).
Editez le fichier /usr/bin/proxychains et remplacez
export LD_PRELOAD=libproxychains.so.3
par
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libproxychains.so.3
Au besoin effectuez un locate libproxychains.so.3
Je vous dis à très bientôt!