履歴
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さんのリンク を追加
20/11/23 お友達発見機能を別ページで作成
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 で環境を保存し戻す方法でほとんどの設定が復元できることが分かりました。
20/08/30 PwnMail (pwnagotchi ネットワーク) の使い方
20/08/02 security_index さんの素晴らしい「pwnagotchi 作ってみた!」をはてなブログから引用、黒白モードの追記
20/07/11 pcap ファイルを分析する方法 Google Colaboratory 利用
20/07/05 GPS ドングル(USB GPS)で現在地の緯度経度を取得して表示させる方法 別ページ化
20/05/09 web UI でできること別ページ化
20/05/07 pcap ファイル (handshake) を分析する方法 別ページ化
20/04/26 Bluetooth テザリング 別ページ化
20/04/14 v1.5.1 のリリースで v 1.4.3 日本語化を別ページ化
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
作り方
とても分かりやすいので security_index さんの"はてなブログ"「pwnagotchi 作ってみた!」を参考にしてください。https://security-index.hatenablog.com/entry/2020/08/02/180235
最初の起動から日本語を表示させる方法
SDカードに書き込みます。
その後
windows の場合
D: (SDカードのドライブ = /boot) に
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
日本語表示が標準設定でできます。
英語版で起動した後に日本語化する場合
英語表示はこのようになります。
起動後 /etc/pwnagotchi/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
を指定する
ui.display.enabled = true
ui.display.rotation = 180
ui.display.type = "waveshare_2"
ui.display.color = "black"
- 個人設定 "/etc/pwnagotchi/config.toml"に
- pwnagotchi の名前をつける
main.name = "pwnagotchi-yourname"
- 観測してほしくないアクセスポイントを指定する
main.whitelist = [
"EXAMPLE_NETWORK",
"ANOTHER_EXAMPLE_NETWORK",
"fo:od:ba:be:fo:od",
"fo:od:ba"
]
- ups_liteを付けて電池残量を表示させる
main.plugins.ups_lite = enable
- メモリ、CPU、温度を表示させる方法
main.plugins.memtemp.enabled = enable
main.plugins.memtemp.scale = "celsius"
main.plugins.memtemp.orientation = "horizontal"
Bluetooth テザリング
- スマホとBTでテザリングしてネットとつなぐ。
- ペアリングがなかなか難しいので、手順を書きました。( https://qiita.com/k0uj1k/items/9367eb7837696f01f7e2 )
- あなたの pwnagotchi が世界に羽ばたきます。
- 自動アップデート機能 (checking download...) が働きます。
- ネットから時刻を拾うので、ファイルの生成正確な時間になります。(pcapなど)
- PwnMAPに登録される (https://pwnagotchi.ai/map/) 2021/01/04 現在 日本は61人
PwnMail でお友達とメッセージ交換
WebUI を使ってPwnagotchi ユーザだけのメッセージ交換ができます。
(https://qiita.com/k0uj1k/items/9f74ee32e4612faf50f9)
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)
PC 連携ができるとshell コマンドで、Pwnagotchi から外にデータを取り出すことができます。
バックアップと復元
- backup.sh で環境を保存し戻す方法(https://qiita.com/kisaragi_fiber/items/7cee7f35448bdd3f7232 )
- version up でとても便利 (ありがとう @kisaragi_fiber さん)
- /etc/pwnagotchi/config.toml だけでなく、.bashrc や /root/handshakes も保存してくれます。(活動成果を失う心配がありません)
- 本当に一度助けられました。
簡単なコード変更
- dark mode (dark theme) 黒白モード
- 設定方法 (白を黒に、黒を白にするってことね)
変更方法
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)
- 調査中
獲得したもの 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)
3D プリンタケース
- 3Dプリンタで作ったケースに入れてみました。
- データがthingverseにいろいろあがっています。(waveshare e-ink と 取っ手(loop)つきを作りました。)
https://www.thingiverse.com/thing:3948229
- データがthingverseにいろいろあがっています。(waveshare e-ink と 取っ手(loop)つきを作りました。)
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
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 を使うのかな?
Let's enjoy playing pwnagotchi !
鍵生成中は電源を落とさないでね。
AVTOKYO 2020
AVTOKYO 2020 に発表しました。
slide: pwnagotchiで遊ぼう! k0uj1k (twitter:@kouj1k1)