ダークウェブをChromeから覗く闇のワンライナー Welcome to Underground


ダークウェブ(.onionドメイン)にアクセスする場合、ブラウザはTorを使う必要がありますが、docker内でTorを建ててプロキシとして使えば、どのブラウザ、またはCURL、pythonスクリプト等でもアクセスできちゃいます。
ワンライナーはこちらです。

networksetup -setsocksfirewallproxy Wi-fi localhost 9150 && networksetup -setsocksfirewallproxystate Wi-fi on && cd $(mktemp -d) && echo -e "FROM alpine:3.12\nRUN apk add tor" > Dockerfile && docker build . -t torproxy && docker run -p 9150:9150 torproxy sh -c "chown -R root:root /etc/tor/;chown -R root:root /var/lib/tor/ && echo 'SocksPort 0.0.0.0:9150' >> /etc/tor/torrc.sample && tor -f /etc/tor/torrc.sample" && networksetup -setsocksfirewallproxystate Wi-fi off

それでは解説します。

networksetup -setsocksfirewallproxy Wi-fi localhost 9150 # Wi-fiを利用時にSOCKSプロキシlocalhost:9150を利用して接続する設定を登録。
networksetup -setsocksfirewallproxystate Wi-fi on # Wi-fiのSOCKSプロキシをONにする
cd $(mktemp -d) # Dockerfileを生成するので一時ディレクトリに退避
echo -e "FROM alpine:3.12\nRUN apk add tor" > Dockerfile # この行は一度のみ実行すれば以後必須ではない
docker build . -t torproxy # この行は一度のみ実行すれば以後必須ではない
docker run -p 9150:9150 torproxy sh -c "chown -R root:root /etc/tor/;chown -R root:root /var/lib/tor/ && echo 'SocksPort 0.0.0.0:9150' >> /etc/tor/torrc.sample && tor -f /etc/tor/torrc.sample"
# 必要な調整をchownとtorrc.sample追記で行い、torを実行します
networksetup -setsocksfirewallproxystate Wi-fi off # プロキシをOFFにする。フォアグラウンドで動いているDockerがターミナルから中断されると、次にこのコマンドに移り正常に戻る

注意点があります。先頭2つと末尾のnetworksetupコマンドはMacかつWifiでの利用を想定したコマンドです。既に登録がある場合は上書きしに行くのでご注意ください。その他OSは手動か別コマンドでSOCKSプロキシを設定しワンライナーは中間部だけお使いください。MacでWi-Fi以外の場合は置換が必要です。以下のコマンドで調査できます。

$ networksetup -listallnetworkservices # 私の環境にはありませんが、Ethernetが次に多そう
An asterisk (*) denotes that a network service is disabled.
Wi-Fi
Bluetooth PAN
Thunderbolt Bridge

ワンライナーを実行するとdocker runがフォアグラウンドで走り、手動で中断されるまで間にプロキシが稼働しています。ipinfo.ioで違うIPやlocationが表示され、check.torproject.orgでConratulationsが表示されれば成功です。

それでは実際にダークウェブに潜むonionドメインのウェブサイトを見てみましょう。誰でも知っている以下のサービスは.onionドメインも運用してくれています。

その他のダークウェブに存在するサービスはWikipediaにまとまっていますが、本家TorブラウザはJavaScriptをデフォルトで無効にするなど、悪意のあるページに対して対策を凝らしてますので、Chromeで不用意に覗くのはバッドプラクティスといえそうです。
networksetupやPC全体のプロキシ設定無しで、CURLでのアクセスは以下になります。

bash
$ curl -sL --socks5-hostname localhost:9150 facebookcorewwwi.onion

pythonは以下です。当初requests.exceptions.InvalidSchema: Missing dependencies for SOCKS support.というエラーが出たので、pip install pysocksで直りました。

python
import requests
proxies = {'http':'socks5://127.0.0.1:9150','https':'socks5://127.0.0.1:9150'}
print(requests.get('http://ipinfo.io',proxies=proxies).json())
{'ip': '185.220.102.8', 'hostname': '185-220-102-8.torservers.net', 'city': 'Berlin', 'region': 'Berlin', 'country': 'DE', 'loc': '52.5244,13.4105', 'org': 'AS60729 Zwiebelfreunde e.V.', 'postal': '10178', 'timezone': 'Europe/Berlin', 'readme': 'https://ipinfo.io/missingauth'}

ご一読ありがとうございました。「Welcome to Underground」は2chでバズった痛いコピペです。

358 :世界遺産:2006/08/14(月) 15:48:55 ID:O2Q5Lui70
中学時代のパソコンの授業でインターネットを使った時
みんなが自分の好きな漫画や野球のページを見てる時に
自分だけこれみよがしに2chにつないでAAとかを周りに見せてたこと
しかも「このページって何?」って聞かれた時に「ヤバイ奴らの集会所みたいなもん」とか答えたこと
さらに友達に2chへの行きかたを教えるためにヤフーで2chって検索させて
でてきたリンクをクリックして2chのトップページが表示された瞬間に
そいつの耳元で「Welcome to Underground」ってささやいたこと

参考文献。ありがとうございました。

よろしければこちらもご覧ください