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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-17147 — CVE-2019-17147(TP-Link TL-WR841N ルーターのスタックバッファオーバーフロー)の包括的なリバースエンジニアリングおよび悪用。ファームウェア解析、ハードウェアデバッグ、および認証なしリモートコード実行(RCE)のためのステージ化されたシェルコードインジェクションエクスプロイトを含みます。 | Kitploit
ツール/GitHubGitHub/imnot-ye/cve-2019-17147
組み込みシステムセキュリティIoTセキュリティ脆弱性分析エクスプロイトリバースエンジニアリングシェルコードハードウェアハッキングハードウェアセキュリティ論文と研究学習と教育ファームウェア解析バイナリエクスプロイト
447ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHubimnot-ye/cve-2019-17147

CVE-2019-17147

CVE-2019-17147(TP-Link TL-WR841N ルーターのスタックバッファオーバーフロー)の包括的なリバースエンジニアリングおよび悪用。ファームウェア解析、ハードウェアデバッグ、および認証なしリモートコード実行(RCE)のためのステージ化されたシェルコードインジェクションエクスプロイトを含みます。

リポジトリを見る

CVE-2019-17147:TP-Link TL-WR841N エクスプロイト

Banner

概要

このリポジトリは、TP-Link TL-WR841N ルーター(MIPSEL アーキテクチャ)における深刻なリモートコード実行(RCE)脆弱性 CVE-2019-17147 の包括的なリバースエンジニアリングとエクスプロイトを文書化したものです。この脆弱性は httpd Webサーバデーモンに存在し、不適切な入力検証により、カスタムの cstr_strncpy 関数を介して スタックバッファオーバーフロー が発生し、認証なしで任意のコード実行が可能になります。

脆弱性CVE-2019-17147
CVSS v3.18.8 (高)
ベクトルAV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
タイプスタックベースのバッファオーバーフロー
コンポーネント/usr/bin/httpd

インフラストラクチャとツール

分析環境は以下のコンポーネントを使用して構築されました。

  • ハードウェア: TP-Link TL-WR841N ルーター。
  • ハードウェアツール: CH341A プログラマ(SPI フラッシュダンプ)、USB-TTL コンバータ(UART コンソール)、SOIC8 クリップ。
  • ソフトウェアツール: flashrom(メモリダンプ)、binwalk(ファームウェア抽出)、IDA Pro(静的解析)、GDB-Multiarch(リモートデバッグ)、QEMU(MIPSEL エミュレーション)。
  • ファームウェアバージョン: TL-WR841N(US)_V14_180319。

技術的分析

1. 静的解析

この脆弱性は /usr/bin/httpd バイナリで特定されました。IDA Pro による静的解析により、HTTP ヘッダー(特に Host ヘッダー)の解析中に使用されるカスタム文字列コピー関数 cstr_strncpy が明らかになりました。

IDA Graph

関数 cstr_strncpy は、コピー先 バッファサイズではなく、コピー元 文字列の長さから導出された copy_len パラメータを受け入れます。これにより、過度に長いヘッダーが指定された場合、古典的なスタックバッファオーバーフローが発生します。さらに、リンクリスト構造を操作する http_parser_argStrToList 関数がこのオーバーフローの影響を受け、next および prev ポインタを制御できるようになります。

2. 動的解析

gdbserver を使用したランタイムデバッグにより、クラッシュと実行フローの制御が確認されました。メモリマップ (vmmap) 解析により、重大なハードニングの欠如が明らかになりました:

  • ヒープ: RWX (読み取り、書き込み、実行) 権限。
  • ASLR: このバイナリに対しては制限的/効果が低い。
  • NX: 無効。

VMMap

この構成により、ヒープ上に配置されたシェルコードの直接実行が可能になり、複雑な ROP チェーンが不要になります。

エクスプロイト戦略

エクスプロイトチェーンは、破損したリンクリストポインタから派生した Write-What-Where プリミティブを利用して RCE を達成します。

  1. ヒープスプレー: シェルコードがヒープに注入されます。ヒープはリクエスト間で永続するため、これは段階的に行えます。
  2. 段階的注入: strcpy のヌルバイト制限を回避するため、ペイロードは複数のリクエストで送信されます:
    • ステージ 1: シェルコードアドレスをステージング領域に書き込みます。
    • ステージ 2: ターゲット GOT アドレスをステージング領域に書き込みます。
  3. GOT 上書き: グローバルオフセットテーブル (GOT) 内の atol 関数エントリがシェルコードのアドレスで上書きされます。
  4. 実行トリガー: エクスプロイトは atol への呼び出しを強制し(Content-Length ヘッダーを介して)、実行を注入されたシェルコードにリダイレクトします。

Exploit Diagram

エクスプロイトの検証

最終的な Python スクリプトは攻撃を自動化し、ポート 31337 でルートシェルを起動します。

Root Shell

緩和策

脆弱性は、バッファ管理における安全でないコーディング慣行に起因します。

  • ソースコード修正: cstr_strncpy の使用を、コピー先バッファの制限を厳格に強制する安全な代替手段(例:sizeof(dest) に基づく明示的な境界チェック付きの strncpy)に置き換えます。
  • バイナリのハードニング: NX (No-Execute) を有効にして、スタックとヒープでのコード実行を防止します。完全な ASLR と PIE (Position Independent Executable) を有効にして、メモリレイアウトをランダム化します。

完全なドキュメント

プロセス全体の詳細なステップバイステップのウォークスルーについては(コード分析や環境セットアップを含む)、このリポジトリに含まれる完全なガイドを参照してください:

  • 🇮🇹 Guida Completa (Italiano)
  • 🇬🇧 Full Guide (English)

著者

  • Angelo Zullo
  • Simone Vitto
  • Vincenzo Cantatore

免責事項

このプロジェクトは教育および研究目的のみを対象としています。提供される情報は、IoT デバイスのセキュリティを向上させることを目的としています。著者は、ここに含まれる情報やコードの誤用について一切責任を負いません。


Based on original research and analysis.

ツールをダウンロード