pwnagotchi 2025

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

# 最新状況
(2025/05/31)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/9e1cce59-e3a0-42f8-afdc-1c02ef5b93b4.png)
# はじめに
pwnagotchi も誕生から5年経ちました。5年間いろいろありました。お出かけしたかったのを我慢したり、いろいろな人に出会ったりさよならしたりと、心に刻まれた思い出もたくさんあったと思います。

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

ここでは、2025年の pwnagotchi を作ってみたいな、upgrade したいな、raspberry pi zoro 2 だともっと handshake が集められるのでは？と思った皆さんに、どうしたら作れるの？ を中心に、何が変わったの？を書きます。
# pwnagotchi の作り方
ポータルが変わりました　[pwnagotchi.org](https://pwnagotchi.org/) が pwnagotchi の様々な情報のポータルになっています。
## image file の入手
[jayofelonyさんのwiki](https://github.com/jayofelony/pwnagotchi/wiki) を参照してください。
step by step で作り方が書いてあります。でも英語ですね。

簡単に紹介します。
まず、raspberry pi zero は 32bit 版の image を使いましょう。[32bit版最新](https://github.com/jayofelony/pwnagotchi/releases/latest) から 例えば pwnagotchi-2.9.5.3-32bit.img.xz をダウンロードしましょう。1.2GB あるので、通信帯域が安定したところでダウンロードしましょう。
次に、raspbery pi zero2, pi 3, pi 4, pi 400, pi 5 で作る場合は、 64bit 版の image を使いましょう。こちらも同様に、[64bit版最新](https://github.com/jayofelony/pwnagotchi/releases/latest) から 例えば pwnagotchi-2.9.5.3-64bit.img.xz をダウンロードしましょう。
## microSD への書き込み
こちらは、[Raspberry Pi imager](https://www.raspberrypi.com/software/) を使いましょう。この使い方はご存じかと思いますので、省略します。
## 起動
困ったことに、raspbery pi の緑のLEDがチカチカするだけで、e-ink に何も表示が出ません。(わからない設定が default らしいのですが、それでも何も表示が出ませんでした)
## usb (microB) で PC につなぐ
raspberry pi zero / zero 2 の Gadget mode をつかって、USB-ether として pwnagochi に ssh ログインをします。ここで躓くと一歩も進められなくなってしまいます。ここだけは頑張りましょう。
windows は RNDIS のネットワークドライバが必要になります。RNDISドライバは [ここ](https://github.com/jayofelony/pwnagotchi/wiki/mod-rndis-driver-windows.zip) から入手しましょう。その後に USB をつなげた後の windows の ip アドレスの設定は、[こちらの英語の手順](https://github.com/jayofelony/pwnagotchi/wiki/Step-2-Connecting) を参照に設定してください。
ポイントは 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
です。

:::note warn
警告
これは 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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/4077d473-09fb-4800-a995-f53858e35cd4.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](https://fonts.adobe.com/fonts/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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/b4f61272-6aaa-44c5-8a8e-281b7ca362c5.png)

# 新しくなったこと
## pwngrid

[opwngrid](https://pwnagotchi.org/opwngrid/index.html) に変更されています。
fingerprint は引き継げそうでしたが新規作成しました。

Name
k0uj1k
Fingerprint
[e7adcc6f889a53f853c79eec63cc03d131a315b782aa1f6d071390ed3a16c33d](https://opwngrid.xyz/search/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](https://github.com/GaelicThunder/Experience-Plugin-Pwnagotchi/blob/master/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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/f2d6c705-5df6-4b70-ab48-9e88ab358159.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](https://discord.gg/jETXE62V) がほぼオフィシャル化しています。こちらで面白そうなこと
10,000件のハンドシェイクの分析してみてわかったこと

## ケース

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

![with_case.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/15077c89-d4d1-41ae-84f8-d49e031edaaf.png)

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

# ハックザプラネット!

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