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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2018-10933 — CTFチャレンジ:CVE-2018-10933 libSSH認証バイパスを悪用。Dockerセットアップ、エクスプロイトスクリプト、およびシンボリックリンクを介した隠しフラグ発見のためのウォークスルーを含む。 | Kitploit
ツール/GitHubGitHub/silasspringer/cve-2018-10933
脆弱性分析エクスプロイトCTF学習と教育バイナリエクスプロイトラボと実践
GitHubsilasspringer/cve-2018-10933

CVE-2018-10933

CTFチャレンジ:CVE-2018-10933 libSSH認証バイパスを悪用。Dockerセットアップ、エクスプロイトスクリプト、およびシンボリックリンクを介した隠しフラグ発見のためのウォークスルーを含む。

リポジトリを見る
3年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

概念実証 CTFチャレンジ

著者: Silas Springer

CVE-2018-10933 に基づく

背景

CVE-2018-10933 は libSSH の特定のバージョンで発見された脆弱性であり、潜在的に無制限のマシンアクセスを許可する可能性があります。この脆弱性は、認証プロセス中のパケットヘッダの不適切な処理に起因し、MSG_USERAUTH_SUCCESS バイトを含む細工されたパケットを送信することで、誰でも認証を回避できるようになります。その後、マシンへの完全なアクセス権を得ます。

このチャレンジの基礎は、競技者に提供された Docker イメージを調査させ、この脆弱性を発見し、それを悪用してアクセスを獲得し、その後、マシン上のシンボリックリンクに隠されたキーを見つけることを要求することです。

例: CTF チャレンジの説明

root@kitploit:~
Someone got into my machine via port 22...
It looks like they didnt even know my credentials.

Anyways, they made a file with an odd name, but it's gone now, 
I wonder if there's still some trace of the filename - 
it might be something symbolic of the attacker...

Can you figure out how they got in and help me find the filename?

解法

以下は、意図された解法の詳細な手順です。

チャレンジの説明から、攻撃者が SSH 用に通常予約されているポート 22 を介してアクセスしたことに注目してください。また、攻撃者が認証情報を使用せずにアクセスしたことにも注目してください。

これから、SSH 経由で認証情報なしでマシンにアクセスする過去のバグを探すと、MSG_USERAUTH_SUCCESS バイトの問題がかなり可能性が高いです。あるいは、ポート 22 への接続を開始することで、実行されている libSSH のバージョンを特定し、そのバージョンに対する一般的なエクスプロイトを探すことができます。

説明から、探しているファイル名(フラグ)は シンボリック リンクのターゲットとしてのみ存在することもわかります。

この脆弱性を悪用することでアクセスが得られることがわかったので、独自のスクリプトを作成するか、このエクスプロイトを実行できるサンプルスクリプトをコピーして、ターゲットマシン上でコマンドを実行することができます。この解法のためにエクスプロイトスクリプトを改造し、libsshauthbypass.py と名付けました。

デモイメージの場合、このスクリプトを実行してマシンからフラグを取得するには、次のようなコマンドを実行するとよいでしょう。

root@kitploit:~
./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
-- これは、イメージがローカルで実行されているか、localhost:1337 を介して実行中のコンテナへのトンネルが確立されていることを前提としています。

これにより、次のような出力が得られます。

root@kitploit:~
sspringer-fedora-CVE: ./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
INFO:paramiko.transport:Connected (version 2.0, client libssh_0.8.1)
definitelyarealCTF{totally_a_REAL_flag}

再利用

このチャレンジを自分の CTF で使用するには、Dockerfile を変更してデフォルトとは異なるパスを使用し、flag.txt のフラグを変更した上で(ただし、1行である必要があります)、イメージを再構築することを強くお勧めします。破壊的なコマンドを実行してすべての参加者に影響を与えることを防ぐために、接続試行ごとに新しいコンテナをホストする必要がある場合があることに注意してください。

新しいフラグで Docker イメージを再構築するには(およびテストするには)

  • flag.txt を新しいフラグで更新する
  • ./build_run <イメージ名>[:<バージョン番号] <ポート番号> を実行する
  • ./libsshauthbypass.py または独自のスクリプトを使用して、正しいペイロードと実行したいコマンドでコンテナに接続する
  • build_run スクリプトが提供するシェルを exit すると、コンテナはシャットダウンされて削除されますが、イメージは残り、<イメージ名> としてタグ付けされます

動画

概念実証: https://youtu.be/ELrOBm02ANg

チャレンジのウォークスルー: https://youtu.be/Ii121piSZR0

ツールをダウンロード