Pwnagotchi作成録(基本編)

先日部屋の整理をしていたら、いつ買ったのかも分からないRaspberry Zero 2 Wを見つけたので、何時ぞやのGigazineの記事で見かけたPwnagotchiを作ってみよう!

gigazine.net

ということで作った記録

Pwnagochiとは

Wi-Fiの技術規格であるWPAとWPA2に存在する 「Wi-Fiパスワードを知らない第三者でも、4way-Handshakeを傍受してネットワークに侵入できる」 という脆弱性を用いてその情報を収集する電子ペット。

名前の由来は「勝つ」「打ち負かす」ことを意味するスラングで、CTFの1ジャンルとしてもおなじみ(?)の"Pwn"と、バンダイが世界に誇る伝説の電子ペット玩具"たまごっち"を合わせた造語とのこと

pwnagotchi.ai

さらに深層強化学習A2Cアルゴリズムを用いてWi-Fiを効率よく探索するような設計になっている

材料
  • 最低限必要なもの

    • Raspberry Pi Zero WH もしくは 2 WH
      (Wもしくは2WはGPIOピンが別売りなので、GPIOピンと半田ごて、半田を別途用意)
    • 電子ペーパー
      • Waveshare eInk 2.13 (V1 or V2) ← 公式サポート
        ただし現在流通しているのはV3かV4。自分が買ったものはV4だったので、本記事ではV3かV4を用いるものとする
      • Inky pHAT
      • PaPiRus eInk Screen
      • DFRobot eInk Screen
  • あると良いもの
作成
  1. Pwnagotchi imageの書き込み
    microSDカードにPwnagotchiのイメージを書き込む。ここでWaveshare eInk 2.13のV3かV4(写真のようなステッカーに書いてある)の場合、公式が提供しているイメージでは表示できない

    そのため、https://github.com/DrSchottky/pwnagotchi/releases/download/v1.5.6-beta2/pwnagotchi-raspberrypi-os-lite-v1.5.6-beta2.zip をダウンロードして解凍し、中のimgファイルをbalenaEtcherやRufusなんかを使って書き込む
    書き込みが完了したら、一度microSDカードを取り出しておく
  2. config.tomlの作成
    Pwnagotchiイメージを書き込んだmicroSDを再びPCに接続し、適当なテキストエディタWindows標準のメモ帳やVS Code、Notepad++など何でもOK)を立ち上げ
    main.name = "自分のPwnagotchiの名前(何でもOK)"
    main.lang = "jp"
    main.whitelist = [
      "自分の家のWi-FiのSSID"
    ]
    
    main.plugins.grid.enabled = true
    main.plugins.grid.report = true
    main.plugins.grid.exclude = [
      "自分の家のWi-FiのSSID"
    ]
    
    ui.display.enabled = true
    ui.display.type = "waveshare_3" # Waveshare V3とV4共通。その他の電子ペーパーは公式を参照
    ui.display.color = "black"
    ui.font.name = "fonts-japanese-gothic"
    ui.font.size_offset = 1
    をコピペ(main.name、main.whitelist、main.plugins.grid.excludeは適宜書き換える)して、ファイル名を「config.toml」としてmicroSDのドライブ(=/boot)に保存する
  3. 組み立てる
    Raspberry Pi Zero WHのGPIOピンに電子ペーパーを接続する。ケースがある場合はケース込みで組み立て
  4. 起動する
    microSDRaspberry Pi Zero WHに入れ、microUSBケーブルでモバイルバッテリーと接続する。Raspberry Pi Zero Wには2つのmicroUSBポートがあるため、モバイルバッテリーと接続するときは電源ポートに接続しよう

    こんな画面が表示されれば成功!

最後に

今回ラズパイは家にあったものを使ったが、ラズパイを買ったとしても10,000円以内で、かつ複雑な作業なしにWi-Fi脆弱性情報収集ツールを自作できるので、ちょっとした暇つぶしにはもってこいだし、Wi-Fiの勉強にもなるのでかなりおススメだと思います

bluetooth経由でスマホと接続して解析できたり、Pwnagotchi同士ですれ違い通信のようなこともできるらしいので、今後いろいろ試していこうかなと