Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
laf — このプロジェクトは、LoRaWANインフラストラクチャのセキュリティを監査またはペネトレーションテストするために、一連のLoRaWANパケットを作成、解析、送信、分析、クラックするためのツール群を提供することを目的としています。 | Kitploit
ツール/GitHubGitHub/ioactive/laf
パケットスニッフィングと分析IoTセキュリティ脆弱性分析エクスプロイトファジングワイヤレスセキュリティ暗号化ペネトレーションテスト
GitHubioactive/laf

laf

このプロジェクトは、LoRaWANインフラストラクチャのセキュリティを監査またはペネトレーションテストするために、一連のLoRaWANパケットを作成、解析、送信、分析、クラックするためのツール群を提供することを目的としています。

リポジトリを見る
18737534年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

LoRaWAN 監査フレームワーク - アルファ版

IoTデプロイメントは成長を続けており、その大きな成長の一部は、世界中の何百もの都市(スマートシティ)や産業、家庭に展開された数百万のLPWAN(低消費電力広域ネットワーク)センサーで構成されています。最も使用されているLPWAN技術の1つがLoRaであり、LoRaWANはそのネットワーク標準(MAC層)です。LoRaWANは暗号化を組み込んだ安全なプロトコルですが、実装上の問題や脆弱性が現在のほとんどのデプロイメントのセキュリティに影響を与えています。

このプロジェクトは、LoRaWANインフラストラクチャのセキュリティを監査またはペネトレーションテストするために、一連のLoRaWANパケットを作成、解析、送信、分析、解読するためのツール群を提供することを目的としています。

以下は、このリポジトリの構造です:

|-- tools 
    |-- UdpSender.py
    |-- UdpProxy.py
    |-- TcpProxy.py
    |-- lorawan
        |-- BruteForcer.py
        |-- MicGenerator.py
        |-- PacketCrafter.py
        |-- PacketParser.py
        |-- SessionKeysGenerator.py 
        |-- Loracrack (https://github.com/matiassequeira/Loracrack/tree/master) 
    |-- utils
        |-- DevAddrChanger.py
        |-- Fuzzer.py    
        |-- FileLogger.py
|-- auditing
    |-- datacollectors
        |-- MqttCollector.py
        |-- UdpForwarderProxy.py
    |-- analyzers
        |-- LafProcessData.py
        |-- bruteForcer
            |-- LafBruteforcer.py
            |-- keys
        |-- dataanalysis
            |-- LafPacketAnalysis.py
        |-- printer
            |-- LafPrinter.py
    |-- db
        |-- __init__.py
        |-- Models.py
        |-- Service.py
|-- lorawanwrapper 
        |-- LorawanWrapper.py
        |-- utils 
            |-- jsonUnmarshaler.go
            |-- lorawanWrapper.go
            |-- micGenerator.go
            |-- sessionKeysGenerator.go
|-- scripts
    |-- gateway_channel_changer
        |-- LoRa-GW-Installer.sh
        |-- Continuous-Channel-Switch.sh
        |-- LoRa-GW-Channel-Setup.sh

はじめに

LoRaWAN監査フレームワークを稼働させるためのいくつかのオプションを提供します:

  1. 1つ目は、ローカルにインストールしたい方向けです。主な目的が tools/ ディレクトリにあるペネトレーションテスティングツールを使用することである場合、dockerのポートマッピングの問題を避けるためにこのオプションをお勧めします。
  2. もう1つのオプションは、Dockerコンテナ内で実行したい方向けで、手動で依存関係をインストールする手間が省けます。アナライザを使用したいが、手動で環境をセットアップする時間があまりない場合にこのオプションをお勧めします。
  3. もちろん、LAFをローカルで実行し、sqliteの代わりにDockerコンテナのPostgres DBを使用することもできます。LAFは localhost を介してPostgresに接続しようとします。Dockerのセットアップ手順は以下を参照してください。

LAFをローカル環境にインストールする

以下の手順で、プロジェクトのコピーとその依存関係をローカルマシンに取得できます。以下のコマンドはDebianベースの環境向けです:

  1. このリポジトリをクローン: git clone --recurse-submodules https://github.com/IOActive/laf.git

  2. python3をインストール:

    1. sudo apt-get update
    2. sudo apt-get install python3.6
  3. python依存関係をダウンロードしてインストール:

    1. sudo pip3 install paho-mqtt && sudo pip3 install sqlalchemy && sudo pip3 install psycopg2-binary &&sudo pip3 install python-dateutil
  4. PYTHONPATHとENVIRONMENTを設定:

    1. cd laf && export PYTHONPATH=$(pwd) && export ENVIRONMENT='DEV'
  5. golangをインストールしてセットアップ:

    1. 使用しているオペレーティングシステムに応じて、https://golang.org/dl/ からgolangをダウンロード。
    2. goインストーラがダウンロードされたフォルダに移動: cd ~/Downloads
    3. インストーラを解凍: sudo tar -C /usr/local -xvzf YOUR_GOLANG_FILE
    4. PATHに追加: export PATH=$PATH:/usr/local/go/bin
    5. GOPATHを設定: export GOPATH="$HOME/go"
  6. goライブラリをコンパイル:

    1. cd laf/lorawanwrapper/utils
    2. go build -o lorawanWrapper.so -buildmode=c-shared jsonUnmarshaler.go lorawanWrapper.go micGenerator.go sessionKeysGenerator.go hashGenerator.go
  7. 使用するDBに応じて:

    a. PostgreSQL: 3番目のステップまで 'Dockerを使ってLAFをインストール' の手順に従ってください。

    b. SQLite:

    1. cd laf/auditing/db
    2. お好みのテキストエディタで __init__.py を開き、Postgres用の行(DB接続と環境変数)をコメントアウトし、sqlite用の行をコメント解除します。

これで完了です!

Dockerを使ってLAFをインストールする

この方法では、依存関係のインストールを回避し、ツールがパケットとデータを保存するPostgreSQLデータベースを起動します。 コンテナ:

  • Tools
  • PostgreSQL
  • PgAdmin4

手順:

  1. このリポジトリをクローン: git clone https://github.com/IOActive/laf.git
  2. cd laf/ に移動
  3. コンテナを起動: docker-compose up --build
  4. コンテナ内でツールを使用する場合: docker exec -ti laf_tools_1 /bin/bash
  5. お楽しみください!

pgAdminデータベース接続

pgAdminを使用してデータベース内のデータを確認できます:

まず、pgAdminにアクセス:

  • URL: http://localhost:5001
  • ユーザー: pgadmin
  • パスワード: pgadmin

次に、サーバーを追加:

  • ホスト: db
  • ポート: 5432
  • ユーザー: postgres
  • パスワード: postgres

ツールの説明

以下は、ディレクトリとその中のツール/機能の説明です。

/tools

このディレクトリにあるツールの主な目的は、LoRaWANインフラストラクチャに対するペネトレーションテストの実行を容易にすることです。

UdpSender.py

このツールは、アップリンクパケット(インフラに応じてネットワークサーバーまたはゲートウェイブリッジへ)またはダウンリンクパケット(パケットフォワーダーへ)を送信するためのものです。オプションで、パケットをファズし、有効なMICを計算できます。

オプション引数:

-h, --help            このヘルプメッセージを表示して終了
--lcl-port LCL_PORT   ソースポート、例: --lcl-port=623
--timeout TIMEOUT     送信するパケット間の時間(秒)。デフォルトは
                        1秒。この間、送信者は応答を待ちます。
--repeat              メッセージを複数回送信
--fuzz-out FUZZ_OUT [FUZZ_OUT ...]
                        送信先ポートに送信するデータをファズ(ファジングモードは
                        utils/fuzzer.py を参照)、例: --fuzz-out 1 2
--key KEY             パケットに署名するための鍵(16進形式、合計32文字
                        / 16バイト)を入力し、新しいMICを計算して追加します。
                        JoinRequestsの場合はAppKey、データパケットの場合はNwkSKeyでなければならないことに注意してください。
                        これは事前にこのプログラムで検証できません。例:
                        00112233445566778899AABBCCDDEEFF
-a DEVADDR, --devaddr DEVADDR
                        なりすますデバイスアドレス。16進形式(合計8文字)で指定、
                        例: AABB0011
--fcnt FCNT           指定されたデータパケットに設定するフレームカウンタ。
                        これはJoinRequest/JoinAcceptでは機能しません。これらのパケットにはfCntがないためです。

必須引数:

--dst-ip DST_IP       送信先IP、例: --dst-ip 192.168.3.101
--dst-port DST_PORT   送信先ポート、例: --dst-port 623
--data DATA           UDPパケット。このスクリプトの最後にある "data" 配列にさらにパケットを追加することもできます。
                        パケットはバイト文字列でなければなりません(二重引用符はエスケープする必要があります)。
                        ***例*** パケットフォワーダー形式: --data "b'\x02\xe67\x00\xb8\'\xeb\xff\xfez\x80
                        \xdb{\"rxpk\":[{\"tmst\":2749728315,\"chan\":0,\"rfch\
                        ":0,\"freq\":902.300000,\"stat\":1,\"modu\":\"LORA\",\
                        "datr\":\"SF7BW125\",\"codr\":\"4/5\",\"lsnr\":9.5,\"r
                        ssi\":-76,\"size\":23,\"data\":\"AMQAAAAAhQAAAgAAAAAAA
                        ACH9PRMJi4=\"}]}'" ***例*** gatevice [GV] 形式で即時モード、
                        BW125、周波数902.3で送信: "b'{\"tx_mode\": 0, \"freq\": 902.3,
                        \"rfch\": 0, \"modu\": 16, \"datarate\": 16,
                        \"bandwidth\":3, \"codr\": 1, \"ipol\":false,
                        \"size\": 24, \"data\":
                        \"QOOL8AGA6AMCnudJqz3syCkeooCvqbSn\", \"class\": 2}'"

例:

2秒ごとに1つのパケットを(localhost, 10001)にポート10000から送信し、MICとFCounterをランダムにファズ:

python3 UdpSender.py --lcl-port 10000 --dst-ip 127.0.0.1 --dst-port 10001 --timeout 2 --fuzz-out 4 5 --data "b'\x02\xe67\x00\xb8\'\xeb\xff\xfez\x80\xdb{\"rxpk\":[{\"tmst\":2749728315,\"chan\":0,\"rfch\":0,\"freq\":902.300000,\"stat\":1\"modu\":\"LORA\",\"datr\":\"SF7BW125\",\"codr\":\"4/5\",\"lsnr\":9.5,\"rssi\":-76,\"size\":23,\"data\":\"AMQAAAAAhQAAAgAAAAAAAACH9PRMJi4=\"}]}'"

UdpProxy.py

このUDPプロキシは主に、一連のゲートウェイ(パケットフォワーダー)とネットワークサーバーまたはゲートウェイブリッジ(評価中のインフラに応じて)の間に配置するためのものです。また、希望する方向(アップリンクまたはダウンリンク)でデータをファズする機能も提供します。

オプション引数:

ツールをダウンロード