ProxyChains ile Tor Ağına Bağlanmak ve Anonim Olmak (Proxychains Kullanımı)

Tor kullanıcılara internet üzerinde anonim iletişim olanağı sağlayan bir ağdır. Proxychains ise kullandığımız programların belirlediğimiz proxyler(vekil sunucu) üzerinden internete bağlanmasını sağlayan bir programdır. Proxychains ile beraber tor ağını kullanarak programlarımızın internete tor ağı ile yani farklı ip adresi ile çıkması sağlanabilir.

Proxychains ve Tor ile Neler Yapılabilir?

nmap, sqlmap, ping gibi birçok network programını proxychains ile tor ağına yönlendirebilir, ve hedef sistemlere tor ağı üzerinden erişilmiş olunur. Böylece sizin ip adresiniz gizli kalır.

Kullanımı:

# proxychains <servis-ya-da-programadı> <program-argümanları>

Sadece kullanmak istediğimiz programdan önce proxychains yazıp önceden tanımlı olan proxy üzerinden programın internete çıkmasını sağlıyoruz.

Proxychains ve Tor Yüklenmesi

Proxychains programının ve tor servisini yüklemek için aşağıdaki komutu terminale girmeniz yeterlidir.

# sudo apt-get install tor && sudo apt-get install proxychains

Kali-linux'te proxychains kurulu gelmektedir.

Eğer paketler paket deponuzda yok ise github adresi üzerinden kurulum yapılabilir.

https://github.com/haad/proxychains adresinden proxychains ve https://www.torproject.org/download adresinden tor indirilebilir.

Proxy(Vekil Sunucu) Tanımlama

Proxychains default olarak tor ağını kullanır. Ancak eğer belirtilirse kendi proxy(vekil sunucunuz) üzerinden internete bağlanabilirsiniz.

/etc/proxychains.conf dosya içerisinde proxychains için gerekli ayarlar yapılabilir, ve kullanmak istediğiniz proxy bu dosyada belirtilebilir.

user@linuxpc:/$ cat /etc/proxychains.conf

# 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"
socks4 	127.0.0.1 9050

Yukarıdaki çıktının sonundaki mavi alan silinip eklenmek istenilen proxyler eklenebilir. Eğer tor ağını kullanmak istiyorsanız birşey yapmanıza gerek yok(kırmızı kısım). Default olarak tor ağı seçili ve kullanıma hazır.


Yeşil ile işaretlenmiş kısımlar ise nasıl bir zincir kuralı uygulanacağı belirlenir. Eğer tor ağı kullanmak yerine mavi alana(proxy list alanı) kullanmak istediğiniz proxyleri girdiyseniz. Bu proxyleri nasıl kullanacağını belirtilir.


dynamic_chain - Bu alan proxy listemizdeki proxyleri birbirine aynı sırayla bağlayıp bizi internete çıkaracaktır. Ancak eğer bir proxy yanıt vermez ise o proxy atlanıp sonrakine geçilir.

random_chain - Her bağlantıda proxy listemizden rastgele bir proxy seçer ve onun üzerinden bağlanır.

strict_chain - Proxy listesindeki sıraya göre tüm proxylere bağlanacaktır. Ve listenin sonundaki proxy üzerinden çıkış yapacaktır.


Kullanamak istediğimiz chain türünün başındaki # işaretini siliyoruz ve diğerlerinin başına # işaretin atıyoruz.


İnternet üzerinden bedava proxy adresleri bulunabilir ve bu listeye eklenebilir.


Turuncu renkli alanın başından # varsa kaldırın. Bu alan DNS sunucusu olarak belirtilen proxylerin dnslerini kullanır. Eğer başında # varsa proxy_dns kullanmıyorsunuz demektir. Bu da ip adresiniz gizli olsa bile bir web adresini çözümlerken kullandığınız dns sunucusunda kayıt olarak düşmeniz demektir.

DNS kontrolu için önce normal tarayıcınızdan https://www.dnsleaktest.com adresine bağlanın, daha sonra tarayıcınızı kapatın ve proxychains firefox https://www.dnsleaktest.com yazarak tor ağı ya da belirlediğiniz proxy üzerinden internete çıkın ve test edin. Konumunuzu bulabiliyor mu?

Tor Servisinin Başlatılması

Tor ağını kullanmak için bilgisayarımızda tor servisini başlatmamız gerekir.

# service tor start

Tor Servisinin Durumunun Kontrolu:

# service tor status

Tor Servisini Kapatmak:

# service tor stop

Eğer servisi başlatmada sorun yaşıyorsanız service tor yerine /etc/init.d/tor yazarak deneyin.

Proxychains ile Program Çalıştırmak ve Tor Ağı Üzerinden İnternete Çıkmak

Ayarlarımızı yaptık, tor servisimizi çalıştırdık artık bunu internet kullanan programlar ile nasıl kullanırız onu görelim.

Kullanımı:

# proxychains <servis-ya-da-programadı> <program-argümanları>

IP adresimizi kontrol edelim. Bunun için şu siteler kullanılabilir.

  1. ifconfig.me
  2. icanhazip.com
  3. ipecho.net/plain
  4. ident.me
  5. bot.whatismyipaddress.com

Normal ISP'nin bize verdiği ip adresi için:

# curl ifconfig.me
93.194.118.164
# curl icanhazip.com
93.194.118.164

Şimdi proxychains ile tor ağı üzerinden çıkış yapalım:

# proxychains curl ifconfig.me
ProxyChains-3.1 (http://proxychains.sf.net)
|DNS-request| ifconfig.me
|S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<><>-OK
|DNS-response| ifconfig.me is 153.121.72.211
|S-chain|-<>-127.0.0.1:9050-<><>-153.121.72.211:80-<><>-OK
104.244.75.82

Görüldüğü gibi ip adresimizi farklı olarak görünüyor.


Proxychains ile tor ağı üzerinden ssh bağlantısı kurmak:

# proxychains ssh kullanıcıadı@serveradı

Proxychains ile tor ağı üzerinden telnet bağlantısı kurmak:

# proxychains telnet www.omurfurkanulu.com 80

Proxychains ile tor ağı üzerinden tarayıcıyı başlatmak:

# proxychains firefox

Proxychains ile tor ağı üzerinden nc programını başlatmak:

# proxychains nc 216.58.201.68 80

Proxychains ile tor ağı üzerinden nmap programını kullanarak port tarama başlatmak:

# proxychains nmap 216.58.201.68

Proxychains ile tor ağı üzerinden metasploit(msfconsole) kullanmak için önce /etc/proxychains.conf dosyasının sonuna localnet 127.0.0.1 000 255.255.255.255 satırını eklemelisiniz.

# sudo echo "localnet 127.0.0.1 000 255.255.255.255" >> /etc/proxychains.conf
# proxychains msfconsole