Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
packetStrider — SSH用ネットワークパケットフォレンジックツール | Kitploit
ツール/GitHubGitHub/benjeems/packetstrider
パケットスニッフィングと分析ネットワークフォレンジックフォレンジックペネトレーションテスト機械学習侵入検知レッドチーミング異常検知
GitHubbenjeems/packetstrider

packetStrider

SSH用ネットワークパケットフォレンジックツール

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Packet Strider (v0.21)

alt text

概要

packetStrider for SSH は、SSH トラフィックの性質に関する貴重な洞察を提供するパケットフォレンジックツールです。これまで暗闇に隠されていた SSH ネットワークトラフィックの隅々に光を当て、情報の金塊を明らかにします。

packetStrider が解決しようとする問題(通称:なぜ?)

SSH は暗号化されていますが、ネットワークトラフィックには依然として貴重なコンテキスト情報が存在し、TTP、意図、成功、行動目標に対するアクションの規模に役立ちます。ホストから貴重なコンテキストが利用できない、または削除されている場合でも、変更不可能で改ざんできないパッシブネットワークキャプチャがあれば、追加のフォレンジックコンテキストが得られます。「パケットは嘘をつかない」。

フォレンジックコンテキストとは別に、packetStrider の予測はアクティブな方法でも使用できます。例えば、トンネルされたリバース SSH セッション開始機能が予測された場合、リバース認証が提供される前であっても、フォワード接続をシャン/RST することができます。

packetStrider の大まかな手法(通称:どのように?)

  • 豊富な特徴セットを pandas データフレームとして構築します。SSH プロトコルメッセージ内容、正規化された統計、方向、サイズ、遅延、スライディングウィンドウ特徴など、40 以上の特徴がパケットメタデータから作成されます。
  • この特徴セットをスライディングウィンドウ(畳み込みニューラルネットワークに着想を得た)を使用して複数回ストライドし、以下を予測します:
    • フォワードセッションでの -R オプションの使用 - これにより、後でセッションでリバース接続が可能になります。このアーティファクトはセッションの非常に早い段階、フォワードセッションの認証直後に発見されます。これはリバースセッションが可能である最初の警告サインです。
    • リバース SSH セッションの開始。これはフォワードセッションの任意の時点(早いか遅いか)で発生する可能性があります。これはリバースセッションが認証される前に発見されます。これは 2 番目の警告サインであり、リバースセッションが要求され、認証のためにセットアップされたことを示します。
    • リバースセッション認証の成功および/または失敗。これは 3 番目で最後の警告サインです。この後、誰かがあなたのホストにリバースセッション内にいることがわかります。
    • -A オプション(SSH エージェント転送)の使用。これにより、クライアントはローカルの SSH 秘密鍵をサーバーと共有できます。この機能は一般的に危険と見なされています。 参考文献: https://matrix.org/blog/2019/05/08/post-mortem-and-remediations-for-apr-11-security-incident
https://skylightcyber.com/2019/09/26/all-your-cloud-are-belong-to-us-cve-2019-12491/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12491
  • ストリームごとのすべての予測とメタデータレポート。
  • 人間またはスクリプトによる、タイミングデルタに基づく。
  • サーバーはクライアントにとって既知か?それとも、両者の間で最初の接続か?これは known_hosts に関連するパケットデルタを通じて行われます。
  • クライアント証明書またはパスワード認証のどちらが使用されたか、およびパスワードの長さが 8 文字以下かどうか。
  • キーストローク、削除キー押下、エンターキー押下(切り取りと貼り付け、上下キーは YMMV/実験的)。
  • フォワードセッションとリバースセッションの両方でのデータ流出/侵入移動予測。
  • インタラクティブセッションだけでなく、ファイルベースの SSH ファイル転送アプリ(scp、putty、cyberduck など)でも動作します。
  • はじめに

    Python3 を使用しており、以下のモジュールが必要です(Python2 では YMMV)。

    pip3 install pandas matplotlib pyshark

    使用方法:

    python3 packetStrider-ssh.py -h

    出力:

    root@kitploit:~
    usage: packetStrider-ssh.py [-h] [-f FILE] [-n NSTREAM] [-m] [-k] [-p]
                                 [-z ZOOM] [-d DIRECTION] [-o OUTPUT_DIR]
                                 [-w WINDOW] [-s STRIDE]
    
    packetStrider-ssh is a packet forensics tool for SSH. It creates a rich
    feature set from packet metadata such SSH Protocol message content, direction,
    size, latency and sequencing. It performs pattern matching on these features,
    using statistical analysis, and sliding windows to predict session initiation,
    keystrokes, human/script behavior, password length, use of client
    certificates, context into the historic nature of client/server contact and
    exfil/infil data movement characteristics in both Forward and Reverse sessions
    
    optional arguments:
      -h, --help            show this help message and exit
      -f FILE, --file FILE  pcap file to analyze
      -n NSTREAM, --nstream NSTREAM
                            Perform analysis only on stream n
      -m, --metaonly        Display stream metadata only
      -k, --keystrokes      Perform keystroke prediction
      -p, --predict_plot    Plot data movement and keystrokes
      -z ZOOM, --zoom ZOOM  Narrow down/zoom the analysis and plotting to only
                            packets "x-y"
      -d DIRECTION, --direction DIRECTION
                            Perform analysis on SSH direction : "forward",
                            "reverse" OR "both"
      -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                            Directory to output plots
      -w WINDOW, --window WINDOW
                            Sliding window size, # of packets to side of window
                            center packet, default is 2
      -s STRIDE, --stride STRIDE
                            Stride between sliding windows, default is 1
    

    例

    pcap ファイル「forward_reverse.pcap」は、リバース SSH シェルという一般的な TTP からのもので、赤チームの大好物です。具体的には、以下のコマンドが使用され、packetStrider の機能を簡単に示しています:

    • 被害者からのフォワード接続

      • フォワードセッションのコマンドは ssh [email protected] -R 31337:localhost:22 で、ローカルポート 31337 をバインドし、リバース SSH 接続が被害者 PC に戻る準備をします。この接続は、手動、RCE、SSRF、または何らかの永続化など、さまざまな方法で実行できます。このデモでは、手動の標準フォワードセッションです。
      • これはクライアントがサーバーを見た最初の接続ではありません。関連パケットのデルタが非常に小さいことからわかります。サーバーの鍵フィンガープリントはすでにクライアントの known_hosts にあったため、ユーザーは追加を求められませんでした。これによりパケットの遅延が増加します。
      • 人間による 2 回連続の失敗したパスワードログインの後、8 文字以上のパスワードで成功したログインがあります。
      • フォワードセッションで ls が入力されます。そのシーケンスは 'l' 'w' 'w' 'back-space' 'back-space' 's' で、その後エンターです。転送されるデータの総サイズ(ls の出力として)は、受信であるため侵入として分類されます。
    • 次に、攻撃者のマシン(サーバー)で、被害者へのリバースシェルが開始されます:

      • ssh victim@localhost -p 31337。この時点で、認証プロセスが開始される前であっても、packetStrider はパケット 72 でリバース SSH セッションの開始を識別しています。
      • これで攻撃者は被害者ホスト上にリバースシェルを持ちます。ここから履歴設定をオフにし、横移動や荒らし行為など好きなことを実行できます。このデモの簡単な例は、初期ユーザー偵察です。
      • last がキーストローク 'l' 'a' 's' 'r' 'delete' 't' 'enter' の形式で実行されます。
      • who が 'w' 'h' 'o' 'enter' の形式で実行されます。
      • exit が 'e' 'x' 'i' 't' の形式で実行されます。
    • 最後に、フォワードセッションが閉じられます。これはフォワード SSH の特徴検出がまだ機能することを示すためです。

      • exit

    このアクティビティからのネットワークトラフィックは tcpdump.pcap に保存され、Packet Strider を実行します。

    python3 packetStrider-ssh.py -f tcpdump.pcap -k -p -o out

    スクリーン出力

    このプロットは主要な予測のタイムラインを示しています(画像には注釈が追加されています) キーストロークタイムライン

    このプロットは、いくつかのウィンドウ統計を示しており、深掘りや特徴の実験に役立ちます。 データ移動パケット統計

    このプロットは単純なヒストグラムを示しています。 シンプルなパケットヒストグラム

    インスピレーション

    このプロジェクトは個人的な Proof of Concept として行われ、Python のデータサイエンスライブラリを練習する方法として、特に pandas ライブラリと畳み込みニューラルネットワーク(CNN)がスライディングウィンドウを使用して画像のピクセルセットを「ストライド」し特定の特徴を検出する方法に強く触発されました。

    ヒント

    packetStrider はフルキャパシティモードで大量の「ストライド」を行います。そのため、pcap が大きい場合、またはより正確には pcap 内のパケット数が多い場合、リソース使用量がかなり大きくなることがあります。以下に高速化のヒントを示します。これらは、例えばリバース SSH アクティビティが予測されたかどうかを確認するためだけの初期実行に特に役立ち、その後必要に応じて機能を追加できます。

    • 重い処理を行うモジュール(pyshark/tshark、pandas、matplotlib など)の最新パッチで実行していることを確認してください。
    • -p --predict_plot オプションは最も負荷の高い操作です。まずは端末への出力のみで実行し、プロットが必要かどうかを検討してください。
    • -m --metaonly オプションを使用します。これにより、プロトコル名や HASSH データなどの高レベルメタデータのみが取得されます。OpenSSH を使用したインタラクティブセッションなのか、Cyberduck のようなファイル転送クライアントなのかを迅速に判断するのに役立ちます。
    • pcap を SSH トラフィックに事前フィルタリングします。
    • 目的のストリームに pcap を事前フィルタリングします。これは、以前に高速な -m --metaonly オプションで実行して学習した可能性があります。 "-n NSTREAM" オプションでストリーム "NSTREAM" のみを調査するか、Wireshark などで事前フィルタリングできます。
    • 非常に大きなパケットセットのサブセットで興味深いものを見つけた場合があります。その場合は、ズーム機能を使用して、関心のある領域のパケットのみを調査およびプロットできます。これには -z ZOOM、--zoom ZOOM を使用します。例:-z 100-500
    • ほとんどの場合、キーストロークアクティビティを理解することに関心があるでしょう。そのため、-k オプションを使用しないと処理速度は向上しますが、この貴重な洞察が得られなくなります。

    TODO

    • より多くのプロトコル!
    • マルチスレッドを検討し、処理速度の向上に役立つか確認する。
    • スクリプトの効率、特にプロット時間を改善する。
    • 貼り付けインジケーターを改善する。
    • 上下キーインジケーターを改善する。
    • プロットに imagemagick などで注釈を付ける。
    • レポート機能を改善し、ディスクに書き出す。
    • リバースキーインジケーターはパケットのカプセル化のため、2 つのキーストロークを報告する可能性があるため保守的です。この問題はフォワードキーストロークには存在しません。パケットの順序が狂って到着する場合に備えて処理されているためです。オプションを検討する。
    • 高速化のために Go 言語に移植する。
    • リアルタイムモード。
    • フォワード接続を介した追加のトンネリングローカルポートの影響を調査する。

    免責事項

    自己責任で使用してください。ライセンス条項を参照してください。

    ツールをダウンロード