takashimakazuki / illumi-packet

Illuminating Packets on an Ethernet Cable using LED Strip.

Home Page:https://souring001.github.io/sec-museum

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

イルミパケット

通信パケットを可視化するLANケーブル

English

illumi-packet

動画 (YouTube)

概要

イルミパケットは、通信パケットの種類と方向に合わせて、まるでパケットが流れたかのようにケーブルが光ります。

ARPのパケットはオレンジ色、DHCPのパケットは水色のように光ります。

通常のパケット解析に使われるツールはリアルタイムで目で追うことが難しいのに対し、これはパソコンを操作しながらパケットを観察できるので、「どういう操作」をした時に「どういうパケット」が発生するのかを体感することができます。

例えば、ウェブサイトにアクセスした時は、緑(DNS)と青(TCP)の光が複数個流れます。

color

準備

必要なもの

材料 諸注意
LEDテープ(WS281B) 1m 個別アドレス可能・フルカラーのもの.144LEDs/m 推奨.
Raspberry Pi 1台 動作確認: Raspberry Pi 2, 3, 4
LANケーブル 1m
ジャンパ線 オス-メス 3本
結束バンド 4本

そのほかに,キーボード,ディスプレイ,HDMIケーブル,ルータ等はご用意ください.

環境設定

動作には以下の環境が必要です.

  • golang
  • libpcap
  • SCons
  • rpi_ws281x
  • illumi-packet

golangのインストール

実行するプログラムはgo言語で記述されています.

https://golang.org/doc/install#install に従ってインストールします.

以下のようにターミナルで実行し,最後にバージョンが表示されることを確認してください.

$ version=1.13.4
$ wget https://storage.googleapis.com/golang/go${version}.linux-armv6l.tar.gz
$ sudo tar -C /usr/local -xzf go${version}.linux-armv6l.tar.gz

$ echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.profile
$ . ~/.profile

$ go version
go version go1.13.4 linux/arm

libpcapのインストール

プログラムからパケットキャプチャを行うためにlibpcapをインストールします.

$ sudo apt-get install libpcap-dev

SConsのインストール

rpi_ws281xをビルドするためにSConsをインストールします.

$ sudo apt-get install scons

rpi_ws281xのインストール

LEDテープはrpi_ws281xというライブラリで操作します.

https://github.com/jgarff/rpi_ws281x に従ってインストールします.

$ git clone https://github.com/jgarff/rpi_ws281x.git
$ cd rpi_ws281x
$ scons

$ sudo cp -ai ./ws2811.h ./rpihw.h ./pwm.h /usr/local/include/
$ sudo cp -ai ./libws2811.a /usr/local/lib/

イルミパケットのソースコード

このリポジトリのソースコードを適当なディレクトリにダウンロードします.

$ git clone https://github.com/souring001/illumi-packet.git
$ cd illumi-packet

LEDの個数によってillumi-packet.goの以下の変数を適宜変更してください.

LEDの個数 count speed series
60 個/m 60 1 6
144 個/m 144 4 12
144 個/m (50cm) 72 1 12

LANケーブルの作り方

  1. LANケーブルにLEDテープを乗せて,結束バンドで固定する.
  2. ジャンパワイヤ(オス側)を挿し込む
  3. メス側を Raspberry Pi のGPIOの2(5V), 6(GND), 12(信号) に挿し込む
  4. Raspberry Piとルータに接続する

GPIO_Outline

GPIO

ビルド方法

ソースコードを変更するたびにビルドをする必要があります.

$ go build illumi-packet.go

起動

$ sudo ./illumi-packet

Ctrl+Cで終了します.

オプション

オプション 内容
-h オプションの説明
-debug パケット情報等の詳細を出力する(デフォルトはtrue)
-device [string] ネットワークインターフェースを設定(デフォルトはeth0)
-speed [int] パケットの流れる速度を設定(デフォルトは1)
-narp ARPを表示しない
-ntcp TCPを表示しない
-nudp UDPを表示しない
-reset 点灯中のLEDの表示を消す
-ipaddr IPアドレスをLEDに表示する

TCP, UDPのパケットを表示しない.

$ sudo ./illumi-packet -nudp -ntcp

パケット情報等の詳細を出力しない.

$ sudo ./illumi-packet -debug=false

Wi-Fiの通信を可視化する.

$ sudo ./illumi-packet -device wlan0

IPアドレスをLEDに表示する.

$ sudo ./illumi-packet -ipaddr

showipaddress

LEDの表示を消す.

$ sudo ./illumi-packet -reset

LICENSE

クリエイティブ・コモンズ・ライセンス

麻生 航平 作『イルミパケット』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。

  • 改変・再配布自由
  • クレジット表示必須

自サイトで使用例を紹介させていただく場合があります。
クレジット表示・自サイトでの紹介を希望されない場合は、お問い合わせください。

CONTACT

Twitter: @souring001

ILLUMI PACKET
Copyright (c) 2019, Kohei Aso

About

Illuminating Packets on an Ethernet Cable using LED Strip.

https://souring001.github.io/sec-museum

License:Creative Commons Attribution 4.0 International


Languages

Language:Go 100.0%