/etc/tor/torrc
の HiddenServicePort 80 127.0.0.1:80
をコメントアウトする
$ grep ^HiddenServicePort /etc/tor/torrc|grep 80 HiddenServicePort 80 127.0.0.1:80
sshの場合はそのすぐ下のsshを設定する
/var/lib/tor/hidden_service/hostname
にはこのtorサーバのホスト名が格納されている.
/var/lib/tor/hidden_service/private_key
には秘密鍵が格納されている.この鍵を失うとこのhost名は使えなくなる.
path は torrc の設定次第で, /var/lib/tor/other_hidden_service
かもしれない.
※最近のtorはed25519で作っているよう.その場合 hs_ed25519_public_key
, hs_ed25519_secret_key
が作れれる.hostname は tbiettfnprnqpoccrz3ll7hioprbyjoam2n6okihpadf5ukaa4hwrwad.onion
のように長い.ed25519生成前か削除して以前のRSA鍵を置くとそれを使ってくれる.
$ sudo cat /var/lib/tor/hidden_service/hostname xxxxxxxxxxxxxxxx.onion $ sudo cat /var/lib/tor/hidden_service/private_key -----BEGIN RSA PRIVATE KEY----- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX== -----END RSA PRIVATE KEY-----
バーチャルホストの設定を行う.
/etc/apache2/sites-enabled/onion.conf
のような設定ファイルを用意して,/var/lib/tor/hidden_service/hostname
のホスト名で通常のバーチャルホストの設定をする.
<VirtualHost 127.0.0.1:80> : ServerName xxxxxxxxxxxxxxxx.onion :
設定が終わったらa2ensiteで設定を有効にして文法チェックの後サービスの再読込を行う.
$ sudo a2ensite onion.conf $ sudo apache2ctl -t Syntax OK sudo apache2ctl -S VirtualHost configuration: 127.0.0.1:80 xxxxxxxxxxxxxxxx.onion (/etc/apache2/sites-enabled/onion.conf:1) : $ sudo service apache2 reload
適当なコンテンツを作ってアクセスできるのを確認する
$ echo 'hello onion' > /data/www/onion/hello.txt
$ torsocks wget -qO- http://eamqgzyqb75fzqwd.onion/hello.txt hello onion
blogにも書いた
[a-z|3-7]の32文字(BASE32)からなる16文字の onion v2 アドレスと,56文字の onion v3 アドレスがある.最近は後者のv3アドレスが規定値になっていて,鍵は RSA から ed25519 になっている.
(無駄に)アドレスを計算して好みの単語にマッチしたものを探す(例えばmatokenから始まるアドレスを探すとか).v2アドレスはGPUを使ったツールがあるのでそれを使うと高速に探せる.v3は恐らくまだない. 先頭6,7文字くらいまでなら1,2日ほどで見つかったりするがそれ以上は難しい感じ.
こういったアドレスはVanity Addresses というらしい.
アドレスを売っているところもあるが,相手は秘密鍵を持っているわけであまりよろしく無いと思う.
$ wget https://github.com/ReclaimYourPrivacy/eschalot/archive/master.zip $ unzip master.zip $ cd eschalot-master $ make
hoge
から始まるものを探す例.
$ ./eschalot -t4 -v -c -p hoge
-t4
4スレッド-v
冗長モード-c
見つかっても探索を続ける-p
単一の接頭検索語正規表現を使って検索.hogeから始まる,若しくはfugaで終わるものを探す.
./eschalot -vct4 -r "$hoge|fuga$"
実際利用するときはファイルに落とすようにすると良さそう.
./eschalot -vct4 -r "$hoge|fuga$" >> result-hoge_fuga.log
$ sudo apt install libsodium-dev autoconf $ git clone https://github.com/cathugger/mkp224o $ cd mkp224o $ ./autogen.sh $ ./configure $ make
$ ./mkp224o Usage: ./mkp224o filter [filter...] [options] ./mkp224o -f filterfile [options] Options: -h - print help to stdout and quit -f - specify filter file which contains filters separated by newlines -D - deduplicate filters -q - do not print diagnostic output to stderr -x - do not print onion names -v - print more diagnostic data -o filename - output onion names to specified file (append) -O filename - output onion names to specified file (overwrite) -F - include directory names in onion names output -d dirname - output directory -t numthreads - specify number of threads to utilise (default - CPU core count or 1) -j numthreads - same as -t -n numkeys - specify number of keys (default - 0 - unlimited) -N numwords - specify number of words per key (default - 1) -z - use faster key generation method; this is now default -Z - use slower key generation method -B - use batching key generation method (>10x faster than -z, experimental) -s - print statistics each 10 seconds -S t - print statistics every specified ammount of seconds -T - do not reset statistics counters when printing -y - output generated keys in YAML format instead of dumping them to filesystem -Y [filename [host.onion]] - parse YAML encoded input and extract key(s) to filesystem --rawyaml - raw (unprefixed) public/secret keys for -y/-Y (may be useful for tor controller API) -p passphrase - use passphrase to initialize the random seed with -P - same as -p, but takes passphrase from PASSPHRASE environment variable
30秒毎に統計を出しながら matoken
を探す.結果は onion
ディレクトリ以下に書く.
$ ./mkp224o -S 30 -d onion matoken set workdir: onion/ sorting filters... done. filters: matoken in total, 1 filters using 4 threads >calc/sec:245253.038056, succ/sec:0.000000, rest/sec:39.974416, elapsed:0.100064sec >calc/sec:250836.767385, succ/sec:0.000000, rest/sec:0.000000, elapsed:60.116146sec >calc/sec:248413.422026, succ/sec:0.000000, rest/sec:0.000000, elapsed:120.186153sec
フィルタは複数書ける.
$ ./mkp224o -S 30 -d onion matoken nyancat
辞書ファイルを使う
$ ./mkp224o -S 300 -d ./onion -f ./wordlist
結果はこんな感じになる
$ ls onion/catcatt2o47cxyj3uholtxyzj2hloysszcozw572shvn5s4wmrfrdfqd.onion/ hostname hs_ed25519_public_key hs_ed25519_secret_key
Raspberry Pi 3 model B に Raspberry Pi OS 64bit版での動作例
$ ./mkp224o -S 300 -d ./onion -f ./list set workdir: ./onion/ sorting filters... done. filters: : [another 43 filters not shown] in total, 63 filters using 4 threads >calc/sec:93819.315389, succ/sec:0.000000, rest/sec:39.965630, elapsed:0.100086sec >calc/sec:114930.959549, succ/sec:0.003333, rest/sec:0.003333, elapsed:300.150996sec >calc/sec:110807.186607, succ/sec:0.010000, rest/sec:0.010000, elapsed:600.151303sec
コメント