ダークウェブ(.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ドメインも運用してくれています。
- Facebook [facebookcorewwwi.onion] (facebookcorewwwi.onion)
- New York Times nytimes3xbfgragh.onion
その他のダークウェブに存在するサービスはWikipediaにまとまっていますが、本家TorブラウザはJavaScriptをデフォルトで無効にするなど、悪意のあるページに対して対策を凝らしてますので、Chromeで不用意に覗くのはバッドプラクティスといえそうです。
networksetup
やPC全体のプロキシ設定無しで、CURLでのアクセスは以下になります。
$ curl -sL --socks5-hostname localhost:9150 facebookcorewwwi.onion
pythonは以下です。当初requests.exceptions.InvalidSchema: Missing dependencies for SOCKS support.
というエラーが出たので、pip install pysocks
で直りました。
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」ってささやいたこと
参考文献。ありがとうございました。
- Docker Torプロキシのアイディア https://dev.to/boris/running-tor-using-docker-4d7h
- プロキシ設定をコマンド化 https://qiita.com/YumaInaura/items/7e1fcf9c23e7ba15e25b
- ダークウェブ基礎 https://qiita.com/cimadai/items/86f3dbfc2486baaee7e2
- 次回記事の参考に https://qiita.com/ocat/items/29e0ebee4de9b683a77a
- 次回記事の参考に https://qiita.com/charichuma_hack/items/ba3fc74f73f1929ef50b
- CURLでtorプロキシを使う https://qiita.com/oraizonja/items/c2659013ddf56023a385
- pythonでsocksプロキシを使う https://qiita.com/koharite/items/731fcf5146c7b0c4e800
- pythonでtorプロキシを使う https://qiita.com/KAD/items/2de3d5e777d87425c233
- pysocksインストール https://stackoverflow.com/questions/38794015/pythons-requests-missing-dependencies-for-socks-support-when-using-socks5-fro
よろしければこちらもご覧ください