2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pwnagotchi 2025

Posted at

履歴
25/05/31 久々に初版作成

最新状況

(2025/05/31)
image.png

はじめに

pwnagotchi も誕生から5年経ちました。5年間いろいろありました。お出かけしたかったのを我慢したり、いろいろな人に出会ったりさよならしたりと、心に刻まれた思い出もたくさんあったと思います。

pwnagotchi は、wifi (2.4GHz帯)の 4way handshake の pcap を集めます。
私の pwnagotchi も、5年間で 10,000件の handshake を集めることができました。
そこで最新の pwnagotchi に upgrade してあげようと思いました。
でも、この5年でいろいろな変更があって、v1.5.5 のやり方「pwnagotchi 日本語対応されました」 がうまくいかなくなってしまっています。

ここでは、2025年の pwnagotchi を作ってみたいな、upgrade したいな、raspberry pi zoro 2 だともっと handshake が集められるのでは?と思った皆さんに、どうしたら作れるの? を中心に、何が変わったの?を書きます。

pwnagotchi の作り方

ポータルが変わりました pwnagotchi.org が pwnagotchi の様々な情報のポータルになっています。

image file の入手

jayofelonyさんのwiki を参照してください。
step by step で作り方が書いてあります。でも英語ですね。

簡単に紹介します。
まず、raspberry pi zero は 32bit 版の image を使いましょう。32bit版最新 から 例えば pwnagotchi-2.9.5.3-32bit.img.xz をダウンロードしましょう。1.2GB あるので、通信帯域が安定したところでダウンロードしましょう。
次に、raspbery pi zero2, pi 3, pi 4, pi 400, pi 5 で作る場合は、 64bit 版の image を使いましょう。こちらも同様に、64bit版最新 から 例えば pwnagotchi-2.9.5.3-64bit.img.xz をダウンロードしましょう。

microSD への書き込み

こちらは、Raspberry Pi imager を使いましょう。この使い方はご存じかと思いますので、省略します。

起動

困ったことに、raspbery pi の緑のLEDがチカチカするだけで、e-ink に何も表示が出ません。(わからない設定が default らしいのですが、それでも何も表示が出ませんでした)

usb (microB) で PC につなぐ

raspberry pi zero / zero 2 の Gadget mode をつかって、USB-ether として pwnagochi に ssh ログインをします。ここで躓くと一歩も進められなくなってしまいます。ここだけは頑張りましょう。
windows は RNDIS のネットワークドライバが必要になります。RNDISドライバは ここ から入手しましょう。その後に USB をつなげた後の windows の ip アドレスの設定は、こちらの英語の手順 を参照に設定してください。
ポイントは PC が 10.0.0.1 で pwnagotchi が 10.0.0.2 になるようにすることです。

初回の login

ssh pi@10.0.0.2

または teraterm から 10.0.0.2
login は pi
password は raspberry
です。

警告
これは default なので password は必ず変更しましょう。

初めてならば、

The authenticity of host '10.0.0.2 (10.0.0.2)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

ここでは、yes

Warning: Permanently added '10.0.0.2' (ED25519) to the list of known hosts.
pi@10.0.0.2's password:

パスワード raspberry を入力します。
メッセージが来ます。

Please note that SSH may not work until a valid user has been set up.

See http://rptl.io/newuser for details.
pi@10.0.0.2's password:

(◕‿‿ ◕) pwnagotchi

    Hi! I'm a pwnagotchi, version 2.9.5.3, please take good care of me!
    Here are some basic things you need to know to raise me properly!

    If you want to change my configuration, use /etc/pwnagotchi/config.toml
    All plugin config files are located in /etc/pwnagotchi/conf.d/
    Read the readme if you want to use gdrivesync plugin!!

    All the configuration options can be found in /etc/pwnagotchi/default.toml,
    but don't change this file because I will recreate it every time I'm restarted!

    I use oPwnGrid as my main API, you can check stats at https://opwngrid.xyz

    I'm managed by systemd. Here are some basic commands.

    If you want to know what I'm doing, you can check my logs with the command
    - pwnlog
    - sudo pwnagotchi --wizard, to help set up a config.toml
    - sudo pwnagotchi --version, to check the current version
    - sudo pwnagotchi --donate, to see how you can donate to this project
    - sudo pwnagotchi --check-update, to see if there is a new version available

    If you want to know if I'm running, you can use
    sudo systemctl status pwnagotchi

    You can restart me using
    pwnkill

    You can learn more about me at https://pwnagotchi.org/
Last login: Sat May 10 10:36:57 2025 from 10.0.0.1
pi@pwnagotchi:~ $

最初にやること

$ sudo pwnagotchi --wizard

対話形式で初期設定します。

Do you want to restore the previous configuration?

以前の設定ファイルを復元しますか?

[Y/N]: Y
This will create a new configuration file and overwrite your current backup, are you sure?

新しい設定ファイルを作り、現在の設定を上書きしますが良いですか?

[Y/N]: Y
Welcome to the interactive installation of your personal Pwnagotchi configuration!
My name is Jayofelony, how may I call you?

このあたりは Jayofelonyさんのご挨拶です。律儀ですね。
pwnagotchi に名前を付けます。
私のpwnagotchiは "k0uj1k" としました。

Pwnagotchi name (no spaces): k0uj1k
I shall go by k0uj1k from now on!
How many networks do you want to whitelist? We will also ask a MAC for each network?
Each SSID and BSSID count as 1 network.

Be sure to use digits as your answer.

ご自宅のwifiを取り込まないようにするには、数を指定するのですが、そのあとの MAC ADDRESS を入れる必要があるのと、後で変更できるのでここは一旦 "0" としておきましょう。

Amount of networks: 0
Do you want to enable BT-Tether?

Bluetooth テザリングをしますか?
ここで設定してもつながらないので、NOとしておきましょう。

[Y/N] N
Do you want to enable a display?

ここは、"Y" で E-ink の種類を設定しましょう。

[Y/N]: Y
What display do you use?

Be sure to check for the correct display type @
https://github.com/jayofelony/pwnagotchi/blob/master/pwnagotchi/utils.py#L240-L501

来ました Display の設定です。
千石電子で購入できるのは、waveshare_2 です。
ちょっと前までは inky もありました。
私は AliExpress で waveshare_4 を買いましたので、"waveshare_4" とします。

Display type: waveshare_4
Do you want to invert the display colors?
N = Black background
Y = White background

白地に黒の文字 "Y"
黒地に白文字 ”N"
お好みで選んでください。

[Y/N]: Y
Your configuration is done, and I will restart in 5 seconds.
pi@raspberry:~ $

プロンプトが返ってきたら、pwnagotchi の表示が出ます。

pi@{PwnagotchiName} $

英語版が立ち上がります。

pwnagotchi_new_en.png

日本語表示

ここから日本語表示の設定をしていきましょう。
日本語表示は、次の2点の作業が必要です。残念ながら v1.5.5 のように 1. だけではフォントが対応できないため文字化けの 豆腐 "□" だらけになってしまいます。

  1. /etc/pwnagotchi/config.toml の設定
  2. 日本語フォントの導入

config.toml の編集

$ sudo vi /etc/pwnagotchi/config.toml

以下を修正します。

main.lang = "ja" # "en" から変更
main.ui.font = "font-japanese-gothich" # "Dejavue" から変更

日本語フォントの導入

残念ながら新たに日本語フォントを入れてあげないと表示できません。

google の Noto Sans CJK JP を持ってきます。
種類はいろいろありますが、個人的には "Noto Sans CJK JP Medium" が E-inkの表示でまあまあな感じです。
このフォントがいいよといただけると嬉しいです。

まずダウンロードしたフォントを pwnagotchi に転送

# scp noto-sans-cjk-jp-medium.ttf pi@10.0.0.2:/home/pi

フォントの場所へ配置します。

# sudo su
# cd /usr/share/fonts/TrueType/
# mkdir noto
# cp /home/pi/noto-sans-cjk-jp-medium.ttf .
# cd ..
# ln -s noto/noto-sans-cjk-jp-medium.ttf font-japanese-gotchic.ttf

pwnagotchi 再起動

# sudo systemctl restart pwnagotchi

これで、日本語表示がでます。

pwnagotchi_new.png

新しくなったこと

pwngrid

opwngrid に変更されています。
fingerprint は引き継げそうでしたが新規作成しました。

Name
k0uj1k
Fingerprint
e7adcc6f889a53f853c79eec63cc03d131a315b782aa1f6d071390ed3a16c33d
Data
{
"grid_version": "1.11.4",
"identity": "e7adcc6f889a53f853c79eec63cc03d131a315b782aa1f6d071390ed3a16c33d",
"name": "k0uj1k",
"session_id": "f0:3e:27:8d:72:85"
}

PwnMail でお友達とメッセージ交換が WebUI を使ってPwnagotchi ユーザだけのメッセージ交換ができます。

やったこと

これから紹介していこうと思います。(T.B.D.)

handshake のデータと peer のデータを引っ越しました。
exp.py 引き続き使ってます。
discord.py 新しくなっています webhook は以前いただいたものを使いまわしてます。
pisugarX.py pisugar3を新調したのでモバイルバッテリーからの配線がなくなって自立しました。ですが1200mAhだと4時間ぐらいしか持たなくて、長いお出かけに耐えられないようです。省電力化ができないか調査中です。
memtemp_plus.py memory usage %, cpu usage %, temp ℃ を表示します。raspbery pi zero 2 なので熱くなります。こちらもAliExpressから大き目のヒートシンクを入れました。
USB-ether と bt-tether の network routing の問題:どちらも metrics が 100 で両方つないだ時に bt-tethering の ネットワークが優先にならなかったので、bt-tether.py の metrics を 100 -> 50 に変更して優先度をあげて解決しました。
なんとなく、日本語化したセリフが一部ダサくなったので更新してみました。こちらは pwnagotchi だけでできなくなったので、別の raspberry pi で voice ファイルを作成しました。

pwnagotchi_new_hat.png

まだ途中

backup.sh がなくなってしまったので、バックアップ方法が変わったこと、併せてリストアも変わったこと(BR.sh)
bt-tethering が安定しないので "BT C" の表示があてにならなくなったこと
バッテリーの持ちを伸ばせるかなと思って e-ink の更新頻度を下げてみたこと
"pwnlog" コマンドでlogを見るとプラグインのエラーが出ていて安定感に欠くこと
pisugar3 を raspberry pi zero 2 WH につなげたら、はんだ面のコンタクトが小さすぎてうまくいかなかったので、結局自分ではんだ付けをして大き目のはんだ山にしたらコンタクトができて繋がったこと
pisugar3 のソフトウェアボタン設定と shutdown 設定
OSアップデートに耐えられるのかわからないこと
Pwnagotchi Unofficial(英語):招待コード: https://discord.gg/jETXE62V がほぼオフィシャル化しています。こちらで面白そうなこと
10,000件のハンドシェイクの分析してみてわかったこと

ケース

むき出し基盤はショートの可能性があって危ないのと壊してしまう可能性が高いのでケースに入れました。
3Dプリンターでの造形がいいですね。こちらは後輩君にお願いしました。なかなかの出来栄えです。

with_case.png

これからはこの子を連れて歩こうと思います。

ハックザプラネット!

筆者は、ほろ酔いで書いてます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?