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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ssh-chatter — モダンCで書かれたssh-chat | Kitploit
ツール/GitHubGitHub/gosuda/ssh-chatter
暗号化/復号化ツールスクリプトと自動化ネットワークセキュリティCTFプライバシーユーティリティとフレームワーク認証学習と教育AIセキュリティ
GitHubgosuda/ssh-chatter

ssh-chatter

モダンCで書かれたssh-chat

3321919時間31分前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

SSH-Chatter: C言語によるTUI掲示板システム

Logo

ssh [email protected]

汎用BBSソフトウェア

SSH-Chatterは、Go言語で書かれたssh-chatサーバーをC言語で再実装したものから始まりました。現代的なC言語のパターンと、小さくてテスト可能なコアを使用しながら、元の動作を模倣・拡張しています。サーバーはSSH/TELNET接続を待ち受け、認証された各ユーザーを共有チャットルームに配置し、Go参照実装と同じコマンドインターフェースを提供します。

なぜC言語を理解するのに時間がかかるのか知っていますか?それは本能だからです。

最近の機能強化

  • ターミナルで使いやすいRSSリーダー:/rss list、/rss read <tag>、さらに/rss add <url> <tag>および/rss del <tag>(オペレーターのみ)で、ルーム内で一緒に見出しを閲覧できます。
  • Gemini/Ollamaのモデレーションバックエンドを使用して犯罪や有害な内容を宣伝する投稿を削除するバックグラウンドBBS監視スレッド、さらに特定のチャット履歴をクリアするための/delete-msg。
  • /bbsコマンドで、タグ、コメント、バンプ、マルチラインコンポーザーを備えた没入型レトロ掲示板システムを利用可能。
    • 動的ソート (Reddit/Discordスタイル): list [hot|top|new|bumped|all] を使用して、bumped(最近の活動)、hot(スコアとコメントでトレンド)、top(最高の正味アップ投票スコア)、new(作成日)で投稿を表示。
    • 検索 (Google検索感覚): search <query> で投稿タイトル、本文、作者、タグを大文字小文字区別なく即座に検索。
    • アップ投票/コメントバッジ (Reddit/Discordスタイル): リスト内に直接、正味アップ投票スコアとコメント数を色付きステータスバッジ(▲ 12 💬 5)で表示。
    • シームレスなナビゲーション: 投稿を読んでいる間にEnterキーを押すとダッシュボードリストに即座に戻り、リスト画面からEnterキーを押すとリストを更新。BBSモード内では/bbsプレフィックスなしでコマンドを自動ルーティング。
  • /asciiartライブコンポーザー:640行制限、IPごとに10分間のクールダウン、複数行出力、Ctrl+Aでキャンセル、Ctrl+Sまたはロケール対応の>/__ARTWORK_END>デフォルトで送信するキーボードショートカット。
  • /birthdayで誕生日を登録、/grant <ip>でLANオペレーターがアドレスごとに権限を委任、/revoke <ip>でトップLAN管理者がそれらを取り戻す。
  • チャットUIのリフレッシュ:履歴と入力の間にクリーンな区切り、送信後の即時入力クリア、フレンドリーな「Wait for a moment...」バナー
  • 簡単な比較と言語ベースの名前カウントを特徴とするフレンドリーな多言語キャプチャ。
  • 非ラテン文字のニックネームサポート拡張、さらにユーザー名とともに生のIPアドレスを受け付ける/banのアップグレード。
  • /weather <city> で簡単な世界の天気予報。
  • 投票、ステータスメッセージ、Elizaモデレーターを削除して簡素化されたエクスペリエンス。

プレビュー

Preview

Preview

リポジトリ構成

コードベースは意図的にコンパクトに保たれており、新しいコントリビューターが迅速にナビゲートできます:

PathDescription
src/main.cコマンドライン解析とプロセスのブートストラップ(バインドアドレス、ポート、MOTD、ホスト鍵ディレクトリ)。
src/host_aggregate.c, include/ssh_chatter/host.hチャットホスト実装 – セッションライフサイクル、MOTD処理、将来のメッセージブロードキャストロジックのフック。
src/hostsrc/host_aggregate.cを通じて単一の翻訳単位にコンパイルされるモジュラーホストサブシステム。
include/ssh_chatterデーモン、ストレステストツール、翻訳バックエンドの共有ヘッダー。
include/ssh_chatter/contexts接続ごとの状態をカプセル化するsession_ctx_tおよび関連構造体の定義。
data/banner/bannerCHATTER_WELCOME_BANNERで指定可能なサンプルウェルカムバナー。
scripts/install_chatter_service.shバイナリをビルドし、/usr/local/binにインストールし、systemdユニット(chatter.service)を設定する便利なインストーラ。
scripts/install_dependencies.shDebian/Ubuntuシステムのビルド前提条件の最小パッケージインストーラ。

アーキテクチャ

Architecture

mainとの同期を維持する

workブランチは定期的に上流の開発から分岐し、大きな機能が本番トラフィックを妨げずに育成できるようにしています。mainと同期する時期が来たら、最新のツリーをプルしてローカルでマージしてからプルリクエストを開いてください:```bash git fetch origin main git checkout work git merge --no-ff origin/main

競合はその場で解決してください(`src/host_aggregate.c` ヘルパールーチンは既に `main` で使用されているレイアウトを反映しているため、マージは通常簡単です)。結果をプッシュする前に `make` を実行してビルドが成功することを確認してください。

## 自動化フック

- `host_snapshot_last_captcha` は、最新に生成されたキャプチャプロンプトと回答をタイムスタンプとともに公開し、外部クライアントが無人自動化に代わってチャレンジを通過できるようにします。

## セキュリティ強化

- `scripts/safe_permission.sh` は、ランタイムデータファイル(BBS状態、投票状態、クールダウンスナップショット、一般チャッター状態)の所有者とモードを厳格化します。デプロイ後に実行して、データディレクトリを `ssh-chatter` に限定し、各ファイルが `0600` に設定されていることを確認します。明示的なパスを渡すか、実行前に `STATE_ROOT` または対応する `CHATTER_*_FILE` 環境変数をエクスポートしてターゲットを上書きします。
- バックグラウンドのBBS watchdogは、定期的に投稿とコメントをAIモデレーションパイプライン(プライマリはGemini、フォールバックはOllama)に送信します。フラグが立てられた投稿は自動的に削除され、ルームに通知がブロードキャストされます。
- チャットメッセージ、ASCIIアート、BBSの投稿/コメントはAIモデレーションパイプラインを通過します。`CHATTER_SECURITY_AI=on` で有効にします(Geminiの場合は `GEMINI_API_KEY` を設定。デーモンは自動的にローカルのOllamaエンドポイント `http://127.0.0.1:11434` にフォールバックします)。`CHATTER_SECURITY_FILTER=off` ですべて無効にします。すべてのプロバイダが失敗した場合、フィルタは自動的に無効になり、コンテンツを静かにドロップする代わりに会話を継続させます。
- SSHトランスポートは最新の鍵交換、暗号、MACに固定されており、すべてのブリッジペイロードは三重のAES-256-GCMオニオンでラップされるため、リレーは暗号文のみを認識します。
- レイヤーフィルタに引っかかった不審な投稿はIPごとに追跡され、有効にすると繰り返しのヒットが自動キックと禁止をトリガーします。一方、高速再接続検出器はより長い回復ウィンドウを許可するため、不安定なネットワークセッションがペナルティを受けることなく再接続できます。自動禁止エントリはデフォルトで**オフ**です。`CHATTER_AUTO_BAN=on`(または `true`/`1`)を設定して有効にするか、変数を未設定のままにして、自動禁止エントリを書き込まずに警告とスロットリングを維持します。
- オペレーターは `CHATTER_PROTECTED_IPS`(カンマ区切り、デフォルトは `127.0.0.1,::1,192.168.0.1`)を使用して信頼できる入口ポイント(VPN出口、リバースプロキシ、localhost)をマークできるため、緊急禁止によってデーモンが自身のコントロールプレーンからロックアウトされることはありません。

## ファイルストレージと転送

- すべてのユーザー管理ファイルは `/etc/ssh-chatter/user-files` に配置されます(`CHATTER_FILESTORE_PATH` で上書き、レガシーフォールバック: `CHATTER_FILE_STORAGE_ROOT`)。デーモンは必要に応じてディレクトリを作成し、アップロードをそのディレクトリ内に限定します。
- SSHクライアントはカスタムラッパーなしで標準の `scp` を使用します。`/name.ext` をストレージツリーのルートとして扱います。`scp my.zip user@host:/demos/my.zip` は `/etc/ssh-chatter/user-files/demos/my.zip` に書き込み、`scp user@host:/readme.txt ./` は `/etc/ssh-chatter/user-files/readme.txt` をダウンロードします。
- TELNETクライアントは新しい `/filestore` コマンドを使用します。`/filestore` は利用可能なファイルを一覧表示し、`/filestore-upload` は `rz` セッションを開始し、`/filestore-download <name>` は `sz` セッションを開始します。サーバーに `lrzsz`(または `rz`/`sz` を提供する任意のパッケージ)をインストールして、ZMODEMバックエンドがこれらのヘルパーを起動できるようにします。
- `/filestore-upload` はオプションの保存先を受け付けます(例: `/filestore-upload /kitten/meow.png`)。SSH-Chatterは `/kitten` ディレクトリを自動的に作成し、アップロードされたファイルをそこに配置します。これはSCPが `user@host:/kitten/meow.png` のようなパスを使用する方法を反映しています。
- 両方のトランスポートは混在して使用できます。SSHは無人スクリプト転送に、TELNETは組み込みZMODEMツールを備えた懐かしいBBSクライアントに適しています。

## モールスリレー
SSH-Chatterはアマチュア無線リレーをサポートしています。これはグローバルモールス信号を表示します。表示するには `/morse on`、送信するには `/morse-reply` を使用します。

### プロトコル詳細

実装はBinkpプロトコル仕様に従います:
- 2バイトヘッダーを持つ標準のBinkpフレーム構造
- セッションパスワード認証 (CMD\_PWD/CMD\_OK)
- 60秒ごとのキープアライブメカニズム (CMD\_NUL)
- メッセージ同期のためのカスタムCHATコマンド (CMD\_CHAT, 拡張)

## 前提条件

プロジェクトのビルドにはPOSIX環境が必要です:

- C23互換コンパイラ(例: `gcc` または `clang`)
- `make`
- `libssh` 開発用ヘッダーとライブラリ(Debian/Ubuntuでは `libssh-dev`)
- `libcurl` 開発用ヘッダーとライブラリ(Debian/Ubuntuでは `libcurl4-openssl-dev`)
- `uchardet` 開発用ヘッダーとライブラリ(Debian/Ubuntuでは `libuchardet-dev`)
- `icu`(International Components for Unicode)開発用ヘッダーとライブラリ(Debian/Ubuntuでは `libicu-dev`)
- `lz4` 圧縮ライブラリと開発用ヘッダー(Debian/Ubuntuでは `liblz4-dev`)
- POSIXスレッド(通常はシステムの `libpthread` によって提供)
- `python3-pygments`(テトリスカモフラージュ画面用の `pygmentize` ハイライターを提供)

Debian/Ubuntuでは、依存関係は以下のようにインストールできます:

``````bash
sudo apt-get update
sudo apt-get install build-essential libssh-dev libcurl4-openssl-dev libuchardet-dev libicu-dev liblz4-dev

ソースからのビルド

リポジトリをクローンし、提供された Makefile を使用してください:```bash make

これにより、リポジトリルートに `ssh-chatter` バイナリと、他のアプリケーションで再利用するための翻訳ヘルパーを公開する共有オブジェクト `libssh_chatter_backend.so` が生成されます。中間生成物は `make clean` でクリーンアップします。

### 共有翻訳バックエンドの使用

この共有オブジェクトは、サーバーのC言語翻訳パイプライン(ANSIプレースホルダーの保存を含む)を再利用するため、他のプロセスは完全なSSHホストを起動せずに翻訳を取得できます。`libssh_chatter_backend.so` にリンクし、`include/ssh_chatter/ssh_chatter_backend.h` をインクルードします:```c
#include "ssh_chatter/ssh_chatter_backend.h"

int main(void) {
  char translated[4096];
  char detected[64];

  if (ssh_chatter_backend_translate_line("Hello, world!", "ko", translated, sizeof(translated), detected, sizeof(detected))) {
    printf("Detected %s -> %s\n", detected, translated);
  }
}

環境変数に GEMINI_API_KEY(およびオプションで GEMINI_API_BASE または GEMINI_MODEL)を設定します。これにより、ヘルパーが Google Generative Language API にアクセスできるようになり、メインデーモンのランタイム要件を反映します。チャットサーバーを起動する前に ./scripts/test_gemini_connection.sh を実行して、資格情報が外部への呼び出しを許可していることを確認できます。スクリプトは Gemini からの生の応答を出力するため、リクエストが成功したかどうかを確認できます。

サーバーを手動で実行する

サーバーはデフォルトで 0.0.0.0:2222 で待機します。利用可能なフラグを使用してランタイムパラメータを調整できます。``` Usage: ./ssh-chatter [-a address] [-p port] [-m motd_file] [-k host_key_dir] [-T telnet_port|off] [-J json_port|off] ./ssh-chatter [-h] ./ssh-chatter [-V]

指定された場合、`-m`は指定されたファイルパスから今日のメッセージを読み取ります。
ツールをダウンロード