Я провел последние пару дней в поисках решения этой проблемы, и хотя есть довольно много полуактуальных вопросов, ни один из ответов не показывает успешный вариант использования для отправки успешного HTTP-запроса через Tor к скрытой службе. используя Руби.
Одна вещь, которая кажется неясной во всех ответах, — это то, как пакет браузера Tor действует как прокси для запросов.
Я пробовал несколько способов атаки, последней из которых была попытка адаптировать здесь код PHP для отправки запросов curl к скрытым службам с использованием библиотек Ruby CURL.
Это мой код, использующий гем Curb, который реализует некоторые привязки libcurl для Ruby:
require 'curb'
url = 'http://am4wuhz3zifexz5u.onion' #a known, functioning hidden service
c = Curl::Easy.new(url) do |curl|
curl.headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0" #the user agent string from the most recent version of the tor browser
curl.verbose = true
end
c.perform
c.inspect
Затем я попытался запустить это через socksify, используя IP-адрес и порт, указанные в настройках прокси-сервера пакета браузера Tor:
$ socksify_ruby 127.0.0.1 9150 tor-test/tor-test.rb
Это произвело следующий вывод:
* Adding handle: conn: 0x7fb1fe195e00
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fb1fe195e00) send_pipe: 1, recv_pipe: 0
* Could not resolve host: jhiwjjlqpyawmpjx.onion
* Closing connection 0
Каждый подход, который я пробовал, приводил к одному и тому же результату: URI скрытой службы не может быть разрешен
Может ли кто-нибудь помочь мне здесь или указать мне правильное направление? Я чувствую, что, поскольку браузер Tor может программно подключаться к скрытым службам, мы все тоже должны иметь возможность :)