Анонимные сканирования с Nmap, sqlmap и WPScan через Tor

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

Morty

VIP

Morty

VIP
26 Окт 2017
537
113
Как анонимно сканировать?
Вопрос анонимного использования инструментов для тестирования на проникновение очень широк. И даже если вам кажется, что вы всё правильно настроили, для вас может оказаться неприятным сюрпризом, что некоторые программы игнорируют общесистемный настройки прокси. К таким программа относятся Nmap, Masscan, IVRE и другие, которые не используют системные функции для подключений, а задействуют свои собственные низкоуровневые методики.

Поскольку тема достаточно широкая и сложная, мы к ней обязательно вернёмся с подробным анализом и тестами сделанных настроек, а в этой небольшой заметке хочу только показать практические решения по сканированию через Tor в программах Nmap, sqlmap и WPScan. Эти вопросы мне пришлось решать при настройке suIP.biz, поскольку программы достаточно часто используются, думаю, многих заинтересует как сканировать, при этом не выдавая свой IP.
0"

Установка и запуск Tor в Kali Linux и BlackArch
Поскольку для анонимности мы будем использовать Tor, то установим необходимые пакеты, которые нам понадобяться:

В Kali Linux
[SRC]
sudo apt-get install torsocks tor
В самый конец файла /etc/tor/torrc добавьте строки:
AutomapHostsOnResolve 1
DNSPort 53530
TransPort 9040

Запустите и добавьте в автозапуск службу Tor:
sudo systemctl start tor
sudo systemctl enable tor

В BlackArch / Arch Linux:
sudo pacman -S torsocks tor proxychains-ng --needed

В самый конец файла /etc/tor/torrc добавьте строки:
AutomapHostsOnResolve 1
DNSPort 53530
TransPort 9040

Запустите и добавьте в автозапуск службу Tor:
sudo systemctl start tor
sudo systemctl enable tor
[/SRC]

ProxyChains VS ProxyChains-NG (looks like an IPv6 target specification -- you have to use the -6 option)
У ProxyChains есть баг, если вы используете ProxyChains с nmap и попытаетесь в качестве цели задать имя хоста (а не IP адрес), то в результате получите сообщение об ошибке looks like an IPv6 target specification -- you have to use the -6 option.
[SRC]
proxychains nmap -sT -PN -sV -n --open -p 80 mi-al.ru

ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 7.25BETA2 ( https://nmap.org ) at 2016-09-26 15:41 MSK
|DNS-request| mi-al.ru
|S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<><>-OK
|DNS-response| mi-al.ru is 185.26.122.50
185.26.122.50/0 looks like an IPv6 target specification -- you have to use the -6 option.
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 3.17 seconds
[/SRC]
Поскольку proxychains не обновлялся с 2006 года, а в ProxyChains-NG этот баг уже исправили, то предлагаю установить ProxyChains-NG (только для пользователей Kali Linux и производных Debian, в BlackArch / Arch Linux уже всё впорядке – по умолчанию ставиться ProxyChains-NG):
[SRC]
sudo apt-get remove proxychains

git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng/
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config
[/SRC]
Сканирование Nmap через Tor
Nmap – это одна из тех программ, с которой нужно быть осторожным, если вы хотите сохранить свою анонимность.

Если мы хотим сканировать с Nmap через прокси, то нам обязательно понадобиться опция -sT. Давайте посмотрим в справке об этой опции и заодно узнаем о двух типов сканирования Nmap:
  • -sT (TCP сканирование с использованием системного вызова connect)
Это используемый по умолчанию тип TCP сканирования, когда недоступно SYN сканирование. Это происходит в случае, когда у пользователя нет привилегий для использования сырых пакетов. Вместо того, чтобы использовать сырые пакеты, как это происходит при большинстве других типов сканирования, Nmap "просит" операционную систему установить соединение с целевой машиной по указанному порту путем системного вызова connect. Это такой же высокоуровневый системный вызов, используемый браузерами, P2P клиентами и другими приложениями для установки соединения. Этот вызов является частью программируемого интерфейса, известного как Berkeley Sockets API. Вместо того, чтобы считывать ответы в форме сырых пакетов, Nmap использует этот API для получения информации о статусе каждой попытки соединения.

При доступности SYN сканирования, оно, безусловно, будет являться лучшим выбором. У Nmap имеется меньше возможностей контролирования высокоуровнего вызова connect по сравнению с сырыми пакетами, что делает его менее эффективным. Системный вызов завершает соединения по открытым портам, вместо того, чтобы использовать полуоткрытые соединения, как в случае с SYN сканированием. Таким образом на получение той же самой информации потребуется больше времени и пакетов, да к тому же целевые машины скорее всего запишут это соединение в свои логи. То же самое сделает и порядочная IDS, хотя большинство машин не имеют такой системы защиты. Многие службы на вашей Unix системе будут добавлять запись в системный лог (syslog), а также сообщение об ошибке, когда Nmap будет устанавливать и закрывать соединение без отправления данных. Некоторые службы даже аварийно завершают свою работу, когда это происходит, хотя это не является обычной ситуацией. Администратор, который увидит в логах группу записей о попытке установки соединения от одной и той же системы, должен знать, что его машина подверглась такому типу сканирования.

Итак, теперь мы запускаем nmap с опцией -sT, но без sudo, т.е. программе больше не нужны права суперпользователя.

Ещё полезными станут опции:
  • -Pn (Не использовать пинг сканирование)
  • -sV (Определение версии)
  • --open (Показывать только открытые (или возможно открытые) порты)
При использовании любых прокси всегда происходит замедление скорости, увеличение времени ответа, поэтому сканирование через прокси будет проходить заметно медленнее. Поэтому рекомендую задать интересующие порты опцией -p или же воспользоваться опцией

  • -F (Быстрое (ограниченные порты) сканирование).
  • -n (Без преобразования DNS)
Последняя опция -n указывает Nmap никогда не производить обратное разрешение DNS имен каждого обнаруженного активного IP адереса. Преобразование DNS может быть медленным даже со встроенным в Nmap параллельным преобразователем IP адресов, поэтому данная опция может сократить время сканирования.

Наконец, мы подошли к опции --proxies. Интуиция подсказывает использовать её примерно так: --proxies socks4://127.0.0.1:9050. Но на самом деле, эту опции вообще НЕ НАДО использовать. Чтобы понять масштабы её ущербности, давайте обратимся к официальной справке:

Предупреждение: эта функция всё ещё в разработке и имеет ограничения. Она реализована внутри библиотеки nsock и, следовательно, не оказывает эффект на пинг, сканирование портов и фаз сканирования при определении ОС. Только NSE и сканирование версии могут извлечь выгоду из этой опции - поэтому другие функции могут раскрыть ваш истинный адрес. SSL ещё не поддерживаются, а также преобразование DNS на стороне прокси (имена хостов всегда преобразуются в Nmap).

Т.е. кроме как ввести нас в заблуждение, что мы находимся за прокси, эта опция ничего делать не умеет.

Именно для этого мы и устанавливали ProxyChains-NG. Перед каждой командой Nmap нам нужно добавлять proxychains4, тогда сканирование будет производиться через Tor:
[SRC]
proxychains4 nmap -sT -PN -sV --open -n ЦЕЛЬ
[/SRC]

Пример:
[SRC]
proxychains4 nmap -sT -PN -sV --open -n -p 80 mi-al.ru

[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.11-git-5-ge527b9e

Starting Nmap 7.25BETA2 ( https://nmap.org ) at 2016-09-26 16:27 MSK
[proxychains] Strict chain ... 127.0.0.1:9050 ... mi-al.ru:80 ... OK
[proxychains] Strict chain ... 127.0.0.1:9050 ... mi-al.ru:80 ... OK
[proxychains] Strict chain ... 127.0.0.1:9050 ... mi-al.ru:80 ... OK
[proxychains] Strict chain ... 127.0.0.1:9050 ... mi-al.ru:80 ... OK
Nmap scan report for mi-al.ru (224.0.0.1)
Host is up (1.5s latency).
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.6.3

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.41 seconds
[/SRC]

e159becb6b3f8aa84efcc469771f0f18.jpg

Как видно, выводиться много информации, которую генерирует ProxyChains-NG. Для подавления вывода этой информации можно использовать следующую конструкцию:
[SRC]
proxychains4 nmap -sT -PN -sV --open -n ЦЕЛЬ 2>/dev/null
[/SRC]

Пример:

[SRC]
proxychains4 nmap -sT -PN -sV --open -n -p 80 mi-al.ru 2>/dev/null


Starting Nmap 7.25BETA2 ( https://nmap.org ) at 2016-09-26 16:28 MSK
Nmap scan report for mi-al.ru (224.0.0.1)
Host is up (1.7s latency).
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.6.3

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.35 seconds
[/SRC]
Как мы можем убедиться, мы получаем обычный вывод Nmap:

b62bc30390467fe34a68287b34d1884e.jpg
Теперь переходим к самому главному – тестируем, что действительно используется Tor. На мой взгляд, самой лучшей проверкой была бы настройка пассивного мониторинга на машине, используемой в качестве цели. Но сейчас на это нет времени – к этому вопросу мы обязательно вернёмся позже.
А пока давайте проверим, что отсутствуют пакеты, отправляемые напрямую к целевой машине.
Откройте два консольных окна, в первом введите:

[SRC]
sudo tcpdump -w scan-without-tor.cap
[/SRC]
Во втором окне запустите сканирование (можете выбрать свою цель):
[SRC]
nmap -sT -PN -sV --open -n -p 80 185.26.122.50
[/SRC]
Когда сканирование закончиться, остановите tcpdump в первом окне.

313d576e63d799709a5a926cff7cc9c2.jpg
Теперь снова, запустите в первом окне:

[SRC]
sudo tcpdump -w scan-with-tor.cap
[/SRC]
А во втором:
[SRC]
proxychains4 nmap -sT -PN -sV --open -n -p 80 185.26.122.50
[/SRC]

После окончания сканирования, остановите tcpdump.

361e920a3ba9daf2662ad88f1b41eb9e.jpg
Теперь ищем в двух сохранённых файлах:

[SRC]
sudo tcpdump -nS -c 10 -r scan-without-tor.cap "host 185.26.122.50"

sudo tcpdump -nS -c 10 -r scan-with-tor.cap "host 185.26.122.50"
[/SRC]
Как можно убедиться, во втором случае наш IP адрес не раскрывается:
[SRC]
sudo tcpdump -nS -c 10 -r scan-without-tor.cap "host 185.26.122.50"

reading from file scan-without-tor.cap, link-type EN10MB (Ethernet)
16:37:43.778879 IP 192.168.1.49.41770 > 185.26.122.50.80: Flags , seq 4089865578, win 29200, options [mss 1460,sackOK,TS val 2169689 ecr 0,nop,wscale 7], length 0
16:37:43.820027 IP 185.26.122.50.80 > 192.168.1.49.41770: Flags [S.], seq 1212857828, ack 4089865579, win 4380, options [mss 1460,nop,nop,TS val 1723278492 ecr 2169689,sackOK,eol], length 0
16:37:43.820061 IP 192.168.1.49.41770 > 185.26.122.50.80: Flags [.], ack 1212857829, win 29200, options [nop,nop,TS val 2169699 ecr 1723278492], length 0
16:37:43.820104 IP 192.168.1.49.41770 > 185.26.122.50.80: Flags [R.], seq 4089865579, ack 1212857829, win 29200, options [nop,nop,TS val 2169699 ecr 1723278492], length 0
16:37:43.902298 IP 192.168.1.49.41772 > 185.26.122.50.80: Flags , seq 849910226, win 29200, options [mss 1460,sackOK,TS val 2169720 ecr 0,nop,wscale 7], length 0
16:37:43.934850 IP 185.26.122.50.80 > 192.168.1.49.41772: Flags [S.], seq 768072989, ack 849910227, win 4380, options [mss 1460,nop,nop,TS val 1723278615 ecr 2169720,sackOK,eol], length 0
16:37:43.934880 IP 192.168.1.49.41772 > 185.26.122.50.80: Flags [.], ack 768072990, win 29200, options [nop,nop,TS val 2169728 ecr 1723278615], length 0
16:37:49.937544 IP 192.168.1.49.41772 > 185.26.122.50.80: Flags [P.], seq 849910227:849910245, ack 768072990, win 29200, options [nop,nop,TS val 2171229 ecr 1723278615], length 18: HTTP: GET / HTTP/1.0
16:37:49.955484 IP 185.26.122.50.80 > 192.168.1.49.41772: Flags [.], ack 849910245, win 4398, options [nop,nop,TS val 1723284651 ecr 2171229], length 0
16:37:50.593882 IP 185.26.122.50.80 > 192.168.1.49.41772: Flags [P.], seq 768072990:768074438, ack 849910245, win 4398, options [nop,nop,TS val 1723285286 ecr 2171229], length 1448: HTTP: HTTP/1.1 200 OK

sudo tcpdump -nS -c 10 -r scan-with-tor.cap "host 185.26.122.50"
reading from file scan-with-tor.cap, link-type EN10MB (Ethernet)
[/SRC]
7621b04caff4cb3af647fff699221ed3.jpg
nmap: netutil.cc:1348: int collect_dnet_interfaces(const intf_entry*, void*): Assertion `rc == 0' failed.
Если вы попытались использовать proxychains с nmap, например, для определения версии ОС:

[SRC]
proxychains4 nmap -sT -PN -sV -v -A -T4 suip.biz 2>/dev/null
[/SRC]
И у вас возникает ошибка nmap: netutil.cc:1348: int collect_dnet_interfaces(const intf_entry*, void*): Assertion `rc == 0' failed.
То у вас на выбор две опции:
  1. не использовать dns имя, а использовать сырой ipv4 адрес
  2. или отключить proxy_dns в файле конфигураци
Для этого откройте файл /etc/proxychains.conf.
Найдите там строку:
[SRC]
proxy_dns
[/SRC]
И закомментируйте её, чтобы получилось:
[SRC]
#proxy_
[/SRC]


Сканирование sqlmap через Tor

Здесь всё намного проще. Нам нужно добавить к вашей команде сканирования --proxy socks5://127.0.0.1:9050. Т.е. команда приобретает вид (можно также использовать все опции, какие вы обычно используете):
[SRC]
sqlmap -u ЦЕЛЬ --proxy socks5://127.0.0.1:9050
[/SRC]
Например:

[SRC]
sqlmap -u "https://mi-al.ru/index.php?page=ready&directory=gp&id=3312.htm" --proxy socks5://127.0.0.1:9050
[/SRC]
Как можно убедиться, заглянув в логи веб-сервера, сканирование осуществляется с адреса 91.219.236.218, хотя мой реальный адрес другой (узнать свой IP вы можете здесь
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
).

1f00db53a47169b12a87a8713256a545.jpg

Сканирование WPScan через Tor
Здесь опять всё достаточно просто, прибавьте к вашей команде --proxy socks5://127.0.0.1:9050:

[SRC]
wpscan -u ЦЕЛЬ -e p,vt,u --proxy socks5://127.0.0.1:9050
[/SRC]
Также можно воспользоваться опциями --request-timeout 500 --connect-timeout 120, поскольку использование
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
’а вызывает значительные задержки.

Пример:
[SRC]
sudo wpscan -u kali.tools -e p,vt,u --proxy socks5://127.0.0.1:9050
[/SRC]
Снова заглянем в логи веб-сервера:

c77ef60d8412f71bca55dbce065537e7.jpg


Опять чужой IP 176.126.252.11.

Заключение
Программа ProxyChains-NG является универсальной и вместе с ней можно использовать различные программы. Например, вместо предложенного варианта с опциями --proxy, можно было запускать так:
[SRC]
proxychains4 sqlmap -u ЦЕЛЬ

proxychains4 wpscan -u ЦЕЛЬ -e p,vt,u

[/SRC]

ProxyChains-NG особенно удобен в использовании с программами, которые не имеют опций/функционала для поддержки прокси.
Нужно обязательно тестировать, действительно ли вы скрываете свой IP. Поскольку, как показано на примере Nmap, даже с релевантными опциями программы что-то может пойти не так.
Если говорить не только об анонимности при сканировании, но и анонимности вообще, то это сложная тема, поскольку есть множество способов «проколоться», и мы к этому вопросу обязательно вернёмся в дальнейшем для подробного изучения.

62c556b27992479c23bea94914eae890.jpg
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя