Анонимное Сканирование Портов: Nmap + Tor + ProxyChains

В этом посте я расскажу как сохранить анонимность при сканировании портов Nmap-ом (программой для исследования сети и аудита безопасности).

Я покажу как осуществлять анонимное сканирование портов через сеть Tor с помощью утилиты ProxyChains.

А также я покажу как обходить блокирование выходных нод Tor-а сканируемым хостом.

Установка Tor + Nmap + ProxyChains

Для осуществления анонимного сканирования портов нам необходимо установить следующие программы:

Программа Описание
tor Анонимизирующая сеть для TCP
nmap Сетевой сканер портов
proxychains Перенаправляет соединения через прокси-сервера


Установите Tor клиент из стандартных репозиториев:

$ sudo apt-get install tor


Установите Nmap:

$ sudo apt-get install nmap


Установите ProxyChains:

$ sudo apt-get install proxychains

ProxyChains по умолчанию уже настроен на работу с Tor.

В этом можно убедиться заглянув в /etc/proxychains.conf.

Последние строки конфига должны выглядеть следующим образом:

# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 9050

Анонимное Сканирование Портов Через Tor

Выполните следующую команду для анонимного сканирования Nmap-ом через cеть Tor:

$ proxychains nmap -sT -PN -n -sV -p 80,443,21,22 217.xx.xx.xx
ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 6.00 ( http://nmap.org ) at 2014-03-24 17:34 EET

Nmap scan report for 217.xx.xx.xx
Host is up (0.14s latency).
21/tcp  open   ftp      Pure-FTPd
22/tcp  closed ssh
80/tcp  open   http     Apache httpd 2.2.26 ((CentOS))
443/tcp open   ssl/http Apache httpd 2.2.26 ((CentOS))

В логах сканирования мы можем увидеть ‘цепочку’, которая идет от Tor-прокси ( к сканируемому хосту (217.xx.xx.xx).

Nmap через Tor: Обходим Блокировку Нод

Мы можем столкнуться с ситуацией когда сканирование не удается из-за того, что выходные ноды Tor-а попадают под блокировку (банятся сканируемым хостом).

Выходом из этой ситуации может быть добавление в ‘цепочку’ обыкновенного публичного прокси-сервера.

Это делается путем редактирования /etc/proxychains.conf и добавления новой записи в конце [ProxyList] (также убедитесь что опция random_chain отключена).

# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 9050
socks4 1080

Новая ‘цепочка’ идет через Tor-прокси ( к указанному нами публичному прокси-серверу (, а затем к сканируемому хосту (217.xx.xx.xx).

$ proxychains nmap -sT -PN -n -sV -p 21 217.xx.xx.xx
ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 6.00 ( http://nmap.org ) at 2014-03-25 11:05 EET
Nmap scan report for 217.xx.xx.xx
Host is up (1.2s latency).
21/tcp open  ftp     Pure-FTPd

В примерах выше, я запускаю Nmap со следующими опциями:

Опция Описание
-sT полное TCP сканирование
-PN пропустить обнаружение хостов
-n никогда не резолвить DNS (во избежание утечки через DNS)
-sV определять версию сервиса
-p какие порты сканировать

Сканирование через Tor очень медленное. Поэтому, в примерах выше, я сканировал только определенные порты.

Списки Бесплатных Публичных Прокси-Серверов

Даже если Вы используете прокси, все Ваши DNS запроси все равно направляются на DNS сервера Вашего Интернет-Провайдера.

Во избежание утечек через DNS, используйте команду tor-resolve, для преобразования имени хоста в IP-адрес, через сеть Tor:

$ tor-resolve google.com

8 Replies to “Анонимное Сканирование Портов: Nmap + Tor + ProxyChains”

  1. Nice tutorial, thanks.

    Just a doubt: enabling proxy_dns on proxychains.conf isn’t enough to prevent DNS leak? Or it won’t work If I use a public proxy with Tor?


  2. how can i tweak this to scan a tor hidden service with .onion address?

  3. Hi.thanks for the article.but can you automate all this. That is scrape proxies from free proxy sites and pastes them to proxychains config file.

  4. It’s been a couple of years since I last tried, but it seems like I remember being able to simply target the hostname (.onion address).
    Also, if you want to get around all DNS leaking, setup an instance of BIND-DNS locally (say, on a rebuilt PC running Linux) and set all of your traffic to use Tor, so that any DNS lookups come from a server that you own, specifically, and not from one outside of your control. You can further strengthen this by setting up a Tor as a transparent proxy for all outbound traffic, at which point, even the lookup sent from your DNS server (internally hosted) will run it’s query over Tor.
    There are quite a few good tutorials on building transparent Tor proxies using either embedded boards (such as RPi3), or within a VM (VMWare ESXi on a repurposed quad-core with 4-8GBs ram should suffice for running at least 2 VMs per core (up to 8 in that config, so long as each one is built out for efficiency… no heavy services, else it’ll reduce the number of VMs you can run do to the trade off… but that may work just fine. YOMMV.

  5. When you get right down to it, Tor is simply a type of SOCK5 proxy, so you can run anything over it that you can run over any other SOCKS proxy.

    Privoxy and/or Polipo are HTTP/HTTP filtering proxies, and can allow for use of applications that aren’t SOCKS aware.
    Proxychains allows wrapping of any non-proxy-aware app so that its network activity is forced to use the proxy you assign. Pretty much any sort of traffic at that point can be proxied, especially if it’s handled via upstream iptables rules, or manually via something like proxychains (though, proxychains isn’t the only app of it’s type).
    So long as the app your using doesn’t require specifically IPv4 addresses, then it should work over Tor, provided you give the app the right switches for what it can support in that configuration.

  6. Actually, i have set up a Tor proxy as a router, but the problem still is the DNS !
    With Firefox, no problems ; with proxychains dig +short, i get my real IP…. Still dont know how to resolve this…

  7. Nmap trough a proxy is very limited !
    in some cases the proxy wil get bypassed witch wil lead to bad things,
    Read this article altough and you wil get a basic understanding of what i’m trying to say here !


  8. The problem of DNS leaks can be completely avoided by using trusted DNS servers through DNSCrypt

Добавить комментарий