Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-17147_Practice_Material — このリポジトリには、CVE-2019-17147 に対して脆弱なファームウェアバージョンのダンプされたフラッシュパーティションと、WR841N ルーターのダウングレードおよびデバッグに役立つバイナリが含まれています。 | Kitploit
ツール/GitHubGitHub/drmnsamoliu/cve-2019-17147_practice_material
組み込みシステムセキュリティ脆弱性分析エクスプロイトデバッガハードウェアハッキングバイナリ解析学習と教育ファームウェア解析ラボと実践

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2019-17147_Practice_Material

このリポジトリには、CVE-2019-17147 に対して脆弱なファームウェアバージョンのダンプされたフラッシュパーティションと、WR841N ルーターのダウングレードおよびデバッグに役立つバイナリが含まれています。

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

CVE-2019-17147_Practice_Material

このリポジトリには、CVE-2019-17147 の影響を受けるファームウェアバージョンのダンプ済みフラッシュパーティションと、WR841N(V14) ルーターをダウングレードおよびデバッグするための便利なバイナリが含まれています。

フラッシュチップのパーティションを上書きするようなハードウェア改造にはリスクが伴います。リスクを評価し、実行するかどうかはご自身で判断してください。

なぜ?

ZDI の記事: https://www.zerodayinitiative.com/blog/2019/12/2/mindshare-hardware-reversing-with-the-tp-link-tl-wr841n-router-part-2 は、私がぜひ試して学びたいと思う非常に興味深い脆弱性を実証しています。
残念ながら、ファームウェアバージョン (US) 0.9.1 4.16 v007c.0 Build 180613 Rel.42415n は米国公式サイトからすでに削除されており、もはやダウンロードできません。
しかし、私は (TW) 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n というファームウェアバージョンを実行している WR841N をいくつか持っています。これは ZDI が悪用したものより古く、同じ脆弱性がまだ存在します。

このエクスプロイトの再現に興味を持つ人は他にもたくさんいると思いますが、脆弱なバージョンのファームウェアを実行している動作可能な WR841N を見つけられないという同じ問題に直面しています。
TW、EU、JP 版のハードウェアを使用している場合は、180613 より古いファームウェアバージョン(2018/06/13 にビルドされたもの)を公式サイトからダウンロードし、古いファームウェアで「アップグレード」するだけでルーターをダウングレードすることが可能です。

ファームウェアのダウングレードは可能ですが、WR841N は実際にはチェックを行い、異なる国で販売されているハードウェア向けのファームウェアを受け付けません。したがって、TP-Link が公式サイトで脆弱なバージョンのファームウェアを提供していない国(例: 米国)に住んでいる人々は、http サーバー内のチェックをバイパスし、脆弱なファームウェアをデバイスのフラッシュチップに直接書き込む必要があります。このリポジトリは主にそのためのものです。

また、WR841N で動作する静的 busybox と gdbserver をクロスコンパイルしました。エクスプロイトのデバッグと再現を試みたい方のために用意しています。

フラッシュパーティションのバックアップ

フラッシュパーティションを上書きする前に、現在のパーティションをバックアップしておくことをお勧めします。この脆弱なバージョンで作業を終えた後にルーターを復元できるようにするためです。

シリアルコンソールの使用方法についてはすでに熟知している前提で、ハードウェア部分は省略します。

  1. 任意のマシンに tftp サーバーをセットアップします。

  2. WR841N コンソールで:
    (IP アドレスはあなたの tftp サーバーのものに置き換えてください)

~ # cat /dev/mtd0 > /var/WR841N_backup_mtd0_boot.bin
~ # tftp -p -r /var/WR841N_backup_mtd0_boot.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd0_boot.bin
~ #
~ # cat /dev/mtd1 > /var/WR841N_backup_mtd1_kernel.bin
~ # tftp -p -r /var/WR841N_backup_mtd1_kernel.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd1_kernel.bin
~ #
~ # cat /dev/mtd2 > /var/WR841N_backup_mtd2_rootfs.bin
~ # tftp -p -r /var/WR841N_backup_mtd2_rootfs.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd2_rootfs.bin=
  1. binwalk で .bin ファイルを確認し、フラッシュパーティションのバックアップが正常に完了したことを確認します。


脆弱なパーティションでフラッシュパーティションを上書きする方法

WR841N のフラッシュパーティションは以下のとおりです:

dev:    size   erasesize  name
mtd0: 00010000 00010000 "boot"
mtd1: 000f0000 00010000 "kernel"
mtd2: 002e0000 00010000 "rootfs"
mtd3: 00010000 00010000 "config"
mtd4: 00010000 00010000 "radio"

上書きが必要な主要パーティションは rootfs (mtd2) ですが、安定性のため boot と kernel も上書きします。
config と radio パーティションは提供していません。これらのパーティションは脆弱性に影響せず、また潜在的な法的問題を避けるため RF 設定をいじりたくないはずだからです。


  1. flashcp を tftp で WR841N に転送します。

WR841 のシェルで:

~ # cd /var
/var # tftp -g -r flashcp 192.168.0.100
/var # chmod +x flashcp

(もちろん、IP アドレスは tftp サーバーを実行しているマシンのものに置き換えてください。)


  1. TW_wr841N_mtd0_boot_180516.bin を WR841N に転送し、flashcp で上書きします:
/var # tftp -g -r TW_wr841N_mtd0_boot_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd0_boot_180516.bin /dev/mtd0
/var # rm TW_wr841N_mtd0_boot_180516.bin

注: 転送および上書きするパーティションの順序は問いませんが、**1 つずつ** 実行し、すべての .bin ファイルを一度に WR841N に転送しないようにしてください。
次のファイルを転送する前に、フラッシュ済みの .bin を削除してください。ルーターのメモリは非常に限られており、ramfs に大量のデータを転送するとクラッシュします!

  1. TW_wr841N_mtd1_kernel_180516.bin を WR841N に転送し、flashcp で上書きします:
/var # tftp -g -r TW_wr841N_mtd1_kernel_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd1_kernel_180516.bin /dev/mtd1
/var # rm TW_wr841N_mtd1_kernel_180516.bin

  1. TW_wr841N_mtd2_rootfs_180516.bin を WR841N に転送し、flashcp で上書きします(これは最大のパーティションなので、flashcp の完了には時間がかかります):
/var # tftp -g -r TW_wr841N_mtd2_rootfs_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd2_rootfs_180516.bin /dev/mtd2
/var # rm TW_wr841N_mtd2_rootfs_180516.bin

  1. ルーターを再起動すると、Web 管理ページがすべて繁体字中国語になり、ファームウェアバージョンが 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n になるはずです。



FW

注意事項

  1. ZDI が提供する PoC は、ここで提供されるファームウェアバージョンではそのままでは動作しません。メモリオフセットが異なるためです。ZDI の PoC を修正するか、独自のエクスプロイトを作成してみてください :)

  2. すべてのバイナリは buildroot-2021.02.6 を使用して私自身がクロスコンパイルしたものです。

  3. デバッグとエクスプロイト開発の作業のほとんどはコンソールで行われるため、ファームウェアの言語はあまり影響しないはずです。ただし、本当に必要でリクエストがあれば、脆弱な EU 版または JP 版からフラッシュ可能なパーティションをビルドしてみることもできます。

  4. 言うまでもなく、フラッシュチップのパーティションを上書きするようなハードウェア改造にはリスクが伴います。リスクを評価し、実行するかどうかはご自身で判断してください。
ツールをダウンロード