pwnagotchi 日本語対応されました。

> 履歴
> 25/05/31 ついに [2025年版](https://qiita.com/drafts/0b3053b051a2098f8ad8) 作成(久しぶりに更新)
> 21/07/23 [exp.py] (https://github.com/GaelicThunder/Experience-Plugin-Pwnagotchi/blob/master/exp.py) plug-in を入れてみました。handshakes が増えるごとに Level up します。
> 21/06/18 v1.5.5 の AI mode は numpy の uninsall / install で回復できるようです。
> 21/05/03 v1.5.5 AI mode が何かうまくいかない。
> 21/04/25 おお!　v1.5.5 がリリースされている。
> 21/03/23 気が付いたら活動して1年を超えていた。
> 21/01/04 [K's Data Centerさんのリンク](http://www.bun-kserv.net/?p=181) を追加
> 20/11/23 お友達発見機能を[別ページ](https://qiita.com/k0uj1k/items/b8b862970d2cbc22f122)で作成 
> 20/11/22 apt update & apt upgrade の error の対応方法
> 20/11/18 師匠からのご指導 discord は招待が必要なので invite と plug-in のリンクを追記しました。
> 20/10/31 AVTOKYO 2020 で紹介しました。
> 20/10/06 Waveshare 2.13 e-paper と Inky pHAT が千石電商で購入可能です。
> 20/09/26 security_index さんのリンク修正 
> 20/09/16 3Dプリンタのケースに入れてみました。
> 20/09/12 Gigazineさんにリンクされました。(https://gigazine.net/news/20200912-esp32-hash-monster/ のpwnagotchi 日本語にも対応のところ)
> 20/09/10 些細なミスでSDカードを壊してしまいました。backup.sh で[環境を保存し戻す方法](https://qiita.com/kisaragi_fiber/items/7cee7f35448bdd3f7232 )でほとんどの設定が復元できることが分かりました。
> 20/08/30 PwnMail (pwnagotchi ネットワーク) の使い方
> 20/08/02 security_index さんの素晴らしい「pwnagotchi 作ってみた！」をはてなブログから引用、黒白モードの追記
> 20/07/11 pcap ファイルを分析する方法 Google Colaboratory 利用
> 20/07/05 GPS ドングル(USB GPS)で現在地の緯度経度を取得して表示させる方法 [別ページ化](https://qiita.com/k0uj1k/items/618c76be9d6fd205a604)
> 20/05/09 web UI でできること[別ページ化](https://qiita.com/k0uj1k/items/018112f2d8b6326316da)
> 20/05/07 pcap ファイル (handshake) を分析する方法 [別ページ化]( https://qiita.com/k0uj1k/items/8ac25e6138a3eb65f2f4 )
> 20/04/26 Bluetooth テザリング [別ページ化]( https://qiita.com/k0uj1k/items/9367eb7837696f01f7e2 )
> 20/04/14 v1.5.1 のリリースで v 1.4.3 日本語化を[別ページ化](https://qiita.com/k0uj1k/items/ce9aa76cf428c6ad2a73)
> 20/02/16 v1.4.3 日本語化を新規作成

# pwnagotchi とは
あの「たまごっち」をヒントに開発されたWi-Fiハッキングが可能な電子ペット「Pwnagotchi」 - GIGAZINE
https://gigazine.net/news/20191231-pwnagotchi/
と紹介されています。

K's Data Centerさんの (http://www.bun-kserv.net/?p=181) も魅力をまとめています。

----
## 材料

+ raspberry pi zero w / wh
+ Waveshare 2.13'' e-Paper HAT,250x122,2.13inch E-Ink display for RaspberryPi (https://www.aliexpress.com/item/32810080308.html?spm=a2g0s.9042311.0.0.430a4c4dxl1BFF)
+ microSD カード 16GB 
+ モバイルバッテリー
 + 1000mAhあたり90分ぐらいが目安かな
をおすすめします。

----

## 最新版
pwnagotchi 1.5.5 が最新です。

(ダウンロード) https://github.com/evilsocket/pwnagotchi/releases/tag/v1.5.5

![P_20200420_202455_vHDR_Auto.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/70c3ee86-a990-aba3-32b2-02217228a3f1.jpeg)

## 作り方
とても分かりやすいので security_index さんの"はてなブログ"「pwnagotchi 作ってみた！」を参考にしてください。https://security-index.hatenablog.com/entry/2020/08/02/180235
<img src="https://cdn-ak.f.st-hatena.com/images/fotolife/s/security_index/20200726/20200726190448.png" width=75%>


----

## 最初の起動から日本語を表示させる方法

SDカードに書き込みます。
その後
windows の場合
D: (SDカードのドライブ = /boot) に
config.toml ファイルを<b>新規に作成</b>します。


<b> 日本語設定 </b>

```config.toml
main.name = "pwnagotchi-yourname"
main.lang = "jp"

ui.font.name = "fonts-japanese-gothic" # for japanese: fonts-japanese-gothic
ui.font.size_offset = 1 # will be added to the font size

````
<b> 日本語表示が標準設定でできます。</b>

## 英語版で起動した後に日本語化する場合

英語表示はこのようになります。

![P_20200418_114211_vHDR_Auto.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/db4ae12a-81c3-840d-ff47-b8045d415915.jpeg)

起動後 `/etc/pwnagotchi/config.toml`を修正します。

```config.toml
main.lang = "jp"
ui.font.name = "fonts-japanese-gothic" # for japanese: fonts-japanese-gothic
ui.font.size_offset = 1
```

## v 1.4.3 の英語版からの日本語化
昔はコードに手を入れないとできませんでした。
いろいろいじってみた内容を書きました。(https://qiita.com/k0uj1k/items/ce9aa76cf428c6ad2a73)

---

# こんなことができます。

##やってみたこと

+ pwnagotchiの作り方(raspberry pi zero 用 microSDへの書き込み方と同じです)

### 設定変更

`/etc/pwnagotchi/config.toml` を設定します。

+ 表示デバイスの指定の仕方 に例えば `waveshare_v2`を指定する

```config.toml
ui.display.enabled = true
ui.display.rotation = 180
ui.display.type = "waveshare_2"
ui.display.color = "black"
```

+ 個人設定　"/etc/pwnagotchi/config.toml"に
 + pwnagotchi の名前をつける 

```config.toml
main.name = "pwnagotchi-yourname"
```

 + 観測してほしくないアクセスポイントを指定する

```config.toml
main.whitelist = [
  "EXAMPLE_NETWORK",
  "ANOTHER_EXAMPLE_NETWORK",
  "fo:od:ba:be:fo:od",
  "fo:od:ba"
]
```
+ ups_liteを付けて電池残量を表示させる

```config.toml
main.plugins.ups_lite = enable
```

+ メモリ、CPU、温度を表示させる方法

```config.toml
main.plugins.memtemp.enabled = enable
main.plugins.memtemp.scale = "celsius"
main.plugins.memtemp.orientation = "horizontal"
```

### Bluetooth テザリング

+ スマホと[BTでテザリング]( https://qiita.com/k0uj1k/items/9367eb7837696f01f7e2 )してネットとつなぐ。
 + ペアリングがなかなか難しいので、手順を書きました。( https://qiita.com/k0uj1k/items/9367eb7837696f01f7e2 )
 + あなたの pwnagotchi が世界に羽ばたきます。
 + 自動アップデート機能 (checking download...) が働きます。
 + ネットから時刻を拾うので、ファイルの生成正確な時間になります。(pcapなど)
　

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/6bdfa02b-0d8b-49a6-67d0-733101c37b0f.png)

+ PwnMAPに登録される (https://pwnagotchi.ai/map/) 2021/01/04 現在 日本は61人

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/fea67b71-9852-c6a7-31e8-724a2f905e7a.png)


### PwnMail でお友達とメッセージ交換
WebUI を使ってPwnagotchi ユーザだけのメッセージ交換ができます。
　(https://qiita.com/k0uj1k/items/9f74ee32e4612faf50f9)

メッセージが届く通知してくれます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/73f3e02e-cba7-4177-550c-163404a29ddf.png" width=75%>


### PC 連携

+ pwnagotchi をUSBでPCにつなぎ "ssh pi@10.0.0.2" でアクセスする方法 (pi/raspberry)
 + そのためのWindows ドライバのインストールはこちらから ( https://github.com/dukelec/mb/tree/master/doc/win_driver ) 

+ pwnagotchi の表示 [WebUI] (https://qiita.com/k0uj1k/items/018112f2d8b6326316da)を  http://10.0.0.2:8080 で見る方法 (changeme/changeme)　詳しい表示を書きました。(https://qiita.com/k0uj1k/items/018112f2d8b6326316da)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/aa465679-10da-6ef5-2aa9-6f93c8506712.png)

PC 連携ができるとshell コマンドで、Pwnagotchi から外にデータを取り出すことができます。

### バックアップと復元
+ backup.sh で環境を保存し戻す方法(https://qiita.com/kisaragi_fiber/items/7cee7f35448bdd3f7232 ) 
+ <b> version up でとても便利</b> (ありがとう @kisaragi_fiber さん)
+ /etc/pwnagotchi/config.toml だけでなく、.bashrc や /root/handshakes も保存してくれます。(活動成果を失う心配がありません)
    + 本当に一度助けられました。


### 簡単なコード変更

+ dark mode (dark theme) 黒白モード
 + 設定方法 (白を黒に、黒を白にするってことね)
 
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/936bb93d-e434-272e-65c6-32c32cde801d.png"  width=75%>

 変更方法

```
sudo su
cd /usr/local/lib/python3.7/dist-packages/pwnagotchi/ui
vi http://view.py
--
WHITE = 0x00 # 0xff->0x00
BLACK = 0xff #  0x00->0xff
--
py3compile http://view.py
systemctl restart pwnagotchi
```

### Pwnagotchi の中の人
+ bettercap (http://10.0.0.2) とその使い方 (pwnagotchi/pwnagotchi)
 + 調査中 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/c82bd5b8-4828-f91d-ed5f-156f0be45226.png)


### 獲得したもの pcap 

+ 4way-handshake の確認
取得した pcap ファイルから4way-handshakeの様子をwiresharkで見てみる。
wireshark だと表示が多すぎるので`tshark`の表示を例とします。
Message 1 of 4 ... 4 of 4 まで受け取れていることが分かります。

```
# tshark -r 4wayhandshakes_xxxxxxxxxxxx.pcap 
Running as user "root" and group "root". This could be dangerous.
    1   0.000000 ABCDEFG_ff:ff:ff → MNOPQR_aa:aa:aa EAPOL 161 Key (Message 1 of 4)
    :
   13 3223.185657 ABCDEFG_ff:ff:ff → Apple_00:00:00 EAPOL 161 Key (Message 1 of 4)
   14 3223.163160 Apple_00:00:00 → ABCDEFG_ff:ff:ff 802.11 181 Reassociation Request, SN=1986, FN=0, Flags=........C, SSID=4wayhandshakes
   15 3223.188456 Apple_00:00:00 → ABCDEFG_ff:ff:ff EAPOL 183 Key (Message 2 of 4)
   16 3223.193475 ABCDEFG_ff:ff:ff → Apple_00:00:00 EAPOL 217 Key (Message 3 of 4)
   17 3223.197398 Apple_00:00:00 → ABCDEFG_ff:ff:ff EAPOL 161 Key (Message 4 of 4)
```

+ pcap ファイルを分析する方法 
    + こちらに詳細を書きました。( https://qiita.com/k0uj1k/items/8ac25e6138a3eb65f2f4 )
    + みんな大好き Aircrack-ng と hashcat

```
                               Aircrack-ng 1.6 

      [00:00:16] 53586/536377 keys tested (3401.86 k/s) 

      Time left: 2 minutes, 21 seconds                           9.99%

                          KEY FOUND! [ password123 ]


      Master Key     : 6C DC 28 E5 EE D6 0D D3 24 8D 42 A9 94 FA 40 DA 
                       8F C6 7B 3B BB 4E F2 32 84 48 E7 D5 47 3A A4 E7 

      Transient Key  : D8 8F 19 22 3B 86 AD B3 25 E7 E4 93 BA 54 9D A4 
                       95 0E D5 5F 6F 8B 09 BE 26 D0 91 F5 47 90 3F 11 
                       9A AB 21 45 F3 EC 45 F4 0C 19 02 13 7C DB 8E 00 
                       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

      EAPOL HMAC     : CB A5 D7 88 A6 CF 36 71 CB 53 F6 EB CC 8C BE CC 
```


### GPS 連携
+ GPS ドングル(USB GPS)で現在地の緯度経度を取得して表示させる方法
    + handshake 時にGPSで座標を取得します。(https://qiita.com/k0uj1k/items/618c76be9d6fd205a604)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/06448c7f-2310-e034-cf85-27969666840a.png)


### 3D プリンタケース
+ 3Dプリンタで作ったケースに入れてみました。
  + データがthingverseにいろいろあがっています。(waveshare e-ink と 取っ手(loop)つきを作りました。)
https://www.thingiverse.com/thing:3948229

![P_20200916_130357_vHDR_Auto_HP.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/0c94a6f7-ca74-e4f3-84db-25bdf78e3268.jpeg)


### discord
+ discord
 + discord plugin 
 + https://github.com/charagarlnad/pwnagotchi-discord-plugin の discord.py を入れる。
 + \#pwnfeed に status を自動投稿できます。
 + invite: https://discord.gg/PgaU3Vp で参加できます。
 + Pwnagotchi Unofficial ( https://discord.com/channels/717817147853766687/717818214280724515 )
 
```
How to install the Discord plugin on your Pwnagotchi

1) Download discord.py from https://github.com/charagarlnad/pwnagotchi-discord-plugin

2) Edit the line 92 to 'text': f'Pwnagotchi v1.5.3 - Discord Plugin v{self.__version__}' (it's neccessary to hardcode Pwnagotchi version because the plugin can't retrieve it for some reason)

3) Copy the file to /usr/local/share/pwnagotchi/installed-plugins/ on your Pwnagotchi

4) Open config.toml (located in /etc/pwnagotchi/) and edit the line containing main.custom_plugins to 
main.custom_plugins = "/usr/local/share/pwnagotchi/installed-plugins/"

5) Add the following lines to config.toml:
main.plugins.discord.enabled = true
main.plugins.discord.webhook_url = "webhook-url-here"

6) That's it. Replace webhook-url-here with a respective webhook URL on your Discord server or PM me and I'll send you a webhook URL for #pwnfee
```

### お友達発見機能！
 + お友達発見機能は、とてもうれしい機能です。
 + pwnagotchi を持っているお友達と会ったり、すれ違ったりすると記録が残ります。
 + こちらに、お友達発見の様子を書きました。https://qiita.com/k0uj1k/items/b8b862970d2cbc22f122
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/4d97cc91-f4a6-89e2-39fa-9576f739d047.png)


### Offical plugin
+ auto_update plugin
    + bt-thering などで、ネットにつながると自動的にシステムのアップデートをします。
    + apt update と apt upgrade をします。
    + 20/11/22 自動でなく手動でapt update をするとエラーが出ます。
   
```
Err:2 http://http.re4son-kernel.com/re4son kali-pi InRelease The following signatures were invalid: EXPKEYSIG 11764EE8AC24832F Carsten Boeving <carsten.boeving@whitedome.com.au>
```

対応方法は

```
sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 11764EE8AC24832F
```

をしてから、再度 apt update してください。
### Unofficial plugin
 + clock.py (Unoffical plug-in) 現在時刻を表示させます。
 + (準備中)

### ハードウェアで時刻を与える方法
RTC子基板とボタン電池で時刻を取得するとMANUモードで UP time が正確になります。
わかったこと
+ RTC 子基板の入手は AliExpress
+ 配線材は細いものが良い
+ RTC 子基板からノイズが出るらしく、著しくWi-Fiの受信が悪くなる。
+ 時刻情報の効果よりもノイズの副作用の方が大きい。
+ ノイズ対策ができるのか不明

## やってないこと

### twitter 自動投稿
(#pwnagotchi)への自動投稿機能
Unofficial plugin (twitter.py) と設定できるらしいです。


### 読みやすいフォント探し
`fonts-japanese-gothich.ttf` より良いフォントはないかな？

***

## アイデアレベル 
実現できるか分からない。

### LINE に通知
LINE plugin を作れればよいのでは、LINE notify を使うのかな？

<b>Let's enjoy playing pwnagotchi !</b>

## 鍵生成中は電源を落とさないでね。

![P_20200418_120817_vHDR_Auto.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/0eecc179-102b-6d40-ab5b-2b8197229fb8.jpeg)

# AVTOKYO 2020
AVTOKYO 2020 に発表しました。
[![thumbnail](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/5cc44cc7-a932-6b2e-4922-0e11db7ee5bf.png)](https://speakerdeck.com/k0uj1k/pwnagotchi-deyou-bou-avtokyo2020)
[slide: pwnagotchiで遊ぼう! k0uj1k (twitter:@kouj1k1)](https://speakerdeck.com/k0uj1k/pwnagotchi-deyou-bou-avtokyo2020)

----

# ハックザプラネット!

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587146/1ea7dc03-e2a4-6788-4e65-ec4143f61ede.png" width=75%>