## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SIGNAL-SFOP-SFOP
# Segmentation Fault-Oriented Programming (SFOP)
これは、Segmentation Fault-Oriented Programming 攻撃手法に関する成果物リポジトリです。
## 成果物コレクション
ここでは、このリポジトリ内の成果物について簡単に説明します。全部で8つの成果物があり、6つの PoC エクスプロイトと、実世界のプログラム(Nginx と Ladybird)に対する2つのエクスプロイトで構成されています。
* PoC:
* `bSFOP_ek`: シグナルを登録するチェーンと Early Kill を使用して攻撃を開始する、完全な bSFOP エクスプロイト。
* `bSFOP_fixed`: デバッグがより簡単な bSFOP。シグナルを手動で登録し、手動のフォールト・ガジェットを使用して攻撃を開始します。
* `bSFOP_multistage`: bSFOP_fixed と同じですが、ペイロード全体が最初に送信されるのではなく、複数の部分に分けて読み込まれます。
* `chain`: sigaction を登録するチェーンを使用した、独立した使用例。
* `fSFOP_ek`: シグナルを登録するチェーンと Early Kill を使用して攻撃を開始する、完全な fSFOP エクスプロイト。
* `fSFOP_fixed`: デバッグがより簡単な fSFOP。シグナルを手動で登録し、手動のフォールト・ガジェットを使用して攻撃を開始します。
* `vulnerable-nginx`: CVE-2013-2028 の脆弱性を含む、変更されたバージョンの Nginx。カスタムのシグナル登録チェーンと Early Kill を使用した fSFOP を示します。
* `vulnerable-ladybird`: CVE-2021-4327 の脆弱性を含む、変更されたバージョンの SerenityOS。カスタムのシグナル登録チェーンと Early Kill を使用した fSFOP を示します。
すべてのファイルには、それぞれ専用の README が付属しています。
## 要件
すべての PoC は Docker 化されています。Docker が唯一のソフトウェア要件です。
PoC を実行するには、 _アクティブな_ CET の適用が必要です。
このためには:
* ベアメタルマシンを使用してください。つまり、仮想化環境(Virtualbox、WSL など)を使用しないでください。CET はそこではまだ有効になっていません。
* 第11世代(Tiger Lake)以降の Intel プロセッサを使用してください。AMD プロセッサでも動作する可能性がありますが、テストされていません。
* 安全側に立って、Linux カーネル 6.6 以降を使用してください。
私たちの実験は複数のマシンでテストされています。例えば:
* Ubuntu 24.04、カーネル 6.14、glibc 2.39、Intel i3-14100 x86_64。